Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:59:28

0001 #ifndef __CINT__
0002 #ifndef BlockSolver_H
0003 #define BlockSolver_H
0004 
0005 #include <map>
0006 #include <string>
0007 #include <vector>
0008 
0009 #include "CLHEP/Matrix/GenMatrix.h"
0010 #include "CLHEP/Matrix/Matrix.h"
0011 #include "CLHEP/Matrix/Vector.h"
0012 #include "CLHEP/Random/RandGaussQ.h"
0013 
0014 #include "Calibration/Tools/interface/InvMatrixCommonDefs.h"
0015 
0016 /** \class BlockSolver
0017  
0018     \brief solves at best the matrix invertion for calibration 
0019 
0020 */
0021 struct BlockSolver {
0022   int operator()(const CLHEP::HepMatrix& matrix, const CLHEP::HepVector& vector, CLHEP::HepVector& result);
0023 
0024 private:
0025   //! eliminate empty columns and rows
0026   void shrink(const CLHEP::HepMatrix& matrix,
0027               CLHEP::HepMatrix& solution,
0028               const CLHEP::HepVector& result,
0029               CLHEP::HepVector& input,
0030               const std::vector<int>& where);
0031   //! pour results in bigger vector
0032   void pour(CLHEP::HepVector& result, const CLHEP::HepVector& output, const std::vector<int>& where);
0033 };
0034 
0035 #endif
0036 #endif