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