#include <GsfPropagatorWithMaterial.h>
Public Types | |
enum | MaterialLocation { atSource, atDestination, fromDirection } |
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 185 of file GsfPropagatorWithMaterial.h.
|
private |
Definition at line 184 of file GsfPropagatorWithMaterial.h.
Enumerator | |
---|---|
atSource | |
atDestination | |
fromDirection |
Definition at line 136 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 21 of file GsfPropagatorWithMaterial.cc.
|
inline |
Definition at line 37 of file GsfPropagatorWithMaterial.h.
|
inlinevirtual |
Implements Propagator.
Definition at line 157 of file GsfPropagatorWithMaterial.h.
References GsfPropagatorWithMaterial(), theConvolutor, and theGeometricalPropagator.
|
private |
Convolution of state with material effects.
Definition at line 148 of file GsfPropagatorWithMaterial.cc.
References theConvolutor.
Referenced by propagateWithPath().
|
private |
Convolution of state+path with material effects.
Definition at line 136 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 153 of file GsfPropagatorWithMaterial.h.
References theConvolutor.
|
inline |
Access to the geometrical propagator.
Definition at line 149 of file GsfPropagatorWithMaterial.h.
References theGeometricalPropagator.
|
inlinevirtual |
Implements Propagator.
Definition at line 162 of file GsfPropagatorWithMaterial.h.
References GsfPropagatorAdapter::magneticField(), and theGeometricalPropagator.
|
private |
Inclusion of material at the source?
Definition at line 158 of file GsfPropagatorWithMaterial.cc.
References alongMomentum, anyDirection, atDestination, atSource, edm::hlt::Exception, fromDirection, Propagator::propagationDirection(), and theMaterialLocation.
Referenced by propagateWithPath().
|
inlinevirtual |
Propagation to generic surface: specialisation done in base class.
Reimplemented from Propagator.
Definition at line 41 of file GsfPropagatorWithMaterial.h.
References Propagator::propagate().
|
inlinevirtual |
Propagation to plane: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general).
Reimplemented from Propagator.
Definition at line 49 of file GsfPropagatorWithMaterial.h.
References propagateWithPath().
|
inlinevirtual |
Propagation to cylinder: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general).
Reimplemented from Propagator.
Definition at line 57 of file GsfPropagatorWithMaterial.h.
References propagateWithPath().
|
inlinevirtual |
Propagation to generic surface: specialisation done in base class. Use from FTS implies single state (better use PropagatorWithMaterial)!
Reimplemented from Propagator.
Definition at line 86 of file GsfPropagatorWithMaterial.h.
References Propagator::propagate().
|
inlinevirtual |
Propagation to plane: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general). Use from FTS implies single state (better use PropagatorWithMaterial)!
Implements Propagator.
Definition at line 95 of file GsfPropagatorWithMaterial.h.
References propagateWithPath().
|
inlinevirtual |
Propagation to cylinder: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general). Use from FTS implies single state (better use PropagatorWithMaterial)!
Implements Propagator.
Definition at line 104 of file GsfPropagatorWithMaterial.h.
References propagateWithPath().
|
inlinevirtual |
Propagation to generic surface with path length calculation: specialisation done in base class.
Reimplemented from Propagator.
Definition at line 67 of file GsfPropagatorWithMaterial.h.
References Propagator::propagateWithPath().
Referenced by propagate().
|
virtual |
Propagation to plane with path length calculation.
Reimplemented from Propagator.
Definition at line 52 of file GsfPropagatorWithMaterial.cc.
References convoluteStateWithMaterial(), convoluteWithMaterial(), TrajectoryStateOnSurface::isValid(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), Propagator::propagationDirection(), and theGeometricalPropagator.
|
virtual |
Propagation to cylinder with path length calculation.
Reimplemented from Propagator.
Definition at line 76 of file GsfPropagatorWithMaterial.cc.
References convoluteStateWithMaterial(), convoluteWithMaterial(), TrajectoryStateOnSurface::isValid(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), Propagator::propagationDirection(), and theGeometricalPropagator.
|
inlinevirtual |
Propagation to generic surface with path length calculation: specialisation done in base class. Use from FTS implies single state (better use PropagatorWithMaterial)!
Reimplemented from Propagator.
Definition at line 114 of file GsfPropagatorWithMaterial.h.
References Propagator::propagateWithPath().
|
virtual |
Propagation to plane with path length calculation. Use from FTS implies single state (better use PropagatorWithMaterial)!
Implements Propagator.
Definition at line 100 of file GsfPropagatorWithMaterial.cc.
References convoluteWithMaterial(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), and theGeometricalPropagator.
|
virtual |
Propagation to cylinder with path length calculation. Use from FTS implies single state (better use PropagatorWithMaterial)!
Implements Propagator.
Definition at line 115 of file GsfPropagatorWithMaterial.cc.
References convoluteWithMaterial(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), and theGeometricalPropagator.
|
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 145 of file GsfPropagatorWithMaterial.h.
References theMaterialLocation.
|
inlinevirtual |
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 130 of file GsfPropagatorWithMaterial.h.
References GsfPropagatorAdapter::setMaxDirectionChange(), and theGeometricalPropagator.
|
virtual |
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 130 of file GsfPropagatorWithMaterial.cc.
References GsfPropagatorAdapter::setPropagationDirection(), Propagator::setPropagationDirection(), and theGeometricalPropagator.
|
private |
Definition at line 180 of file GsfPropagatorWithMaterial.h.
Referenced by clone(), convoluteStateWithMaterial(), convoluteWithMaterial(), and convolutionWithMaterial().
|
private |
Definition at line 178 of file GsfPropagatorWithMaterial.h.
Referenced by clone(), geometricalPropagator(), magneticField(), propagateWithPath(), setMaxDirectionChange(), and setPropagationDirection().
|
private |
Definition at line 182 of file GsfPropagatorWithMaterial.h.
Referenced by materialAtSource(), and setMaterialLocation().