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 
15 
22 
23  public:
29  Geant4ePropagator(const MagneticField* field = 0,
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
88 
89  //Name of the particle whose properties will be used in the propagation
90  std::string theParticleName;
91 
92  //The Geant4e manager. Does the real propagation
93  G4ErrorPropagatorManager* theG4eManager;
94 
95  //A G4 stepping action to find out the track length
97 
98 };
99 
100 
101 #endif
std::pair< TrajectoryStateOnSurface, double > TsosPP
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Plane &) const
std::string theParticleName
virtual const MagneticField * magneticField() const
PropagationDirection
const MagneticField * theField
Definition: Plane.h:17
G4ErrorPropagatorManager * theG4eManager
Geant4ePropagator(const MagneticField *field=0, const char *particleName="mu", PropagationDirection dir=alongMomentum)
virtual Geant4ePropagator * clone() const
Geant4eSteppingAction * theSteppingAction
virtual ~Geant4ePropagator()
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &ftsStart, const Plane &pDest) const
dbl *** dir
Definition: mlp_gen.cc:35