00001 #ifndef GetLumi_H 00002 #define GetLumi_H 00003 00004 // system include files 00005 #include <memory> 00006 00007 // user include files 00008 #include "FWCore/Framework/interface/Frameworkfwd.h" 00009 #include "FWCore/Framework/interface/EDAnalyzer.h" 00010 00011 #include "FWCore/Framework/interface/Event.h" 00012 #include "FWCore/Framework/interface/MakerMacros.h" 00013 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 00016 class GetLumi 00017 { 00018 public: 00019 00020 enum SQRT_S{ 00021 SQRT_S_7TeV, 00022 SQRT_S_8TeV 00023 }; 00024 00025 static const unsigned int NUM_BX = 3564; 00026 static constexpr double FREQ_ORBIT = 11246.; // Hz 00027 static constexpr double SECONDS_PER_LS = double(0x40000)/double(FREQ_ORBIT); 00028 00029 static constexpr double INELASTIC_XSEC_7TeV = 68.0; // mb 00030 static constexpr double INELASTIC_XSEC_8TeV = 69.3; // mb 00031 00032 GetLumi(const edm::ParameterSet&); 00033 GetLumi(const edm::InputTag&, double); 00034 virtual ~GetLumi(); 00035 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); 00036 00037 double getRawValue(const edm::Event&); 00038 double getValue (const edm::Event&); 00039 00040 double getRawValue(edm::LuminosityBlock const&,edm::EventSetup const&); 00041 double getValue (edm::LuminosityBlock const&,edm::EventSetup const&); 00042 00043 double convert2PU(double,double); 00044 double convert2PU(double,int); 00045 00046 // ----------member data --------------------------- 00047 edm::InputTag lumiInputTag_; 00048 double lumiScale_; 00049 00050 00051 }; 00052 #endif