CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
42  const Surface& surface) const
43  {
44  return Propagator::propagate(tsos,surface);
45  }
50  const Plane& plane) const
51  {
52  return propagateWithPath(tsos,plane).first;
53  }
58  const Cylinder& cylinder) const
59  {
60  return propagateWithPath(tsos,cylinder).first;
61  }
62 
66  virtual std::pair<TrajectoryStateOnSurface,double>
68  const Surface& surface) const
69  {
70  return Propagator::propagateWithPath(tsos,surface);
71  }
74  virtual std::pair<TrajectoryStateOnSurface,double>
76  const Plane&) const;
79  virtual std::pair<TrajectoryStateOnSurface,double>
81  const Cylinder&) const;
82 
87  const Surface& surface) const
88  {
89  return Propagator::propagate(fts,surface);
90  }
96  const Plane& plane) const
97  {
98  return propagateWithPath(fts,plane).first;
99  }
105  const Cylinder& cylinder) const
106  {
107  return propagateWithPath(fts,cylinder).first;
108  }
109 
114  virtual std::pair<TrajectoryStateOnSurface,double> propagateWithPath (const FreeTrajectoryState& fts,
115  const Surface& surface) const
116  {
117  return Propagator::propagateWithPath(fts,surface);
118  }
122  virtual std::pair<TrajectoryStateOnSurface,double> propagateWithPath (const FreeTrajectoryState&,
123  const Plane&) const;
127  virtual std::pair<TrajectoryStateOnSurface,double> propagateWithPath (const FreeTrajectoryState&,
128  const Cylinder&) const;
129 
130  virtual bool setMaxDirectionChange( float phiMax) {
132  }
133 
134  virtual void setPropagationDirection (PropagationDirection dir) const;
135 
145  void setMaterialLocation (const MaterialLocation location) {
146  theMaterialLocation = location;
147  }
149  const Propagator& geometricalPropagator() const {
150  return *theGeometricalPropagator;
151  }
154  return *theConvolutor;
155  }
156 
158  {
160  }
161 
163 
164 private:
165 // /// Definition of timers (temporary)
166 // void defineTimer();
168  std::pair<TrajectoryStateOnSurface,double>
169  convoluteWithMaterial (const std::pair<TrajectoryStateOnSurface,double>&) const;
174  bool materialAtSource() const;
175 
176 private:
177  // Geometrical propagator
179  // Material effects & convolution
181  // Use material at source?
183 
184  typedef std::pair<TrajectoryStateOnSurface,double> TsosWP;
185  typedef std::vector<TrajectoryStateOnSurface> MultiTSOS;
186 
187 // static TimingReport::Item* propWithPathTimer1;
188 // static TimingReport::Item* propWithPathTimer2;
189 
190 };
191 
192 #endif
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Surface &surface) const
virtual void setPropagationDirection(PropagationDirection dir) const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &fts, const Plane &plane) const
virtual TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
PropagationDirection
virtual TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
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)
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:77
std::pair< TrajectoryStateOnSurface, double > convoluteWithMaterial(const std::pair< TrajectoryStateOnSurface, double > &) const
Convolution of state+path with material effects.
bool materialAtSource() const
Inclusion of material at the source?
DeepCopyPointerByClone< GsfPropagatorAdapter > theGeometricalPropagator
DeepCopyPointerByClone< FullConvolutionWithMaterial > theConvolutor
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
virtual bool setMaxDirectionChange(float phiMax)
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &fts, const Surface &surface) const
const MagneticField * magneticField() const
const Propagator & geometricalPropagator() const
Access to the geometrical propagator.
virtual TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
void setMaterialLocation(const MaterialLocation location)
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &fts, const Cylinder &cylinder) const
dbl *** dir
Definition: mlp_gen.cc:35
virtual bool setMaxDirectionChange(float phiMax)
virtual GsfPropagatorWithMaterial * clone() const
virtual const MagneticField * magneticField() const
const FullConvolutionWithMaterial & convolutionWithMaterial() const
Access to the convolutor and thus to the material effects.