#include <PropagatorWithMaterial.h>
Public Types | |
enum | MaterialLocation { atSource, atDestination, fromDirection } |
Public Member Functions | |
PropagatorWithMaterial * | clone () const override |
const Propagator & | geometricalPropagator () const |
Access to the geometrical propagator. More... | |
const MagneticField * | magneticField () const override |
const MaterialEffectsUpdator & | materialEffectsUpdator () const |
Access to the MaterialEffectsUpdator. More... | |
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< 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... | |
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< 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< 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< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const=0 |
PropagatorWithMaterial (PropagationDirection dir, const float mass, const MagneticField *mf=nullptr, const float maxDPhi=1.6, bool useRungeKutta=false, float ptMin=-1., bool useOldGeoPropLogic=true) | |
void | setMaterialLocation (const MaterialLocation location) |
bool | setMaxDirectionChange (float phiMax) override |
Limit on change in azimuthal angle. More... | |
void | setPropagationDirection (PropagationDirection dir) override |
Propagation direction. More... | |
~PropagatorWithMaterial () override | |
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< 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... | |
virtual PropagationDirection | propagationDirection () const final |
Propagator (PropagationDirection dir=alongMomentum) | |
virtual | ~Propagator () |
Private Types | |
typedef std::pair< TrajectoryStateOnSurface, double > | TsosWP |
Private Member Functions | |
bool | materialAtSource () const |
Inclusion of material at the source? More... | |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &plane) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Plane &plane) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Cylinder &cylinder) const override |
Propagation including material effects.
Propagates using a specific for the geometrical part and a MaterialEffectsUpdator to include multiple scattering and energy loss. By default material effects are included at the source in the case of forward propagation and at the destination for backward propagation. Material effects at the source can only be included when propagating from a TrajectoryStateOnSurface. Ported from ORCA.
Definition at line 25 of file PropagatorWithMaterial.h.
|
private |
Definition at line 100 of file PropagatorWithMaterial.h.
Enumerator | |
---|---|
atSource | |
atDestination | |
fromDirection |
Definition at line 69 of file PropagatorWithMaterial.h.
PropagatorWithMaterial::PropagatorWithMaterial | ( | PropagationDirection | dir, |
const float | mass, | ||
const MagneticField * | mf = nullptr , |
||
const float | maxDPhi = 1.6 , |
||
bool | useRungeKutta = false , |
||
float | ptMin = -1. , |
||
bool | useOldGeoPropLogic = true |
||
) |
Constructor with PropagationDirection and mass hypothesis. Uses AnalyticalPropagator and CombinedMaterialEffectsUpdator with explicit mass hypothesis.MaxDPhi is a cut on the max change in phi during state propagation. For propagation of very low pt tracks (e.g. loopers), this cut can be loosened. If ptMin > 0, then multiple scattering calculations will take into account the uncertainty in the reconstructed track momentum, (by default neglected), but assuming that the track Pt will never fall below ptMin.
Definition at line 12 of file PropagatorWithMaterial.cc.
Referenced by clone().
|
override |
Definition at line 10 of file PropagatorWithMaterial.cc.
|
inlineoverridevirtual |
Implements Propagator.
Definition at line 86 of file PropagatorWithMaterial.h.
References PropagatorWithMaterial().
|
inline |
Access to the geometrical propagator.
Definition at line 80 of file PropagatorWithMaterial.h.
References theGeometricalPropagator.
|
inlineoverridevirtual |
Implements Propagator.
Definition at line 84 of file PropagatorWithMaterial.h.
References field.
Referenced by CRackTrajectoryBuilder::innerState().
|
private |
Inclusion of material at the source?
Definition at line 115 of file PropagatorWithMaterial.cc.
References alongMomentum, anyDirection, atDestination, atSource, Exception, fromDirection, Propagator::propagationDirection(), theMaterialLocation, and UNLIKELY.
Referenced by propagateWithPath().
|
inline |
Access to the MaterialEffectsUpdator.
Definition at line 82 of file PropagatorWithMaterial.h.
References theMEUpdator.
|
inlinefinal |
Definition at line 117 of file Propagator.h.
|
inline |
Definition at line 50 of file Propagator.h.
Referenced by CosmicTrajectoryBuilder::AddHit(), ElectronSeedAnalyzer::analyze(), ConversionProducer::checkPhi(), ConversionTrackEcalImpactPoint::find(), ConversionProducer::getTrackImpactPosition(), ConvBremSeedProducer::produce(), TkConvValidator::recalculateMomentumAtFittedVertex(), CRackTrajectoryBuilder::run(), SeedGeneratorForCRack::seeds(), SeedGeneratorForCosmics::seeds(), and CRackTrajectoryBuilder::SortHits().
|
inlinefinal |
Definition at line 109 of file Propagator.h.
|
inlinefinal |
Definition at line 112 of file Propagator.h.
|
inline |
Definition at line 91 of file Propagator.h.
|
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.
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.
|
inline |
Definition at line 86 of file Propagator.h.
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.
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.
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
|
overrideprivatevirtual |
Reimplemented from Propagator.
Definition at line 52 of file PropagatorWithMaterial.cc.
References materialAtSource(), Propagator::propagateWithPath(), Propagator::propagationDirection(), theGeometricalPropagator, theMEUpdator, UNLIKELY, and MaterialEffectsUpdator::updateStateInPlace().
|
overrideprivatevirtual |
Implements Propagator.
Definition at line 28 of file PropagatorWithMaterial.cc.
References materialAtSource(), Propagator::propagateWithPath(), Propagator::propagationDirection(), theGeometricalPropagator, theMEUpdator, UNLIKELY, and MaterialEffectsUpdator::updateStateInPlace().
|
overrideprivatevirtual |
Reimplemented from Propagator.
Definition at line 81 of file PropagatorWithMaterial.cc.
References materialAtSource(), Propagator::propagateWithPath(), Propagator::propagationDirection(), theGeometricalPropagator, theMEUpdator, UNLIKELY, and MaterialEffectsUpdator::updateStateInPlace().
|
overrideprivatevirtual |
Implements Propagator.
Definition at line 40 of file PropagatorWithMaterial.cc.
References materialAtSource(), Propagator::propagateWithPath(), Propagator::propagationDirection(), theGeometricalPropagator, theMEUpdator, UNLIKELY, and MaterialEffectsUpdator::updateStateInPlace().
|
inline |
Choice of location for including material effects: fromDirection is equivalent to atSource for propagation alongMomentum and to atDestination for propagation oppositeToMomentum. Inclusion of material effects at the source (either explicitely or implicitely) is not possible if propagating with anyDirection and will effectively disable material effects when propagating from a FreeTrajectoryState.
Definition at line 78 of file PropagatorWithMaterial.h.
References EcalCondDBWriter_cfi::location, and theMaterialLocation.
|
inlineoverridevirtual |
Limit on change in azimuthal angle.
Reimplemented from Propagator.
Definition at line 65 of file PropagatorWithMaterial.h.
References AlignmentTrackSelector_cfi::phiMax, Propagator::setMaxDirectionChange(), and theGeometricalPropagator.
|
overridevirtual |
Propagation direction.
Reimplemented from Propagator.
Definition at line 110 of file PropagatorWithMaterial.cc.
References DeadROC_duringRun::dir, Propagator::setPropagationDirection(), and theGeometricalPropagator.
|
private |
Definition at line 103 of file PropagatorWithMaterial.h.
Referenced by magneticField().
|
private |
Definition at line 95 of file PropagatorWithMaterial.h.
|
private |
Definition at line 96 of file PropagatorWithMaterial.h.
Referenced by geometricalPropagator(), propagateWithPath(), setMaxDirectionChange(), and setPropagationDirection().
|
private |
Definition at line 102 of file PropagatorWithMaterial.h.
Referenced by materialAtSource(), and setMaterialLocation().
|
private |
Definition at line 99 of file PropagatorWithMaterial.h.
Referenced by materialEffectsUpdator(), and propagateWithPath().
|
private |
Definition at line 104 of file PropagatorWithMaterial.h.