11 #include <mdst/dbobjects/CollisionBoostVector.h>
12 #include <mdst/dbobjects/CollisionInvariantMass.h>
13 #include <mdst/dbobjects/CollisionAxisCMS.h>
14 #include <framework/database/DBObjPtr.h>
15 #include <framework/geometry/B2Vector3.h>
17 #include <Math/Boost.h>
18 #include <Math/AxisAngle.h>
19 #include <Math/LorentzRotation.h>
20 #include <Math/Vector4D.h>
72 ROOT::Math::LorentzRotation boost(ROOT::Math::Boost(-1.*
getBoostVector()));
76 ROOT::Math::XYZVector zaxis(0., 0., 1.);
80 double Norm = 1 /
sqrt(1 + pow(tanAngleXZ, 2) + pow(tanAngleYZ, 2));
81 ROOT::Math::XYZVector electronCMS(Norm * tanAngleXZ, Norm * tanAngleYZ, Norm);
83 ROOT::Math::XYZVector rotAxis = zaxis.Cross(electronCMS);
84 double rotangle = asin(rotAxis.R());
86 ROOT::Math::LorentzRotation rotation(ROOT::Math::AxisAngle(rotAxis, -rotangle));
89 ROOT::Math::LorentzRotation trans = rotation * boost;
107 static ROOT::Math::PxPyPzMVector
labToCms(
const ROOT::Math::PxPyPzMVector& vec);
114 static ROOT::Math::PxPyPzMVector
cmsToLab(
const ROOT::Math::PxPyPzMVector& vec);
121 static ROOT::Math::PxPyPzEVector
labToCms(
const ROOT::Math::PxPyPzEVector& vec);
128 static ROOT::Math::PxPyPzEVector
cmsToLab(
const ROOT::Math::PxPyPzEVector& vec);
Class for accessing objects in the database.
double sqrt(double a)
sqrt for double
double tan(double a)
tan for double
Abstract base class for different kinds of events.