Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:32:58

0001 #ifndef EgammaObjects_h
0002 #define EgammaObjects_h
0003 
0004 #include <string>
0005 
0006 #include "FWCore/Framework/interface/Event.h"
0007 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0008 #include "FWCore/Framework/interface/Frameworkfwd.h"
0009 #include "FWCore/Framework/interface/MakerMacros.h"
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 
0012 #include "DQMServices/Core/interface/DQMStore.h"
0013 
0014 #include "DataFormats/EgammaCandidates/interface/Photon.h"
0015 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
0016 
0017 #include "TFile.h"
0018 #include "TH1D.h"
0019 #include "TH2D.h"
0020 
0021 namespace edm {
0022   class HepMCProduct;
0023 }
0024 
0025 class EgammaObjects : public edm::one::EDAnalyzer<> {
0026 public:
0027   explicit EgammaObjects(const edm::ParameterSet&);
0028   ~EgammaObjects() override;
0029 
0030   void analyze(const edm::Event&, const edm::EventSetup&) override;
0031   void beginJob() override;
0032   void endJob() override;
0033 
0034 private:
0035   TFile* rootFile_;
0036 
0037   edm::EDGetTokenT<edm::HepMCProduct> MCTruthCollectionT_;
0038   edm::EDGetTokenT<reco::GsfElectronCollection> RecoCollectionT_;
0039 
0040   int particleID;
0041   std::string particleString;
0042 
0043   int EtCut;
0044 
0045   double hist_min_Et_;
0046   double hist_max_Et_;
0047   int hist_bins_Et_;
0048 
0049   double hist_min_E_;
0050   double hist_max_E_;
0051   int hist_bins_E_;
0052 
0053   double hist_min_Eta_;
0054   double hist_max_Eta_;
0055   int hist_bins_Eta_;
0056 
0057   double hist_min_Phi_;
0058   double hist_max_Phi_;
0059   int hist_bins_Phi_;
0060 
0061   double hist_min_EtOverTruth_;
0062   double hist_max_EtOverTruth_;
0063   int hist_bins_EtOverTruth_;
0064 
0065   double hist_min_EOverTruth_;
0066   double hist_max_EOverTruth_;
0067   int hist_bins_EOverTruth_;
0068 
0069   double hist_min_EtaOverTruth_;
0070   double hist_max_EtaOverTruth_;
0071   int hist_bins_EtaOverTruth_;
0072 
0073   double hist_min_PhiOverTruth_;
0074   double hist_max_PhiOverTruth_;
0075   int hist_bins_PhiOverTruth_;
0076 
0077   double hist_min_deltaEta_;
0078   double hist_max_deltaEta_;
0079   int hist_bins_deltaEta_;
0080 
0081   double hist_min_deltaPhi_;
0082   double hist_max_deltaPhi_;
0083   int hist_bins_deltaPhi_;
0084 
0085   double hist_min_recoMass_;
0086   double hist_max_recoMass_;
0087   int hist_bins_recoMass_;
0088 
0089   TH1D* hist_Et_;
0090   TH1D* hist_EtOverTruth_;
0091   TH1D* hist_EtEfficiency_;
0092   TH1D* hist_EtNumRecoOverNumTrue_;
0093   TH1D* hist_EtOverTruthVsEt_;
0094   TH1D* hist_EtOverTruthVsE_;
0095   TH1D* hist_EtOverTruthVsEta_;
0096   TH1D* hist_EtOverTruthVsPhi_;
0097   TH1D* hist_resolutionEtVsEt_;
0098   TH1D* hist_resolutionEtVsE_;
0099   TH1D* hist_resolutionEtVsEta_;
0100   TH1D* hist_resolutionEtVsPhi_;
0101 
0102   TH1D* hist_E_;
0103   TH1D* hist_EOverTruth_;
0104   TH1D* hist_EEfficiency_;
0105   TH1D* hist_ENumRecoOverNumTrue_;
0106   TH1D* hist_EOverTruthVsEt_;
0107   TH1D* hist_EOverTruthVsE_;
0108   TH1D* hist_EOverTruthVsEta_;
0109   TH1D* hist_EOverTruthVsPhi_;
0110   TH1D* hist_resolutionEVsEt_;
0111   TH1D* hist_resolutionEVsE_;
0112   TH1D* hist_resolutionEVsEta_;
0113   TH1D* hist_resolutionEVsPhi_;
0114 
0115   TH1D* hist_Eta_;
0116   TH1D* hist_EtaOverTruth_;
0117   TH1D* hist_EtaEfficiency_;
0118   TH1D* hist_EtaNumRecoOverNumTrue_;
0119   TH1D* hist_deltaEtaVsEt_;
0120   TH1D* hist_deltaEtaVsE_;
0121   TH1D* hist_deltaEtaVsEta_;
0122   TH1D* hist_deltaEtaVsPhi_;
0123   TH1D* hist_resolutionEtaVsEt_;
0124   TH1D* hist_resolutionEtaVsE_;
0125   TH1D* hist_resolutionEtaVsEta_;
0126   TH1D* hist_resolutionEtaVsPhi_;
0127 
0128   TH1D* hist_Phi_;
0129   TH1D* hist_PhiOverTruth_;
0130   TH1D* hist_PhiEfficiency_;
0131   TH1D* hist_PhiNumRecoOverNumTrue_;
0132   TH1D* hist_deltaPhiVsEt_;
0133   TH1D* hist_deltaPhiVsE_;
0134   TH1D* hist_deltaPhiVsEta_;
0135   TH1D* hist_deltaPhiVsPhi_;
0136   TH1D* hist_resolutionPhiVsEt_;
0137   TH1D* hist_resolutionPhiVsE_;
0138   TH1D* hist_resolutionPhiVsEta_;
0139   TH1D* hist_resolutionPhiVsPhi_;
0140 
0141   TH1D* hist_All_recoMass_;
0142   TH1D* hist_BarrelOnly_recoMass_;
0143   TH1D* hist_EndcapOnly_recoMass_;
0144   TH1D* hist_Mixed_recoMass_;
0145 
0146   TH1D* hist_recoMass_withBackgroud_NoEtCut_;
0147   TH1D* hist_recoMass_withBackgroud_5EtCut_;
0148   TH1D* hist_recoMass_withBackgroud_10EtCut_;
0149   TH1D* hist_recoMass_withBackgroud_20EtCut_;
0150 
0151   TH2D* _TEMP_scatterPlot_EtOverTruthVsEt_;
0152   TH2D* _TEMP_scatterPlot_EtOverTruthVsE_;
0153   TH2D* _TEMP_scatterPlot_EtOverTruthVsEta_;
0154   TH2D* _TEMP_scatterPlot_EtOverTruthVsPhi_;
0155 
0156   TH2D* _TEMP_scatterPlot_EOverTruthVsEt_;
0157   TH2D* _TEMP_scatterPlot_EOverTruthVsE_;
0158   TH2D* _TEMP_scatterPlot_EOverTruthVsEta_;
0159   TH2D* _TEMP_scatterPlot_EOverTruthVsPhi_;
0160 
0161   TH2D* _TEMP_scatterPlot_deltaEtaVsEt_;
0162   TH2D* _TEMP_scatterPlot_deltaEtaVsE_;
0163   TH2D* _TEMP_scatterPlot_deltaEtaVsEta_;
0164   TH2D* _TEMP_scatterPlot_deltaEtaVsPhi_;
0165 
0166   TH2D* _TEMP_scatterPlot_deltaPhiVsEt_;
0167   TH2D* _TEMP_scatterPlot_deltaPhiVsE_;
0168   TH2D* _TEMP_scatterPlot_deltaPhiVsEta_;
0169   TH2D* _TEMP_scatterPlot_deltaPhiVsPhi_;
0170 
0171   void loadCMSSWObjects(const edm::ParameterSet& ps);
0172   void loadHistoParameters(const edm::ParameterSet& ps);
0173 
0174   void createBookedHistoObjects();
0175   void createTempHistoObjects();
0176 
0177   void analyzePhotons(const edm::Event&, const edm::EventSetup&);
0178   void analyzeElectrons(const edm::Event&, const edm::EventSetup&);
0179 
0180   void getEfficiencyHistosViaDividing();
0181   void getDeltaResHistosViaSlicing();
0182   void fitHistos();
0183 
0184   void applyLabels();
0185   void setDrawOptions();
0186   void saveHistos();
0187 
0188   double findRecoMass(const reco::Photon& pOne, const reco::Photon& pTwo);
0189   double findRecoMass(const reco::GsfElectron& eOne, const reco::GsfElectron& eTwo);
0190 
0191   float ecalEta(float EtaParticle, float Zvertex, float plane_Radius);
0192 };
0193 #endif