CMS 3D CMS Logo

BlockSolver.h
Go to the documentation of this file.
1 #ifndef __CINT__
2 #ifndef BlockSolver_H
3 #define BlockSolver_H
4 
5 #include <map>
6 #include <string>
7 #include <vector>
8 
9 #include "CLHEP/Matrix/GenMatrix.h"
10 #include "CLHEP/Matrix/Matrix.h"
11 #include "CLHEP/Matrix/Vector.h"
12 #include "CLHEP/Random/RandGaussQ.h"
13 
15 
21 struct BlockSolver {
22  int operator()(const CLHEP::HepMatrix& matrix, const CLHEP::HepVector& vector, CLHEP::HepVector& result);
23 
24 private:
26  void shrink(const CLHEP::HepMatrix& matrix,
27  CLHEP::HepMatrix& solution,
28  const CLHEP::HepVector& result,
29  CLHEP::HepVector& input,
30  const std::vector<int>& where);
32  void pour(CLHEP::HepVector& result, const CLHEP::HepVector& output, const std::vector<int>& where);
33 };
34 
35 #endif
36 #endif
void shrink(const CLHEP::HepMatrix &matrix, CLHEP::HepMatrix &solution, const CLHEP::HepVector &result, CLHEP::HepVector &input, const std::vector< int > &where)
eliminate empty columns and rows
Definition: BlockSolver.cc:36
static std::string const input
Definition: EdmProvDump.cc:50
int operator()(const CLHEP::HepMatrix &matrix, const CLHEP::HepVector &vector, CLHEP::HepVector &result)
Definition: BlockSolver.cc:6
solves at best the matrix invertion for calibration
Definition: BlockSolver.h:21
void pour(CLHEP::HepVector &result, const CLHEP::HepVector &output, const std::vector< int > &where)
pour results in bigger vector
Definition: BlockSolver.cc:69