File indexing completed on 2024-04-06 11:56:08
0001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentCorrelationsStore_h
0002 #define Alignment_CommonAlignmentAlgorithm_AlignmentCorrelationsStore_h
0003
0004
0005
0006
0007
0008
0009
0010 #include <map>
0011
0012 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
0013
0014 class Alignable;
0015
0016 class AlignmentCorrelationsStore {
0017 public:
0018 typedef std::map<Alignable*, AlgebraicMatrix> CorrelationsTable;
0019 typedef std::map<Alignable*, CorrelationsTable*> Correlations;
0020
0021 AlignmentCorrelationsStore(void);
0022
0023 virtual ~AlignmentCorrelationsStore(void) {}
0024
0025
0026
0027 virtual void correlations(Alignable* ap1, Alignable* ap2, AlgebraicSymMatrix& cov, int row, int col) const;
0028
0029
0030
0031 virtual void setCorrelations(Alignable* ap1, Alignable* ap2, const AlgebraicSymMatrix& cov, int row, int col);
0032
0033
0034 virtual void setCorrelations(Alignable* ap1, Alignable* ap2, AlgebraicMatrix& mat);
0035
0036
0037 virtual bool correlationsAvailable(Alignable* ap1, Alignable* ap2) const;
0038
0039
0040 virtual void resetCorrelations(void);
0041
0042
0043 virtual unsigned int size(void) const;
0044
0045 private:
0046 void fillCorrelationsTable(Alignable* ap1,
0047 Alignable* ap2,
0048 CorrelationsTable* table,
0049 const AlgebraicSymMatrix& cov,
0050 int row,
0051 int col,
0052 bool transpose);
0053
0054 void fillCovariance(
0055 Alignable* ap1, Alignable* ap2, const AlgebraicMatrix& entry, AlgebraicSymMatrix& cov, int row, int col) const;
0056
0057 void fillCovarianceT(
0058 Alignable* ap1, Alignable* ap2, const AlgebraicMatrix& entry, AlgebraicSymMatrix& cov, int row, int col) const;
0059
0060 void readFromCovariance(
0061 Alignable* ap1, Alignable* ap2, AlgebraicMatrix& entry, const AlgebraicSymMatrix& cov, int row, int col);
0062
0063 void readFromCovarianceT(
0064 Alignable* ap1, Alignable* ap2, AlgebraicMatrix& entry, const AlgebraicSymMatrix& cov, int row, int col);
0065
0066 Correlations theCorrelations;
0067 };
0068
0069 #endif