L3CalibBlock

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
#ifndef __CINT__
#ifndef L3CalibBlock_H
#define L3CalibBlock_H

#include <map>
#include <string>
#include <vector>

#include "CLHEP/Matrix/GenMatrix.h"
#include "CLHEP/Matrix/Matrix.h"
#include "CLHEP/Matrix/Vector.h"
#include "CLHEP/Random/RandGaussQ.h"

#include "Calibration/Tools/interface/InvMatrixCommonDefs.h"
#include "Calibration/Tools/interface/MinL3Algorithm.h"
#include "Calibration/Tools/interface/MinL3AlgoUniv.h"
#include "Calibration/EcalCalibAlgos/interface/VEcalCalibBlock.h"

/** \class L3CalibBlock
 
    \brief interface to the L3Univ class for testing  

*/
class L3CalibBlock : public VEcalCalibBlock {
public:
  //! ctor
  L3CalibBlock(const int numberOfElements, const int keventweight = 1);
  //! dtor
  ~L3CalibBlock() override;

  //! insert an entry
  void Fill(std::map<int, double>::const_iterator,
            std::map<int, double>::const_iterator,
            double pTk,
            double pSubtract,
            double sigma = 1.) override;

  //! reset the calib objects
  void reset() override;
  //! To retrieve the coefficients
  double at(int);
  //! get the coefficients
  int solve(int usingBlockSolver, double min, double max) override;

private:
  //! the L3 algo
  //    MinL3Algorithm * m_L3Algo ;
  //! the universal L3 algo
  MinL3AlgoUniv<unsigned int>* m_L3AlgoUniv;
};

#endif
#endif