CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/Alignment/CommonAlignment/interface/AlignmentParametersData.h

Go to the documentation of this file.
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