CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ReferenceTrajectoryBase.h
Go to the documentation of this file.
1 #ifndef Alignment_ReferenceTrajectories_ReferenceTrajectoryBase_H
2 #define Alignment_ReferenceTrajectories_ReferenceTrajectoryBase_H
3 
85 
86 // for AlgebraicVector, -Matrix and -SymMatrix:
91 
92 #include <vector>
93 
95 {
96 
97 public:
98 
100 
103 
105 
106  bool isValid() { return theValidityFlag; }
107 
110  const AlgebraicVector& measurements() const { return theMeasurements; }
111 
115 
120 
124 
128  const AlgebraicMatrix& derivatives() const { return theDerivatives; }
129 
136 
139  const AlgebraicVector& parameters() const { return theParameters; }
140 
143  inline bool parameterErrorsAvailable() const { return theParamCovFlag; }
144 
148 
151  inline const AlgebraicSymMatrix& parameterErrors() const { return theParameterCov; }
152 
155  const std::vector<TrajectoryStateOnSurface>& trajectoryStates() const { return theTsosVec; }
156 
161 
162  inline unsigned int numberOfHits() const { return theNumberOfHits; }
163  inline unsigned int numberOfPar() const { return theNumberOfPars; }
164  inline unsigned int numberOfVirtualMeas() const { return theNumberOfVirtualMeas; }
165  inline unsigned int numberOfVirtualPar() const { return theNumberOfVirtualPars; }
166  inline unsigned int numberOfHitMeas() const { return theNumberOfHits * nMeasPerHit; }
167 
168  virtual ReferenceTrajectoryBase* clone() const = 0;
169 
170 protected:
171 
172  explicit ReferenceTrajectoryBase(unsigned int nPar, unsigned int nHits,
173  unsigned int nVirtualPar, unsigned int nVirtualMeas);
174 
176  bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer& hitPtr) const;
177 
180 
181  unsigned int theNumberOfHits; // number of (measurements from) hits
182  unsigned int theNumberOfPars; // number of (track) parameters
183  unsigned int theNumberOfVirtualMeas; // number of virtual measurements
184  unsigned int theNumberOfVirtualPars; // number of parameters for virtual measurements
185 
186  std::vector<TrajectoryStateOnSurface> theTsosVec;
188 
191 
194 
197 
199 
200 // CHK for beamspot transformation trajectory parameter to curvilinear at refTSos
202 // CHK for TwoBodyD. transformation local to trajectory parameter at refTsos
204 
205  static const unsigned int nMeasPerHit = 2;
206 };
207 
208 #endif // REFERENCE_TRAJECTORY_BASE_H
209 
ReferenceCountingPointer< ReferenceTrajectoryBase > ReferenceTrajectoryPtr
AlgebraicMatrix theInnerTrajectoryToCurvilinear
unsigned int numberOfHits() const
virtual ReferenceTrajectoryBase * clone() const =0
AlgebraicMatrix theInnerLocalToTrajectory
static const unsigned int nMeasPerHit
ReferenceTrajectoryBase(unsigned int nPar, unsigned int nHits, unsigned int nVirtualPar, unsigned int nVirtualMeas)
void setParameterErrors(const AlgebraicSymMatrix &error)
const AlgebraicMatrix & trajectoryToCurv() const
unsigned int numberOfHitMeas() const
const TransientTrackingRecHit::ConstRecHitContainer & recHits() const
unsigned int numberOfVirtualPar() const
const AlgebraicSymMatrix & measurementErrors() const
const AlgebraicSymMatrix & trajectoryPositionErrors() const
AlgebraicSymMatrix theTrajectoryPositionCov
const AlgebraicMatrix & derivatives() const
const AlgebraicSymMatrix & parameterErrors() const
CLHEP::HepMatrix AlgebraicMatrix
TransientTrackingRecHit::ConstRecHitContainer theRecHits
const AlgebraicMatrix & localToTrajectory() const
AlgebraicSymMatrix theMeasurementsCov
std::vector< ConstRecHitPointer > ConstRecHitContainer
unsigned int numberOfUsedRecHits(const TransientTrackingRecHit::ConstRecHitContainer &recHits) const
const AlgebraicVector & parameters() const
CLHEP::HepVector AlgebraicVector
unsigned int numberOfPar() const
AlgebraicSymMatrix theParameterCov
unsigned int numberOfVirtualMeas() const
const AlgebraicVector & measurements() const
CLHEP::HepSymMatrix AlgebraicSymMatrix
std::vector< TrajectoryStateOnSurface > theTsosVec
const AlgebraicVector & trajectoryPositions() const
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
const std::vector< TrajectoryStateOnSurface > & trajectoryStates() const