16 return propagateToTheTransversePCANeutral(state, referencePoint);
18 return propagateToTheTransversePCACharged(state, referencePoint);
22 pair<HelixBarrelPlaneCrossingByCircle, BoundPlane::BoundPlanePointer>
45 HelixBarrelPlaneCrossingByCircle
49 return std::pair<HelixBarrelPlaneCrossingByCircle,Plane::PlanePointer>(planeCrossing,plane);
74 std::pair<HelixBarrelPlaneCrossingByCircle, BoundPlane::BoundPlanePointer> cros = planeCrossing(fState,iP);
76 HelixBarrelPlaneCrossingByCircle planeCrossing = cros.first;
78 std::pair<bool,double> propResult = planeCrossing.pathLength(*plane);
79 if ( !propResult.first ) {
80 LogDebug(
"RecoVertex/TrackKinematicStatePropagator")
81 <<
"Propagation failed! State is invalid\n";
84 double s = propResult.second;
89 pGen *= inMom.
mag()/pGen.mag();
91 par(0) = nPosition.
x();
92 par(1) = nPosition.y();
93 par(2) = nPosition.z();
94 par(3) = nMomentum.x();
95 par(4) = nMomentum.y();
96 par(5) = nMomentum.z();
111 ca2cu.Place_at(cart2curv.jacobian(),0,0);
112 cu2ca.Place_at(curv2cart.
jacobian(),0,0);
125 pr.Place_at(prop.jacobian(),0,0);
131 cov = ROOT::Math::Similarity(cu2ca, cov2);
155 double phi = fState.momentum().phi();
156 double theta = fState.momentum().theta();
157 double xOrig = xvecOrig.
x();
158 double yOrig = xvecOrig.
y();
159 double zOrig = xvecOrig.
z();
160 double xR = referencePoint.
x();
161 double yR = referencePoint.
y();
163 double s2D = (xR - xOrig) *
cos(phi) + (yR - yOrig) *
sin(phi);
164 double s = s2D /
sin(theta);
165 double xGen = xOrig + s2D*
cos(phi);
166 double yGen = yOrig + s2D*
sin(phi);
167 double zGen = zOrig + s2D/
tan(theta);
172 par(0) = xPerigee.
x();
173 par(1) = xPerigee.
y();
174 par(2) = xPerigee.
z();
175 par(3) = pPerigee.
x();
176 par(4) = pPerigee.
y();
177 par(5) = pPerigee.
z();
179 par(6) = state.
mass();
193 ca2cu.Place_at(cart2curv.jacobian(),0,0);
194 cu2ca.Place_at(curv2cart.
jacobian(),0,0);
207 pr.Place_at(prop.jacobian(),0,0);
213 cov = ROOT::Math::Similarity(cu2ca, cov2);
virtual KinematicState propagateToTheTransversePCANeutral(const KinematicState &state, const GlobalPoint &referencePoint) const
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
const GlobalTrajectoryParameters & parameters() const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
ROOT::Math::SMatrix< double, 7, 6, ROOT::Math::MatRepStd< double, 7, 6 > > AlgebraicMatrix76
Sin< T >::type sin(const T &t)
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
Global3DPoint GlobalPoint
Geom::Theta< T > theta() const
GlobalVector globalMomentum() const
TrackCharge charge() const
ParticleMass mass() 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.
ROOT::Math::SVector< double, 7 > AlgebraicVector7
T z() const
Cartesian z coordinate.
static PlanePointer build(Args &&...args)
Cos< T >::type cos(const T &t)
KinematicParametersError const & kinematicParametersError() const
Tan< T >::type tan(const T &t)
GlobalVector momentum() const
Vector3DBase unit() const
GlobalPoint position() const
const AlgebraicMatrix65 & jacobian() const
const MagneticField * magneticField() const
ROOT::Math::SMatrix< double, 6, 7, ROOT::Math::MatRepStd< double, 6, 7 > > AlgebraicMatrix67
double transverseCurvature() const
TrackCharge particleCharge() const
virtual KinematicState propagateToTheTransversePCA(const KinematicState &state, const GlobalPoint &referencePoint) const
virtual std::pair< HelixBarrelPlaneCrossingByCircle, BoundPlane::BoundPlanePointer > planeCrossing(const FreeTrajectoryState &par, const GlobalPoint &point) const
const MagneticField & magneticField() const
FreeTrajectoryState freeTrajectoryState() const
virtual KinematicState propagateToTheTransversePCACharged(const KinematicState &state, const GlobalPoint &referencePoint) const
GlobalPoint globalPosition() const
AlgebraicSymMatrix77 matrix() 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