Go to the documentation of this file.00001 #ifndef __CINT__
00002 #ifndef EcalCalibBlock_H
00003 #define EcalCalibBlock_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 #include "Calibration/EcalCalibAlgos/interface/VEcalCalibBlock.h"
00016
00026 class IMACalibBlock : public VEcalCalibBlock
00027 {
00028 public :
00030 IMACalibBlock (const int) ;
00032 ~IMACalibBlock () ;
00033
00035 void Fill (std::map<int,double>::const_iterator,
00036 std::map<int,double>::const_iterator,
00037 double pTk,
00038 double pSubtract,
00039 double sigma = 1.) ;
00040
00042 void reset () ;
00044 int solve (int usingBlockSolver, double min, double max) ;
00045 private :
00046
00048 int evalX2Size () ;
00050 void complete () ;
00052 void riempiMtr (const std::vector<double> & piena, CLHEP::HepMatrix & vuota) ;
00054 void riempiVtr (const std::vector<double> & pieno, CLHEP::HepVector & vuoto) ;
00056 void fillMap (const CLHEP::HepVector & result) ;
00057
00058 private :
00059
00061 std::vector<double> m_kaliVector ;
00063 std::vector<double> m_kaliMatrix ;
00064 } ;
00065
00066
00067 #endif
00068 #endif
00069