8#include <tracking/dataobjects/hitXP.h>
9#include <framework/gearbox/Const.h>
13double hitXP::omega(ROOT::Math::XYZVector xx, ROOT::Math::XYZVector p,
double charge)
const
15 ROOT::Math::XYZVector x(0.01 * xx.X(), 0.01 * xx.Y(), 0.01 * xx.Z());
18 double aux = Bze /
sqrt(p.X() * p.X() + p.Y() * p.Y());
26 ROOT::Math::XYZVector x(0.01 * xx.X(), 0.01 * xx.Y(), 0.01 * xx.Z());
27 double aux = p.Z() /
sqrt(p.X() * p.X() + p.Y() * p.Y());
32double hitXP::d0(ROOT::Math::XYZVector xx, ROOT::Math::XYZVector p,
double charge)
const
34 ROOT::Math::XYZVector x(0.01 * xx.X(), 0.01 * xx.Y(), 0.01 * xx.Z());
37 double aux =
sqrt((p.Y() / (Bze) + x.X()) * (p.Y() / (Bze) + x.X()) + (x.Y() - p.X() / (Bze)) * (x.Y() - p.X() / (Bze))) -
sqrt((
38 p.X() * p.X() + p.Y() * p.Y()) / (Bze * Bze));
46double hitXP::phi0(
const ROOT::Math::XYZVector& xx, ROOT::Math::XYZVector p,
double charge)
const
48 ROOT::Math::XYZVector x(0.01 * xx.X(), 0.01 * xx.Y(), 0.01 * xx.Z());
54 chi = atan2((-p.X() * x.X() - p.Y() * x.Y()), ((p.X() * p.X() + p.Y() * p.Y()) / (Bze) + p.Y() * x.X() - p.X() * x.Y()));
56 chi = atan2(-(-p.X() * x.X() - p.Y() * x.Y()), -((p.X() * p.X() + p.Y() * p.Y()) / (Bze) + p.Y() * x.X() - p.X() * x.Y()));
58 aux = atan2(p.Y(), p.X()) - chi;
62double hitXP::z0(ROOT::Math::XYZVector xx, ROOT::Math::XYZVector p,
double charge)
const
64 ROOT::Math::XYZVector x(0.01 * xx.X(), 0.01 * xx.Y(), 0.01 * xx.Z());
70 chi = atan2((-p.X() * x.X() - p.Y() * x.Y()), ((p.X() * p.X() + p.Y() * p.Y()) / (Bze) + p.Y() * x.X() - p.X() * x.Y()));
72 chi = atan2(-(-p.X() * x.X() - p.Y() * x.Y()), -((p.X() * p.X() + p.Y() * p.Y()) / (Bze) + p.Y() * x.X() - p.X() * x.Y()));
74 aux = p.Z() * chi / (Bze) + x.Z();
static const double speedOfLight
[cm/ns]
double phi0(const ROOT::Math::XYZVector &xx, ROOT::Math::XYZVector p, double charge) const
evaluates the parameter phi0 (angle between pT and x) of a helicoidal track starting from position an...
double z0(ROOT::Math::XYZVector xx, ROOT::Math::XYZVector p, double charge) const
evaluates the parameter z0 (distance transverse plane-POCA) of a helicoidal track starting from posit...
double tanLambda(ROOT::Math::XYZVector xx, ROOT::Math::XYZVector p) const
evaluates the parameter tanLambda (pz/pt) of a helicoidal track starting from position and momentum o...
double d0(ROOT::Math::XYZVector xx, ROOT::Math::XYZVector p, double charge) const
evaluates the parameter d0 (impact parameter) of a helicoidal track starting from position and moment...
double omega(ROOT::Math::XYZVector xx, ROOT::Math::XYZVector p, double charge) const
evaluates the parameter omega (1/curvature radius) of a helicoidal track starting from position and m...
double sqrt(double a)
sqrt for double
Abstract base class for different kinds of events.