13 double phi =
state.globalMomentum().phi();
14 double pt =
state.globalMomentum().transverse();
16 double field =
state.magneticFieldInInverseGeV().z();
22 double positiveMomentumPhi = ((
phi > 0) ?
phi : (2 *
M_PI +
phi));
23 double positionPhi = impactDistance.
phi();
24 double positivePositionPhi = ((positionPhi > 0) ? positionPhi : (2 *
M_PI + positionPhi));
25 double phiDiff = positiveMomentumPhi - positivePositionPhi;
27 phiDiff += (2 *
M_PI);
28 double signEpsilon = ((phiDiff >
M_PI) ? -1.0 : 1.0);
31 signEpsilon *
sqrt(impactDistance.
x() * impactDistance.
x() + impactDistance.
y() * impactDistance.
y());
33 double signTC = -
state.particleCharge();
34 bool isCharged = (signTC != 0);
37 res(0) = field /
pt * signTC;
45 res(4) = impactDistance.
z();
54 if (
pr.charge() != 0) {
57 pt = 1 / theVector(1);
59 par(6) = theVector[5];
60 par(0) = theVector[3] *
sin(theVector[2]) +
point.x();
61 par(1) = -theVector[3] *
cos(theVector[2]) +
point.y();
62 par(2) = theVector[4] +
point.z();
63 par(3) =
cos(theVector[2]) *
pt;
64 par(4) =
sin(theVector[2]) *
pt;
65 par(5) =
pt /
tan(theVector[1]);
76 AlgebraicSymMatrix77 kinematicErrorMatrix = ROOT::Math::Similarity(param2cart, theCovarianceMatrix);
82 par(0) = referencePoint.
x();
83 par(1) = referencePoint.
y();
84 par(2) = referencePoint.
z();
100 for (
int i = 0;
i < 6; ++
i)
101 for (
int j = 0;
j < 6; ++
j)
102 frameTransJ(
i,
j) = param2cart(
i,
j);
103 frameTransJ(6, 6) = 1;
137 pt = 1 / momentum[0];
139 mm(0) =
cos(momentum[2]) *
pt;
140 mm(1) =
sin(momentum[2]) *
pt;
141 mm(2) =
pt /
tan(momentum[1]);
ExtendedPerigeeTrajectoryParameters extendedPerigeeFromKinematicParameters(const KinematicState &state, const GlobalPoint &point) const
Geom::Phi< T > phi() const
Sin< T >::type sin(const T &t)
ROOT::Math::SVector< double, 7 > AlgebraicVector7
GlobalVector inInverseGeV(const GlobalPoint &gp) const
Field value ad specified global point, in 1/Gev.
KinematicState kinematicState(const AlgebraicVector4 &momentum, const GlobalPoint &referencePoint, const TrackCharge &charge, const AlgebraicSymMatrix77 &theCovarianceMatrix, const MagneticField *field) const
ROOT::Math::SMatrix< double, 7, 7, ROOT::Math::MatRepStd< double, 7, 7 > > AlgebraicMatrix77
AlgebraicMatrix66 jacobianParameters2Cartesian(const AlgebraicVector3 &momentum, const GlobalPoint &position, const TrackCharge &charge, const MagneticField *field)
Cos< T >::type cos(const T &t)
Tan< T >::type tan(const T &t)
Abs< T >::type abs(const T &t)
ROOT::Math::SVector< double, 4 > AlgebraicVector4
KinematicParameters kinematicParametersFromExPerigee(const ExtendedPerigeeTrajectoryParameters &pr, const GlobalPoint &point, const MagneticField *field) const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
AlgebraicVector4 momentumFromPerigee(const AlgebraicVector4 &momentum, const GlobalPoint &referencePoint, const TrackCharge &ch, const MagneticField *field) const
ROOT::Math::SMatrix< double, 7, 7, ROOT::Math::MatRepSym< double, 7 > > AlgebraicSymMatrix77
ROOT::Math::SVector< double, 3 > AlgebraicVector3
ROOT::Math::SVector< double, 6 > AlgebraicVector6
AlgebraicMatrix77 jacobianParameters2Kinematic(const AlgebraicVector4 &momentum, const GlobalPoint &referencePoint, const TrackCharge &charge, const MagneticField *field) const
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point