18 float ptMin,
bool useOldAnalPropLogic) :
21 theGeometricalPropagator(useRungeKutta ?
22 rkProduct.propagator.
clone() :
26 theMaterialLocation(atDestination), field(mf),useRungeKutta_(useRungeKutta) {
31 pair<TrajectoryStateOnSurface,double>
33 const Plane& plane)
const {
44 pair<TrajectoryStateOnSurface,double>
58 pair<TrajectoryStateOnSurface,double>
60 const Plane& plane)
const {
69 if unlikely( !newTsosWP.first.isValid() )
return newTsosWP;
85 pair<TrajectoryStateOnSurface,double>
96 if unlikely( !newTsosWP.first.isValid() )
return newTsosWP;
121 "PropagatorWithMaterial: propagation direction = anyDirection is incompatible with adding of material at source");
virtual void setPropagationDirection(PropagationDirection dir)
bool materialAtSource() const
Inclusion of material at the source?
virtual PropagationDirection propagationDirection() const
std::pair< TrajectoryStateOnSurface, double > TsosWP
virtual bool updateStateInPlace(TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const
PropagatorWithMaterial(PropagationDirection dir, const float mass, const MagneticField *mf=0, const float maxDPhi=1.6, bool useRungeKutta=false, float ptMin=-1., bool useOldGeoPropLogic=true)
DeepCopyPointerByClone< MaterialEffectsUpdator > theMEUpdator
DeepCopyPointerByClone< Propagator > theGeometricalPropagator
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
virtual ~PropagatorWithMaterial()
MaterialLocation theMaterialLocation
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
virtual void setPropagationDirection(PropagationDirection dir) override
Propagation direction.
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Plane &plane) const override
tuple AnalyticalPropagator