Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef CalibCalorimetry_HBHERecalibration_h
0002 #define CalibCalorimetry_HBHERecalibration_h
0003 
0004 #include "CondFormats/HcalObjects/interface/HBHEDarkening.h"
0005 
0006 #include <vector>
0007 #include <string>
0008 
0009 // Simple recalibration algorithm for radiation damage to HB and HE

0010 // produces response correction for a depth based on average of darkening per layer, weighted by mean energy per layer

0011 // (a depth can contain several layers)

0012 // (mean energy per layer derived from 50 GeV single pion scan in MC)

0013 
0014 class HBHERecalibration {
0015 public:
0016   HBHERecalibration(float intlumi, float cutoff, std::string meanenergies);
0017   ~HBHERecalibration();
0018 
0019   //accessors

0020   float getCorr(int ieta, int depth) const;
0021   void setup(const std::vector<std::vector<int>>& m_segmentation, const HBHEDarkening* darkening);
0022   int maxDepth() const { return max_depth_; }
0023 
0024 private:
0025   //helper

0026   void initialize();
0027 
0028   //members

0029   float intlumi_;
0030   float cutoff_;
0031   int ieta_shift_;
0032   int max_depth_;
0033   std::vector<std::vector<float>> meanenergies_;
0034   const HBHEDarkening* darkening_;
0035   std::vector<std::vector<int>> dsegm_;
0036   std::vector<std::vector<float>> corr_;
0037 };
0038 
0039 #endif  // HBHERecalibration_h