#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 |
virtual const MagneticField * | magneticField () const |
virtual TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &ftsStart, const Plane &pDest) const |
Propagate to Plane given a starting point. More... | |
virtual TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &ftsStart, const Cylinder &cDest) const |
Propagate to Cylinder given a starting point (a Cylinder is assumed to be positioned at 0,0,0) More... | |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const |
Propagate to PCA to point given a starting point. More... | |
virtual FreeTrajectoryState | propagate (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 FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const |
Propagate to PCA to a line determined by BeamSpot position and slope given a starting point. More... | |
const SteppingHelixStateInfo & | propagate (const SteppingHelixStateInfo &ftsStart, const Surface &sDest) const |
Propagate to Plane given a starting point. More... | |
const SteppingHelixStateInfo & | propagate (const SteppingHelixStateInfo &ftsStart, const Plane &pDest) const |
const SteppingHelixStateInfo & | propagate (const SteppingHelixStateInfo &ftsStart, const Cylinder &cDest) const |
Propagate to Cylinder given a starting point (a Cylinder is assumed to be positioned at 0,0,0) More... | |
const SteppingHelixStateInfo & | propagate (const SteppingHelixStateInfo &ftsStart, const GlobalPoint &pDest) const |
Propagate to PCA to point given a starting point. More... | |
const SteppingHelixStateInfo & | propagate (const SteppingHelixStateInfo &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 < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const Plane &pDest) const |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const Cylinder &cDest) const |
virtual std::pair < FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const |
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 |
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... | |
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 () | |
Destructor. More... | |
Public Member Functions inherited from Propagator | |
virtual TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &, const Surface &) const |
virtual TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &, const Surface &) const |
virtual TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &, const Plane &) const |
virtual TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &, const Cylinder &) const |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) const |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Surface &) const |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Plane &) const |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Cylinder &) const |
virtual PropagationDirection | propagationDirection () const |
Propagator (PropagationDirection dir=alongMomentum) | |
virtual bool | setMaxDirectionChange (float phiMax) |
virtual void | setPropagationDirection (PropagationDirection dir) const |
virtual | ~Propagator () |
Protected Types | |
typedef SteppingHelixStateInfo::VolumeBounds | MatBounds |
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 |
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 (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) 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... | |
Private Types | |
typedef std::pair < FreeTrajectoryState, double > | FtsPP |
typedef std::pair < TrajectoryStateOnSurface, double > | TsosPP |
Private Attributes | |
bool | applyRadX0Correction_ |
AlgebraicMatrix55 | covCurvRot_ |
AlgebraicMatrix55 | dCCurvTransform_ |
bool | debug_ |
double | defaultStep_ |
double | ecShiftNeg_ |
double | ecShiftPos_ |
const MagneticField * | field_ |
StateInfo | invalidState_ |
bool | noErrorPropagation_ |
bool | noMaterialMode_ |
int | nPoints_ |
bool | returnTangentPlane_ |
bool | sendLogWarning_ |
StateInfo | svBuf_ [MAX_POINTS+1] |
const AlgebraicSymMatrix55 | unit55_ |
bool | useInTeslaFromMagField_ |
bool | useIsYokeFlag_ |
bool | useMagVolumes_ |
bool | useMatVolumes_ |
bool | useTuningForL2Speed_ |
const VolumeBasedMagneticField * | vbField_ |
Static Private Attributes | |
static const int | MAX_POINTS = 7 |
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 44 of file SteppingHelixPropagator.h.
|
private |
Definition at line 268 of file SteppingHelixPropagator.h.
|
protected |
Definition at line 200 of file SteppingHelixPropagator.h.
typedef CLHEP::Hep3Vector SteppingHelixPropagator::Point |
Definition at line 47 of file SteppingHelixPropagator.h.
Definition at line 50 of file SteppingHelixPropagator.h.
Definition at line 49 of file SteppingHelixPropagator.h.
|
private |
Definition at line 267 of file SteppingHelixPropagator.h.
typedef CLHEP::Hep3Vector SteppingHelixPropagator::Vector |
Definition at line 46 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 64 of file SteppingHelixPropagator.h.
Enumerator | |
---|---|
HEL_AS_F | |
HEL_ALL_F | |
POL_1_F | |
POL_2_F | |
POL_M_F |
Definition at line 76 of file SteppingHelixPropagator.h.
SteppingHelixPropagator::SteppingHelixPropagator | ( | ) |
Constructors.
Definition at line 42 of file SteppingHelixPropagator.cc.
References field_.
Referenced by clone().
SteppingHelixPropagator::SteppingHelixPropagator | ( | const MagneticField * | field, |
PropagationDirection | dir = alongMomentum |
||
) |
Definition at line 48 of file SteppingHelixPropagator.cc.
References applyRadX0Correction_, SteppingHelixStateInfo::bf, SteppingHelixStateInfo::bfGradLoc, SteppingHelixStateInfo::covCurv, covCurvRot_, dCCurvTransform_, debug_, defaultStep_, ecShiftNeg_, ecShiftPos_, field_, SteppingHelixStateInfo::hasErrorPropagated_, i, SteppingHelixStateInfo::isComplete, SteppingHelixStateInfo::isValid_, SteppingHelixStateInfo::matDCovCurv, MAX_POINTS, noErrorPropagation_, noMaterialMode_, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::r3, returnTangentPlane_, sendLogWarning_, svBuf_, unit55_, useInTeslaFromMagField_, useIsYokeFlag_, useMagVolumes_, useMatVolumes_, useTuningForL2Speed_, and vbField_.
|
inline |
|
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 164 of file SteppingHelixPropagator.h.
References applyRadX0Correction(), and applyRadX0Correction_.
Referenced by applyRadX0Correction(), TrackDetectorAssociator::init(), HTrackAssociator::init(), SteppingHelixPropagatorESProducer::produce(), and AlCaHOCalibProducer::produce().
|
protected |
(Internals) circular index for array of transients
Definition at line 1682 of file SteppingHelixPropagator.cc.
References MAX_POINTS, and query::result.
Referenced by propagate(), and setIState().
|
inlinevirtual |
Implements Propagator.
Definition at line 88 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 1322 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::bf, alignCSCRings::e, ecShiftNeg_, ecShiftPos_, SteppingHelixStateInfo::isYokeVol, create_public_lumi_plots::log, SteppingHelixStateInfo::magVol, noMaterialMode_, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::r3, mathSSE::sqrt(), useIsYokeFlag_, and useMagVolumes_.
Referenced by getNextState(), loadState(), and makeAtomStep().
|
protected |
(Internals) compute transients for current point (increments step counter). Called by makeAtomStep
Definition at line 780 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::bf, SteppingHelixStateInfo::covCurv, debug_, SteppingHelixStateInfo::dEdx, SteppingHelixStateInfo::dEdXPrime, SteppingHelixStateInfo::dir, alignCSCRings::e, field_, VolumeBasedMagneticField::findVolume(), getDeDx(), SteppingHelixStateInfo::hasErrorPropagated_, MagneticField::inTesla(), MagVolume::inTesla(), SteppingHelixStateInfo::isYokeVol, isYokeVolume(), VolumeBasedMagneticField::isZSymmetric(), LogTrace, SteppingHelixStateInfo::magVol, SteppingHelixStateInfo::matDCovCurv, metname, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::path(), SteppingHelixStateInfo::path_, SteppingHelixStateInfo::q, SteppingHelixStateInfo::r3, SteppingHelixStateInfo::radPath(), SteppingHelixStateInfo::radPath_, SteppingHelixStateInfo::radX0, SteppingHelixStateInfo::rzLims, metsig::tau, tmp, useInTeslaFromMagField_, useIsYokeFlag_, useMagVolumes_, and vbField_.
Referenced by makeAtomStep().
|
protected |
check if it's a yoke/iron based on this MagVol internals
Definition at line 2318 of file SteppingHelixPropagator.cc.
References debug_, MagVolume::isIron(), LogTrace, metname, GloballyPositioned< T >::position(), and query::result.
Referenced by getNextState(), and loadState().
|
protected |
(Internals) compute transient values for initial point (resets step counter). Called by setIState
Definition at line 651 of file SteppingHelixPropagator.cc.
References alongMomentum, SteppingHelixStateInfo::bf, DeDxDiscriminatorTools::charge(), SteppingHelixStateInfo::covCurv, debug_, SteppingHelixStateInfo::dEdx, SteppingHelixStateInfo::dEdXPrime, SteppingHelixStateInfo::dir, alignCSCRings::e, field_, MagVolume::fieldInTesla(), VolumeBasedMagneticField::findVolume(), getDeDx(), MagneticField::inTesla(), MagVolume::inTesla(), SteppingHelixStateInfo::isComplete, SteppingHelixStateInfo::isValid_, SteppingHelixStateInfo::isYokeVol, isYokeVolume(), VolumeBasedMagneticField::isZSymmetric(), LogTrace, PV3DBase< T, PVType, FrameType >::mag2(), SteppingHelixStateInfo::magVol, metname, p3, SteppingHelixStateInfo::p3, SteppingHelixStateInfo::path(), SteppingHelixStateInfo::path_, SteppingHelixStateInfo::q, SteppingHelixStateInfo::r3, SteppingHelixStateInfo::radPath(), SteppingHelixStateInfo::radPath_, SteppingHelixStateInfo::radX0, SteppingHelixStateInfo::rzLims, 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().
|
inlinevirtual |
Implements Propagator.
Definition at line 93 of file SteppingHelixPropagator.h.
References field_.
|
protected |
main stepping function: compute next state vector after a step of length dS
Definition at line 889 of file SteppingHelixPropagator.cc.
References alongMomentum, applyRadX0Correction_, SteppingHelixStateInfo::bf, funct::cos(), prof2calltree::cost, dCCurvTransform_, debug_, SteppingHelixStateInfo::dEdx, SteppingHelixStateInfo::dEdXPrime, alignCSCRings::e, field_, getDeDx(), getNextState(), SteppingHelixStateInfo::hasErrorPropagated_, HEL_ALL_F, HEL_AS_F, MagneticField::inTesla(), MagVolume::inTesla(), SteppingHelixStateInfo::isYokeVol, VolumeBasedMagneticField::isZSymmetric(), create_public_lumi_plots::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, setRep(), funct::sin(), mathSSE::sqrt(), metsig::tau, unit55_, useInTeslaFromMagField_, useMagVolumes_, vbField_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by propagate().
|
virtual |
Propagate to Plane given a starting point.
Implements Propagator.
Definition at line 87 of file SteppingHelixPropagator.cc.
References propagateWithPath().
Referenced by AlCaHOCalibProducer::produce(), propagate(), and propagateWithPath().
|
virtual |
Propagate to Cylinder given a starting point (a Cylinder is assumed to be positioned at 0,0,0)
Implements Propagator.
Definition at line 92 of file SteppingHelixPropagator.cc.
References propagateWithPath().
|
virtual |
Propagate to PCA to point given a starting point.
Definition at line 98 of file SteppingHelixPropagator.cc.
References propagateWithPath().
|
virtual |
Propagate to PCA to a line (given by 2 points) given a starting point.
Definition at line 104 of file SteppingHelixPropagator.cc.
References propagateWithPath().
|
virtual |
Propagate to PCA to a line determined by BeamSpot position and slope given a starting point.
Reimplemented from Propagator.
Definition at line 111 of file SteppingHelixPropagator.cc.
References propagateWithPath().
const SteppingHelixStateInfo & SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const Surface & | sDest | ||
) | const |
Propagate to Plane given a starting point.
Definition at line 187 of file SteppingHelixPropagator.cc.
References invalidState_, SteppingHelixStateInfo::isValid(), propagate(), and sendLogWarning_.
const SteppingHelixStateInfo & SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const Plane & | pDest | ||
) | const |
Definition at line 209 of file SteppingHelixPropagator.cc.
References cIndex_(), SteppingHelixStateInfo::dir, invalidState_, SteppingHelixStateInfo::isValid(), nPoints_, SteppingHelixStateInfo::path(), PLANE_DT, GloballyPositioned< T >::position(), propagate(), GloballyPositioned< T >::rotation(), sendLogWarning_, setIState(), svBuf_, 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().
const SteppingHelixStateInfo & SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const Cylinder & | cDest | ||
) | 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_(), SteppingHelixStateInfo::dir, invalidState_, SteppingHelixStateInfo::isValid(), nPoints_, SteppingHelixStateInfo::path(), propagate(), Cylinder::radius(), RADIUS_DT, RADIUS_P, sendLogWarning_, setIState(), and svBuf_.
const SteppingHelixStateInfo & SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const GlobalPoint & | pDest | ||
) | const |
Propagate to PCA to point given a starting point.
Definition at line 267 of file SteppingHelixPropagator.cc.
References cIndex_(), invalidState_, SteppingHelixStateInfo::isValid(), nPoints_, POINT_PCA_DT, propagate(), sendLogWarning_, setIState(), svBuf_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
const SteppingHelixStateInfo & SteppingHelixPropagator::propagate | ( | const SteppingHelixStateInfo & | ftsStart, |
const GlobalPoint & | pDest1, | ||
const GlobalPoint & | pDest2 | ||
) | const |
Propagate to PCA to a line (given by 2 points) given a starting point.
Definition at line 288 of file SteppingHelixPropagator.cc.
References cIndex_(), alignCSCRings::e, invalidState_, SteppingHelixStateInfo::isValid(), LINE_PCA_DT, mag(), nPoints_, propagate(), sendLogWarning_, setIState(), svBuf_, 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 327 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, cIndex_(), debug_, SteppingHelixStateInfo::dEdx, defaultStep_, dir, alignCSCRings::e, SteppingHelixStateInfo::FAULT, SteppingHelixStateInfo::field, field_, HEL_AS_F, SteppingHelixStateInfo::INACC, SteppingHelixStateInfo::isValid_, LINE_PCA_DT, LogTrace, makeAtomStep(), MAX_STEPS, metname, nPoints_, 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(), query::result, SteppingHelixStateInfo::ResultName, sendLogWarning_, SteppingHelixStateInfo::status_, svBuf_, SteppingHelixStateInfo::UNDEFINED, useIsYokeFlag_, useMagVolumes_, useMatVolumes_, useTuningForL2Speed_, SteppingHelixStateInfo::WRONG_VOLUME, Z_DT, and Z_P.
|
virtual |
Propagate to Plane given a starting point: return final TrajectoryState and path length from start to this point
Implements Propagator.
Definition at line 119 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::getStateOnSurface(), SteppingHelixStateInfo::path(), propagate(), setIState(), and svBuf_.
Referenced by PropagateToCal::propagate(), propagate(), and propagateWithPath().
|
virtual |
Propagate to Cylinder given a starting point: return final TrajectoryState and path length from start to this point
Implements Propagator.
Definition at line 130 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::getStateOnSurface(), SteppingHelixStateInfo::path(), propagate(), returnTangentPlane_, setIState(), and svBuf_.
|
virtual |
Propagate to PCA to point given a starting point.
Definition at line 142 of file SteppingHelixPropagator.cc.
References SteppingHelixStateInfo::getFreeState(), SteppingHelixStateInfo::path(), propagate(), setIState(), and svBuf_.
|
virtual |
Propagate to PCA to a line (given by 2 points) given a starting point.
Reimplemented from Propagator.
Definition at line 155 of file SteppingHelixPropagator.cc.
References alignCSCRings::e, SteppingHelixStateInfo::getFreeState(), mag(), SteppingHelixStateInfo::path(), propagate(), sendLogWarning_, setIState(), and svBuf_.
|
virtual |
Propagate to PCA to a line (given by beamSpot position and slope) given a starting point.
Definition at line 177 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 1691 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, SteppingHelixStateInfo::bf, CONE_DT, funct::cos(), debug_, PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, alignCSCRings::e, 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, query::result, funct::sin(), mathSSE::sqrt(), 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 1960 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, CONE_DT, debug_, alignCSCRings::e, MagVolume::faces(), i, SteppingHelixStateInfo::INACC, MagVolume::inside(), VolumeBasedMagneticField::isZSymmetric(), j, LogTrace, SteppingHelixStateInfo::magVol, metname, DDSolidShapesName::name(), SteppingHelixStateInfo::NOT_IMPLEMENTED, SteppingHelixStateInfo::OK, Cone::openingAngle(), SteppingHelixStateInfo::p3, Geom::pi(), PLANE_DT, GloballyPositioned< T >::position(), SteppingHelixStateInfo::r3, Cylinder::radius(), RADIUS_DT, RADIUS_P, refToDest(), query::result, GloballyPositioned< T >::rotation(), MagVolume::shapeType(), SteppingHelixStateInfo::UNDEFINED, UNDEFINED_DT, vbField_, 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 2204 of file SteppingHelixPropagator.cc.
References alongMomentum, anyDirection, CONE_DT, debug_, alignCSCRings::e, SteppingHelixStateInfo::INACC, LogTrace, metname, SteppingHelixStateInfo::NOT_IMPLEMENTED, SteppingHelixStateInfo::OK, SteppingHelixStateInfo::p3, Geom::pi(), PLANE_DT, SteppingHelixStateInfo::r3, RADIUS_DT, RADIUS_P, refToDest(), query::result, SteppingHelixStateInfo::VolumeBounds::rMax, SteppingHelixStateInfo::VolumeBounds::rMin, SteppingHelixStateInfo::rzLims, 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 152 of file SteppingHelixPropagator.h.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
set shifts in Z for endcap pieces (includes EE, HE, ME, YE)
Definition at line 195 of file SteppingHelixPropagator.h.
References ecShiftNeg_, and ecShiftPos_.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
protected |
(Internals) Init starting point
Definition at line 312 of file SteppingHelixPropagator.cc.
References cIndex_(), SteppingHelixStateInfo::covCurv, SteppingHelixStateInfo::hasErrorPropagated_, SteppingHelixStateInfo::isComplete, loadState(), noErrorPropagation_, nPoints_, SteppingHelixStateInfo::p3, Propagator::propagationDirection(), SteppingHelixStateInfo::q, SteppingHelixStateInfo::r3, and svBuf_.
Referenced by propagate(), and propagateWithPath().
|
inline |
Switch for material effects mode: no material effects if true.
Definition at line 155 of file SteppingHelixPropagator.h.
References noMaterialMode_.
Referenced by MuonSimHitProducer::beginRun(), TrackDetectorAssociator::init(), HTrackAssociator::init(), SteppingHelixPropagatorESProducer::produce(), AlCaHOCalibProducer::produce(), and PropagateToCal::propagate().
|
inline |
Force no error propagation.
Definition at line 158 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 881 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 173 of file SteppingHelixPropagator.h.
References returnTangentPlane_.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
flag to send LogWarning on failures
Definition at line 176 of file SteppingHelixPropagator.h.
References sendLogWarning_.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
force getting field value from MagneticField, not the geometric one
Definition at line 192 of file SteppingHelixPropagator.h.
References useInTeslaFromMagField_.
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 180 of file SteppingHelixPropagator.h.
References useIsYokeFlag_.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
Switch to using MagneticField Volumes .. as in VolumeBasedMagneticField.
Definition at line 167 of file SteppingHelixPropagator.h.
References useMagVolumes_.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
inline |
Switch to using Material Volumes .. internally defined for now.
Definition at line 170 of file SteppingHelixPropagator.h.
References useMatVolumes_.
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 184 of file SteppingHelixPropagator.h.
References useTuningForL2Speed_.
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 189 of file SteppingHelixPropagator.h.
References vbField_.
Referenced by SteppingHelixPropagatorESProducer::produce().
|
private |
Definition at line 285 of file SteppingHelixPropagator.h.
Referenced by applyRadX0Correction(), makeAtomStep(), and SteppingHelixPropagator().
|
mutableprivate |
Definition at line 276 of file SteppingHelixPropagator.h.
Referenced by SteppingHelixPropagator().
|
mutableprivate |
Definition at line 277 of file SteppingHelixPropagator.h.
Referenced by makeAtomStep(), and SteppingHelixPropagator().
|
private |
Definition at line 282 of file SteppingHelixPropagator.h.
Referenced by getNextState(), isYokeVolume(), loadState(), makeAtomStep(), propagate(), refToDest(), refToMagVolume(), refToMatVolume(), setDebug(), and SteppingHelixPropagator().
|
private |
Definition at line 294 of file SteppingHelixPropagator.h.
Referenced by propagate(), and SteppingHelixPropagator().
|
private |
Definition at line 297 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setEndcapShiftsInZPosNeg(), and SteppingHelixPropagator().
|
private |
Definition at line 296 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setEndcapShiftsInZPosNeg(), and SteppingHelixPropagator().
|
private |
Definition at line 279 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), magneticField(), makeAtomStep(), propagate(), and SteppingHelixPropagator().
|
private |
Definition at line 274 of file SteppingHelixPropagator.h.
Referenced by propagate().
|
staticprivate |
Definition at line 270 of file SteppingHelixPropagator.h.
Referenced by cIndex_(), and SteppingHelixPropagator().
|
staticprivate |
Definition at line 269 of file SteppingHelixPropagator.h.
Referenced by propagate().
|
private |
Definition at line 284 of file SteppingHelixPropagator.h.
Referenced by setIState(), setNoErrorPropagation(), and SteppingHelixPropagator().
|
private |
Definition at line 283 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), setMaterialMode(), and SteppingHelixPropagator().
|
mutableprivate |
Definition at line 271 of file SteppingHelixPropagator.h.
Referenced by propagate(), and setIState().
|
private |
Definition at line 290 of file SteppingHelixPropagator.h.
Referenced by propagateWithPath(), setReturnTangentPlane(), and SteppingHelixPropagator().
|
private |
Definition at line 291 of file SteppingHelixPropagator.h.
Referenced by propagate(), propagateWithPath(), setSendLogWarning(), and SteppingHelixPropagator().
|
mutableprivate |
Definition at line 272 of file SteppingHelixPropagator.h.
Referenced by propagate(), propagateWithPath(), setIState(), and SteppingHelixPropagator().
|
private |
Definition at line 281 of file SteppingHelixPropagator.h.
Referenced by makeAtomStep(), and SteppingHelixPropagator().
|
private |
Definition at line 289 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), makeAtomStep(), setUseInTeslaFromMagField(), and SteppingHelixPropagator().
|
private |
Definition at line 287 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), getNextState(), loadState(), propagate(), setUseIsYokeFlag(), and SteppingHelixPropagator().
|
private |
Definition at line 286 of file SteppingHelixPropagator.h.
Referenced by getDeDx(), getNextState(), loadState(), makeAtomStep(), propagate(), setUseMagVolumes(), and SteppingHelixPropagator().
|
private |
Definition at line 288 of file SteppingHelixPropagator.h.
Referenced by propagate(), setUseMatVolumes(), and SteppingHelixPropagator().
|
private |
Definition at line 292 of file SteppingHelixPropagator.h.
Referenced by propagate(), setUseTuningForL2Speed(), and SteppingHelixPropagator().
|
private |
Definition at line 280 of file SteppingHelixPropagator.h.
Referenced by getNextState(), loadState(), makeAtomStep(), refToMagVolume(), setVBFPointer(), and SteppingHelixPropagator().