00001 #ifndef Alignment_CommonAlignment_AlignmentParametersData_h 00002 #define Alignment_CommonAlignment_AlignmentParametersData_h 00003 00004 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h" 00005 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h" 00006 00007 class AlignmentParametersData : public ReferenceCounted 00008 { 00009 00010 public: 00011 00012 typedef ReferenceCountingPointer<AlignmentParametersData> DataContainer; 00013 00015 AlignmentParametersData( void ); 00016 00019 AlignmentParametersData( AlgebraicVector* param, 00020 AlgebraicSymMatrix* cov, 00021 std::vector<bool>* sel ); 00022 00024 AlignmentParametersData( const AlgebraicVector& param, 00025 const AlgebraicSymMatrix& cov, 00026 const std::vector<bool>& sel ); 00027 00030 AlignmentParametersData( AlgebraicVector* param, 00031 AlgebraicSymMatrix* cov ); 00032 00034 AlignmentParametersData( const AlgebraicVector& param, 00035 const AlgebraicSymMatrix& cov ); 00036 00037 ~AlignmentParametersData( void ); 00038 00040 const AlgebraicVector& parameters( void ) const { return *theParameters; } 00041 00043 const AlgebraicSymMatrix& covariance( void ) const { return *theCovariance; } 00044 00046 const std::vector<bool>& selector( void ) const { return *theSelector; } 00047 00049 int numSelected( void ) { return theNumSelected; } 00050 00054 void checkConsistency( void ) const; 00055 00056 private: 00057 00058 AlgebraicVector* theParameters; 00059 AlgebraicSymMatrix* theCovariance; 00060 std::vector<bool>* theSelector; 00061 int theNumSelected; 00062 }; 00063 00064 #endif