1 #ifndef _COMMONRECO_PROPAGATORWITHMATERIAL_H_
2 #define _COMMONRECO_PROPAGATORWITHMATERIAL_H_
40 bool useRungeKutta=
false,
float ptMin=-1.,
bool useOldGeoPropLogic=
true);
52 const Plane& plane)
const override;
55 const Plane& plane)
const override;
58 const Cylinder& cylinder)
const override;
61 const Cylinder& cylinder)
const override;
virtual const MagneticField * magneticField() const
virtual FreeTrajectoryState propagate(const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const final
void setMaterialLocation(const MaterialLocation location)
bool materialAtSource() const
Inclusion of material at the source?
defaultRKPropagator::Product rkProduct
std::pair< TrajectoryStateOnSurface, double > TsosWP
virtual bool setMaxDirectionChange(float phiMax)
PropagatorWithMaterial(PropagationDirection dir, const float mass, const MagneticField *mf=0, const float maxDPhi=1.6, bool useRungeKutta=false, float ptMin=-1., bool useOldGeoPropLogic=true)
const Propagator & geometricalPropagator() const
Access to the geometrical propagator.
DeepCopyPointerByClone< MaterialEffectsUpdator > theMEUpdator
DeepCopyPointerByClone< Propagator > theGeometricalPropagator
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
const MaterialEffectsUpdator & materialEffectsUpdator() const
Access to the MaterialEffectsUpdator.
virtual PropagatorWithMaterial * clone() const
virtual ~PropagatorWithMaterial()
MaterialLocation theMaterialLocation
virtual void setPropagationDirection(PropagationDirection dir) override
Propagation direction.
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Plane &plane) const override
virtual bool setMaxDirectionChange(float phiMax)
Limit on change in azimuthal angle.
const MagneticField * field