13 Propagator(aPropagator.propagationDirection()),
16 theMaterialLocation(atDestination)
23 Propagator(aGsfPropagator.propagationDirection()),
24 theGeometricalPropagator(aGsfPropagator.
clone()),
25 theConvolutor(aConvolutor.
clone()),
26 theMaterialLocation(atDestination)
51 std::pair<TrajectoryStateOnSurface,double>
53 const Plane& plane)
const {
63 if ( !stateAtSource.
isValid() )
return TsosWP(stateAtSource,0.);
68 if ( !(propStateWP.first).isValid() )
return propStateWP;
75 std::pair<TrajectoryStateOnSurface,double>
87 if ( !stateAtSource.
isValid() )
return TsosWP(stateAtSource,0.);
92 if ( !(propStateWP.first).isValid() )
return propStateWP;
99 std::pair<TrajectoryStateOnSurface,double>
101 const Plane& plane)
const {
102 static std::atomic<int> nWarn(0);
105 <<
"GsfPropagatorWithMaterial used from FTS: input state might have been collapsed!";
107 if ( !(propStateWP.first).isValid() ||
materialAtSource() )
return propStateWP;
114 std::pair<TrajectoryStateOnSurface,double>
117 static std::atomic<int> nWarn(0);
120 <<
"GsfPropagatorWithMaterial used from FTS: input state might have been collapsed!";
122 if ( !(propStateWP.first).isValid() ||
materialAtSource() )
return propStateWP;
135 std::pair<TrajectoryStateOnSurface,double>
144 aStateWithPath.second);
162 <<
"PropagatorWithMaterial: propagation direction = anyDirection is "
163 <<
"incompatible with adding of material at source";
virtual void setPropagationDirection(PropagationDirection dir)
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
virtual PropagationDirection propagationDirection() const final
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
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.
MaterialLocation theMaterialLocation
bool materialAtSource() const
Inclusion of material at the source?
DeepCopyPointerByClone< GsfPropagatorAdapter > theGeometricalPropagator
virtual void setPropagationDirection(PropagationDirection dir) override
DeepCopyPointerByClone< FullConvolutionWithMaterial > theConvolutor
virtual void setPropagationDirection(PropagationDirection dir) override
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)