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 
91 
92 // for AlgebraicVector, -Matrix and -SymMatrix:
97 
98 #include <vector>
99 
101 
102 
104 {
105 
106 public:
107 
109 
112 
114 
115  bool isValid() { return theValidityFlag; }
116 
119  const AlgebraicVector& measurements() const { return theMeasurements; }
120 
124 
129 
133 
137  const AlgebraicMatrix& derivatives() const { return theDerivatives; }
138 
145 
148  std::vector<std::pair<std::vector<gbl::GblPoint>, TMatrixD> >& gblInput() { return theGblInput; }
149 
152  const TMatrixD& gblExtDerivatives() const { return theGblExtDerivatives; }
153 
156  const TVectorD& gblExtMeasurements() const { return theGblExtMeasurements; }
157 
160  const TVectorD& gblExtPrecisions() const { return theGblExtPrecisions; }
161 
162 
165  const AlgebraicVector& parameters() const { return theParameters; }
166 
169  inline bool parameterErrorsAvailable() const { return theParamCovFlag; }
170 
174 
177  inline const AlgebraicSymMatrix& parameterErrors() const { return theParameterCov; }
178 
181  const std::vector<TrajectoryStateOnSurface>& trajectoryStates() const { return theTsosVec; }
182 
187 
188  inline unsigned int numberOfHits() const { return theNumberOfHits; }
189  inline unsigned int numberOfPar() const { return theNumberOfPars; }
190  inline unsigned int numberOfVirtualMeas() const { return theNumberOfVirtualMeas; }
191  inline unsigned int numberOfVirtualPar() const { return theNumberOfVirtualPars; }
192  inline unsigned int numberOfHitMeas() const { return theNumberOfHits * nMeasPerHit; }
193  inline int nominalField() const { return theNomField; }
194 
195  virtual ReferenceTrajectoryBase* clone() const = 0;
196 
197 protected:
198 
199  explicit ReferenceTrajectoryBase(unsigned int nPar, unsigned int nHits,
200  unsigned int nVirtualPar, unsigned int nVirtualMeas);
201 
203  bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer& hitPtr) const;
204 
207 
208  unsigned int theNumberOfHits; // number of (measurements from) hits
209  unsigned int theNumberOfPars; // number of (track) parameters
210  unsigned int theNumberOfVirtualMeas; // number of virtual measurements
211  unsigned int theNumberOfVirtualPars; // number of parameters for virtual measurements
212 
213  std::vector<TrajectoryStateOnSurface> theTsosVec;
215 
218 
221 
224 
226 
227 // CHK for beamspot transformation trajectory parameter to curvilinear at refTSos
229 // CHK for TwoBodyD. transformation local to trajectory parameter at refTsos
231 // CHK GBL input: list of (list of points on trajectory and transformation at inner (first) point)
232  std::vector<std::pair<std::vector<gbl::GblPoint>, TMatrixD> > theGblInput;
234 // CHK GBL TBD: virtual (mass) measurement
238 
239  static const unsigned int nMeasPerHit = 2;
240 };
241 
242 #endif // REFERENCE_TRAJECTORY_BASE_H
243 
ReferenceCountingPointer< ReferenceTrajectoryBase > ReferenceTrajectoryPtr
AlgebraicMatrix theInnerTrajectoryToCurvilinear
unsigned int numberOfHits() const
virtual ReferenceTrajectoryBase * clone() const =0
std::vector< std::pair< std::vector< gbl::GblPoint >, TMatrixD > > & gblInput()
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 TVectorD & gblExtPrecisions() const
const AlgebraicSymMatrix & measurementErrors() const
const AlgebraicSymMatrix & trajectoryPositionErrors() const
AlgebraicSymMatrix theTrajectoryPositionCov
const AlgebraicMatrix & derivatives() const
const AlgebraicSymMatrix & parameterErrors() const
CLHEP::HepMatrix AlgebraicMatrix
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
TransientTrackingRecHit::ConstRecHitContainer theRecHits
std::vector< std::pair< std::vector< gbl::GblPoint >, TMatrixD > > theGblInput
std::vector< ConstRecHitPointer > ConstRecHitContainer
const AlgebraicMatrix & localToTrajectory() const
AlgebraicSymMatrix theMeasurementsCov
unsigned int numberOfUsedRecHits(const TransientTrackingRecHit::ConstRecHitContainer &recHits) const
const AlgebraicVector & parameters() const
CLHEP::HepVector AlgebraicVector
unsigned int numberOfPar() const
const TMatrixD & gblExtDerivatives() const
AlgebraicSymMatrix theParameterCov
unsigned int numberOfVirtualMeas() const
const AlgebraicVector & measurements() const
CLHEP::HepSymMatrix AlgebraicSymMatrix
std::vector< TrajectoryStateOnSurface > theTsosVec
const AlgebraicVector & trajectoryPositions() const
const TVectorD & gblExtMeasurements() const
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
const std::vector< TrajectoryStateOnSurface > & trajectoryStates() const