13 :
Propagator(aPropagator.propagationDirection()),
16 theMaterialLocation(atDestination) {}
20 :
Propagator(aGsfPropagator.propagationDirection()),
21 theGeometricalPropagator(aGsfPropagator.
clone()),
22 theConvolutor(aConvolutor.
clone()),
23 theMaterialLocation(atDestination) {}
35 return TsosWP(stateAtSource, 0.);
40 if (!(propStateWP.first).isValid())
58 return TsosWP(stateAtSource, 0.);
63 if (!(propStateWP.first).isValid())
72 const Plane& plane)
const {
73 static std::atomic<int> nWarn(0);
76 <<
"GsfPropagatorWithMaterial used from FTS: input state might have been collapsed!";
88 static std::atomic<int> nWarn(0);
91 <<
"GsfPropagatorWithMaterial used from FTS: input state might have been collapsed!";
107 const TsosWP& aStateWithPath)
const {
126 throw cms::Exception(
"LogicError") <<
"PropagatorWithMaterial: propagation direction = anyDirection is "
127 <<
"incompatible with adding of material at source";
virtual void setPropagationDirection(PropagationDirection dir)
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
std::pair< TrajectoryStateOnSurface, double > TsosWP
virtual PropagationDirection propagationDirection() const final
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
TrajectoryStateOnSurface convoluteStateWithMaterial(const TrajectoryStateOnSurface, const PropagationDirection) const
Convolution of state with material effects.
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
void setPropagationDirection(PropagationDirection dir) override
DeepCopyPointerByClone< FullConvolutionWithMaterial > theConvolutor
void setPropagationDirection(PropagationDirection dir) override
Log< level::Info, false > LogInfo
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)