Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:34:57

0001 #ifndef __CINT__
0002 #ifndef VEcalCalibBlock_H
0003 #define VEcalCalibBlock_H
0004 
0005 #include <map>
0006 #include <string>
0007 #include <vector>
0008 
0009 /** \class VEcalCalibBlock
0010  
0011     \brief element for the single ECAL block intercalibration  
0012 */
0013 class VEcalCalibBlock {
0014 public:
0015   //! ctor
0016   VEcalCalibBlock(int numberOfElements) : m_numberOfElements(numberOfElements) {}
0017   //! dtor
0018   virtual ~VEcalCalibBlock() {}
0019 
0020   //! insert an entry
0021   virtual void Fill(std::map<int, double>::const_iterator,
0022                     std::map<int, double>::const_iterator,
0023                     double pTk,
0024                     double pSubtract,
0025                     double sigma = 1.) = 0;
0026 
0027   //! reset the chi2 matrices
0028   virtual void reset() = 0;
0029   //! retrieve the coefficients
0030   float at(const unsigned int index) { return m_coefficients[index]; }
0031   //! solve the chi2 linear system
0032   virtual int solve(int usingBlockSolver, double min, double max) = 0;
0033 
0034 protected:
0035   //! The only parameter!
0036   unsigned int m_numberOfElements;
0037   //! map of coefficients
0038   std::map<unsigned int, float> m_coefficients;
0039 };
0040 
0041 #endif
0042 #endif