CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FreeTrajectoryState.h
Go to the documentation of this file.
1 #ifndef _TRACKER_FREETRAJECTORYSTATE_H_
2 #define _TRACKER_FREETRAJECTORYSTATE_H_
3 
4 // base trajectory state class
5 // track parameters and error covariance matrix
6 
12 
13 #include <iosfwd>
14 
15 
18 
19 
30 public:
31 // construst
32 //default constructor - needed for Persistency
33 
36 
37  FreeTrajectoryState(const GlobalTrajectoryParameters& aGlobalParameters) :
38  theGlobalParameters(aGlobalParameters),
40  {}
41 
43  const GlobalVector& aP,
44  TrackCharge aCharge,
45  const MagneticField* fieldProvider) :
46  theGlobalParameters(aX, aP, aCharge, fieldProvider),
48  {}
49 
50 
52  const CurvilinearTrajectoryError& aCurvilinearError) :
53  theGlobalParameters(aGlobalParameters),
54  theCurvilinearError(aCurvilinearError)
55  {}
56 
57 
58 
60  const CartesianTrajectoryError& aCartesianError) :
61  theGlobalParameters(aGlobalParameters)
62  { createCurvilinearError(aCartesianError); }
63 
66  const CurvilinearTrajectoryError& aCurvilinearError) :
67  theGlobalParameters(aGlobalParameters),
68  theCurvilinearError(aCurvilinearError)
69  {}
70 
71 // access
72 // propagate access to parameters
75  }
78  }
79  TrackCharge charge() const {
80  return theGlobalParameters.charge();
81  }
82  double signedInverseMomentum() const {
84  }
85  double transverseCurvature() const {
87  }
88 
89 // direct access
90 
92 
93  bool hasError() const {
94  return hasCurvilinearError();
95  }
96 
97 
99  return theGlobalParameters;
100  }
101 
102 
104  if unlikely(!hasError()) missingError();
105  CartesianTrajectoryError aCartesianError;
106  createCartesianError(aCartesianError);
107  return aCartesianError;
108  }
109 
111  if unlikely(!hasError()) missingError();
112  return theCurvilinearError;
113  }
114 
115  void rescaleError(double factor);
116 
117 
120  }
123  }
124 
126  theCurvilinearError = err;
127  }
130  }
131 
132 private:
133 
134 
135  void missingError() const; // dso_internal;
136 
137 // convert curvilinear errors to cartesian
138  void createCartesianError(CartesianTrajectoryError & aCartesianError) const; // dso_internal;
139 
140 
141 // convert cartesian errors to curvilinear
142  void createCurvilinearError(CartesianTrajectoryError const & aCartesianError) const; // dso_internal;
143 
144 private:
145 
148 
149 };
150 
151 std::ostream& operator<<(std::ostream& os, const FreeTrajectoryState& fts);
152 
153 #endif
CartesianTrajectoryError cartesianError() const
const GlobalTrajectoryParameters & parameters() const
bool hasCurvilinearError() const
void setCartesianError(const AlgebraicSymMatrix66 &err)
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
CurvilinearTrajectoryError theCurvilinearError
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
TrackCharge charge() const
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
const CurvilinearTrajectoryError & curvilinearError() const
void setCurvilinearError(const AlgebraicSymMatrix55 &err)
FreeTrajectoryState(const GlobalTrajectoryParameters &aGlobalParameters, const CartesianTrajectoryError &, const CurvilinearTrajectoryError &aCurvilinearError)
FreeTrajectoryState(const GlobalTrajectoryParameters &aGlobalParameters, const CartesianTrajectoryError &aCartesianError)
#define unlikely(x)
Definition: Likely.h:21
FreeTrajectoryState(const GlobalPoint &aX, const GlobalVector &aP, TrackCharge aCharge, const MagneticField *fieldProvider)
GlobalTrajectoryParameters theGlobalParameters
int TrackCharge
Definition: TrackCharge.h:4
void createCurvilinearError(CartesianTrajectoryError const &aCartesianError) const
FreeTrajectoryState(const GlobalTrajectoryParameters &aGlobalParameters, const CurvilinearTrajectoryError &aCurvilinearError)
GlobalVector momentum() const
void setCurvilinearError(const CurvilinearTrajectoryError &err)
void setCartesianError(const CartesianTrajectoryError &err)
GlobalPoint position() const
void rescaleError(double factor)
void createCartesianError(CartesianTrajectoryError &aCartesianError) const
FreeTrajectoryState(const GlobalTrajectoryParameters &aGlobalParameters)
double transverseCurvature() const
double signedInverseMomentum() const