00001 #ifndef __CINT__ 00002 #ifndef BlockSolver_H 00003 #define BlockSolver_H 00004 00005 #include <map> 00006 #include <string> 00007 #include <vector> 00008 00009 #include "CLHEP/Matrix/GenMatrix.h" 00010 #include "CLHEP/Matrix/Matrix.h" 00011 #include "CLHEP/Matrix/Vector.h" 00012 #include "CLHEP/Random/RandGaussQ.h" 00013 00014 #include "Calibration/Tools/interface/InvMatrixCommonDefs.h" 00015 00025 struct BlockSolver 00026 { 00027 int operator () (const CLHEP::HepMatrix & matrix, 00028 const CLHEP::HepVector & vector, 00029 CLHEP::HepVector & result) ; 00030 00031 private : 00032 00034 void shrink (const CLHEP::HepMatrix & matrix, 00035 CLHEP::HepMatrix & solution, 00036 const CLHEP::HepVector & result, 00037 CLHEP::HepVector & input, 00038 const std::vector<int> & where) ; 00040 void pour (CLHEP::HepVector & result, 00041 const CLHEP::HepVector & output, 00042 const std::vector<int> & where) ; 00043 00044 } ; 00045 00046 00047 #endif 00048 #endif 00049