CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Geant4ePropagator.h
Go to the documentation of this file.
1 #ifndef TrackPropagation_Geant4ePropagator_h
2 #define TrackPropagation_Geant4ePropagator_h
3 
4 
5 //CMS includes
6 // - Propagator
8 
9 // - Geant4e
10 #include "G4ErrorPropagatorManager.hh"
11 
12 
13 
14 class Geant4eSteppingAction;
15 
22 
23  public:
30  const char* particleName = "mu",
32 
33  virtual ~Geant4ePropagator();
34 
35 
41  propagate (const FreeTrajectoryState& ftsStart, const Plane& pDest) const;
42 
44  propagate (const FreeTrajectoryState& ftsStart, const Cylinder& cDest) const;
45 
50  propagate (const TrajectoryStateOnSurface& tsos, const Plane& plane) const;
51 
53  propagate (const TrajectoryStateOnSurface& tsos, const Cylinder& cyl) const;
54 
61  virtual std::pair< TrajectoryStateOnSurface, double>
62  propagateWithPath (const FreeTrajectoryState&, const Plane&) const;
63 
64  virtual std::pair< TrajectoryStateOnSurface, double>
65  propagateWithPath (const FreeTrajectoryState&, const Cylinder&) const;
66 
67 
68  virtual std::pair< TrajectoryStateOnSurface, double>
69  propagateWithPath (const TrajectoryStateOnSurface&, const Plane&) const;
70 
71  virtual std::pair< TrajectoryStateOnSurface, double>
72  propagateWithPath (const TrajectoryStateOnSurface&, const Cylinder&) const;
73 
74 
75  virtual Geant4ePropagator* clone() const {return new Geant4ePropagator(*this);}
76 
77  virtual const MagneticField* magneticField() const {return theField;}
78 
79 
80 
81  protected:
82 
83  typedef std::pair<TrajectoryStateOnSurface, double> TsosPP;
84 
85 
86  //Magnetic field
87  const MagneticField* theField;
88 
89  //Name of the particle whose properties will be used in the propagation
91 
92  //The Geant4e manager. Does the real propagation
93  G4ErrorPropagatorManager* theG4eManager;
94 
95  //A G4 stepping action to find out the track length
96  mutable Geant4eSteppingAction* theSteppingAction;
97 
98 };
99 
100 
101 #endif
std::string theParticleName
G4ErrorPropagatorManager * theG4eManager
PropagationDirection
Definition: Plane.h:17
tuple field
Definition: statics.py:62
Geant4eSteppingAction * theSteppingAction
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:77
std::pair< TrajectoryStateOnSurface, double > TsosPP
virtual const MagneticField * magneticField() const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
virtual Geant4ePropagator * clone() const
dbl *** dir
Definition: mlp_gen.cc:35
Unlimited (trivial) bounds.