#include <SteppingHelixPropagator.h>
Classes | |
struct | Basis |
Public Types | |
enum | DestType { RADIUS_DT =0, Z_DT, PLANE_DT, CONE_DT, CYLINDER_DT, PATHL_DT, POINT_PCA_DT, LINE_PCA_DT, UNDEFINED_DT } |
enum | Fancy { HEL_AS_F =0, HEL_ALL_F, POL_1_F, POL_2_F, POL_M_F } |
enum | Pars { RADIUS_P =0, Z_P = 0, PATHL_P = 0 } |
typedef CLHEP::Hep3Vector | Point |
typedef SteppingHelixStateInfo::Result | Result |
typedef SteppingHelixStateInfo | StateInfo |
typedef CLHEP::Hep3Vector | Vector |
Public Member Functions | |
void | applyRadX0Correction (bool applyRadX0Correction) |
virtual SteppingHelixPropagator * | clone () const override |
virtual const MagneticField * | magneticField () const override |
void | propagate (const SteppingHelixStateInfo &ftsStart, const Surface &sDest, SteppingHelixStateInfo &out) const |
Propagate to Plane given a starting point. More... | |
void | propagate (const SteppingHelixStateInfo &ftsStart, const Plane &pDest, SteppingHelixStateInfo &out) const |
void | propagate (const SteppingHelixStateInfo &ftsStart, const Cylinder &cDest, SteppingHelixStateInfo &out) const |
Propagate to Cylinder given a starting point (a Cylinder is assumed to be positioned at 0,0,0) More... | |
void | propagate (const SteppingHelixStateInfo &ftsStart, const GlobalPoint &pDest, SteppingHelixStateInfo &out) const |
Propagate to PCA to point given a starting point. More... | |
void | propagate (const SteppingHelixStateInfo &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2, SteppingHelixStateInfo &out) const |
Propagate to PCA to a line (given by 2 points) given a starting point. More... | |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const Plane &pDest) const override |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const Cylinder &cDest) const override |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const override |
Propagate to PCA to point given a starting point. More... | |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const override |
Propagate to PCA to a line (given by 2 points) given a starting point. More... | |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const override |
Propagate to PCA to a line (given by beamSpot position and slope) given a starting point. More... | |
void | setDebug (bool debug) |
Switch debug printouts (to cout) .. very verbose. More... | |
void | setEndcapShiftsInZPosNeg (double valPos, double valNeg) |
set shifts in Z for endcap pieces (includes EE, HE, ME, YE) More... | |
void | setMaterialMode (bool noMaterial) |
Switch for material effects mode: no material effects if true. More... | |
void | setNoErrorPropagation (bool noErrorPropagation) |
Force no error propagation. More... | |
void | setReturnTangentPlane (bool val) |
flag to return tangent plane for non-plane input More... | |
void | setSendLogWarning (bool val) |
flag to send LogWarning on failures More... | |
void | setUseInTeslaFromMagField (bool val) |
force getting field value from MagneticField, not the geometric one More... | |
void | setUseIsYokeFlag (bool val) |
void | setUseMagVolumes (bool val) |
Switch to using MagneticField Volumes .. as in VolumeBasedMagneticField. More... | |
void | setUseMatVolumes (bool val) |
Switch to using Material Volumes .. internally defined for now. More... | |
void | setUseTuningForL2Speed (bool val) |
void | setVBFPointer (const VolumeBasedMagneticField *val) |
SteppingHelixPropagator () | |
Constructors. More... | |
SteppingHelixPropagator (const MagneticField *field, PropagationDirection dir=alongMomentum) | |
virtual | ~SteppingHelixPropagator () |
Destructor. More... | |
Public Member Functions inherited from Propagator | |
template<typename STA , typename SUR > | |
TrajectoryStateOnSurface | propagate (STA const &state, SUR const &surface) const |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const final |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const final |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &sur) const |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const |
virtual PropagationDirection | propagationDirection () const final |
Propagator (PropagationDirection dir=alongMomentum) | |
virtual bool | setMaxDirectionChange (float phiMax) |
virtual void | setPropagationDirection (PropagationDirection dir) |
virtual | ~Propagator () |
Protected Types | |
typedef SteppingHelixStateInfo::VolumeBounds | MatBounds |
typedef StateInfo | StateArray[MAX_POINTS+1] |
Protected Member Functions | |
int | cIndex_ (int ind) const |
(Internals) circular index for array of transients More... | |
double | getDeDx (const SteppingHelixPropagator::StateInfo &sv, double &dEdXPrime, double &radX0, MatBounds &rzLims) const |
estimate average (in fact smth. close to MPV and median) energy loss per unit path length More... | |
void | getNextState (const SteppingHelixPropagator::StateInfo &svPrevious, SteppingHelixPropagator::StateInfo &svNext, double dP, const SteppingHelixPropagator::Vector &tau, const SteppingHelixPropagator::Vector &drVec, double dS, double dX0, const AlgebraicMatrix55 &dCovCurv) const |
void | initStateArraySHPSpecific (StateArray &svBuf, bool flagsOnly) const |
(Internals) set defaults needed for states used inside propagate methods More... | |
bool | isYokeVolume (const MagVolume *vol) const |
check if it's a yoke/iron based on this MagVol internals More... | |
void | loadState (SteppingHelixPropagator::StateInfo &svCurrent, const SteppingHelixPropagator::Vector &p3, const SteppingHelixPropagator::Point &r3, int charge, PropagationDirection dir, const AlgebraicSymMatrix55 &covCurv) const |
bool | makeAtomStep (SteppingHelixPropagator::StateInfo &svCurrent, SteppingHelixPropagator::StateInfo &svNext, double dS, PropagationDirection dir, SteppingHelixPropagator::Fancy fancy) const |
main stepping function: compute next state vector after a step of length dS More... | |
Result | propagate (StateArray &svBuff, int &nPoints, SteppingHelixPropagator::DestType type, const double pars[6], double epsilon=1e-3) const |
Result | refToDest (DestType dest, const SteppingHelixPropagator::StateInfo &sv, const double pars[6], double &dist, double &tanDist, PropagationDirection &refDirection, double fastSkipDist=1e12) const |
(Internals) determine distance and direction from the current position to the plane More... | |
Result | refToMagVolume (const SteppingHelixPropagator::StateInfo &sv, PropagationDirection dir, double &dist, double &tanDist, double fastSkipDist=1e12, bool expectNewMagVolume=false, double maxStep=1e12) const |
Result | refToMatVolume (const SteppingHelixPropagator::StateInfo &sv, PropagationDirection dir, double &dist, double &tanDist, double fastSkipDist=1e12) const |
void | setIState (const SteppingHelixStateInfo &sStart, StateArray &svBuff, int &nPoints) const |
(Internals) Init starting point More... | |
void | setRep (SteppingHelixPropagator::Basis &rep, const SteppingHelixPropagator::Vector &tau) const |
Set/compute basis vectors for local coordinates at current step (called by incrementState) More... | |
Static Protected Attributes | |
static const int | MAX_POINTS = 7 |
Private Types | |
typedef std::pair< FreeTrajectoryState, double > | FtsPP |
typedef std::pair< TrajectoryStateOnSurface, double > | TsosPP |
Private Attributes | |
bool | applyRadX0Correction_ |
bool | debug_ |
double | defaultStep_ |
double | ecShiftNeg_ |
double | ecShiftPos_ |
const MagneticField * | field_ |
StateInfo | invalidState_ |
bool | noErrorPropagation_ |
bool | noMaterialMode_ |
bool | returnTangentPlane_ |
bool | sendLogWarning_ |
const AlgebraicSymMatrix55 | unit55_ |
bool | useInTeslaFromMagField_ |
bool | useIsYokeFlag_ |
bool | useMagVolumes_ |
bool | useMatVolumes_ |
bool | useTuningForL2Speed_ |
const VolumeBasedMagneticField * | vbField_ |
Static Private Attributes | |
static const int | MAX_STEPS = 10000 |
Propagator implementation using steps along a helix. Minimal geometry navigation. Material effects (multiple scattering and energy loss) are based on tuning to MC and (eventually) data.
Propagator implementation using steps along a helix. Minimal geometry navigation. Material effects (multiple scattering and energy loss) are based on tuning to MC and (eventually) data. Implementation file contents follow.
Definition at line 41 of file SteppingHelixPropagator.h.
|
private |
Definition at line 260 of file SteppingHelixPropagator.h.
|
protected |
Definition at line 185 of file SteppingHelixPropagator.h.
typedef CLHEP::Hep3Vector SteppingHelixPropagator::Point |
Definition at line 44 of file SteppingHelixPropagator.h.
Definition at line 47 of file SteppingHelixPropagator.h.
|
protected |
Definition at line 187 of file SteppingHelixPropagator.h.
Definition at line 46 of file SteppingHelixPropagator.h.
|
private |
Definition at line 259 of file SteppingHelixPropagator.h.
typedef CLHEP::Hep3Vector SteppingHelixPropagator::Vector |
Definition at line 43 of file SteppingHelixPropagator.h.
Enumerator | |
---|---|
RADIUS_DT | |
Z_DT | |
PLANE_DT | |
CONE_DT | |
CYLINDER_DT | |
PATHL_DT | |
POINT_PCA_DT | |
LINE_PCA_DT | |
UNDEFINED_DT |
Definition at line 61 of file SteppingHelixPropagator.h.
Enumerator | |
---|---|
HEL_AS_F | |
HEL_ALL_F | |
POL_1_F | |
POL_2_F | |
POL_M_F |
Definition at line 73 of file SteppingHelixPropagator.h.
SteppingHelixPropagator::SteppingHelixPropagator | ( | ) |
Constructors.
Definition at line 60 of file SteppingHelixPropagator.cc.
References field_.
Referenced by clone().
SteppingHelixPropagator::SteppingHelixPropagator | ( | const MagneticField * | field, |
PropagationDirection | dir = alongMomentum |
||
) |
Definition at line 66 of file SteppingHelixPropagator.cc.
References applyRadX0Correction_, debug_, defaultStep_, ecShiftNeg_, ecShiftPos_, field_, noErrorPropagation_, noMaterialMode_, returnTangentPlane_, sendLogWarning_, useInTeslaFromMagField_, useIsYokeFlag_, useMagVolumes_, useMatVolumes_, useTuningForL2Speed_, and vbField_.
|
virtual |
|
inline |
Apply radLength correction (1+0.036*ln(radX0+1)) to covariance matrix +1 is added for IR-safety Should be done with care: it's easy to make the end-point result dependent on the intermediate stop points
Definition at line 149 of file SteppingHelixPropagator.h.
References applyRadX0Correction(), and applyRadX0Correction_.
Referenced by applyRadX0Correction(), AlCaHOCalibProducer::fillHOStore(), TrackDetectorAssociator::init(), HTrackAssociator::init(), and SteppingHelixPropagatorESProducer::produce().
|
protected |
(Internals) circular index for array of transients
Definition at line 1658 of file SteppingHelixPropagator.cc.
References MAX_POINTS, and mps_fire::result.
Referenced by propagate(), and setIState().
|
inlineoverridevirtual |
Implements Propagator.
Definition at line 85 of file SteppingHelixPropagator.h.
References SteppingHelixPropagator(), and ~SteppingHelixPropagator().
|
protected |
estimate average (in fact smth. close to MPV and median) energy loss per unit path length
Definition at line 1298 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::bf, MillePedeFileConverter_cfg::e, vertexPlots::e4, ecShiftNeg_, ecShiftPos_, SteppingHelixStateInfo::isYokeVol, cmsBatch::log, SteppingHelixStateInfo::magVol, noMaterialMode_, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::r3, mathSSE::sqrt(), useIsYokeFlag_, useMagVolumes_, and geometryCSVtoXML::xx.
Referenced by getNextState(), loadState(), and makeAtomStep().
|
protected |
(Internals) compute transients for current point (increments step counter). Called by makeAtomStep
Definition at line 782 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::bf, SteppingHelixStateInfo::covCurv, debug_, SteppingHelixStateInfo::dEdx, SteppingHelixStateInfo::dEdXPrime, SteppingHelixStateInfo::dir, MillePedeFileConverter_cfg::e, field_, VolumeBasedMagneticField::findVolume(), getDeDx(), SteppingHelixStateInfo::hasErrorPropagated_, MagneticField::inTesla(), MagVolume::inTesla(), SteppingHelixStateInfo::isYokeVol, isYokeVolume(), LogTrace, SteppingHelixStateInfo::magVol, SteppingHelixStateInfo::matDCovCurv, metname, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::path(), SteppingHelixStateInfo::path_, SteppingHelixStateInfo::q, SteppingHelixStateInfo::r3, SteppingHelixStateInfo::radPath(), SteppingHelixStateInfo::radPath_, SteppingHelixStateInfo::radX0, SteppingHelixStateInfo::rzLims, AlCaHLTBitMon_QueryRunRegistry::string, metsig::tau, tmp, useInTeslaFromMagField_, useIsYokeFlag_, useMagVolumes_, and vbField_.
Referenced by makeAtomStep().
|
protected |
(Internals) set defaults needed for states used inside propagate methods
Definition at line 41 of file SteppingHelixPropagator.cc.
References mps_fire::i, MAX_POINTS, and noErrorPropagation_.
Referenced by propagate(), and propagateWithPath().
|
protected |
check if it's a yoke/iron based on this MagVol internals
Definition at line 2279 of file SteppingHelixPropagator.cc.
References debug_, MagVolume::isIron(), LogTrace, metname, GloballyPositioned< T >::position(), mps_fire::result, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by getNextState(), and loadState().
|
protected |
(Internals) compute transient values for initial point (resets step counter). Called by setIState
Definition at line 668 of file SteppingHelixPropagator.cc.
References alongMomentum, SteppingHelixStateInfo::bf, ALCARECOTkAlJpsiMuMu_cff::charge, SteppingHelixStateInfo::covCurv, debug_, SteppingHelixStateInfo::dEdx, SteppingHelixStateInfo::dEdXPrime, SteppingHelixStateInfo::dir, MillePedeFileConverter_cfg::e, f, field_, MagVolume::fieldInTesla(), VolumeBasedMagneticField::findVolume(), getDeDx(), MagneticField::inTesla(), MagVolume::inTesla(), SteppingHelixStateInfo::isComplete, SteppingHelixStateInfo::isValid_, SteppingHelixStateInfo::isYokeVol, isYokeVolume(), LogTrace, PV3DBase< T, PVType, FrameType >::mag2(), SteppingHelixStateInfo::magVol, metname, SteppingHelixStateInfo::p3, p3, SteppingHelixStateInfo::path(), SteppingHelixStateInfo::path_, SteppingHelixStateInfo::q, SteppingHelixStateInfo::r3, SteppingHelixStateInfo::radPath(), SteppingHelixStateInfo::radPath_, SteppingHelixStateInfo::radX0, SteppingHelixStateInfo::rzLims, AlCaHLTBitMon_QueryRunRegistry::string, GloballyPositioned< T >::toLocal(), useInTeslaFromMagField_, useIsYokeFlag_, useMagVolumes_, vbField_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by setIState().
|
inlineoverridevirtual |
Implements Propagator.
Definition at line 90 of file SteppingHelixPropagator.h.
References ecalDrivenElectronSeedsParameters_cff::beamSpot, field_, MillePedeFileConverter_cfg::out, Propagator::propagate(), propagate(), Propagator::propagateWithPath(), and propagateWithPath().
|
protected |
main stepping function: compute next state vector after a step of length dS
Definition at line 878 of file SteppingHelixPropagator.cc.
References alongMomentum, applyRadX0Correction_, SteppingHelixStateInfo::bf, funct::cos(), debug_, SteppingHelixStateInfo::dEdx, SteppingHelixStateInfo::dEdXPrime, PVValHelper::dx, MillePedeFileConverter_cfg::e, field_, CustomPhysics_cfi::gamma, getDeDx(), getNextState(), SteppingHelixStateInfo::hasErrorPropagated_, HEL_ALL_F, HEL_AS_F, MagneticField::inTesla(), MagVolume::inTesla(), SteppingHelixStateInfo::isYokeVol, cmsBatch::log, LogTrace, SteppingHelixPropagator::Basis::lX, SteppingHelixPropagator::Basis::lY, SteppingHelixPropagator::Basis::lZ, PV3DBase< T, PVType, FrameType >::mag(), SteppingHelixStateInfo::magVol, SteppingHelixStateInfo::matDCovCurv, metname, oppositeToMomentum, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::path(), phi, createTree::pp, SteppingHelixStateInfo::q, lumiQueryAPI::q, SteppingHelixStateInfo::r3, SteppingHelixStateInfo::radPath(), SteppingHelixStateInfo::radX0, cuy::rep, setRep(), funct::sin(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, metsig::tau, unit55_, useInTeslaFromMagField_, useMagVolumes_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by propagate().
void SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const Surface & | sDest, | ||
SteppingHelixStateInfo & | out | ||
) | const |
Propagate to Plane given a starting point.
Definition at line 173 of file SteppingHelixPropagator.cc.
References invalidState_, SteppingHelixStateInfo::isValid(), and sendLogWarning_.
Referenced by AlCaHOCalibProducer::fillHOStore(), magneticField(), propagate(), and propagateWithPath().
void SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const Plane & | pDest, | ||
SteppingHelixStateInfo & | out | ||
) | const |
Definition at line 203 of file SteppingHelixPropagator.cc.
References cIndex_(), initStateArraySHPSpecific(), invalidState_, SteppingHelixStateInfo::isValid(), SteppingHelixStateInfo::path(), PLANE_DT, GloballyPositioned< T >::position(), propagate(), reco::return(), GloballyPositioned< T >::rotation(), sendLogWarning_, setIState(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().
void SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const Cylinder & | cDest, | ||
SteppingHelixStateInfo & | out | ||
) | const |
Propagate to Cylinder given a starting point (a Cylinder is assumed to be positioned at 0,0,0)
Definition at line 239 of file SteppingHelixPropagator.cc.
References cIndex_(), initStateArraySHPSpecific(), invalidState_, SteppingHelixStateInfo::isValid(), SteppingHelixStateInfo::path(), propagate(), Cylinder::radius(), RADIUS_DT, RADIUS_P, sendLogWarning_, and setIState().
void SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const GlobalPoint & | pDest, | ||
SteppingHelixStateInfo & | out | ||
) | const |
Propagate to PCA to point given a starting point.
Definition at line 272 of file SteppingHelixPropagator.cc.
References cIndex_(), initStateArraySHPSpecific(), invalidState_, SteppingHelixStateInfo::isValid(), POINT_PCA_DT, propagate(), sendLogWarning_, setIState(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
void SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const GlobalPoint & | pDest1, | ||
const GlobalPoint & | pDest2, | ||
SteppingHelixStateInfo & | out | ||
) | const |
Propagate to PCA to a line (given by 2 points) given a starting point.
Definition at line 298 of file SteppingHelixPropagator.cc.
References cIndex_(), MillePedeFileConverter_cfg::e, initStateArraySHPSpecific(), invalidState_, SteppingHelixStateInfo::isValid(), LINE_PCA_DT, mag(), propagate(), sendLogWarning_, setIState(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
|
protected |
propagate: chose stop point by type argument propagate to fixed radius [ r = sqrt(x**2+y**2) ] with precision epsilon propagate to plane by [x0,y0,z0, n_x, n_y, n_z] parameters
define a fast-skip distance: should be the shortest of a possible step or distance
Definition at line 343 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, cIndex_(), debug_, SteppingHelixStateInfo::dEdx, defaultStep_, dir, MillePedeFileConverter_cfg::e, SteppingHelixStateInfo::FAULT, SteppingHelixStateInfo::field, field_, HEL_AS_F, SteppingHelixStateInfo::INACC, SteppingHelixStateInfo::isValid_, LINE_PCA_DT, LogTrace, makeAtomStep(), MAX_STEPS, metname, SteppingHelixStateInfo::OK, oppositeToMomentum, SteppingHelixStateInfo::p3, PATHL_DT, PATHL_P, PLANE_DT, POINT_PCA_DT, Propagator::propagationDirection(), SteppingHelixStateInfo::r3, RADIUS_DT, RADIUS_P, SteppingHelixStateInfo::RANGEOUT, refToDest(), refToMagVolume(), refToMatVolume(), mps_fire::result, SteppingHelixStateInfo::ResultName, sendLogWarning_, SteppingHelixStateInfo::status_, AlCaHLTBitMon_QueryRunRegistry::string, SteppingHelixStateInfo::UNDEFINED, useIsYokeFlag_, useMagVolumes_, useMatVolumes_, useTuningForL2Speed_, SteppingHelixStateInfo::WRONG_VOLUME, Z_DT, and Z_P.
|
overridevirtual |
Propagate to Plane given a starting point: return final TrajectoryState and path length from start to this point
Implements Propagator.
Definition at line 93 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::getStateOnSurface(), initStateArraySHPSpecific(), SteppingHelixStateInfo::path(), propagate(), and setIState().
Referenced by magneticField(), PropagateToCal::propagate(), and propagateWithPath().
|
overridevirtual |
Propagate to Cylinder given a starting point: return final TrajectoryState and path length from start to this point
Implements Propagator.
Definition at line 107 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::getStateOnSurface(), initStateArraySHPSpecific(), SteppingHelixStateInfo::path(), propagate(), returnTangentPlane_, and setIState().
|
overridevirtual |
Propagate to PCA to point given a starting point.
Reimplemented from Propagator.
Definition at line 122 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::getFreeState(), initStateArraySHPSpecific(), SteppingHelixStateInfo::path(), propagate(), and setIState().
|
overridevirtual |
Propagate to PCA to a line (given by 2 points) given a starting point.
Reimplemented from Propagator.
Definition at line 138 of file SteppingHelixPropagator.cc.
References MillePedeFileConverter_cfg::e, SteppingHelixStateInfo::getFreeState(), initStateArraySHPSpecific(), mag(), SteppingHelixStateInfo::path(), propagate(), sendLogWarning_, and setIState().
|
overridevirtual |
Propagate to PCA to a line (given by beamSpot position and slope) given a starting point.
Reimplemented from Propagator.
Definition at line 163 of file SteppingHelixPropagator.cc.
References reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), propagateWithPath(), reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().
|
protected |
(Internals) determine distance and direction from the current position to the plane
Definition at line 1667 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, SteppingHelixStateInfo::bf, CONE_DT, funct::cos(), debug_, PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, MillePedeFileConverter_cfg::e, vertexPlots::e4, mps_fire::i, SteppingHelixStateInfo::INACC, LINE_PCA_DT, LogTrace, mag(), metname, SteppingHelixStateInfo::NOT_IMPLEMENTED, SteppingHelixStateInfo::OK, oppositeToMomentum, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::path(), PATHL_DT, PATHL_P, Geom::pi(), PLANE_DT, POINT_PCA_DT, SteppingHelixStateInfo::q, SteppingHelixStateInfo::r3, RADIUS_DT, RADIUS_P, mps_fire::result, funct::sin(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, metsig::tau, theta(), Z_DT, and Z_P.
Referenced by propagate(), refToMagVolume(), and refToMatVolume().
|
protected |
(Internals) determine distance and direction from the current position to the boundary of current mag volume
Definition at line 1936 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, CONE_DT, debug_, MillePedeFileConverter_cfg::e, MagVolume::faces(), mps_fire::i, SteppingHelixStateInfo::INACC, MagVolume::inside(), LogTrace, SteppingHelixStateInfo::magVol, metname, DDSolidShapesName::name(), SteppingHelixStateInfo::NOT_IMPLEMENTED, SteppingHelixStateInfo::OK, Cone::openingAngle(), SteppingHelixStateInfo::p3, PLANE_DT, GloballyPositioned< T >::position(), SteppingHelixStateInfo::r3, Cylinder::radius(), RADIUS_DT, RADIUS_P, refToDest(), mps_fire::result, GloballyPositioned< T >::rotation(), MagVolume::shapeType(), Validation_hcalonly_cfi::sign, AlCaHLTBitMon_QueryRunRegistry::string, SteppingHelixStateInfo::UNDEFINED, UNDEFINED_DT, Cone::vertex(), SteppingHelixStateInfo::WRONG_VOLUME, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().
Referenced by propagate().
|
protected |
Definition at line 2165 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, CONE_DT, debug_, MillePedeFileConverter_cfg::e, SteppingHelixStateInfo::INACC, LogTrace, metname, SteppingHelixStateInfo::NOT_IMPLEMENTED, SteppingHelixStateInfo::OK, SteppingHelixStateInfo::p3, Geom::pi(), PLANE_DT, SteppingHelixStateInfo::r3, RADIUS_DT, RADIUS_P, refToDest(), mps_fire::result, SteppingHelixStateInfo::VolumeBounds::rMax, SteppingHelixStateInfo::VolumeBounds::rMin, SteppingHelixStateInfo::rzLims, Validation_hcalonly_cfi::sign, AlCaHLTBitMon_QueryRunRegistry::string, funct::tan(), SteppingHelixStateInfo::VolumeBounds::th1, SteppingHelixStateInfo::VolumeBounds::th2, UNDEFINED_DT, SteppingHelixStateInfo::VolumeBounds::zMax, and SteppingHelixStateInfo::VolumeBounds::zMin.
Referenced by propagate().
|
inline |
Switch debug printouts (to cout) .. very verbose.
Definition at line 137 of file SteppingHelixPropagator.h.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
set shifts in Z for endcap pieces (includes EE, HE, ME, YE)
Definition at line 180 of file SteppingHelixPropagator.h.
References ecShiftNeg_, and ecShiftPos_.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
protected |
(Internals) Init starting point
Definition at line 327 of file SteppingHelixPropagator.cc.
References cIndex_(), SteppingHelixStateInfo::covCurv, SteppingHelixStateInfo::hasErrorPropagated_, SteppingHelixStateInfo::isComplete, loadState(), noErrorPropagation_, SteppingHelixStateInfo::p3, Propagator::propagationDirection(), SteppingHelixStateInfo::q, and SteppingHelixStateInfo::r3.
Referenced by propagate(), and propagateWithPath().
|
inline |
Switch for material effects mode: no material effects if true.
Definition at line 140 of file SteppingHelixPropagator.h.
References noMaterialMode_.
Referenced by MuonSimHitProducer::beginRun(), AlCaHOCalibProducer::fillHOStore(), TrackDetectorAssociator::init(), HTrackAssociator::init(), SteppingHelixPropagatorESProducer::produce(), and PropagateToCal::propagate().
|
inline |
Force no error propagation.
Definition at line 143 of file SteppingHelixPropagator.h.
References noErrorPropagation_.
Referenced by SteppingHelixPropagatorESProducer::produce(), and PropagateToCal::propagate().
|
protected |
Set/compute basis vectors for local coordinates at current step (called by incrementState)
Definition at line 870 of file SteppingHelixPropagator.cc.
References SteppingHelixPropagator::Basis::lX, SteppingHelixPropagator::Basis::lY, SteppingHelixPropagator::Basis::lZ, and metsig::tau.
Referenced by makeAtomStep().
|
inline |
flag to return tangent plane for non-plane input
Definition at line 158 of file SteppingHelixPropagator.h.
References returnTangentPlane_, and heppy_batch::val.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
flag to send LogWarning on failures
Definition at line 161 of file SteppingHelixPropagator.h.
References sendLogWarning_, and heppy_batch::val.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
force getting field value from MagneticField, not the geometric one
Definition at line 177 of file SteppingHelixPropagator.h.
References useInTeslaFromMagField_, and heppy_batch::val.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
(temporary?) flag to identify if the volume is yoke based on MagVolume internals works if useMatVolumes_ is also true
Definition at line 165 of file SteppingHelixPropagator.h.
References useIsYokeFlag_, and heppy_batch::val.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
Switch to using MagneticField Volumes .. as in VolumeBasedMagneticField.
Definition at line 152 of file SteppingHelixPropagator.h.
References useMagVolumes_, and heppy_batch::val.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
Switch to using Material Volumes .. internally defined for now.
Definition at line 155 of file SteppingHelixPropagator.h.
References useMatVolumes_, and heppy_batch::val.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
will use bigger steps ~tuned for good-enough L2/Standalone reco use this in hope of a speed-up
Definition at line 169 of file SteppingHelixPropagator.h.
References useTuningForL2Speed_, and heppy_batch::val.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
set VolumBasedField pointer allows to have geometry description in uniformField scenario only important/relevant in the barrel region
Definition at line 174 of file SteppingHelixPropagator.h.
References heppy_batch::val, and vbField_.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
private |
Definition at line 273 of file SteppingHelixPropagator.h.
Referenced by applyRadX0Correction(), makeAtomStep(), and SteppingHelixPropagator().
|
private |
Definition at line 270 of file SteppingHelixPropagator.h.
Referenced by getNextState(), isYokeVolume(), loadState(), makeAtomStep(), propagate(), refToDest(), refToMagVolume(), refToMatVolume(), setDebug(), and SteppingHelixPropagator().
|
private |
Definition at line 282 of file SteppingHelixPropagator.h.
Referenced by propagate(), and SteppingHelixPropagator().
|
private |
Definition at line 285 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setEndcapShiftsInZPosNeg(), and SteppingHelixPropagator().
|
private |
Definition at line 284 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setEndcapShiftsInZPosNeg(), and SteppingHelixPropagator().
|
private |
Definition at line 267 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), magneticField(), makeAtomStep(), propagate(), and SteppingHelixPropagator().
|
private |
Definition at line 265 of file SteppingHelixPropagator.h.
Referenced by propagate().
|
staticprotected |
Definition at line 186 of file SteppingHelixPropagator.h.
Referenced by cIndex_(), and initStateArraySHPSpecific().
|
staticprivate |
Definition at line 261 of file SteppingHelixPropagator.h.
Referenced by propagate().
|
private |
Definition at line 272 of file SteppingHelixPropagator.h.
Referenced by initStateArraySHPSpecific(), setIState(), setNoErrorPropagation(), and SteppingHelixPropagator().
|
private |
Definition at line 271 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setMaterialMode(), and SteppingHelixPropagator().
|
private |
Definition at line 278 of file SteppingHelixPropagator.h.
Referenced by propagateWithPath(), setReturnTangentPlane(), and SteppingHelixPropagator().
|
private |
Definition at line 279 of file SteppingHelixPropagator.h.
Referenced by propagate(), propagateWithPath(), setSendLogWarning(), and SteppingHelixPropagator().
|
private |
Definition at line 269 of file SteppingHelixPropagator.h.
Referenced by makeAtomStep().
|
private |
Definition at line 277 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), makeAtomStep(), setUseInTeslaFromMagField(), and SteppingHelixPropagator().
|
private |
Definition at line 275 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), getNextState(), loadState(), propagate(), setUseIsYokeFlag(), and SteppingHelixPropagator().
|
private |
Definition at line 274 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), getNextState(), loadState(), makeAtomStep(), propagate(), setUseMagVolumes(), and SteppingHelixPropagator().
|
private |
Definition at line 276 of file SteppingHelixPropagator.h.
Referenced by propagate(), setUseMatVolumes(), and SteppingHelixPropagator().
|
private |
Definition at line 280 of file SteppingHelixPropagator.h.
Referenced by propagate(), setUseTuningForL2Speed(), and SteppingHelixPropagator().
|
private |
Definition at line 268 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), setVBFPointer(), and SteppingHelixPropagator().