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());
34 bool isCharged = (signTC != 0);
37 res(0) = field / pt * signTC;
45 res(4) = impactDistance.
z();
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();
98 AlgebraicVector3(momentum[0], momentum[1], momentum[2]), referencePoint, charge, field);
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]);
Sin< T >::type sin(const T &t)
ROOT::Math::SVector< double, 7 > AlgebraicVector7
Geom::Phi< T > phi() const
Geom::Theta< T > theta() const
TrackCharge charge() const
AlgebraicVector6 vector() const
GlobalVector globalMomentum() const
GlobalVector magneticFieldInInverseGeV(const GlobalPoint &x) const
ParticleMass mass() const
Geom::Theta< T > theta() const
ROOT::Math::SMatrix< double, 7, 7, ROOT::Math::MatRepStd< double, 7, 7 > > AlgebraicMatrix77
GlobalVector inInverseGeV(const GlobalPoint &gp) const
Field value ad specified global point, in 1/Gev.
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)
KinematicState kinematicState(const AlgebraicVector4 &momentum, const GlobalPoint &referencePoint, const TrackCharge &charge, const AlgebraicSymMatrix77 &theCovarianceMatrix, const MagneticField *field) const
AlgebraicVector4 momentumFromPerigee(const AlgebraicVector4 &momentum, const GlobalPoint &referencePoint, const TrackCharge &ch, const MagneticField *field) const
ROOT::Math::SVector< double, 4 > AlgebraicVector4
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
ExtendedPerigeeTrajectoryParameters extendedPerigeeFromKinematicParameters(const KinematicState &state, const GlobalPoint &point) const
KinematicParameters kinematicParametersFromExPerigee(const ExtendedPerigeeTrajectoryParameters &pr, const GlobalPoint &point, const MagneticField *field) const
ROOT::Math::SMatrix< double, 7, 7, ROOT::Math::MatRepSym< double, 7 > > AlgebraicSymMatrix77
TrackCharge particleCharge() const
AlgebraicMatrix77 jacobianParameters2Kinematic(const AlgebraicVector4 &momentum, const GlobalPoint &referencePoint, const TrackCharge &charge, const MagneticField *field) const
ROOT::Math::SVector< double, 3 > AlgebraicVector3
ROOT::Math::SVector< double, 6 > AlgebraicVector6
GlobalPoint globalPosition() 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