CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/Alignment/CommonAlignmentAlgorithm/interface/AlignmentCorrelationsStore.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentCorrelationsStore_h
00002 #define Alignment_CommonAlignmentAlgorithm_AlignmentCorrelationsStore_h
00003 
00009 
00010 #include <map>
00011 
00012 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00013 
00014 class Alignable;
00015 
00016 class AlignmentCorrelationsStore
00017 {
00018 
00019 public:
00020 
00021   typedef std::map< Alignable*, AlgebraicMatrix > CorrelationsTable;
00022   typedef std::map< Alignable*, CorrelationsTable* > Correlations;
00023 
00024   AlignmentCorrelationsStore( void );
00025 
00026   virtual ~AlignmentCorrelationsStore( void ) {}
00027 
00030   virtual void correlations( Alignable* ap1, Alignable* ap2,
00031                              AlgebraicSymMatrix& cov, int row, int col ) const;
00032 
00035   virtual void setCorrelations( Alignable* ap1, Alignable* ap2,
00036                                 const AlgebraicSymMatrix& cov, int row, int col );
00037 
00039   virtual void setCorrelations( Alignable* ap1, Alignable* ap2, AlgebraicMatrix& mat );
00040 
00042   virtual bool correlationsAvailable( Alignable* ap1, Alignable* ap2 ) const;
00043 
00045   virtual void resetCorrelations( void );
00046 
00048   virtual unsigned int size( void ) const;
00049 
00050 protected:
00051 
00052   virtual void fillCorrelationsTable( Alignable* ap1, Alignable* ap2, CorrelationsTable* table,
00053                                       const AlgebraicSymMatrix& cov, int row, int col, bool transpose );
00054 
00055   virtual void fillCovariance( Alignable* ap1, Alignable* ap2, const AlgebraicMatrix& entry,
00056                                AlgebraicSymMatrix& cov, int row, int col ) const;
00057 
00058   virtual void fillCovarianceT( Alignable* ap1, Alignable* ap2, const AlgebraicMatrix& entry,
00059                                 AlgebraicSymMatrix& cov, int row, int col ) const;
00060 
00061   virtual void readFromCovariance( Alignable* ap1, Alignable* ap2, AlgebraicMatrix& entry,
00062                                    const AlgebraicSymMatrix& cov, int row, int col );
00063 
00064   virtual void readFromCovarianceT( Alignable* ap1, Alignable* ap2, AlgebraicMatrix& entry,
00065                                     const AlgebraicSymMatrix& cov, int row, int col );
00066 
00067   Correlations theCorrelations;
00068 
00069 };
00070 
00071 #endif