#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) |
SteppingHelixPropagator * | clone () const override |
const MagneticField * | magneticField () const override |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const final |
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 |
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 &, const Surface &) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const=0 |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const=0 |
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 std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const |
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 |
Propagate to PCA to a line (given by beamSpot position and slope) given a starting point. More... | |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const Plane &pDest) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const Cylinder &cDest) const override |
std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const override |
Propagate to PCA to point given a starting point. More... | |
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... | |
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) | |
~SteppingHelixPropagator () override | |
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 36 of file SteppingHelixPropagator.h.
|
private |
Definition at line 258 of file SteppingHelixPropagator.h.
|
protected |
Definition at line 170 of file SteppingHelixPropagator.h.
typedef CLHEP::Hep3Vector SteppingHelixPropagator::Point |
Definition at line 39 of file SteppingHelixPropagator.h.
Definition at line 42 of file SteppingHelixPropagator.h.
|
protected |
Definition at line 172 of file SteppingHelixPropagator.h.
Definition at line 41 of file SteppingHelixPropagator.h.
|
private |
Definition at line 257 of file SteppingHelixPropagator.h.
typedef CLHEP::Hep3Vector SteppingHelixPropagator::Vector |
Definition at line 38 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 52 of file SteppingHelixPropagator.h.
Enumerator | |
---|---|
HEL_AS_F | |
HEL_ALL_F | |
POL_1_F | |
POL_2_F | |
POL_M_F |
Definition at line 64 of file SteppingHelixPropagator.h.
SteppingHelixPropagator::SteppingHelixPropagator | ( | ) |
Constructors.
Definition at line 56 of file SteppingHelixPropagator.cc.
References field_.
Referenced by clone().
SteppingHelixPropagator::SteppingHelixPropagator | ( | const MagneticField * | field, |
PropagationDirection | dir = alongMomentum |
||
) |
Definition at line 58 of file SteppingHelixPropagator.cc.
References applyRadX0Correction_, debug_, defaultStep_, ecShiftNeg_, ecShiftPos_, field_, noErrorPropagation_, noMaterialMode_, returnTangentPlane_, sendLogWarning_, useInTeslaFromMagField_, useIsYokeFlag_, useMagVolumes_, useMatVolumes_, useTuningForL2Speed_, and vbField_.
|
override |
|
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 133 of file SteppingHelixPropagator.h.
References applyRadX0Correction(), and applyRadX0Correction_.
Referenced by applyRadX0Correction(), and AlCaHOCalibProducer::fillHOStore().
|
protected |
(Internals) circular index for array of transients
Definition at line 1773 of file SteppingHelixPropagator.cc.
References MAX_POINTS, and mps_fire::result.
Referenced by propagate(), and setIState().
|
inlineoverridevirtual |
Implements Propagator.
Definition at line 76 of file SteppingHelixPropagator.h.
References SteppingHelixPropagator().
|
protected |
estimate average (in fact smth. close to MPV and median) energy loss per unit path length
Definition at line 1317 of file SteppingHelixPropagator.cc.
References plot_hgcal_utils::dEdx, MillePedeFileConverter_cfg::e, SiPixelPhase1Clusters_cfi::e3, vertexPlots::e4, ecShiftNeg_, ecShiftPos_, CrabHelper::log, noMaterialMode_, mathSSE::sqrt(), pfDeepBoostedJetPreprocessParams_cfi::sv, 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 776 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::bf, SteppingHelixStateInfo::covCurv, debug_, SteppingHelixStateInfo::dEdx, plot_hgcal_utils::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, createJobs::tmp, useInTeslaFromMagField_, useIsYokeFlag_, useMagVolumes_, and vbField_.
Referenced by makeAtomStep().
|
protected |
(Internals) set defaults needed for states used inside propagate methods
Definition at line 38 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 2432 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 657 of file SteppingHelixPropagator.cc.
References alongMomentum, SteppingHelixStateInfo::bf, ALCARECOTkAlJpsiMuMu_cff::charge, SteppingHelixStateInfo::covCurv, debug_, SteppingHelixStateInfo::dEdx, plot_hgcal_utils::dEdx, SteppingHelixStateInfo::dEdXPrime, DeadROC_duringRun::dir, 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, chargedHadronTrackResolutionFilter_cfi::p3, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::path(), SteppingHelixStateInfo::path_, SteppingHelixStateInfo::q, SteppingHelixStateInfo::r3, SteppingHelixStateInfo::radPath(), SteppingHelixStateInfo::radPath_, SteppingHelixStateInfo::radX0, SteppingHelixStateInfo::rzLims, AlCaHLTBitMon_QueryRunRegistry::string, suppress, 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 81 of file SteppingHelixPropagator.h.
References field_.
|
protected |
main stepping function: compute next state vector after a step of length dS
Definition at line 880 of file SteppingHelixPropagator.cc.
References alongMomentum, applyRadX0Correction_, b0, SteppingHelixStateInfo::bf, funct::cos(), l1tPhase1JetProducer_cfi::cosPhi, debug_, SteppingHelixStateInfo::dEdx, plot_hgcal_utils::dEdx, SteppingHelixStateInfo::dEdXPrime, DeadROC_duringRun::dir, 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, CrabHelper::log, LogTrace, SteppingHelixStateInfo::magVol, SteppingHelixStateInfo::matDCovCurv, metname, oppositeToMomentum, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::path(), phi, createTree::pp, submitPVResolutionJobs::q, SteppingHelixStateInfo::q, SteppingHelixStateInfo::r3, SteppingHelixStateInfo::radPath(), SteppingHelixStateInfo::radX0, cuy::rep, setRep(), funct::sin(), l1tPhase1JetProducer_cfi::sinPhi, 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().
|
inline |
Definition at line 50 of file Propagator.h.
|
inlinefinal |
Definition at line 109 of file Propagator.h.
|
inlinefinal |
Definition at line 112 of file Propagator.h.
|
inlinefinal |
Definition at line 117 of file Propagator.h.
void SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const Surface & | sDest, | ||
SteppingHelixStateInfo & | out | ||
) | const |
Propagate to Plane given a starting point.
Definition at line 152 of file SteppingHelixPropagator.cc.
References invalidState_, SteppingHelixStateInfo::isValid(), MillePedeFileConverter_cfg::out, and sendLogWarning_.
Referenced by AlCaHOCalibProducer::fillHOStore(), propagate(), and propagateWithPath().
void SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const Plane & | pDest, | ||
SteppingHelixStateInfo & | out | ||
) | const |
Definition at line 178 of file SteppingHelixPropagator.cc.
References cIndex_(), initStateArraySHPSpecific(), invalidState_, SteppingHelixStateInfo::isValid(), MillePedeFileConverter_cfg::out, SteppingHelixStateInfo::path(), PLANE_DT, GloballyPositioned< T >::position(), propagate(), 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 214 of file SteppingHelixPropagator.cc.
References cIndex_(), initStateArraySHPSpecific(), invalidState_, SteppingHelixStateInfo::isValid(), MillePedeFileConverter_cfg::out, 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 246 of file SteppingHelixPropagator.cc.
References cIndex_(), initStateArraySHPSpecific(), invalidState_, SteppingHelixStateInfo::isValid(), MillePedeFileConverter_cfg::out, 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 269 of file SteppingHelixPropagator.cc.
References cIndex_(), MillePedeFileConverter_cfg::e, initStateArraySHPSpecific(), invalidState_, SteppingHelixStateInfo::isValid(), LINE_PCA_DT, mag(), MillePedeFileConverter_cfg::out, 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 309 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, cIndex_(), debug_, SteppingHelixStateInfo::dEdx, defaultStep_, DeadROC_duringRun::dir, MillePedeFileConverter_cfg::e, SiPixelPhase1Clusters_cfi::e3, geometryDiff::epsilon, 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, suppress, SteppingHelixStateInfo::UNDEFINED, useIsYokeFlag_, useMagVolumes_, useMatVolumes_, useTuningForL2Speed_, SteppingHelixStateInfo::WRONG_VOLUME, Z_DT, and Z_P.
|
final |
The methods propagateWithPath() are identical to the corresponding methods propagate() in what concerns the resulting TrajectoryStateOnSurface, but they provide in addition the exact path length along the trajectory.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.
Definition at line 10 of file Propagator.cc.
std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath |
Propagate to PCA to a line (given by beamSpot position and slope) given a starting point.
Definition at line 53 of file Propagator.cc.
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
|
final |
The following three methods are equivalent to the corresponding methods above, but if the starting state is a TrajectoryStateOnSurface, it's better to use it as such rather than use just the FreeTrajectoryState part. It may help some concrete propagators.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.
Definition at line 26 of file Propagator.cc.
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
|
inline |
Definition at line 91 of file Propagator.h.
std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath |
implemented by Stepping Helix Propagate to PCA to point given a starting point
Definition at line 42 of file Propagator.cc.
std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath |
Propagate to PCA to a line (given by 2 points) given a starting point.
Definition at line 47 of file Propagator.cc.
|
inline |
Definition at line 86 of file Propagator.h.
|
overridevirtual |
Propagate to Plane given a starting point: return final TrajectoryState and path length from start to this point
Implements Propagator.
Definition at line 79 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::getStateOnSurface(), initStateArraySHPSpecific(), SteppingHelixStateInfo::path(), propagate(), and setIState().
Referenced by 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 92 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 105 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 121 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 145 of file SteppingHelixPropagator.cc.
References isoTrack_cff::beamSpot, SiPixelPhase1Clusters_cfi::e3, and propagateWithPath().
|
protected |
(Internals) determine distance and direction from the current position to the plane
Definition at line 1781 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, b0, CONE_DT, funct::cos(), debug_, mps_fire::dest, HGC3DClusterGenMatchSelector_cfi::dR, MillePedeFileConverter_cfg::e, vertexPlots::e4, mps_fire::i, SteppingHelixStateInfo::INACC, LINE_PCA_DT, LogTrace, mag(), metname, SteppingHelixStateInfo::NOT_IMPLEMENTED, SteppingHelixStateInfo::OK, oppositeToMomentum, PATHL_DT, PATHL_P, Geom::pi(), PLANE_DT, POINT_PCA_DT, RADIUS_DT, RADIUS_P, mps_fire::result, funct::sin(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, pfDeepBoostedJetPreprocessParams_cfi::sv, metsig::tau, tauSpinnerTable_cfi::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 2049 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, CONE_DT, debug_, DeadROC_duringRun::dir, MillePedeFileConverter_cfg::e, MagVolume::faces(), mps_fire::i, SteppingHelixStateInfo::INACC, MagVolume::inside(), dqmiolumiharvest::j, LogTrace, metname, SteppingHelixStateInfo::NOT_IMPLEMENTED, SteppingHelixStateInfo::OK, Cone::openingAngle(), PLANE_DT, GloballyPositioned< T >::position(), Cylinder::radius(), RADIUS_DT, RADIUS_P, refToDest(), mps_fire::result, GloballyPositioned< T >::rotation(), Validation_hcalonly_cfi::sign, AlCaHLTBitMon_QueryRunRegistry::string, pfDeepBoostedJetPreprocessParams_cfi::sv, 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 2308 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, CONE_DT, debug_, DeadROC_duringRun::dir, MillePedeFileConverter_cfg::e, SteppingHelixStateInfo::INACC, LogTrace, metname, SteppingHelixStateInfo::NOT_IMPLEMENTED, SteppingHelixStateInfo::OK, Geom::pi(), PLANE_DT, RADIUS_DT, RADIUS_P, refToDest(), mps_fire::result, Validation_hcalonly_cfi::sign, AlCaHLTBitMon_QueryRunRegistry::string, pfDeepBoostedJetPreprocessParams_cfi::sv, funct::tan(), and UNDEFINED_DT.
Referenced by propagate().
|
inline |
Switch debug printouts (to cout) .. very verbose.
Definition at line 121 of file SteppingHelixPropagator.h.
|
inline |
set shifts in Z for endcap pieces (includes EE, HE, ME, YE)
Definition at line 164 of file SteppingHelixPropagator.h.
References ecShiftNeg_, and ecShiftPos_.
|
protected |
(Internals) Init starting point
Definition at line 296 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 124 of file SteppingHelixPropagator.h.
References noMaterialMode_.
Referenced by MuonSimHitProducer::beginRun(), and AlCaHOCalibProducer::fillHOStore().
|
inline |
Force no error propagation.
Definition at line 127 of file SteppingHelixPropagator.h.
References noErrorPropagation_.
|
protected |
Set/compute basis vectors for local coordinates at current step (called by incrementState)
Definition at line 871 of file SteppingHelixPropagator.cc.
References cuy::rep, and metsig::tau.
Referenced by makeAtomStep().
|
inline |
flag to return tangent plane for non-plane input
Definition at line 142 of file SteppingHelixPropagator.h.
References returnTangentPlane_, and heppy_batch::val.
|
inline |
flag to send LogWarning on failures
Definition at line 145 of file SteppingHelixPropagator.h.
References sendLogWarning_, and heppy_batch::val.
|
inline |
force getting field value from MagneticField, not the geometric one
Definition at line 161 of file SteppingHelixPropagator.h.
References useInTeslaFromMagField_, and heppy_batch::val.
|
inline |
(temporary?) flag to identify if the volume is yoke based on MagVolume internals works if useMatVolumes_ is also true
Definition at line 149 of file SteppingHelixPropagator.h.
References useIsYokeFlag_, and heppy_batch::val.
|
inline |
Switch to using MagneticField Volumes .. as in VolumeBasedMagneticField.
Definition at line 136 of file SteppingHelixPropagator.h.
References useMagVolumes_, and heppy_batch::val.
|
inline |
Switch to using Material Volumes .. internally defined for now.
Definition at line 139 of file SteppingHelixPropagator.h.
References useMatVolumes_, and heppy_batch::val.
|
inline |
will use bigger steps ~tuned for good-enough L2/Standalone reco use this in hope of a speed-up
Definition at line 153 of file SteppingHelixPropagator.h.
References useTuningForL2Speed_, and heppy_batch::val.
|
inline |
set VolumBasedField pointer allows to have geometry description in uniformField scenario only important/relevant in the barrel region
Definition at line 158 of file SteppingHelixPropagator.h.
References heppy_batch::val, and vbField_.
|
private |
Definition at line 271 of file SteppingHelixPropagator.h.
Referenced by applyRadX0Correction(), makeAtomStep(), and SteppingHelixPropagator().
|
private |
Definition at line 268 of file SteppingHelixPropagator.h.
Referenced by getNextState(), isYokeVolume(), loadState(), makeAtomStep(), propagate(), refToDest(), refToMagVolume(), refToMatVolume(), setDebug(), and SteppingHelixPropagator().
|
private |
Definition at line 280 of file SteppingHelixPropagator.h.
Referenced by propagate(), and SteppingHelixPropagator().
|
private |
Definition at line 283 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setEndcapShiftsInZPosNeg(), and SteppingHelixPropagator().
|
private |
Definition at line 282 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setEndcapShiftsInZPosNeg(), and SteppingHelixPropagator().
|
private |
Definition at line 265 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), magneticField(), makeAtomStep(), propagate(), and SteppingHelixPropagator().
|
private |
Definition at line 263 of file SteppingHelixPropagator.h.
Referenced by propagate().
|
staticprotected |
Definition at line 171 of file SteppingHelixPropagator.h.
Referenced by cIndex_(), and initStateArraySHPSpecific().
|
staticprivate |
Definition at line 259 of file SteppingHelixPropagator.h.
Referenced by propagate().
|
private |
Definition at line 270 of file SteppingHelixPropagator.h.
Referenced by initStateArraySHPSpecific(), setIState(), setNoErrorPropagation(), and SteppingHelixPropagator().
|
private |
Definition at line 269 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setMaterialMode(), and SteppingHelixPropagator().
|
private |
Definition at line 276 of file SteppingHelixPropagator.h.
Referenced by propagateWithPath(), setReturnTangentPlane(), and SteppingHelixPropagator().
|
private |
Definition at line 277 of file SteppingHelixPropagator.h.
Referenced by propagate(), propagateWithPath(), setSendLogWarning(), and SteppingHelixPropagator().
|
private |
Definition at line 267 of file SteppingHelixPropagator.h.
Referenced by makeAtomStep().
|
private |
Definition at line 275 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), makeAtomStep(), setUseInTeslaFromMagField(), and SteppingHelixPropagator().
|
private |
Definition at line 273 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), getNextState(), loadState(), propagate(), setUseIsYokeFlag(), and SteppingHelixPropagator().
|
private |
Definition at line 272 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), getNextState(), loadState(), makeAtomStep(), propagate(), setUseMagVolumes(), and SteppingHelixPropagator().
|
private |
Definition at line 274 of file SteppingHelixPropagator.h.
Referenced by propagate(), setUseMatVolumes(), and SteppingHelixPropagator().
|
private |
Definition at line 278 of file SteppingHelixPropagator.h.
Referenced by propagate(), setUseTuningForL2Speed(), and SteppingHelixPropagator().
|
private |
Definition at line 266 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), setVBFPointer(), and SteppingHelixPropagator().