Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:58:39

0001 #ifndef __CINT__
0002 #ifndef L3CalibBlock_H
0003 #define L3CalibBlock_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 #include "Calibration/Tools/interface/MinL3Algorithm.h"
0016 #include "Calibration/Tools/interface/MinL3AlgoUniv.h"
0017 #include "Calibration/EcalCalibAlgos/interface/VEcalCalibBlock.h"
0018 
0019 /** \class L3CalibBlock
0020  
0021     \brief interface to the L3Univ class for testing  
0022 
0023 */
0024 class L3CalibBlock : public VEcalCalibBlock {
0025 public:
0026   //! ctor
0027   L3CalibBlock(const int numberOfElements, const int keventweight = 1);
0028   //! dtor
0029   ~L3CalibBlock() override;
0030 
0031   //! insert an entry
0032   void Fill(std::map<int, double>::const_iterator,
0033             std::map<int, double>::const_iterator,
0034             double pTk,
0035             double pSubtract,
0036             double sigma = 1.) override;
0037 
0038   //! reset the calib objects
0039   void reset() override;
0040   //! To retrieve the coefficients
0041   double at(int);
0042   //! get the coefficients
0043   int solve(int usingBlockSolver, double min, double max) override;
0044 
0045 private:
0046   //! the L3 algo
0047   //    MinL3Algorithm * m_L3Algo ;
0048   //! the universal L3 algo
0049   MinL3AlgoUniv<unsigned int>* m_L3AlgoUniv;
0050 };
0051 
0052 #endif
0053 #endif