CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentExtendedCorrelationsStore_h
00002 #define Alignment_CommonAlignmentAlgorithm_AlignmentExtendedCorrelationsStore_h
00003 
00011 
00012 
00013 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignmentCorrelationsStore.h"
00014 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignmentExtendedCorrelationsEntry.h"
00015 
00016 namespace edm { class ParameterSet; }
00017 
00018 class AlignmentExtendedCorrelationsStore : public AlignmentCorrelationsStore
00019 {
00020 
00021 public:
00022 
00023   typedef AlignmentExtendedCorrelationsEntry ExtendedCorrelationsEntry;
00024   typedef std::map< Alignable*, ExtendedCorrelationsEntry > ExtendedCorrelationsTable;
00025   typedef std::map< Alignable*, ExtendedCorrelationsTable* > ExtendedCorrelations;
00026 
00027   AlignmentExtendedCorrelationsStore( const edm::ParameterSet& config );
00028 
00029   virtual ~AlignmentExtendedCorrelationsStore( void ) {}
00030 
00033   virtual void correlations( Alignable* ap1, Alignable* ap2,
00034                              AlgebraicSymMatrix& cov, int row, int col ) const;
00035 
00038   virtual void setCorrelations( Alignable* ap1, Alignable* ap2,
00039                                 const AlgebraicSymMatrix& cov, int row, int col );
00040 
00043   virtual void setCorrelations( Alignable* ap1, Alignable* ap2, AlgebraicMatrix& mat );
00044 
00046   virtual void getCorrelations( Alignable* ap1, Alignable* ap2, AlgebraicMatrix& mat ) const;
00047 
00049   virtual bool correlationsAvailable( Alignable* ap1, Alignable* ap2 ) const;
00050 
00052   virtual void resetCorrelations( void );
00053 
00055   virtual unsigned int size( void ) const;
00056 
00057 protected:
00058 
00059   virtual void fillCorrelationsTable( Alignable* ap1, Alignable* ap2,
00060                                       ExtendedCorrelationsTable* table,
00061                                       const AlgebraicSymMatrix& cov,
00062                                       int row, int col, bool transpose );
00063 
00064   virtual void fillCovariance( Alignable* ap1, Alignable* ap2, const ExtendedCorrelationsEntry& entry,
00065                                AlgebraicSymMatrix& cov, int row, int col ) const;
00066 
00067   virtual void fillCovarianceT( Alignable* ap1, Alignable* ap2, const ExtendedCorrelationsEntry& entry,
00068                                 AlgebraicSymMatrix& cov, int row, int col ) const;
00069 
00070   virtual void readFromCovariance( Alignable* ap1, Alignable* ap2, ExtendedCorrelationsEntry& entry,
00071                                    const AlgebraicSymMatrix& cov, int row, int col );
00072 
00073   virtual void readFromCovarianceT( Alignable* ap1, Alignable* ap2, ExtendedCorrelationsEntry& entry,
00074                                     const AlgebraicSymMatrix& cov, int row, int col );
00075 
00076   void resizeCorruptCorrelations( ExtendedCorrelationsEntry& entry, double maxCorr );
00077 
00078   ExtendedCorrelations theCorrelations;
00079 
00080   int theMaxUpdates;
00081   double theCut;
00082   double theWeight;
00083 
00084 };
00085 
00086 #endif