12 res(5) = state.
mass();
24 double positiveMomentumPhi = ((phi>0) ? phi : (2*
M_PI + phi));
25 double positionPhi = impactDistance.
phi();
26 double positivePositionPhi =
27 ( (positionPhi>0) ? positionPhi : (2*
M_PI+positionPhi) );
28 double phiDiff = positiveMomentumPhi - positivePositionPhi;
29 if (phiDiff<0.0) phiDiff+= (2*
M_PI);
30 double signEpsilon = ( (phiDiff >
M_PI) ? -1.0 : 1.0);
33 sqrt(impactDistance.
x()*impactDistance.
x() +
34 impactDistance.
y()*impactDistance.
y());
37 bool isCharged = (signTC!=0);
40 res(0) = field / pt*signTC;
48 res(4) = impactDistance.
z();
61 }
else{pt = 1/theVector(1);}
62 par(6) = theVector[5];
63 par(0) = theVector[3]*
sin(theVector[2])+point.
x();
64 par(1) = -theVector[3]*
cos(theVector[2])+point.
y();
65 par(2) = theVector[4]+point.
z();
66 par(3) =
cos(theVector[2]) * pt;
67 par(4) =
sin(theVector[2]) * pt;
68 par(5) = pt/
tan(theVector[1]);
80 referencePoint, charge, field);
81 AlgebraicSymMatrix77 kinematicErrorMatrix = ROOT::Math::Similarity(param2cart,theCovarianceMatrix);
87 par(0) = referencePoint.
x();
88 par(1) = referencePoint.
y();
89 par(2) = referencePoint.
z();
105 referencePoint, charge, field);
107 for (
int i =0;
i<6;++
i)
108 for (
int j =0;
j<6;++
j)
109 frameTransJ(
i,
j) = param2cart(
i,
j);
110 frameTransJ(6, 6) = 1;
145 }
else{pt = 1/ momentum[0];}
146 mm(0) =
cos(momentum[2]) * pt;
147 mm(1) =
sin(momentum[2]) * pt;
148 mm(2) = pt/
tan(momentum[1]);
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
Sin< T >::type sin(const T &t)
Geom::Phi< T > phi() const
Geom::Theta< T > theta() const
TrackCharge charge() const
AlgebraicVector6 vector() const
GlobalVector globalMomentum() const
ROOT::Math::SVector< double, 6 > AlgebraicVector6
ParticleMass mass() const
Geom::Theta< T > theta() const
ROOT::Math::SMatrix< double, 7, 7, ROOT::Math::MatRepSym< double, 7 > > AlgebraicSymMatrix77
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) const
ROOT::Math::SVector< double, 7 > AlgebraicVector7
Cos< T >::type cos(const T &t)
ROOT::Math::SVector< double, 3 > AlgebraicVector3
Tan< T >::type tan(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::SMatrix< double, 7, 7, ROOT::Math::MatRepStd< double, 7, 7 > > AlgebraicMatrix77
const MagneticField * magneticField() const
ExtendedPerigeeTrajectoryParameters extendedPerigeeFromKinematicParameters(const KinematicState &state, const GlobalPoint &point) const
KinematicParameters kinematicParametersFromExPerigee(const ExtendedPerigeeTrajectoryParameters &pr, const GlobalPoint &point, const MagneticField *field) const
TrackCharge particleCharge() const
AlgebraicMatrix77 jacobianParameters2Kinematic(const AlgebraicVector4 &momentum, const GlobalPoint &referencePoint, const TrackCharge &charge, const MagneticField *field) const
ROOT::Math::SVector< double, 4 > AlgebraicVector4
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