Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:47

0001 #ifndef CalibCalorimetry_EnergyResolutionVsLumi_H
0002 #define CalibCalorimetry_EnergyResolutionVsLumi_H
0003 // system include files
0004 
0005 #include <vector>
0006 #include <typeinfo>
0007 #include <string>
0008 #include <map>
0009 
0010 #include <ctime>
0011 #include <cstdio>
0012 
0013 #include <cmath>
0014 
0015 #include "SimG4CMS/Calo/interface/EvolutionECAL.h"
0016 #include "DataFormats/DetId/interface/DetId.h"
0017 
0018 class EnergyResolutionVsLumi {
0019 public:
0020   EnergyResolutionVsLumi();
0021 
0022   EnergyResolutionVsLumi(double lumi, double instlumi) {
0023     m_lumi = lumi;
0024     m_instlumi = instlumi;
0025     calcmuTot();
0026   };
0027 
0028   ~EnergyResolutionVsLumi() = default;
0029 
0030   struct DegradationAtEta {
0031     double eta;
0032     double muEM;
0033     double muHD;
0034     double ampDropTransparency;
0035     double ampDropPhotoDetector;
0036     double ampDropTotal;
0037     double noiseIncreaseADC;
0038     double resolutitonConstantTerm;
0039   };
0040 
0041   DegradationAtEta CalculateDegradation(double eta);
0042   double Resolution(double eta, double ene);
0043   //void Decomposition();
0044 
0045   void setLumi(double x) { m_lumi = x; };
0046   void setInstLumi(double x) { m_instlumi = x; };
0047   void setLumies(double x, double y) { m_lumi = x, m_instlumi = y, calcmuTot(); };
0048 
0049   double calcmuEM(double eta);
0050   double calcmuHD(double eta);
0051   double calcampDropTransparency(double eta);
0052   double calcampDropPhotoDetector(double eta);
0053   double calcampDropTotal(double eta);
0054   double calcnoiseIncreaseADC(double eta);
0055   double calcnoiseADC(double eta);
0056   double calcresolutitonConstantTerm(double eta);
0057 
0058   double calcLightCollectionEfficiencyWeighted(DetId id, double z);
0059 
0060   double calcLightCollectionEfficiencyWeighted2(double eta, double z, double mu_ind = -1.0);
0061   double calcmuTot(double eta);
0062   void calcmuTot();
0063   double getmuTot(double eta, int ix, int iy);
0064 
0065 private:
0066   double m_lumi;
0067   double m_instlumi;
0068   double mu_eta[10085];
0069   double vpt_eta[10085];
0070 };
0071 
0072 #endif