CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SteppingHelixStateInfo.h
Go to the documentation of this file.
1 #ifndef SteppingHelixPropagator_SteppingHelixStateInfo_h
2 #define SteppingHelixPropagator_SteppingHelixStateInfo_h
3 
4 
5 
14 //
15 // Original Author: Vyacheslav Krutelyov
16 // Created: Wed Jan 3 16:01:24 CST 2007
17 // $Id: SteppingHelixStateInfo.h,v 1.16 2009/09/08 20:44:31 slava77 Exp $
18 //
19 //
20 
22 
23 
24 #include "CLHEP/Matrix/SymMatrix.h"
25 #include "CLHEP/Vector/ThreeVector.h"
26 
27 
28 
29 class MagneticField;
30 class MagVolume;
31 class Surface;
34 
37  public:
38  typedef CLHEP::Hep3Vector Vector;
39  typedef CLHEP::Hep3Vector Point;
40 
41  enum Result {
42  OK=0,
51  };
52 
53  static const std::string ResultName[MAX_RESULT];
54 
56  path_(0), radPath_(0), dir(0), magVol(0), field(0), dEdx(0), dEdXPrime(0), radX0(1e12),
59 
60  TrajectoryStateOnSurface getStateOnSurface(const Surface& surf, bool returnTangentPlane = false) const;
61 
63  void getFreeState(FreeTrajectoryState& fts) const;
64 
65  GlobalPoint position() const {return GlobalPoint(r3.x(), r3.y(), r3.z());}
66  GlobalVector momentum() const {return GlobalVector(p3.x(), p3.y(), p3.z());}
67  int charge() const {return q;}
68  double path() const {return isValid_ ? path_ : 0;}
69  double radPath() const {return isValid_ ? radPath_ : 0;}
70 
71  bool isValid() const {return isValid_;}
72  bool hasErrorPropagated() const {return hasErrorPropagated_;}
73 
74  Result status() const {return status_;}
75 
76  protected:
77  struct VolumeBounds {
78  VolumeBounds(): zMin(0), zMax(1e4), rMin(0), rMax(1e4), th1(0), th2(0) {}
79  VolumeBounds(double r0, double r1, double z0, double z1):
80  zMin(z0), zMax(z1), rMin(r0), rMax(r1), th1(0), th2(0) {}
81  VolumeBounds(double r0, double r1, double z0, double z1, double t1, double t2):
82  zMin(z0), zMax(z1), rMin(r0), rMax(r1), th1(t1), th2(t2) {}
83  double zMin;
84  double zMax;
85  double rMin;
86  double rMax;
87  double th1;
88  double th2;
89  };
90 
91 
92  int q;
97  double path_;
98  double radPath_;
99  double dir;
103  bool isYokeVol;//will be set (most likely) only for the barrel volumes (850>r>3.8, z<667)
105 
107  double dEdx;
108  double dEdXPrime;
109  double radX0;
110 
112  bool isValid_;
114 
116 };
117 #endif
void getFreeState(FreeTrajectoryState &fts) const
convert internal structure into the fts
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
AlgebraicSymMatrix55 covCurv
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
GlobalVector momentum() const
GlobalPoint position() const
TrajectoryStateOnSurface getStateOnSurface(const Surface &surf, bool returnTangentPlane=false) const
AlgebraicSymMatrix55 matDCovCurv
const MagneticField * field
VolumeBounds(double r0, double r1, double z0, double z1, double t1, double t2)
VolumeBounds(double r0, double r1, double z0, double z1)
static const std::string ResultName[MAX_RESULT]
Global3DVector GlobalVector
Definition: GlobalVector.h:10