Math Libraries
MathCore
- TKDTree: new class for represeting a kd-tree (a k-dimensional tree). See the TKDTree class documentation for a detailed description of the method.
-
Fixed a bug in the ROOT::Math::landau_pdf function. Now it evaluates to the correct normalized distribution when the scale factor is different than 1.
GenVector
- Change the way the exception are thrown in the package (class GenVector_exception). Now, the GenVector_exception class is created only when the throwing of exception is enabled. This avoids the allocation of an un-needed std::string. This problem was observed in CMS when converting from 4D-vectors based on mass to standard (x,y,z,t) vectors, when the mass is zero. In this case, a numerical error creates artifically small negative masses returned by the (x,y,z,t) vector. Eventually a protection could be added when calcuting M2(), to avoid negative values due to numerical rounding.
- Fix a problem in the assignment operator of the ROOT::Math::PxPyPzM4D class. Avoid having nan when converting for example from PxPyPzME4D to PxPyPzM4D when the mass is negative.
- Throw always exception in the non-supported setters (i.e. SetPt on a PxPyPzEVector) methods, which are generated only for the CINT dictionary. These methods flag a compiled-error when running in C++ mode.