File indexing completed on 2023-03-17 11:28:32
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include "FWCore/Framework/interface/LuminosityBlock.h"
0011 #include "FWCore/Framework/interface/Run.h"
0012 #include "Validation/RecoJets/plugins/JetTesterPostProcessor.h"
0013
0014
0015
0016
0017
0018 JetTesterPostProcessor::JetTesterPostProcessor(const edm::ParameterSet &iConfig) {
0019 inputJetLabelRECO_ = iConfig.getParameter<edm::InputTag>("JetTypeRECO");
0020 inputJetLabelMiniAOD_ = iConfig.getParameter<edm::InputTag>("JetTypeMiniAOD");
0021 }
0022
0023 JetTesterPostProcessor::~JetTesterPostProcessor() {}
0024
0025
0026 void JetTesterPostProcessor::dqmEndJob(DQMStore::IBooker &ibook_, DQMStore::IGetter &iget_) {
0027 std::vector<std::string> subDirVec;
0028 std::string RunDir = "JetMET/JetValidation/";
0029 iget_.setCurrentFolder(RunDir);
0030 jet_dirs = iget_.getSubdirs();
0031 bool found_reco_dir = false;
0032 bool found_miniaod_dir = false;
0033
0034 for (int i = 0; i < int(jet_dirs.size()); i++) {
0035 ibook_.setCurrentFolder(jet_dirs[i]);
0036 if (jet_dirs[i] == (RunDir + inputJetLabelRECO_.label())) {
0037 found_reco_dir = true;
0038 }
0039 if (jet_dirs[i] == (RunDir + inputJetLabelMiniAOD_.label())) {
0040 found_miniaod_dir = true;
0041 }
0042 }
0043 if (found_miniaod_dir && found_reco_dir) {
0044 std::string rundir_reco = RunDir + inputJetLabelRECO_.label();
0045 std::string rundir_miniaod = RunDir + inputJetLabelMiniAOD_.label();
0046
0047 MonitorElement *mGenPt_Reco = iget_.get(rundir_reco + "/" + "GenPt");
0048 MonitorElement *mGenPhi_Reco = iget_.get(rundir_reco + "/" + "GenPhi");
0049 MonitorElement *mGenEta_Reco = iget_.get(rundir_reco + "/" + "GenEta");
0050 MonitorElement *mPt_Reco = iget_.get(rundir_reco + "/" + "Pt");
0051 MonitorElement *mPhi_Reco = iget_.get(rundir_reco + "/" + "Phi");
0052 MonitorElement *mEta_Reco = iget_.get(rundir_reco + "/" + "Eta");
0053 MonitorElement *mCorrJetPt_Reco = iget_.get(rundir_reco + "/" + "CorrJetPt");
0054 MonitorElement *mCorrJetPhi_Reco = iget_.get(rundir_reco + "/" + "CorrJetPhi");
0055 MonitorElement *mCorrJetEta_Reco = iget_.get(rundir_reco + "/" + "CorrJetEta");
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076 MonitorElement *mPtCorrOverReco_Eta_20_40_Reco = iget_.get(rundir_reco + "/" + "PtCorrOverReco_Eta_20_40");
0077 MonitorElement *mPtCorrOverReco_Eta_200_600_Reco = iget_.get(rundir_reco + "/" + "PtCorrOverReco_Eta_200_600");
0078 MonitorElement *mPtCorrOverReco_Eta_1500_3500_Reco = iget_.get(rundir_reco + "/" + "PtCorrOverReco_Eta_1500_3500");
0079 MonitorElement *mPtCorrOverGen_GenEta_40_200_Reco = iget_.get(rundir_reco + "/" + "PtCorrOverGen_GenEta_40_200");
0080 MonitorElement *mPtCorrOverGen_GenEta_600_1500_Reco =
0081 iget_.get(rundir_reco + "/" + "PtCorrOverGen_GenEta_600_1500");
0082 MonitorElement *mDeltaEta_Reco = iget_.get(rundir_reco + "/" + "DeltaEta");
0083 MonitorElement *mDeltaPhi_Reco = iget_.get(rundir_reco + "/" + "DeltaPhi");
0084 MonitorElement *mDeltaPt_Reco = iget_.get(rundir_reco + "/" + "DeltaPt");
0085 MonitorElement *mMjj_Reco = iget_.get(rundir_reco + "/" + "Mjj");
0086 MonitorElement *mNJets40_Reco = iget_.get(rundir_reco + "/" + "NJets");
0087 MonitorElement *mchargedHadronMultiplicity_Reco = iget_.get(rundir_reco + "/" + "chargedHadronMultiplicity");
0088 MonitorElement *mneutralHadronMultiplicity_Reco = iget_.get(rundir_reco + "/" + "neutralHadronMultiplicity");
0089 MonitorElement *mphotonMultiplicity_Reco = iget_.get(rundir_reco + "/" + "photonMultiplicity");
0090 MonitorElement *mphotonEnergyFraction_Reco = iget_.get(rundir_reco + "/" + "photonEnergyFraction");
0091 MonitorElement *mneutralHadronEnergyFraction_Reco = iget_.get(rundir_reco + "/" + "neutralHadronEnergyFraction");
0092 MonitorElement *mchargedHadronEnergyFraction_Reco = iget_.get(rundir_reco + "/" + "chargedHadronEnergyFraction");
0093
0094 std::vector<MonitorElement *> ME_Reco;
0095 ME_Reco.push_back(mGenPt_Reco);
0096 ME_Reco.push_back(mGenPhi_Reco);
0097 ME_Reco.push_back(mGenEta_Reco);
0098 ME_Reco.push_back(mPt_Reco);
0099 ME_Reco.push_back(mPhi_Reco);
0100 ME_Reco.push_back(mEta_Reco);
0101 ME_Reco.push_back(mCorrJetPt_Reco);
0102 ME_Reco.push_back(mCorrJetPhi_Reco);
0103 ME_Reco.push_back(mCorrJetEta_Reco);
0104 ME_Reco.push_back(mPtCorrOverReco_Eta_20_40_Reco);
0105 ME_Reco.push_back(mPtCorrOverReco_Eta_200_600_Reco);
0106 ME_Reco.push_back(mPtCorrOverReco_Eta_1500_3500_Reco);
0107 ME_Reco.push_back(mPtCorrOverGen_GenEta_40_200_Reco);
0108 ME_Reco.push_back(mPtCorrOverGen_GenEta_600_1500_Reco);
0109 ME_Reco.push_back(mDeltaEta_Reco);
0110 ME_Reco.push_back(mDeltaPhi_Reco);
0111 ME_Reco.push_back(mDeltaPt_Reco);
0112 ME_Reco.push_back(mMjj_Reco);
0113 ME_Reco.push_back(mNJets40_Reco);
0114 ME_Reco.push_back(mchargedHadronMultiplicity_Reco);
0115 ME_Reco.push_back(mneutralHadronMultiplicity_Reco);
0116 ME_Reco.push_back(mphotonMultiplicity_Reco);
0117 ME_Reco.push_back(mphotonEnergyFraction_Reco);
0118 ME_Reco.push_back(mneutralHadronEnergyFraction_Reco);
0119 ME_Reco.push_back(mchargedHadronEnergyFraction_Reco);
0120
0121 MonitorElement *mGenPt_MiniAOD = iget_.get(rundir_miniaod + "/" + "GenPt");
0122 MonitorElement *mGenPhi_MiniAOD = iget_.get(rundir_miniaod + "/" + "GenPhi");
0123 MonitorElement *mGenEta_MiniAOD = iget_.get(rundir_miniaod + "/" + "GenEta");
0124 MonitorElement *mPt_MiniAOD = iget_.get(rundir_miniaod + "/" + "Pt");
0125 MonitorElement *mPhi_MiniAOD = iget_.get(rundir_miniaod + "/" + "Phi");
0126 MonitorElement *mEta_MiniAOD = iget_.get(rundir_miniaod + "/" + "Eta");
0127 MonitorElement *mCorrJetPt_MiniAOD = iget_.get(rundir_miniaod + "/" + "CorrJetPt");
0128 MonitorElement *mCorrJetPhi_MiniAOD = iget_.get(rundir_miniaod + "/" + "CorrJetPhi");
0129 MonitorElement *mCorrJetEta_MiniAOD = iget_.get(rundir_miniaod + "/" + "CorrJetEta");
0130 MonitorElement *mPtCorrOverReco_Eta_20_40_MiniAOD = iget_.get(rundir_miniaod + "/" + "PtCorrOverReco_Eta_20_40");
0131 MonitorElement *mPtCorrOverReco_Eta_200_600_MiniAOD =
0132 iget_.get(rundir_miniaod + "/" + "PtCorrOverReco_Eta_200_600");
0133 MonitorElement *mPtCorrOverReco_Eta_1500_3500_MiniAOD =
0134 iget_.get(rundir_miniaod + "/" + "PtCorrOverReco_Eta_1500_3500");
0135 MonitorElement *mPtCorrOverGen_GenEta_40_200_MiniAOD =
0136 iget_.get(rundir_miniaod + "/" + "PtCorrOverGen_GenEta_40_200");
0137 MonitorElement *mPtCorrOverGen_GenEta_600_1500_MiniAOD =
0138 iget_.get(rundir_miniaod + "/" + "PtCorrOverGen_GenEta_600_1500");
0139 MonitorElement *mDeltaEta_MiniAOD = iget_.get(rundir_miniaod + "/" + "DeltaEta");
0140 MonitorElement *mDeltaPhi_MiniAOD = iget_.get(rundir_miniaod + "/" + "DeltaPhi");
0141 MonitorElement *mDeltaPt_MiniAOD = iget_.get(rundir_miniaod + "/" + "DeltaPt");
0142 MonitorElement *mMjj_MiniAOD = iget_.get(rundir_miniaod + "/" + "Mjj");
0143 MonitorElement *mNJets40_MiniAOD = iget_.get(rundir_miniaod + "/" + "NJets");
0144 MonitorElement *mchargedHadronMultiplicity_MiniAOD = iget_.get(rundir_miniaod + "/" + "chargedHadronMultiplicity");
0145 MonitorElement *mneutralHadronMultiplicity_MiniAOD = iget_.get(rundir_miniaod + "/" + "neutralHadronMultiplicity");
0146 MonitorElement *mphotonMultiplicity_MiniAOD = iget_.get(rundir_miniaod + "/" + "photonMultiplicity");
0147 MonitorElement *mphotonEnergyFraction_MiniAOD = iget_.get(rundir_miniaod + "/" + "photonEnergyFraction");
0148 MonitorElement *mneutralHadronEnergyFraction_MiniAOD =
0149 iget_.get(rundir_miniaod + "/" + "neutralHadronEnergyFraction");
0150 MonitorElement *mchargedHadronEnergyFraction_MiniAOD =
0151 iget_.get(rundir_miniaod + "/" + "chargedHadronEnergyFraction");
0152
0153 std::vector<MonitorElement *> ME_MiniAOD;
0154 ME_MiniAOD.push_back(mGenPt_MiniAOD);
0155 ME_MiniAOD.push_back(mGenPhi_MiniAOD);
0156 ME_MiniAOD.push_back(mGenEta_MiniAOD);
0157 ME_MiniAOD.push_back(mPt_MiniAOD);
0158 ME_MiniAOD.push_back(mPhi_MiniAOD);
0159 ME_MiniAOD.push_back(mEta_MiniAOD);
0160 ME_MiniAOD.push_back(mCorrJetPt_MiniAOD);
0161 ME_MiniAOD.push_back(mCorrJetPhi_MiniAOD);
0162 ME_MiniAOD.push_back(mCorrJetEta_MiniAOD);
0163 ME_MiniAOD.push_back(mPtCorrOverReco_Eta_20_40_MiniAOD);
0164 ME_MiniAOD.push_back(mPtCorrOverReco_Eta_200_600_MiniAOD);
0165 ME_MiniAOD.push_back(mPtCorrOverReco_Eta_1500_3500_MiniAOD);
0166 ME_MiniAOD.push_back(mPtCorrOverGen_GenEta_40_200_MiniAOD);
0167 ME_MiniAOD.push_back(mPtCorrOverGen_GenEta_600_1500_MiniAOD);
0168 ME_MiniAOD.push_back(mDeltaEta_MiniAOD);
0169 ME_MiniAOD.push_back(mDeltaPhi_MiniAOD);
0170 ME_MiniAOD.push_back(mDeltaPt_MiniAOD);
0171 ME_MiniAOD.push_back(mMjj_MiniAOD);
0172 ME_MiniAOD.push_back(mNJets40_MiniAOD);
0173 ME_MiniAOD.push_back(mchargedHadronMultiplicity_MiniAOD);
0174 ME_MiniAOD.push_back(mneutralHadronMultiplicity_MiniAOD);
0175 ME_MiniAOD.push_back(mphotonMultiplicity_MiniAOD);
0176 ME_MiniAOD.push_back(mphotonEnergyFraction_MiniAOD);
0177 ME_MiniAOD.push_back(mneutralHadronEnergyFraction_MiniAOD);
0178 ME_MiniAOD.push_back(mchargedHadronEnergyFraction_MiniAOD);
0179
0180 ibook_.setCurrentFolder(RunDir + "MiniAOD_over_RECO");
0181 mGenPt_MiniAOD_over_Reco = ibook_.book1D("GenPt_MiniAOD_over_RECO", (TH1F *)mGenPt_Reco->getRootObject());
0182 mGenPhi_MiniAOD_over_Reco = ibook_.book1D("GenPhi_MiniAOD_over_RECO", (TH1F *)mGenPhi_Reco->getRootObject());
0183 mGenEta_MiniAOD_over_Reco = ibook_.book1D("GenEta_MiniAOD_over_RECO", (TH1F *)mGenEta_Reco->getRootObject());
0184 mPt_MiniAOD_over_Reco = ibook_.book1D("Pt_MiniAOD_over_RECO", (TH1F *)mPt_Reco->getRootObject());
0185 mPhi_MiniAOD_over_Reco = ibook_.book1D("Phi_MiniAOD_over_RECO", (TH1F *)mPhi_Reco->getRootObject());
0186 mEta_MiniAOD_over_Reco = ibook_.book1D("Eta_MiniAOD_over_RECO", (TH1F *)mEta_Reco->getRootObject());
0187 mCorrJetPt_MiniAOD_over_Reco =
0188 ibook_.book1D("CorrJetPt_MiniAOD_over_RECO", (TH1F *)mCorrJetPt_Reco->getRootObject());
0189 mCorrJetPhi_MiniAOD_over_Reco =
0190 ibook_.book1D("CorrJetPhi_MiniAOD_over_RECO", (TH1F *)mCorrJetPhi_Reco->getRootObject());
0191 mCorrJetEta_MiniAOD_over_Reco =
0192 ibook_.book1D("CorrJetEta_MiniAOD_over_RECO", (TH1F *)mCorrJetEta_Reco->getRootObject());
0193
0194
0195 float etarange[91] = {-6.0, -5.8, -5.6, -5.4, -5.2, -5.0, -4.8, -4.6, -4.4, -4.2, -4.0, -3.8, -3.6,
0196 -3.4, -3.2, -3.0, -2.9, -2.8, -2.7, -2.6, -2.5, -2.4, -2.3, -2.2, -2.1, -2.0,
0197 -1.9, -1.8, -1.7, -1.6, -1.5, -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7,
0198 -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
0199 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9,
0200 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.2, 3.4,
0201 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6, 5.8, 6.0};
0202
0203 mPtCorrOverReco_Eta_20_40_MiniAOD_over_Reco =
0204 ibook_.book1D("PtCorrOverReco_Eta_20_40_MiniAOD_over_RECO", "20<genpt<40", 90, etarange);
0205 mPtCorrOverReco_Eta_200_600_MiniAOD_over_Reco =
0206 ibook_.book1D("PtCorrOverReco_Eta_200_600_MiniAOD_over_RECO", "200<genpt<600", 90, etarange);
0207 mPtCorrOverReco_Eta_1500_3500_MiniAOD_over_Reco =
0208 ibook_.book1D("PtCorrOverReco_Eta_1500_3500_MiniAOD_over_RECO", "1500<genpt<3500", 90, etarange);
0209 mPtCorrOverGen_GenEta_40_200_MiniAOD_over_Reco =
0210 ibook_.book1D("PtCorrOverGen_GenEta_40_200_MiniAOD_over_RECO", "40<genpt<200", 90, etarange);
0211 mPtCorrOverGen_GenEta_600_1500_MiniAOD_over_Reco =
0212 ibook_.book1D("PtCorrOverGen_GenEta_600_1500_MiniAOD_over_RECO", "600<genpt<1500", 90, etarange);
0213 mDeltaPt_MiniAOD_over_Reco = ibook_.book1D("DeltaPt_MiniAOD_over_RECO", (TH1F *)mDeltaPt_Reco->getRootObject());
0214 mDeltaPhi_MiniAOD_over_Reco = ibook_.book1D("DeltaPhi_MiniAOD_over_RECO", (TH1F *)mDeltaPhi_Reco->getRootObject());
0215 mDeltaEta_MiniAOD_over_Reco = ibook_.book1D("DeltaEta_MiniAOD_over_RECO", (TH1F *)mDeltaEta_Reco->getRootObject());
0216 mMjj_MiniAOD_over_Reco = ibook_.book1D("Mjj_MiniAOD_over_RECO", (TH1F *)mMjj_Reco->getRootObject());
0217 mNJets40_MiniAOD_over_Reco = ibook_.book1D("NJets_MiniAOD_over_RECO", (TH1F *)mNJets40_Reco->getRootObject());
0218 mchargedHadronMultiplicity_MiniAOD_over_Reco = ibook_.book1D(
0219 "chargedHadronMultiplicity_MiniAOD_over_RECO", (TH1F *)mchargedHadronMultiplicity_Reco->getRootObject());
0220 mneutralHadronMultiplicity_MiniAOD_over_Reco = ibook_.book1D(
0221 "neutralHadronMultiplicity_MiniAOD_over_RECO", (TH1F *)mneutralHadronMultiplicity_Reco->getRootObject());
0222 mphotonMultiplicity_MiniAOD_over_Reco =
0223 ibook_.book1D("photonMultiplicity_MiniAOD_over_RECO", (TH1F *)mphotonMultiplicity_Reco->getRootObject());
0224 mchargedHadronEnergyFraction_MiniAOD_over_Reco = ibook_.book1D(
0225 "chargedHadronEnergyFraction_MiniAOD_over_RECO", (TH1F *)mchargedHadronEnergyFraction_Reco->getRootObject());
0226 mneutralHadronEnergyFraction_MiniAOD_over_Reco = ibook_.book1D(
0227 "neutralHadronEnergyFraction_MiniAOD_over_RECO", (TH1F *)mneutralHadronEnergyFraction_Reco->getRootObject());
0228 mphotonEnergyFraction_MiniAOD_over_Reco =
0229 ibook_.book1D("photonEnergyFraction_MiniAOD_over_RECO", (TH1F *)mphotonEnergyFraction_Reco->getRootObject());
0230
0231 std::vector<MonitorElement *> ME_MiniAOD_over_Reco;
0232 ME_MiniAOD_over_Reco.push_back(mGenPt_MiniAOD_over_Reco);
0233 ME_MiniAOD_over_Reco.push_back(mGenPhi_MiniAOD_over_Reco);
0234 ME_MiniAOD_over_Reco.push_back(mGenEta_MiniAOD_over_Reco);
0235 ME_MiniAOD_over_Reco.push_back(mPt_MiniAOD_over_Reco);
0236 ME_MiniAOD_over_Reco.push_back(mPhi_MiniAOD_over_Reco);
0237 ME_MiniAOD_over_Reco.push_back(mEta_MiniAOD_over_Reco);
0238 ME_MiniAOD_over_Reco.push_back(mCorrJetPt_MiniAOD_over_Reco);
0239 ME_MiniAOD_over_Reco.push_back(mCorrJetPhi_MiniAOD_over_Reco);
0240 ME_MiniAOD_over_Reco.push_back(mCorrJetEta_MiniAOD_over_Reco);
0241 ME_MiniAOD_over_Reco.push_back(mPtCorrOverReco_Eta_20_40_MiniAOD_over_Reco);
0242 ME_MiniAOD_over_Reco.push_back(mPtCorrOverReco_Eta_200_600_MiniAOD_over_Reco);
0243 ME_MiniAOD_over_Reco.push_back(mPtCorrOverReco_Eta_1500_3500_MiniAOD_over_Reco);
0244 ME_MiniAOD_over_Reco.push_back(mPtCorrOverGen_GenEta_40_200_MiniAOD_over_Reco);
0245 ME_MiniAOD_over_Reco.push_back(mPtCorrOverGen_GenEta_600_1500_MiniAOD_over_Reco);
0246 ME_MiniAOD_over_Reco.push_back(mDeltaEta_MiniAOD_over_Reco);
0247 ME_MiniAOD_over_Reco.push_back(mDeltaPhi_MiniAOD_over_Reco);
0248 ME_MiniAOD_over_Reco.push_back(mDeltaPt_MiniAOD_over_Reco);
0249 ME_MiniAOD_over_Reco.push_back(mMjj_MiniAOD_over_Reco);
0250 ME_MiniAOD_over_Reco.push_back(mNJets40_MiniAOD_over_Reco);
0251 ME_MiniAOD_over_Reco.push_back(mchargedHadronMultiplicity_MiniAOD_over_Reco);
0252 ME_MiniAOD_over_Reco.push_back(mneutralHadronMultiplicity_MiniAOD_over_Reco);
0253 ME_MiniAOD_over_Reco.push_back(mphotonMultiplicity_MiniAOD_over_Reco);
0254 ME_MiniAOD_over_Reco.push_back(mphotonEnergyFraction_MiniAOD_over_Reco);
0255 ME_MiniAOD_over_Reco.push_back(mneutralHadronEnergyFraction_MiniAOD_over_Reco);
0256 ME_MiniAOD_over_Reco.push_back(mchargedHadronEnergyFraction_MiniAOD_over_Reco);
0257 for (unsigned int j = 0; j < ME_MiniAOD_over_Reco.size(); j++) {
0258 MonitorElement *monReco = ME_Reco[j];
0259 if (monReco && monReco->getRootObject()) {
0260 MonitorElement *monMiniAOD = ME_MiniAOD[j];
0261 if (monMiniAOD && monMiniAOD->getRootObject()) {
0262 MonitorElement *monMiniAOD_over_RECO = ME_MiniAOD_over_Reco[j];
0263 if (monMiniAOD_over_RECO && monMiniAOD_over_RECO->getRootObject()) {
0264 for (int i = 0; i <= (monMiniAOD_over_RECO->getNbinsX() + 1); i++) {
0265 if (monReco->getBinContent(i) != 0) {
0266 monMiniAOD_over_RECO->setBinContent(i, monMiniAOD->getBinContent(i) / monReco->getBinContent(i));
0267 } else if (monMiniAOD->getBinContent(i) != 0) {
0268 monMiniAOD_over_RECO->setBinContent(i, -0.5);
0269 }
0270 }
0271 }
0272 }
0273 }
0274 }
0275 }
0276 }