CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 public:
25  // Constructors
33 
35 
38 
41  std::pair<TrajectoryStateOnSurface, double> propagateWithPath(const TrajectoryStateOnSurface&,
42  const Plane&) const override;
43 
46  std::pair<TrajectoryStateOnSurface, double> propagateWithPath(const TrajectoryStateOnSurface&,
47  const Cylinder&) const override;
48 
52  std::pair<TrajectoryStateOnSurface, double> propagateWithPath(const FreeTrajectoryState&,
53  const Plane&) const override;
57  std::pair<TrajectoryStateOnSurface, double> propagateWithPath(const FreeTrajectoryState&,
58  const Cylinder&) const override;
59 
61 
63 
73  void setMaterialLocation(const MaterialLocation location) { theMaterialLocation = location; }
75  const Propagator& geometricalPropagator() const { return *theGeometricalPropagator; }
78 
79  GsfPropagatorWithMaterial* clone() const override {
81  }
82 
83  const MagneticField* magneticField() const override { return theGeometricalPropagator->magneticField(); }
84 
85 private:
86  // /// Definition of timers (temporary)
87  // void defineTimer();
89  std::pair<TrajectoryStateOnSurface, double> convoluteWithMaterial(
90  const std::pair<TrajectoryStateOnSurface, double>&) const;
94  bool materialAtSource() const;
95 
96 private:
97  // Geometrical propagator
99  // Material effects & convolution
101  // Use material at source?
103 
104  typedef std::pair<TrajectoryStateOnSurface, double> TsosWP;
105  typedef std::vector<TrajectoryStateOnSurface> MultiTSOS;
106 
107  // static TimingReport::Item* propWithPathTimer1;
108  // static TimingReport::Item* propWithPathTimer2;
109 };
110 
111 #endif
GsfPropagatorWithMaterial * clone() const override
bool setMaxDirectionChange(float phiMax) override
std::pair< TrajectoryStateOnSurface, double > TsosWP
PropagationDirection
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
Definition: Plane.h:16
TrajectoryStateOnSurface convoluteStateWithMaterial(const TrajectoryStateOnSurface, const PropagationDirection) const
Convolution of state with material effects.
std::vector< TrajectoryStateOnSurface > MultiTSOS
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.
const MagneticField * magneticField() const override
const MagneticField * magneticField() const override
bool materialAtSource() const
Inclusion of material at the source?
DeepCopyPointerByClone< GsfPropagatorAdapter > theGeometricalPropagator
bool setMaxDirectionChange(float phiMax) override
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
Definition: Propagator.cc:10
void setPropagationDirection(PropagationDirection dir) override
DeepCopyPointerByClone< FullConvolutionWithMaterial > theConvolutor
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
const Propagator & geometricalPropagator() const
Access to the geometrical propagator.
void setMaterialLocation(const MaterialLocation location)
const FullConvolutionWithMaterial & convolutionWithMaterial() const
Access to the convolutor and thus to the material effects.