#include <GsfPropagatorWithMaterial.h>
Public Types | |
enum | MaterialLocation { atSource, atDestination, fromDirection } |
Public Member Functions | |
GsfPropagatorWithMaterial * | clone () const override |
const FullConvolutionWithMaterial & | convolutionWithMaterial () const |
Access to the convolutor and thus to the material effects. More... | |
const Propagator & | geometricalPropagator () const |
Access to the geometrical propagator. More... | |
GsfPropagatorWithMaterial (const GsfPropagatorAdapter &Propagator, const FullConvolutionWithMaterial &Convolutor) | |
GsfPropagatorWithMaterial (const Propagator &Propagator, const GsfMaterialEffectsUpdator &MEUpdator) | |
const MagneticField * | magneticField () const override |
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 |
template<typename STA , typename SUR > | |
TrajectoryStateOnSurface | propagate (STA const &state, SUR const &surface) const |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const override |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const=0 |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const override |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const=0 |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) 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... | |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Cylinder &) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Plane &) const override |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &sur) const |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
void | setMaterialLocation (const MaterialLocation location) |
bool | setMaxDirectionChange (float phiMax) override |
void | setPropagationDirection (PropagationDirection dir) override |
~GsfPropagatorWithMaterial () override | |
Public Member Functions inherited from Propagator | |
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 |
template<typename STA , typename SUR > | |
TrajectoryStateOnSurface | propagate (STA const &state, SUR const &surface) const |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) 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 std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
virtual PropagationDirection | propagationDirection () const final |
Propagator (PropagationDirection dir=alongMomentum) | |
virtual | ~Propagator () |
Private Types | |
typedef std::vector< TrajectoryStateOnSurface > | MultiTSOS |
typedef std::pair< TrajectoryStateOnSurface, double > | TsosWP |
Private Member Functions | |
TrajectoryStateOnSurface | convoluteStateWithMaterial (const TrajectoryStateOnSurface, const PropagationDirection) const |
Convolution of state with material effects. More... | |
std::pair< TrajectoryStateOnSurface, double > | convoluteWithMaterial (const std::pair< TrajectoryStateOnSurface, double > &) const |
Convolution of state+path with material effects. More... | |
bool | materialAtSource () const |
Inclusion of material at the source? More... | |
Private Attributes | |
DeepCopyPointerByClone< FullConvolutionWithMaterial > | theConvolutor |
DeepCopyPointerByClone< GsfPropagatorAdapter > | theGeometricalPropagator |
MaterialLocation | theMaterialLocation |
Propagation including material effects on destination surface for multiple trajectory states. Propagates components independently using a specific propagator for the geometrical part and a GsfMaterialEffectsUpdator to include multiple scattering and energy loss at the destination. The number of components will increase according to the result of the GsfMaterialEffectsUpdator.
Definition at line 23 of file GsfPropagatorWithMaterial.h.
|
private |
Definition at line 105 of file GsfPropagatorWithMaterial.h.
|
private |
Definition at line 104 of file GsfPropagatorWithMaterial.h.
Enumerator | |
---|---|
atSource | |
atDestination | |
fromDirection |
Definition at line 64 of file GsfPropagatorWithMaterial.h.
GsfPropagatorWithMaterial::GsfPropagatorWithMaterial | ( | const Propagator & | Propagator, |
const GsfMaterialEffectsUpdator & | MEUpdator | ||
) |
Constructor with explicit single state propagator and material effects objects.
Definition at line 11 of file GsfPropagatorWithMaterial.cc.
Referenced by clone().
GsfPropagatorWithMaterial::GsfPropagatorWithMaterial | ( | const GsfPropagatorAdapter & | Propagator, |
const FullConvolutionWithMaterial & | Convolutor | ||
) |
Constructor with explicit multi state propagator and convolutor.
Definition at line 18 of file GsfPropagatorWithMaterial.cc.
|
inlineoverride |
Definition at line 34 of file GsfPropagatorWithMaterial.h.
|
inlineoverridevirtual |
Implements Propagator.
Definition at line 79 of file GsfPropagatorWithMaterial.h.
References GsfPropagatorWithMaterial(), theConvolutor, and theGeometricalPropagator.
Referenced by GsfTrajectorySmoother::GsfTrajectorySmoother().
|
private |
Convolution of state with material effects.
Definition at line 115 of file GsfPropagatorWithMaterial.cc.
References theConvolutor.
Referenced by propagateWithPath().
|
private |
Convolution of state+path with material effects.
Definition at line 106 of file GsfPropagatorWithMaterial.cc.
References Propagator::propagationDirection(), and theConvolutor.
Referenced by propagateWithPath().
|
inline |
Access to the convolutor and thus to the material effects.
Definition at line 77 of file GsfPropagatorWithMaterial.h.
References theConvolutor.
Referenced by GsfTrajectorySmoother::GsfTrajectorySmoother().
|
inline |
Access to the geometrical propagator.
Definition at line 75 of file GsfPropagatorWithMaterial.h.
References theGeometricalPropagator.
Referenced by GsfTrajectorySmoother::GsfTrajectorySmoother().
|
inlineoverridevirtual |
Implements Propagator.
Definition at line 83 of file GsfPropagatorWithMaterial.h.
References GsfPropagatorAdapter::magneticField(), and theGeometricalPropagator.
|
private |
Inclusion of material at the source?
Definition at line 123 of file GsfPropagatorWithMaterial.cc.
References alongMomentum, anyDirection, atDestination, atSource, Exception, fromDirection, Propagator::propagationDirection(), and theMaterialLocation.
Referenced by propagateWithPath().
|
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.
|
inline |
Definition at line 50 of file Propagator.h.
|
overridevirtual |
Propagation to cylinder with path length calculation. Use from FTS implies single state (better use PropagatorWithMaterial)!
Implements Propagator.
Definition at line 86 of file GsfPropagatorWithMaterial.cc.
References convoluteWithMaterial(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), and theGeometricalPropagator.
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
|
overridevirtual |
Propagation to plane with path length calculation. Use from FTS implies single state (better use PropagatorWithMaterial)!
Implements Propagator.
Definition at line 71 of file GsfPropagatorWithMaterial.cc.
References convoluteWithMaterial(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), and theGeometricalPropagator.
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
|
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 |
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.
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.
|
overridevirtual |
Propagation to cylinder with path length calculation.
Reimplemented from Propagator.
Definition at line 48 of file GsfPropagatorWithMaterial.cc.
References convoluteStateWithMaterial(), convoluteWithMaterial(), TrajectoryStateOnSurface::isValid(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), Propagator::propagationDirection(), and theGeometricalPropagator.
|
overridevirtual |
Propagation to plane with path length calculation.
Reimplemented from Propagator.
Definition at line 25 of file GsfPropagatorWithMaterial.cc.
References convoluteStateWithMaterial(), convoluteWithMaterial(), TrajectoryStateOnSurface::isValid(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), Propagator::propagationDirection(), and theGeometricalPropagator.
|
inline |
Definition at line 91 of file Propagator.h.
|
inline |
Definition at line 86 of file Propagator.h.
|
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 |
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 73 of file GsfPropagatorWithMaterial.h.
References EcalCondDBWriter_cfi::location, and theMaterialLocation.
|
inlineoverridevirtual |
Set the maximal change of direction (integrated along the path) for any single propagation. If reaching of the destination surface requires change of direction that exceeds this value the Propagator returns an invalid state. For example, a track may reach a forward plane after many spirals, which may be undesirable for a track reconstructor. Setting this value to pi will force the propagation to fail. The default value is "no limit". The method returnd true if the concrete propagator respects the limit, false otherwise.
Reimplemented from Propagator.
Definition at line 60 of file GsfPropagatorWithMaterial.h.
References AlignmentTrackSelector_cfi::phiMax, GsfPropagatorAdapter::setMaxDirectionChange(), and theGeometricalPropagator.
|
overridevirtual |
The propagation direction can now be set for every propagator. There is no more distinction between unidirectional and bidirectional at class level. The value "anyDiriction" for PropagationDirection provides the functionality of the ex-BidirectionalPropagator. The values "alongMomentum" and "oppositeToMomentum" provide the functionality of the ex-UnidirectionalPropagator.
Reimplemented from Propagator.
Definition at line 101 of file GsfPropagatorWithMaterial.cc.
References DeadROC_duringRun::dir, GsfPropagatorAdapter::setPropagationDirection(), Propagator::setPropagationDirection(), and theGeometricalPropagator.
|
private |
Definition at line 100 of file GsfPropagatorWithMaterial.h.
Referenced by clone(), convoluteStateWithMaterial(), convoluteWithMaterial(), and convolutionWithMaterial().
|
private |
Definition at line 98 of file GsfPropagatorWithMaterial.h.
Referenced by clone(), geometricalPropagator(), magneticField(), propagateWithPath(), setMaxDirectionChange(), and setPropagationDirection().
|
private |
Definition at line 102 of file GsfPropagatorWithMaterial.h.
Referenced by materialAtSource(), and setMaterialLocation().