13 Propagator(aPropagator.propagationDirection()),
16 theMaterialLocation(atDestination)
29 std::pair<TrajectoryStateOnSurface,double>
31 const Plane& plane)
const {
39 if ( !stateAtSource.
isValid() )
return TsosWP(stateAtSource,0.);
44 if ( !(propStateWP.first).isValid() )
return propStateWP;
51 std::pair<TrajectoryStateOnSurface,double>
61 if ( !stateAtSource.
isValid() )
return TsosWP(stateAtSource,0.);
66 if ( !(propStateWP.first).isValid() )
return propStateWP;
73 std::pair<TrajectoryStateOnSurface,double>
75 const Plane& plane)
const {
76 static std::atomic<int> nWarn(0);
79 <<
"GsfPropagatorWithMaterial used from FTS: input state might have been collapsed!";
81 if ( !(propStateWP.first).isValid() ||
materialAtSource() )
return propStateWP;
88 std::pair<TrajectoryStateOnSurface,double>
91 static std::atomic<int> nWarn(0);
94 <<
"GsfPropagatorWithMaterial used from FTS: input state might have been collapsed!";
96 if ( !(propStateWP.first).isValid() ||
materialAtSource() )
return propStateWP;
109 std::pair<TrajectoryStateOnSurface,double>
118 aStateWithPath.second);
136 <<
"PropagatorWithMaterial: propagation direction = anyDirection is " 137 <<
"incompatible with adding of material at source";
virtual void setPropagationDirection(PropagationDirection dir)
TrajectoryStateOnSurface convoluteStateWithMaterial(const TrajectoryStateOnSurface, const PropagationDirection) const
Convolution of state with material effects.
std::pair< TrajectoryStateOnSurface, double > TsosWP
GsfPropagatorWithMaterial(const Propagator &Propagator, const GsfMaterialEffectsUpdator &MEUpdator)
std::pair< TrajectoryStateOnSurface, double > convoluteWithMaterial(const std::pair< TrajectoryStateOnSurface, double > &) const
Convolution of state+path with material effects.
virtual PropagationDirection propagationDirection() const final
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
MaterialLocation theMaterialLocation
bool materialAtSource() const
Inclusion of material at the source?
DeepCopyPointerByClone< GsfPropagatorAdapter > theGeometricalPropagator
void setPropagationDirection(PropagationDirection dir) override
DeepCopyPointerByClone< FullConvolutionWithMaterial > theConvolutor
void setPropagationDirection(PropagationDirection dir) override
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
GsfPropagatorWithMaterial * clone() const override