CMS 3D CMS Logo

SteppingHelixStateInfo.h
Go to the documentation of this file.
1 #ifndef SteppingHelixPropagator_SteppingHelixStateInfo_h
2 #define SteppingHelixPropagator_SteppingHelixStateInfo_h
3 
10 //
11 // Original Author: Vyacheslav Krutelyov
12 // Created: Wed Jan 3 16:01:24 CST 2007
13 //
14 //
15 
17 
18 #include "CLHEP/Matrix/SymMatrix.h"
19 #include "CLHEP/Vector/ThreeVector.h"
20 
21 class MagneticField;
22 class MagVolume;
23 class Surface;
26 
29 
30 public:
31  typedef CLHEP::Hep3Vector Vector;
32  typedef CLHEP::Hep3Vector Point;
33 
35 
37 
39  : path_(0),
40  radPath_(0),
41  dir(0),
42  magVol(nullptr),
44  field(nullptr),
45  dEdx(0),
46  dEdXPrime(0),
47  radX0(1e12),
49  isValid_(false),
51  status_(UNDEFINED) {}
53 
55 
57  void getFreeState(FreeTrajectoryState& fts) const;
58 
59  GlobalPoint position() const { return GlobalPoint(r3.x(), r3.y(), r3.z()); }
60  GlobalVector momentum() const { return GlobalVector(p3.x(), p3.y(), p3.z()); }
61  int charge() const { return q; }
62  double path() const { return isValid_ ? path_ : 0; }
63  double radPath() const { return isValid_ ? radPath_ : 0; }
64 
65  bool isValid() const { return isValid_; }
66  bool hasErrorPropagated() const { return hasErrorPropagated_; }
67 
68  Result status() const { return status_; }
69 
70 protected:
71  struct VolumeBounds {
72  VolumeBounds() : zMin(0), zMax(1e4), rMin(0), rMax(1e4), th1(0), th2(0) {}
73  VolumeBounds(double r0, double r1, double z0, double z1) : zMin(z0), zMax(z1), rMin(r0), rMax(r1), th1(0), th2(0) {}
74  VolumeBounds(double r0, double r1, double z0, double z1, double t1, double t2)
75  : zMin(z0), zMax(z1), rMin(r0), rMax(r1), th1(t1), th2(t2) {}
76  double zMin;
77  double zMax;
78  double rMin;
79  double rMax;
80  double th1;
81  double th2;
82  };
83 
84  int q;
89  double path_;
90  double radPath_;
91  double dir;
94  const MagVolume* magVol;
95  bool isYokeVol; //will be set (most likely) only for the barrel volumes (850>r>3.8, z<667)
97 
99  double dEdx;
100  double dEdXPrime;
101  double radX0;
102 
104  bool isValid_;
106 
108 };
109 #endif
Vector3DBase
Definition: Vector3DBase.h:8
SteppingHelixStateInfo::momentum
GlobalVector momentum() const
Definition: SteppingHelixStateInfo.h:60
RandomServiceHelper.t2
t2
Definition: RandomServiceHelper.py:257
TrajectoryStateOnSurface.h
SteppingHelixStateInfo::bfGradLoc
Vector bfGradLoc
Definition: SteppingHelixStateInfo.h:93
SteppingHelixStateInfo::getFreeState
void getFreeState(FreeTrajectoryState &fts) const
convert internal structure into the fts
Definition: SteppingHelixStateInfo.cc:88
SteppingHelixStateInfo::VolumeBounds::VolumeBounds
VolumeBounds(double r0, double r1, double z0, double z1)
Definition: SteppingHelixStateInfo.h:73
funct::false
false
Definition: Factorize.h:34
SteppingHelixStateInfo::position
GlobalPoint position() const
Definition: SteppingHelixStateInfo.h:59
SteppingHelixStateInfo::RANGEOUT
Definition: SteppingHelixStateInfo.h:34
SteppingHelixStateInfo::radX0
double radX0
Definition: SteppingHelixStateInfo.h:101
SteppingHelixStateInfo::dEdXPrime
double dEdXPrime
Definition: SteppingHelixStateInfo.h:100
SteppingHelixStateInfo::VolumeBounds::zMax
double zMax
Definition: SteppingHelixStateInfo.h:77
SteppingHelixStateInfo::hasErrorPropagated
bool hasErrorPropagated() const
Definition: SteppingHelixStateInfo.h:66
SteppingHelixStateInfo::VolumeBounds::th1
double th1
Definition: SteppingHelixStateInfo.h:80
SteppingHelixStateInfo::bf
Vector bf
Definition: SteppingHelixStateInfo.h:92
SteppingHelixStateInfo::hasErrorPropagated_
bool hasErrorPropagated_
Definition: SteppingHelixStateInfo.h:105
SteppingHelixStateInfo::radPath_
double radPath_
Definition: SteppingHelixStateInfo.h:90
SteppingHelixStateInfo::ResultName
static const std::string ResultName[MAX_RESULT]
Definition: SteppingHelixStateInfo.h:36
Surface
Definition: Surface.h:36
SteppingHelixStateInfo::p3
Vector p3
Definition: SteppingHelixStateInfo.h:85
GlobalVector
Global3DVector GlobalVector
Definition: GlobalVector.h:10
SteppingHelixStateInfo::dir
double dir
Definition: SteppingHelixStateInfo.h:91
SteppingHelixStateInfo::magVol
const MagVolume * magVol
Definition: SteppingHelixStateInfo.h:94
SteppingHelixStateInfo::OK
Definition: SteppingHelixStateInfo.h:34
SteppingHelixStateInfo::matDCovCurv
AlgebraicSymMatrix55 matDCovCurv
Definition: SteppingHelixStateInfo.h:88
SteppingHelixStateInfo::getStateOnSurface
TrajectoryStateOnSurface getStateOnSurface(const Surface &surf, bool returnTangentPlane=false) const
Definition: SteppingHelixStateInfo.cc:60
SteppingHelixStateInfo::UNDEFINED
Definition: SteppingHelixStateInfo.h:34
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
SteppingHelixPropagator
Definition: SteppingHelixPropagator.h:36
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
SteppingHelixStateInfo::isComplete
bool isComplete
Definition: SteppingHelixStateInfo.h:103
SteppingHelixStateInfo::INACC
Definition: SteppingHelixStateInfo.h:34
SteppingHelixStateInfo::Point
CLHEP::Hep3Vector Point
Definition: SteppingHelixStateInfo.h:32
SteppingHelixStateInfo::VolumeBounds::rMin
double rMin
Definition: SteppingHelixStateInfo.h:78
SteppingHelixStateInfo::q
int q
Definition: SteppingHelixStateInfo.h:84
HLTMuonOfflineAnalyzer_cfi.z0
z0
Definition: HLTMuonOfflineAnalyzer_cfi.py:98
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
SteppingHelixStateInfo::FAULT
Definition: SteppingHelixStateInfo.h:34
Point3DBase< float, GlobalTag >
SteppingHelixStateInfo::MAX_RESULT
Definition: SteppingHelixStateInfo.h:34
SteppingHelixStateInfo::VolumeBounds::th2
double th2
Definition: SteppingHelixStateInfo.h:81
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SteppingHelixStateInfo
Definition: SteppingHelixStateInfo.h:27
SteppingHelixStateInfo::VolumeBounds
Definition: SteppingHelixStateInfo.h:71
Point
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
SteppingHelixStateInfo::APPROX
Definition: SteppingHelixStateInfo.h:34
SteppingHelixStateInfo::radPath
double radPath() const
Definition: SteppingHelixStateInfo.h:63
SteppingHelixStateInfo::isValid_
bool isValid_
Definition: SteppingHelixStateInfo.h:104
SteppingHelixStateInfo::path
double path() const
Definition: SteppingHelixStateInfo.h:62
MagVolume
Definition: MagVolume.h:13
SteppingHelixStateInfo::r3
Point r3
Definition: SteppingHelixStateInfo.h:86
SteppingHelixStateInfo::path_
double path_
Definition: SteppingHelixStateInfo.h:89
SteppingHelixStateInfo::dEdx
double dEdx
Definition: SteppingHelixStateInfo.h:99
SteppingHelixStateInfo::Result
Result
Definition: SteppingHelixStateInfo.h:34
SteppingHelixStateInfo::isValid
bool isValid() const
Definition: SteppingHelixStateInfo.h:65
SteppingHelixStateInfo::VolumeBounds::VolumeBounds
VolumeBounds(double r0, double r1, double z0, double z1, double t1, double t2)
Definition: SteppingHelixStateInfo.h:74
SteppingHelixStateInfo::status
Result status() const
Definition: SteppingHelixStateInfo.h:68
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
diffTwoXMLs.r1
r1
Definition: diffTwoXMLs.py:53
SteppingHelixStateInfo::isYokeVol
bool isYokeVol
Definition: SteppingHelixStateInfo.h:95
SteppingHelixStateInfo::covCurv
AlgebraicSymMatrix55 covCurv
Definition: SteppingHelixStateInfo.h:87
HLT_2018_cff.returnTangentPlane
returnTangentPlane
Definition: HLT_2018_cff.py:5253
SteppingHelixStateInfo::Vector
CLHEP::Hep3Vector Vector
Definition: SteppingHelixStateInfo.h:31
SteppingHelixStateInfo::rzLims
VolumeBounds rzLims
Definition: SteppingHelixStateInfo.h:98
SteppingHelixStateInfo::VolumeBounds::rMax
double rMax
Definition: SteppingHelixStateInfo.h:79
SteppingHelixStateInfo::NOT_IMPLEMENTED
Definition: SteppingHelixStateInfo.h:34
SteppingHelixStateInfo::WRONG_VOLUME
Definition: SteppingHelixStateInfo.h:34
MagneticField
Definition: MagneticField.h:19
AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition: AlgebraicROOTObjects.h:23
SteppingHelixStateInfo::VolumeBounds::VolumeBounds
VolumeBounds()
Definition: SteppingHelixStateInfo.h:72
SteppingHelixStateInfo::VolumeBounds::zMin
double zMin
Definition: SteppingHelixStateInfo.h:76
vertexPlots.e4
e4
Definition: vertexPlots.py:64
SteppingHelixStateInfo::field
const MagneticField * field
Definition: SteppingHelixStateInfo.h:96
SteppingHelixStateInfo::status_
Result status_
Definition: SteppingHelixStateInfo.h:107
SteppingHelixStateInfo::charge
int charge() const
Definition: SteppingHelixStateInfo.h:61
SteppingHelixStateInfo::SteppingHelixStateInfo
SteppingHelixStateInfo()
Definition: SteppingHelixStateInfo.h:38