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