17 theGeometricalPropagator(),
19 theMaterialLocation(atDestination), field(mf),useRungeKutta_(useRungeKutta) {
31 Propagator(aPropagator.propagationDirection()),
32 theGeometricalPropagator(aPropagator.
clone()),
33 theMEUpdator(aMEUpdator.
clone()),
34 theMaterialLocation(atDestination), field(mf),useRungeKutta_(useRungeKutta) {}
36 pair<TrajectoryStateOnSurface,double>
38 const Plane& plane)
const {
49 pair<TrajectoryStateOnSurface,double>
63 pair<TrajectoryStateOnSurface,double>
65 const Plane& plane)
const {
74 if ( !newTsosWP.first.isValid() )
return newTsosWP;
90 pair<TrajectoryStateOnSurface,double>
101 if ( !newTsosWP.first.isValid() )
return newTsosWP;
126 string message(
"PropagatorWithMaterial: propagation direction = anyDirection is ");
127 message +=
"incompatible with adding of material at source";
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
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
DeepCopyPointerByClone< MaterialEffectsUpdator > theMEUpdator
DeepCopyPointerByClone< Propagator > theGeometricalPropagator
MaterialLocation theMaterialLocation
PropagatorWithMaterial(PropagationDirection dir, const float mass, const MagneticField *mf=0, const float maxDPhi=1.6, bool useRungeKutta=false, float ptMin=-1.)
virtual void setPropagationDirection(PropagationDirection dir) const
Propagation direction.
virtual void setPropagationDirection(PropagationDirection dir) const
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
tuple AnalyticalPropagator