File indexing completed on 2024-04-06 11:56:05
0001 #ifndef Alignment_CommonAlignment_AlignmentParametersData_h
0002 #define Alignment_CommonAlignment_AlignmentParametersData_h
0003
0004 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
0005 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
0006
0007 class AlignmentParametersData : public ReferenceCounted {
0008 public:
0009 typedef ReferenceCountingPointer<AlignmentParametersData> DataContainer;
0010
0011
0012 AlignmentParametersData(void);
0013
0014
0015
0016 AlignmentParametersData(AlgebraicVector* param, AlgebraicSymMatrix* cov, std::vector<bool>* sel);
0017
0018
0019 AlignmentParametersData(const AlgebraicVector& param, const AlgebraicSymMatrix& cov, const std::vector<bool>& sel);
0020
0021
0022
0023 AlignmentParametersData(AlgebraicVector* param, AlgebraicSymMatrix* cov);
0024
0025
0026 AlignmentParametersData(const AlgebraicVector& param, const AlgebraicSymMatrix& cov);
0027
0028 ~AlignmentParametersData(void) override;
0029
0030
0031 const AlgebraicVector& parameters(void) const { return *theParameters; }
0032
0033
0034 const AlgebraicSymMatrix& covariance(void) const { return *theCovariance; }
0035
0036
0037 const std::vector<bool>& selector(void) const { return *theSelector; }
0038
0039
0040 int numSelected(void) { return theNumSelected; }
0041
0042
0043
0044
0045 void checkConsistency(void) const;
0046
0047 private:
0048 AlgebraicVector* theParameters;
0049 AlgebraicSymMatrix* theCovariance;
0050 std::vector<bool>* theSelector;
0051 int theNumSelected;
0052 };
0053
0054 #endif