#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... | |
PropagatorWithMaterial (PropagationDirection dir, const float mass, const MagneticField *mf=0, 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 = 0 , |
||
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 dso_internal, materialAtSource(), and PropagatorWithMaterial().
|
inline |
Access to the geometrical propagator.
Definition at line 80 of file PropagatorWithMaterial.h.
References theGeometricalPropagator.
|
inlineoverridevirtual |
|
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 clone(), and propagateWithPath().
|
inline |
Access to the MaterialEffectsUpdator.
Definition at line 82 of file PropagatorWithMaterial.h.
References theMEUpdator.
|
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 Propagator::setMaxDirectionChange(), setPropagationDirection(), and theGeometricalPropagator.
|
overridevirtual |
Propagation direction.
Reimplemented from Propagator.
Definition at line 110 of file PropagatorWithMaterial.cc.
References Propagator::setPropagationDirection(), and theGeometricalPropagator.
Referenced by setMaxDirectionChange().
|
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.