CMS 3D CMS Logo

GsfPropagatorWithMaterial.h
Go to the documentation of this file.
1 #ifndef GsfPropagatorWithMaterial_h_
2 #define GsfPropagatorWithMaterial_h_
3 
9 
10 class MagneticField;
11 
12 // #include "Utilities/Timing/interface/TimingReport.h"
13 
24 
25  public:
26  // Constructors
31  const GsfMaterialEffectsUpdator& MEUpdator);
35  const FullConvolutionWithMaterial& Convolutor);
36 
38 
39 
42 
43 
46  std::pair<TrajectoryStateOnSurface,double>
48  const Plane&) const override;
49 
52  std::pair<TrajectoryStateOnSurface,double>
54  const Cylinder&) const override;
55 
56 
60  std::pair<TrajectoryStateOnSurface,double> propagateWithPath (const FreeTrajectoryState&,
61  const Plane&) const override;
65  std::pair<TrajectoryStateOnSurface,double> propagateWithPath (const FreeTrajectoryState&,
66  const Cylinder&) const override;
67 
68 
69 
70  bool setMaxDirectionChange( float phiMax) override {
72  }
73 
75 
85  void setMaterialLocation (const MaterialLocation location) {
86  theMaterialLocation = location;
87  }
89  const Propagator& geometricalPropagator() const {
91  }
94  return *theConvolutor;
95  }
96 
97  GsfPropagatorWithMaterial* clone() const override
98  {
100  }
101 
103 
104 private:
105 // /// Definition of timers (temporary)
106 // void defineTimer();
108  std::pair<TrajectoryStateOnSurface,double>
109  convoluteWithMaterial (const std::pair<TrajectoryStateOnSurface,double>&) const;
114  bool materialAtSource() const;
115 
116 private:
117  // Geometrical propagator
119  // Material effects & convolution
121  // Use material at source?
123 
124  typedef std::pair<TrajectoryStateOnSurface,double> TsosWP;
125  typedef std::vector<TrajectoryStateOnSurface> MultiTSOS;
126 
127 // static TimingReport::Item* propWithPathTimer1;
128 // static TimingReport::Item* propWithPathTimer2;
129 
130 };
131 
132 #endif
bool setMaxDirectionChange(float phiMax) override
PropagationDirection
Definition: Plane.h:17
TrajectoryStateOnSurface convoluteStateWithMaterial(const TrajectoryStateOnSurface, const PropagationDirection) const
Convolution of state with material effects.
std::pair< TrajectoryStateOnSurface, double > TsosWP
std::vector< TrajectoryStateOnSurface > MultiTSOS
GsfPropagatorWithMaterial(const Propagator &Propagator, const GsfMaterialEffectsUpdator &MEUpdator)
const MagneticField * magneticField() const override
std::pair< TrajectoryStateOnSurface, double > convoluteWithMaterial(const std::pair< TrajectoryStateOnSurface, double > &) const
Convolution of state+path with material effects.
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
Definition: Propagator.cc:15
bool materialAtSource() const
Inclusion of material at the source?
DeepCopyPointerByClone< GsfPropagatorAdapter > theGeometricalPropagator
bool setMaxDirectionChange(float phiMax) override
void setPropagationDirection(PropagationDirection dir) override
DeepCopyPointerByClone< FullConvolutionWithMaterial > theConvolutor
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
const Propagator & geometricalPropagator() const
Access to the geometrical propagator.
GsfPropagatorWithMaterial * clone() const override
void setMaterialLocation(const MaterialLocation location)
dbl *** dir
Definition: mlp_gen.cc:35
const MagneticField * magneticField() const override
const FullConvolutionWithMaterial & convolutionWithMaterial() const
Access to the convolutor and thus to the material effects.