Warning, file /snippets/JetsAndHF/JetValidation/MakeJetValidationPlots.C was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <edm4eic/EDM4eicVersion.h>
0017 #include <TCanvas.h>
0018 #include <TFile.h>
0019 #include <TGraph.h>
0020 #include <TH1D.h>
0021 #include <TH2D.h>
0022 #include <string>
0023
0024 #include "fmt/color.h"
0025 #include "fmt/core.h"
0026
0027
0028 const std::string DefaultOutPath = ".";
0029
0030
0031 const std::string DefaultOutSuffix = "files26071.py8ncdis10x100q100t1000";
0032
0033
0034 const std::string DefaultInFile = "hists.files26071.py8ncdis10x100q100t1000.root";
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046 int MakeJetValidationPlots(
0047 const std::string& results_path = DefaultOutPath,
0048 const std::string& results_suffix = DefaultOutSuffix,
0049 const std::string& input_file = DefaultInFile
0050 ) {
0051
0052 const bool PRINT = true;
0053
0054 const int seabornRed = TColor::GetColor(213, 94, 0);
0055
0056
0057 const int seabornGreen = TColor::GetColor(0, 158, 115);
0058
0059
0060 const int seabornBlue = TColor::GetColor(100, 149, 237);
0061
0062
0063 TFile* in_file = new TFile(input_file.c_str(), "read");
0064 if (!in_file) {
0065 std::cerr << "PANIC: Couldn't open input file:\n " << input_file << std::endl;
0066 return 1;
0067 }
0068
0069
0070
0071 bool useNewEDM = false;
0072 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8,9,0)
0073 {
0074 TH1D* recoAreaHistTest = (TH1D*) in_file->Get("recoChargedJetAreaECut");
0075 if (recoAreaHistTest) {
0076 useNewEDM = true;
0077 }
0078 }
0079 #endif
0080 if (PRINT) {
0081 std::cout << "INFO: Using new EDM? " << useNewEDM << std::endl;
0082 }
0083
0084
0085 TH1D *numRecoChargedJetsECutHist = (TH1D*) in_file->Get("numRecoChargedJetsECut");
0086 TH1D *recoChargedJetEHist = (TH1D*) in_file->Get("recoChargedJetE");
0087 TH1D *recoChargedJetEtaECutHist = (TH1D*) in_file->Get("recoChargedJetEtaECut");
0088 TH1D *recoChargedJetAreaECutHist = nullptr;
0089 TH2D *recoChargedJetEvsAreaHist = nullptr;
0090 if (useNewEDM) {
0091 recoChargedJetAreaECutHist = (TH1D*) in_file->Get("recoChargedJetAreaECut");
0092 recoChargedJetEvsAreaHist = (TH2D*) in_file->Get("recoChargedJetEvsArea");
0093 }
0094 TH2D *recoChargedJetEvsEtaHist = (TH2D*) in_file->Get("recoChargedJetEvsEta");
0095 TH2D *recoChargedJetPhiVsEtaECutHist = (TH2D*) in_file->Get("recoChargedJetPhiVsEtaECut");
0096
0097 TH1D *numRecoChargedJetsECutNoElecHist = (TH1D*) in_file->Get("numRecoChargedJetsECutNoElec");
0098 TH1D *recoChargedJetENoElecHist = (TH1D*) in_file->Get("recoChargedJetENoElec");
0099 TH1D *recoChargedJetEtaECutNoElecHist = (TH1D*) in_file->Get("recoChargedJetEtaECutNoElec");
0100 TH1D *recoChargedJetAreaECutNoElecHist = nullptr;
0101 TH2D *recoChargedJetEvsAreaNoElecHist = nullptr;
0102 if (useNewEDM) {
0103 recoChargedJetAreaECutNoElecHist = (TH1D*) in_file->Get("recoHargedJetAreaECutNoElec");
0104 recoChargedJetEvsAreaNoElecHist = (TH2D*) in_file->Get("recoChargedJetEvsAreaNoElec");
0105 }
0106 TH2D *recoChargedJetEvsEtaNoElecHist = (TH2D*) in_file->Get("recoChargedJetEvsEtaNoElec");
0107 TH2D *recoChargedJetPhiVsEtaECutNoElecHist = (TH2D*) in_file->Get("recoChargedJetPhiVsEtaECutNoElec");
0108
0109 TH1D *numRecoChargedJetPartsHist = (TH1D*) in_file->Get("numRecoChargedJetParts");
0110 TH1D *recoChargedJetPartPHist = (TH1D*) in_file->Get("recoChargedJetPartP");
0111 TH1D *recoChargedJetPartEtaHist = (TH1D*) in_file->Get("recoChargedJetPartEta");
0112 TH2D *recoChargedJetPartPvsEtaHist = (TH2D*) in_file->Get("recoChargedJetPartPvsEta");
0113 TH2D *recoChargedJetPartPhiVsEtaHist = (TH2D*) in_file->Get("recoChargedJetPartPhiVsEta");
0114
0115 TH1D *numRecoChargedJetPartsNoElecHist = (TH1D*) in_file->Get("numRecoChargedJetPartsNoElec");
0116 TH1D *recoChargedJetPartPNoElecHist = (TH1D*) in_file->Get("recoChargedJetPartPNoElec");
0117 TH1D *recoChargedJetPartEtaNoElecHist = (TH1D*) in_file->Get("recoChargedJetPartEtaNoElec");
0118 TH2D *recoChargedJetPartPvsEtaNoElecHist = (TH2D*) in_file->Get("recoChargedJetPartPvsEtaNoElec");
0119 TH2D *recoChargedJetPartPhiVsEtaNoElecHist = (TH2D*) in_file->Get("recoChargedJetPartPhiVsEtaNoElec");
0120
0121 TH1D *recoChargedJetPartPairwiseDeltaRHist = (TH1D*) in_file->Get("recoChargedJetPartPairwiseDeltaRHist");
0122
0123
0124 TH1D *numGenChargedJetsECutHist = (TH1D*) in_file->Get("numGenChargedJetsECut");
0125 TH1D *genChargedJetEHist = (TH1D*) in_file->Get("genChargedJetE");
0126 TH1D *genChargedJetEtaECutHist = (TH1D*) in_file->Get("genChargedJetEtaECut");
0127 TH1D *genChargedJetAreaECutHist = nullptr;
0128 TH2D *genChargedJetEvsAreaHist = nullptr;
0129 if (useNewEDM) {
0130 genChargedJetAreaECutHist = (TH1D*) in_file->Get("genChargedJetAreaECut");
0131 genChargedJetEvsAreaHist = (TH2D*) in_file->Get("genChargedJetEvsAreaHist");
0132 }
0133 TH2D *genChargedJetEvsEtaHist = (TH2D*) in_file->Get("genChargedJetEvsEta");
0134 TH2D *genChargedJetPhiVsEtaECutHist = (TH2D*) in_file->Get("genChargedJetPhiVsEtaECut");
0135
0136 TH1D *numGenChargedJetsECutNoElecHist = (TH1D*) in_file->Get("numGenChargedJetsECutNoElec");
0137 TH1D *genChargedJetENoElecHist = (TH1D*) in_file->Get("genChargedJetENoElec");
0138 TH1D *genChargedJetEtaECutNoElecHist = (TH1D*) in_file->Get("genChargedJetEtaECutNoElec");
0139 TH1D *genChargedJetAreaECutNoElecHist = nullptr;
0140 TH2D *genChargedJetEvsAreaNoElecHist = nullptr;
0141 if (useNewEDM) {
0142 genChargedJetAreaECutNoElecHist = (TH1D*) in_file->Get("genChargedJetAreaECutNoElec");
0143 genChargedJetEvsAreaNoElecHist = (TH2D*) in_file->Get("genChargedJetEvsAreaNoElec");
0144 }
0145 TH2D *genChargedJetEvsEtaNoElecHist = (TH2D*) in_file->Get("genChargedJetEvsEtaNoElec");
0146 TH2D *genChargedJetPhiVsEtaECutNoElecHist = (TH2D*) in_file->Get("genChargedJetPhiVsEtaECutNoElec");
0147
0148 TH1D *numGenChargedJetPartsHist = (TH1D*) in_file->Get("numGenChargedJetParts");
0149 TH1D *genChargedJetPartPHist = (TH1D*) in_file->Get("genChargedJetPartP");
0150 TH1D *genChargedJetPartEtaHist = (TH1D*) in_file->Get("genChargedJetPartEta");
0151 TH2D *genChargedJetPartPvsEtaHist = (TH2D*) in_file->Get("genChargedJetPartPvsEta");
0152 TH2D *genChargedJetPartPhiVsEtaHist = (TH2D*) in_file->Get("genChargedJetPartPhiVsEta");
0153
0154 TH1D *numGenChargedJetPartsNoElecHist = (TH1D*) in_file->Get("numGenChargedJetPartsNoElec");
0155 TH1D *genChargedJetPartPNoElecHist = (TH1D*) in_file->Get("genChargedJetPartPNoElec");
0156 TH1D *genChargedJetPartEtaNoElecHist = (TH1D*) in_file->Get("genChargedJetPartEtaNoElec");
0157 TH2D *genChargedJetPartPvsEtaNoElecHist = (TH2D*) in_file->Get("genChargedJetPartPvsEtaNoElec");
0158 TH2D *genChargedJetPartPhiVsEtaNoElecHist = (TH2D*) in_file->Get("genChargedJetPartPhiVsEtaNoElec");
0159
0160 TH1D *genChargedJetPartPairwiseDeltaRHist = (TH1D*) in_file->Get("genChargedJetPartPairwiseDeltaRHist");
0161
0162
0163 TH1D *matchJetDeltaRHist = (TH1D*) in_file->Get("matchJetDeltaR");
0164 TH1D *matchJetDeltaRBackHist = (TH1D*) in_file->Get("matchJetDeltaRBack");
0165 TH2D *recoVsGenChargedJetEtaHist = (TH2D*) in_file->Get("recoVsGenChargedJetEta");
0166 TH2D *recoVsGenChargedJetPhiHist = (TH2D*) in_file->Get("recoVsGenChargedJetPhi");
0167 TH2D *recoVsGenChargedJetAreaHist = nullptr;
0168 if (useNewEDM) {
0169 recoVsGenChargedJetAreaHist = (TH2D*) in_file->Get("recoVsGenChargedJetArea");
0170 }
0171 TH2D *recoVsGenChargedJetEHist = (TH2D*) in_file->Get("recoVsGenChargedJetE");
0172 TH2D *recoVsGenChargedJetENoDRHist = (TH2D*) in_file->Get("recoVsGenChargedJetENoDRHist");
0173 TH2D *recoVsGenChargedJetENoDupHist = (TH2D*) in_file->Get("recoVsGenChargedJetENoDup");
0174
0175 TH2D *jetResVsEtaHist = (TH2D*) in_file->Get("jetResVsEta");
0176 TH2D *jetResVsEHist = (TH2D*) in_file->Get("jetResVsE");
0177 TH2D *jetResVsENegEtaHist = (TH2D*) in_file->Get("jetResVsENegEta");
0178 TH2D *jetResVsEMidEtaHist = (TH2D*) in_file->Get("jetResVsEMidEta");
0179 TH2D *jetResVsEPosEtaHist = (TH2D*) in_file->Get("jetResVsEPosEta");
0180
0181 TH2D *jetResVsENegEtaNoDupHist = (TH2D*) in_file->Get("jetResVsENegEtaNoDup");
0182 TH2D *jetResVsEMidEtaNoDupHist = (TH2D*) in_file->Get("jetResVsEMidEtaNoDup");
0183 TH2D *jetResVsEPosEtaNoDupHist = (TH2D*) in_file->Get("jetResVsEPosEtaNoDup");
0184
0185 gStyle->SetOptStat(0);
0186
0187
0188 TCanvas *c1 = new TCanvas("c1","Number Reco Jets",800,600);
0189 c1->Clear();
0190 c1->Divide(1,1);
0191
0192 c1->cd(1);
0193 numRecoChargedJetsECutHist->Draw("HIST");
0194 numRecoChargedJetsECutNoElecHist->SetLineColor(seabornRed);
0195 numRecoChargedJetsECutNoElecHist->Draw("HISTSAME");
0196 numRecoChargedJetsECutHist->SetLineWidth(2);
0197 numRecoChargedJetsECutNoElecHist->SetLineWidth(2);
0198 numRecoChargedJetsECutHist->SetTitle("Reconstructed Jets per Event (|eta| < 2.5 && E > 5);Number");
0199
0200 TLegend *legend1 = new TLegend(0.7, 0.7, 0.9, 0.9);
0201 legend1->AddEntry(numRecoChargedJetsECutHist, "With Electrons", "l");
0202 legend1->AddEntry(numRecoChargedJetsECutNoElecHist, "No Electrons", "l");
0203 legend1->Draw();
0204
0205
0206
0207 gPad->SetLogy();
0208 if(PRINT) c1->Print((results_path+"/numberRecoJets."+results_suffix+".png").c_str());
0209 delete c1;
0210
0211
0212 TCanvas *c2 = new TCanvas("c2","Reco Jet Energy",800,600);
0213 c2->Clear();
0214 c2->Divide(1,1);
0215
0216 c2->cd(1);
0217 recoChargedJetEHist->Draw("HIST");
0218 recoChargedJetENoElecHist->SetLineColor(seabornRed);
0219 recoChargedJetENoElecHist->Draw("HISTSAME");
0220
0221 recoChargedJetEHist->SetLineWidth(2);
0222 recoChargedJetENoElecHist->SetLineWidth(2);
0223 recoChargedJetEHist->SetTitle("Reconstructed Jet Energy (|eta| < 2.5);Energy [GeV]");
0224
0225 TLegend *legend2 = new TLegend(0.7, 0.7, 0.9, 0.9);
0226 legend2->AddEntry(recoChargedJetEHist, "With Electrons", "l");
0227 legend2->AddEntry(recoChargedJetENoElecHist, "No Electrons", "l");
0228 legend2->Draw();
0229
0230 gPad->SetLogy();
0231 if(PRINT) c2->Print((results_path+"/recoJetEnergy."+results_suffix+".png").c_str());
0232
0233 delete c2;
0234
0235 TCanvas *c3 = new TCanvas("c3","Reco Jet Eta",800,600);
0236 c3->Clear();
0237 c3->Divide(1,1);
0238
0239 c3->cd(1);
0240 recoChargedJetEtaECutHist->Draw("HIST");
0241 recoChargedJetEtaECutNoElecHist->SetLineColor(seabornRed);
0242 recoChargedJetEtaECutNoElecHist->Draw("HISTSAME");
0243
0244 recoChargedJetEtaECutHist->SetLineWidth(2);
0245 recoChargedJetEtaECutNoElecHist->SetLineWidth(2);
0246 recoChargedJetEtaECutHist->SetTitle("Reconstructed Jet Eta (E > 5);Eta");
0247
0248
0249 TLegend *legend3 = new TLegend(0.7, 0.7, 0.9, 0.9);
0250 legend3->AddEntry(recoChargedJetEtaECutHist, "With Electrons", "l");
0251 legend3->AddEntry(recoChargedJetEtaECutNoElecHist, "No Electrons", "l");
0252 legend3->Draw();
0253
0254 gPad->SetLogy();
0255 if(PRINT) c3->Print((results_path+"/recoJetEta."+results_suffix+".png").c_str());
0256 delete c3;
0257
0258
0259 if(useNewEDM) {
0260 TCanvas *c3_1 = new TCanvas("c3_1","Reco Jet Area",800,600);
0261 c3_1->Clear();
0262 c3_1->Divide(1,1);
0263
0264 c3_1->cd(1);
0265 recoChargedJetAreaECutHist->Draw("HIST");
0266 recoChargedJetAreaECutNoElecHist->SetLineColor(seabornRed);
0267 recoChargedJetAreaECutNoElecHist->Draw("HISTSAME");
0268
0269 recoChargedJetAreaECutHist->SetLineWidth(2);
0270 recoChargedJetAreaECutNoElecHist->SetLineWidth(2);
0271 recoChargedJetAreaECutHist->SetTitle("Reconstructed Jet Area (E > 5);Area");
0272
0273
0274 TLegend *legend3_1 = new TLegend(0.7, 0.7, 0.9, 0.9);
0275 legend3_1->AddEntry(recoChargedJetAreaECutHist, "With Electrons", "l");
0276 legend3_1->AddEntry(recoChargedJetAreaECutNoElecHist, "No Electrons", "l");
0277 legend3_1->Draw();
0278
0279 gPad->SetLogy();
0280 if(PRINT) c3_1->Print((results_path+"/recoJetArea."+results_suffix+".png").c_str());
0281 delete c3_1;
0282 }
0283
0284
0285 TCanvas *c4 = new TCanvas("c4","Reco Jet E Vs Eta",800,600);
0286 c4->Clear();
0287 c4->Divide(1,1);
0288
0289 c4->cd(1);
0290 recoChargedJetEvsEtaHist->Draw("COLZ");
0291 recoChargedJetEvsEtaHist->SetTitle("Reconstructed Jet Energy Vs Eta;Eta;Energy [GeV]");
0292 gPad->SetLogz();
0293 if(PRINT) c4->Print((results_path+"/recoJetEnergyvsEta."+results_suffix+".png").c_str());
0294
0295
0296 if (useNewEDM) {
0297 TCanvas *c4_1 = new TCanvas("c4_1","Reco Jet E Vs Area",800,600);
0298 c4_1->Clear();
0299 c4_1->Divide(1,1);
0300
0301 c4_1->cd(1);
0302 recoChargedJetEvsAreaHist->Draw("COLZ");
0303 recoChargedJetEvsAreaHist->SetTitle("Reconstructed Jet Energy Vs Area;Area;Energy [GeV]");
0304 gPad->SetLogz();
0305 if(PRINT) c4_1->Print((results_path+"/recoJetEnergyvsArea."+results_suffix+".png").c_str());
0306 }
0307
0308
0309 TCanvas *c5 = new TCanvas("c5","Reco Jet Phi Vs Eta",800,600);
0310 c5->Clear();
0311 c5->Divide(1,1);
0312
0313 c5->cd(1);
0314 recoChargedJetPhiVsEtaECutHist->Draw("COLZ");
0315 recoChargedJetPhiVsEtaECutHist->SetTitle("Reconstructed Jet Phi Vs Eta (E > 5);Eta;Phi");
0316 gPad->SetLogz();
0317 if(PRINT) c5->Print((results_path+"/recoJetPhivsEta."+results_suffix+".png").c_str());
0318
0319
0320 TCanvas *c6 = new TCanvas("c6","Number Constituents Per Reco Jet",800,600);
0321 c6->Clear();
0322 c6->Divide(1,1);
0323
0324 c6->cd(1);
0325 numRecoChargedJetPartsHist->Draw("HIST");
0326 numRecoChargedJetPartsNoElecHist->SetLineColor(seabornRed);
0327 numRecoChargedJetPartsNoElecHist->Draw("HISTSAME");
0328
0329 numRecoChargedJetPartsHist->SetLineWidth(2);
0330 numRecoChargedJetPartsNoElecHist->SetLineWidth(2);
0331 numRecoChargedJetPartsHist->SetTitle("Number of Constituents Per Reco Jet;Number of Constituents");
0332
0333 TLegend *legend6 = new TLegend(0.7, 0.7, 0.9, 0.9);
0334 legend6->AddEntry(numRecoChargedJetPartsHist, "With Electrons", "l");
0335 legend6->AddEntry(numRecoChargedJetPartsNoElecHist, "No Electrons", "l");
0336 legend6->Draw();
0337
0338 gPad->SetLogy();
0339 if(PRINT) c6->Print((results_path+"/numConstituentsPerRecoJet."+results_suffix+".png").c_str());
0340
0341
0342 TCanvas *c7 = new TCanvas("c7","Reco Jet Constituent Momentum",800,600);
0343 c7->Clear();
0344 c7->Divide(1,1);
0345
0346 c7->cd(1);
0347 recoChargedJetPartPHist->Draw("HIST");
0348 recoChargedJetPartPNoElecHist->SetLineColor(seabornRed);
0349 recoChargedJetPartPNoElecHist->Draw("HISTSAME");
0350
0351 recoChargedJetPartPHist->SetLineWidth(2);
0352 recoChargedJetPartPNoElecHist->SetLineWidth(2);
0353 recoChargedJetPartPHist->SetTitle("Reconstructed Jet Constituent Momentum;Momentum [GeV/c]");
0354
0355 TLegend *legend7 = new TLegend(0.7, 0.7, 0.9, 0.9);
0356 legend7->AddEntry(recoChargedJetPartPHist, "With Electrons", "l");
0357 legend7->AddEntry(recoChargedJetPartPNoElecHist, "No Electrons", "l");
0358 legend7->Draw();
0359
0360 gPad->SetLogy();
0361 if(PRINT) c7->Print((results_path+"/recoJetConstituentMomentum."+results_suffix+".png").c_str());
0362
0363
0364 TCanvas *c8 = new TCanvas("c8","Reco Jet Constituent Eta",800,600);
0365 c8->Clear();
0366 c8->Divide(1,1);
0367
0368 c8->cd(1);
0369 recoChargedJetPartEtaHist->Draw("HIST");
0370 recoChargedJetPartEtaNoElecHist->SetLineColor(seabornRed);
0371 recoChargedJetPartEtaNoElecHist->Draw("HISTSAME");
0372
0373 recoChargedJetPartEtaHist->SetLineWidth(2);
0374 recoChargedJetPartEtaNoElecHist->SetLineWidth(2);
0375
0376 recoChargedJetPartEtaHist->SetTitle("Reconstructed Jet Constituent Eta;Eta");
0377
0378 TLegend *legend8 = new TLegend(0.7, 0.7, 0.9, 0.9);
0379 legend8->AddEntry(recoChargedJetPartEtaHist, "With Electrons", "l");
0380 legend8->AddEntry(recoChargedJetPartEtaNoElecHist, "No Electrons", "l");
0381 legend8->Draw();
0382
0383 gPad->SetLogy();
0384 if(PRINT) c8->Print((results_path+"/recoJetConstituentEta."+results_suffix+".png").c_str());
0385
0386
0387 TCanvas *c9 = new TCanvas("c9","Reco Jet Constituent Momentum Vs Eta",800,600);
0388 c9->Clear();
0389 c9->Divide(1,1);
0390
0391 c9->cd(1);
0392 recoChargedJetPartPvsEtaHist->Draw("COLZ");
0393 recoChargedJetPartPvsEtaHist->SetTitle("Reconstructed Jet Constituent Momentum Vs Eta;Eta;Momentum [GeV/c]");
0394 gPad->SetLogz();
0395 if(PRINT) c9->Print((results_path+"/recoJetConstituentMomentumVsEta."+results_suffix+".png").c_str());
0396
0397
0398 TCanvas *c10 = new TCanvas("c10","Reco Jet Constituent Phi Vs Eta",800,600);
0399 c10->Clear();
0400 c10->Divide(1,1);
0401
0402 c10->cd(1);
0403 recoChargedJetPartPhiVsEtaHist->Draw("COLZ");
0404 recoChargedJetPartPhiVsEtaHist->SetTitle("Reconstructed Jet Constituent Phi Vs Eta;Eta;Phi");
0405 gPad->SetLogz();
0406 if(PRINT) c10->Print((results_path+"/recoJetConstituentPhiVsEta."+results_suffix+".png").c_str());
0407
0408
0409 TCanvas *c11 = new TCanvas("c11","Reco Jet Constituent Pairwise Delta R",800,600);
0410 c11->Clear();
0411 c11->Divide(1,1);
0412
0413 c11->cd(1);
0414 recoChargedJetPartPairwiseDeltaRHist->Draw("COLZ");
0415 recoChargedJetPartPairwiseDeltaRHist->SetTitle("Pairwise Constituent Delta R;Delta R");
0416 recoChargedJetPartPairwiseDeltaRHist->GetXaxis()->SetRangeUser(0,0.5);
0417 gPad->SetLogy();
0418 if(PRINT) c11->Print((results_path+"/recoJetConstituentPairwiseDR."+results_suffix+".png").c_str());
0419
0420
0421 TCanvas *c12 = new TCanvas("c12","Reco Jet E Vs Eta (No Electrons)",800,600);
0422 c12->Clear();
0423 c12->Divide(1,1);
0424
0425 c12->cd(1);
0426 recoChargedJetEvsEtaNoElecHist->Draw("COLZ");
0427 recoChargedJetEvsEtaNoElecHist->SetTitle("Reconstructed Jet Energy Vs Eta (No Electrons);Eta;Energy [GeV]");
0428 gPad->SetLogz();
0429 if(PRINT) c12->Print((results_path+"/recoJetEnergyVsEtaNoElectron."+results_suffix+".png").c_str());
0430
0431
0432 TCanvas *c13 = new TCanvas("c13","Reco Jet Phi Vs Eta (No Electrons)",800,600);
0433 c13->Clear();
0434 c13->Divide(1,1);
0435
0436 c13->cd(1);
0437 recoChargedJetPhiVsEtaECutNoElecHist->Draw("COLZ");
0438 recoChargedJetPhiVsEtaECutNoElecHist->SetTitle("Reconstructed Jet Phi Vs Eta (E > 5) (No Electrons);Eta;Phi");
0439 gPad->SetLogz();
0440 if(PRINT) c13->Print((results_path+"/recoJetPhiVsEtaNoElectron."+results_suffix+".png").c_str());
0441
0442
0443 TCanvas *c14 = new TCanvas("c14","Reco Jet Constituent Momentum Vs Eta (No Electrons)",800,600);
0444 c14->Clear();
0445 c14->Divide(1,1);
0446
0447 c14->cd(1);
0448 recoChargedJetPartPvsEtaNoElecHist->Draw("COLZ");
0449 recoChargedJetPartPvsEtaNoElecHist->SetTitle("Reconstructed Jet Constituent Momentum Vs Eta (No Electrons);Eta;Momentum [GeV/c]");
0450 gPad->SetLogz();
0451 if(PRINT) c14->Print((results_path+"/recoJetConstituentMomentumVsEtaNoElectron."+results_suffix+".png").c_str());
0452
0453
0454 TCanvas *c15 = new TCanvas("c15","Reco Jet Constituent Phi Vs Eta (No Electrons)",800,600);
0455 c15->Clear();
0456 c15->Divide(1,1);
0457
0458 c15->cd(1);
0459 recoChargedJetPartPhiVsEtaNoElecHist->Draw("COLZ");
0460 recoChargedJetPartPhiVsEtaNoElecHist->SetTitle("Reconstructed Jet Constituent Phi Vs Eta (No Electrons);Eta;Phi");
0461 gPad->SetLogz();
0462 if(PRINT) c15->Print((results_path+"/recoJetConstituentPhiVsEtaNoElectron."+results_suffix+".png").c_str());
0463
0464
0465
0466
0467 TCanvas *c16 = new TCanvas("c16","Number Gen Jets",800,600);
0468 c16->Clear();
0469 c16->Divide(1,1);
0470
0471 c16->cd(1);
0472 numGenChargedJetsECutHist->Draw("HIST");
0473 numGenChargedJetsECutNoElecHist->SetLineColor(seabornRed);
0474 numGenChargedJetsECutNoElecHist->Draw("HISTSAME");
0475
0476 numGenChargedJetsECutHist->SetLineWidth(2);
0477 numGenChargedJetsECutNoElecHist->SetLineWidth(2);
0478
0479 numGenChargedJetsECutHist->SetTitle("Generator Jets per Event (|eta| < 2.5 && E > 5);Number");
0480
0481 TLegend *legend16 = new TLegend(0.7, 0.7, 0.9, 0.9);
0482 legend16->AddEntry(numGenChargedJetsECutHist, "With Electrons", "l");
0483 legend16->AddEntry(numGenChargedJetsECutNoElecHist, "No Electrons", "l");
0484 legend16->Draw();
0485
0486 gPad->SetLogy();
0487 if(PRINT) c16->Print((results_path+"/numberGenJets."+results_suffix+".png").c_str());
0488
0489
0490 TCanvas *c17 = new TCanvas("c17","Gen Jet Energy",800,600);
0491 c17->Clear();
0492 c17->Divide(1,1);
0493
0494 c17->cd(1);
0495 genChargedJetEHist->Draw("HIST");
0496 genChargedJetENoElecHist->SetLineColor(seabornRed);
0497 genChargedJetENoElecHist->Draw("HISTSAME");
0498
0499 genChargedJetEHist->SetLineWidth(2);
0500 genChargedJetENoElecHist->SetLineWidth(2);
0501
0502 genChargedJetEHist->SetTitle("Generator Jet Energy (|eta| < 2.5);Energy [GeV]");
0503 TLegend *legend17 = new TLegend(0.7, 0.7, 0.9, 0.9);
0504 legend17->AddEntry(genChargedJetEHist, "With Electrons", "l");
0505 legend17->AddEntry(genChargedJetENoElecHist, "No Electrons", "l");
0506 legend17->Draw();
0507
0508 gPad->SetLogy();
0509 if(PRINT) c17->Print((results_path+"/genJetEnergy."+results_suffix+".png").c_str());
0510
0511
0512 TCanvas *c18 = new TCanvas("c18","Gen Jet Eta",800,600);
0513 c18->Clear();
0514 c18->Divide(1,1);
0515
0516 c18->cd(1);
0517 genChargedJetEtaECutHist->Draw("HIST");
0518 genChargedJetEtaECutNoElecHist->SetLineColor(seabornRed);
0519 genChargedJetEtaECutNoElecHist->Draw("HISTSAME");
0520
0521 genChargedJetEtaECutHist->SetLineWidth(2);
0522 genChargedJetEtaECutNoElecHist->SetLineWidth(2);
0523
0524 genChargedJetEtaECutHist->SetTitle("Generator Jet Eta (E > 5);Eta");
0525
0526 TLegend *legend18 = new TLegend(0.7, 0.7, 0.9, 0.9);
0527 legend18->AddEntry(genChargedJetEtaECutHist, "With Electrons", "l");
0528 legend18->AddEntry(genChargedJetEtaECutNoElecHist, "No Electrons", "l");
0529 legend18->Draw();
0530
0531 gPad->SetLogy();
0532 if(PRINT) c18->Print((results_path+"/genJetEta."+results_suffix+".png").c_str());
0533
0534
0535 if(useNewEDM) {
0536 TCanvas *c18_1 = new TCanvas("c18_1","Gen Jet Area",800,600);
0537 c18_1->Clear();
0538 c18_1->Divide(1,1);
0539
0540 c18_1->cd(1);
0541 genChargedJetAreaECutHist->Draw("HIST");
0542 genChargedJetAreaECutNoElecHist->SetLineColor(seabornRed);
0543 genChargedJetAreaECutNoElecHist->Draw("HISTSAME");
0544
0545 genChargedJetAreaECutHist->SetLineWidth(2);
0546 genChargedJetAreaECutNoElecHist->SetLineWidth(2);
0547
0548 genChargedJetAreaECutHist->SetTitle("Generator Jet Area (E > 5);Area");
0549
0550 TLegend *legend18_1 = new TLegend(0.7, 0.7, 0.9, 0.9);
0551 legend18_1->AddEntry(genChargedJetAreaECutHist, "With Electrons", "l");
0552 legend18_1->AddEntry(genChargedJetAreaECutNoElecHist, "No Electrons", "l");
0553 legend18_1->Draw();
0554
0555 gPad->SetLogy();
0556 if(PRINT) c18_1->Print((results_path+"/genJetArea."+results_suffix+".png").c_str());
0557 }
0558
0559
0560 TCanvas *c19 = new TCanvas("c19","Gen Jet E Vs Eta",800,600);
0561 c19->Clear();
0562 c19->Divide(1,1);
0563
0564 c19->cd(1);
0565 genChargedJetEvsEtaHist->Draw("COLZ");
0566 genChargedJetEvsEtaHist->SetTitle("Generator Jet Energy Vs Eta;Eta;Energy [GeV]");
0567 gPad->SetLogz();
0568 if(PRINT) c19->Print((results_path+"/genJetEnergyvsEta."+results_suffix+".png").c_str());
0569
0570
0571 if(useNewEDM) {
0572 TCanvas *c19_1 = new TCanvas("c19_1","Gen Jet E Vs Area",800,600);
0573 c19_1->Clear();
0574 c19_1->Divide(1,1);
0575
0576 c19_1->cd(1);
0577 genChargedJetEvsAreaHist->Draw("COLZ");
0578 genChargedJetEvsAreaHist->SetTitle("Generator Jet Energy Vs Area;Area;Energy [GeV]");
0579 gPad->SetLogz();
0580 if(PRINT) c19_1->Print((results_path+"/genJetEnergyvsArea."+results_suffix+".png").c_str());
0581 }
0582
0583
0584 TCanvas *c20 = new TCanvas("c20","Gen Jet Phi Vs Eta",800,600);
0585 c20->Clear();
0586 c20->Divide(1,1);
0587
0588 c20->cd(1);
0589 genChargedJetPhiVsEtaECutHist->Draw("COLZ");
0590 genChargedJetPhiVsEtaECutHist->SetTitle("Generator Jet Phi Vs Eta (E > 5);Eta;Phi");
0591 gPad->SetLogz();
0592 if(PRINT) c20->Print((results_path+"/genJetPhiVsEta."+results_suffix+".png").c_str());
0593
0594
0595 TCanvas *c21 = new TCanvas("c21","Number Constituents Per Gen Jet",800,600);
0596 c21->Clear();
0597 c21->Divide(1,1);
0598
0599 c21->cd(1);
0600 numGenChargedJetPartsHist->Draw("HIST");
0601 numGenChargedJetPartsNoElecHist->SetLineColor(seabornRed);
0602 numGenChargedJetPartsNoElecHist->Draw("HISTSAME");
0603
0604 numGenChargedJetPartsHist->SetLineWidth(2);
0605 numGenChargedJetPartsNoElecHist->SetLineWidth(2);
0606
0607 numGenChargedJetPartsHist->SetTitle("Number of Constituents Per Gen Jet;Number of Constituents");
0608
0609 TLegend *legend21 = new TLegend(0.7, 0.7, 0.9, 0.9);
0610 legend21->AddEntry(numGenChargedJetPartsHist, "With Electrons", "l");
0611 legend21->AddEntry(numGenChargedJetPartsNoElecHist, "No Electrons", "l");
0612 legend21->Draw();
0613 gPad->SetLogy();
0614 if(PRINT) c21->Print((results_path+"/numConstituentsPerGenJet."+results_suffix+".png").c_str());
0615
0616
0617 TCanvas *c22 = new TCanvas("c22","Gen Jet Constituent Momentum",800,600);
0618 c22->Clear();
0619 c22->Divide(1,1);
0620
0621 c22->cd(1);
0622 genChargedJetPartPHist->Draw("HIST");
0623 genChargedJetPartPNoElecHist->SetLineColor(seabornRed);
0624 genChargedJetPartPNoElecHist->Draw("HISTSAME");
0625
0626 genChargedJetPartPHist->SetLineWidth(2);
0627 genChargedJetPartPNoElecHist->SetLineWidth(2);
0628
0629 genChargedJetPartPHist->SetTitle("Generator Jet Constituent Momentum;Momentum [GeV/c]");
0630
0631 TLegend *legend22 = new TLegend(0.7, 0.7, 0.9, 0.9);
0632 legend22->AddEntry(genChargedJetPartPHist, "With Electrons", "l");
0633 legend22->AddEntry(genChargedJetPartPNoElecHist, "No Electrons", "l");
0634 legend22->Draw();
0635
0636 gPad->SetLogy();
0637 if(PRINT) c22->Print((results_path+"/genJetConstituentMomentum."+results_suffix+".png").c_str());
0638
0639
0640 TCanvas *c23 = new TCanvas("c23","Gen Jet Constituent Eta",800,600);
0641 c23->Clear();
0642 c23->Divide(1,1);
0643
0644 c23->cd(1);
0645 genChargedJetPartEtaHist->Draw("HIST");
0646 genChargedJetPartEtaNoElecHist->SetLineColor(seabornRed);
0647 genChargedJetPartEtaNoElecHist->Draw("HISTSAME");
0648
0649 genChargedJetPartEtaHist->SetLineWidth(2);
0650 genChargedJetPartEtaNoElecHist->SetLineWidth(2);
0651
0652 genChargedJetPartEtaHist->SetTitle("Generator Jet Constituent Eta;Eta");
0653
0654 TLegend *legend23 = new TLegend(0.7, 0.7, 0.9, 0.9);
0655 legend23->AddEntry(genChargedJetPartEtaHist, "With Electrons", "l");
0656 legend23->AddEntry(genChargedJetPartEtaNoElecHist, "No Electrons", "l");
0657 legend23->Draw();
0658
0659 gPad->SetLogy();
0660 if(PRINT) c23->Print((results_path+"/genJetConstituentEta."+results_suffix+".png").c_str());
0661
0662
0663 TCanvas *c24 = new TCanvas("c24","Gen Jet Constituent Momentum Vs Eta",800,600);
0664 c24->Clear();
0665 c24->Divide(1,1);
0666
0667 c24->cd(1);
0668 genChargedJetPartPvsEtaHist->Draw("COLZ");
0669 genChargedJetPartPvsEtaHist->SetTitle("Generator Jet Constituent Momentum Vs Eta;Eta;Momentum [GeV/c]");
0670 gPad->SetLogz();
0671 if(PRINT) c24->Print((results_path+"/genJetConstituentMomentumVsEta."+results_suffix+".png").c_str());
0672
0673
0674 TCanvas *c25 = new TCanvas("c25","Gen Jet Constituent Phi Vs Eta",800,600);
0675 c25->Clear();
0676 c25->Divide(1,1);
0677
0678 c25->cd(1);
0679 genChargedJetPartPhiVsEtaHist->Draw("COLZ");
0680 genChargedJetPartPhiVsEtaHist->SetTitle("Generator Jet Constituent Phi Vs Eta;Eta;Phi");
0681 gPad->SetLogz();
0682 if(PRINT) c25->Print((results_path+"/genJetConstituentPhiVsEta."+results_suffix+".png").c_str());
0683
0684
0685 TCanvas *c26 = new TCanvas("c26","Gen Jet Constituent Pairwise Delta R",800,600);
0686 c26->Clear();
0687 c26->Divide(1,1);
0688
0689 c26->cd(1);
0690 genChargedJetPartPairwiseDeltaRHist->Draw("COLZ");
0691 genChargedJetPartPairwiseDeltaRHist->SetTitle("Generator Jet Pairwise Constituent Delta R;Delta R");
0692 genChargedJetPartPairwiseDeltaRHist->GetXaxis()->SetRangeUser(0,0.5);
0693 gPad->SetLogy();
0694 if(PRINT) c26->Print((results_path+"/genJetConstituentPairwiseDR."+results_suffix+".png").c_str());
0695
0696
0697 TCanvas *c27 = new TCanvas("c27","Gen Jet E Vs Eta (No Electrons)",800,600);
0698 c27->Clear();
0699 c27->Divide(1,1);
0700
0701 c27->cd(1);
0702 genChargedJetEvsEtaNoElecHist->Draw("COLZ");
0703 genChargedJetEvsEtaNoElecHist->SetTitle("Generator Jet Energy Vs Eta (No Electrons);Eta;Energy [GeV]");
0704 gPad->SetLogz();
0705 if(PRINT) c27->Print((results_path+"/genJetEnergyVsEtaNoElectron."+results_suffix+".png").c_str());
0706
0707
0708 TCanvas *c28 = new TCanvas("c28","Gen Jet Phi Vs Eta (No Electrons)",800,600);
0709 c28->Clear();
0710 c28->Divide(1,1);
0711
0712 c28->cd(1);
0713 genChargedJetPhiVsEtaECutNoElecHist->Draw("COLZ");
0714 genChargedJetPhiVsEtaECutNoElecHist->SetTitle("Generator Jet Phi Vs Eta (E > 5) (No Electrons);Eta;Phi");
0715 gPad->SetLogz();
0716 if(PRINT) c28->Print((results_path+"/genJetPhiVsEtaNoElectron."+results_suffix+".png").c_str());
0717
0718
0719 TCanvas *c29 = new TCanvas("c29","Gen Jet Constituent Momentum Vs Eta (No Electrons)",800,600);
0720 c29->Clear();
0721 c29->Divide(1,1);
0722
0723 c29->cd(1);
0724 genChargedJetPartPvsEtaNoElecHist->Draw("COLZ");
0725 genChargedJetPartPvsEtaNoElecHist->SetTitle("Generator Jet Constituent Momentum Vs Eta (No Electrons);Eta;Momentum [GeV/c]");
0726 gPad->SetLogz();
0727 if(PRINT) c29->Print((results_path+"/genJetConstituentMomentumVsEtaNoElectron."+results_suffix+".png").c_str());
0728
0729
0730 TCanvas *c30 = new TCanvas("c30","Gen Jet Constituent Phi Vs Eta (No Electrons)",800,600);
0731 c30->Clear();
0732 c30->Divide(1,1);
0733
0734 c30->cd(1);
0735 genChargedJetPartPhiVsEtaNoElecHist->Draw("COLZ");
0736 genChargedJetPartPhiVsEtaNoElecHist->SetTitle("Generator Jet Constituent Phi Vs Eta (No Electrons);Eta;Phi");
0737 gPad->SetLogz();
0738
0739 if(PRINT) c30->Print((results_path+"/genJetConstituentPhiVsEtaNoElectron."+results_suffix+".png").c_str());
0740
0741
0742
0743
0744 TCanvas *c31 = new TCanvas("c31","Gen - Reco Delta R",800,600);
0745 c31->Clear();
0746 c31->Divide(1,1);
0747
0748 c31->cd(1);
0749 matchJetDeltaRHist->Draw("HIST");
0750 matchJetDeltaRBackHist->SetLineColor(seabornRed);
0751
0752 matchJetDeltaRHist->SetTitle("Matched Gen - Reco Jet Delta R;Delta R");
0753 gPad->SetLogy();
0754 if(PRINT) c31->Print((results_path+"/genRecoJetDeltaR."+results_suffix+".png").c_str());
0755
0756
0757 TCanvas *c32 = new TCanvas("c32","Reco Vs Gen Eta",800,600);
0758 c32->Clear();
0759 c32->Divide(1,1);
0760
0761 c32->cd(1);
0762 recoVsGenChargedJetEtaHist->Draw("COLZ");
0763 recoVsGenChargedJetEtaHist->SetTitle("Reconstructed Vs Generator Jet Eta;Gen Eta;Reco Eta");
0764 gPad->SetLogz();
0765 if(PRINT) c32->Print((results_path+"/matchedRecoVsGenJetEta."+results_suffix+".png").c_str());
0766
0767
0768 TCanvas *c33 = new TCanvas("c33","Reco Vs Gen Phi",800,600);
0769 c33->Clear();
0770 c33->Divide(1,1);
0771
0772 c33->cd(1);
0773 recoVsGenChargedJetPhiHist->Draw("COLZ");
0774 recoVsGenChargedJetPhiHist->SetTitle("Reconstructed Vs Generator Jet Phi;Gen Phi;Reco Phi");
0775 gPad->SetLogz();
0776 if(PRINT) c33->Print((results_path+"/matchedRecoVsGenJetPhi."+results_suffix+".png").c_str());
0777
0778
0779 if(useNewEDM) {
0780 TCanvas *c33_1 = new TCanvas("c33_1","Reco Vs Gen Area",800,600);
0781 c33_1->Clear();
0782 c33_1->Divide(1,1);
0783
0784 c33_1->cd(1);
0785 recoVsGenChargedJetAreaHist->Draw("COLZ");
0786 recoVsGenChargedJetAreaHist->SetTitle("Reconstructed Vs Generator Jet Area;Gen Area;Reco Area");
0787 gPad->SetLogz();
0788 if(PRINT) c33_1->Print((results_path+"/matchedRecoVsGenJetArea."+results_suffix+".png").c_str());
0789 }
0790
0791
0792 TCanvas *c34 = new TCanvas("c34","Reco Vs Gen Energy",800,600);
0793 c34->Clear();
0794 c34->Divide(1,1);
0795
0796 TF1 *f1_34 = new TF1("f1_34","1.0*x + 0.0",1,100);
0797 TF1 *f2_34 = new TF1("f2_34","2.0*x + 0.0",1,100);
0798 TF1 *f3_34 = new TF1("f3_34","3.0*x + 0.0",1,100);
0799
0800 c34->cd(1);
0801 recoVsGenChargedJetEHist->Draw("COLZ");
0802 recoVsGenChargedJetEHist->SetTitle("Reconstructed Vs Generator Jet Energy;Gen E;Reco E");
0803 f1_34->Draw("SAME");
0804 f2_34->Draw("SAME");
0805 f3_34->Draw("SAME");
0806 gPad->SetLogz();
0807 if(PRINT) c34->Print((results_path+"/matchedRecoVsGenJetEnergy."+results_suffix+".png").c_str());
0808
0809
0810 TCanvas *c35 = new TCanvas("c35","Jet Res Vs Gen Eta",800,600);
0811 c35->Clear();
0812 c35->Divide(1,1);
0813
0814 c35->cd(1);
0815 jetResVsEtaHist->Draw("COLZ");
0816 jetResVsEtaHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Eta;Gen Eta;Res");
0817 gPad->SetLogz();
0818 if(PRINT) c35->Print((results_path+"/matchedJetResolutionVsEta."+results_suffix+".png").c_str());
0819
0820
0821 TCanvas *c36 = new TCanvas("c36","Jet Res Vs Gen E",800,600);
0822 c36->Clear();
0823 c36->Divide(1,1);
0824
0825 c36->cd(1);
0826 jetResVsEHist->Draw("COLZ");
0827 jetResVsEHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Energy;Gen E;Res");
0828 gPad->SetLogz();
0829 if(PRINT) c36->Print((results_path+"/matchedJetResolutionVsEnergy."+results_suffix+".png").c_str());
0830
0831
0832 TCanvas *c37 = new TCanvas("c37","Jet Res Vs Gen E (-2.5 < eta < -1.0)",800,600);
0833 c37->Clear();
0834 c37->Divide(1,1);
0835
0836 c37->cd(1);
0837 jetResVsENegEtaNoDupHist->Draw("COLZ");
0838 jetResVsENegEtaNoDupHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Energy (-2.5 < eta < -1.0) No Duplicate;Gen E;Res");
0839 gPad->SetLogz();
0840 if(PRINT) c37->Print((results_path+"/matchedJetResolutionVsEnergyNegEta."+results_suffix+".png").c_str());
0841
0842
0843 TCanvas *c38 = new TCanvas("c38","Jet Res Vs Gen E (-1.0 < eta < 1.0)",800,600);
0844 c38->Clear();
0845 c38->Divide(1,1);
0846
0847 c38->cd(1);
0848 jetResVsEMidEtaNoDupHist->Draw("COLZ");
0849 jetResVsEMidEtaNoDupHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Energy (-1.0 < eta < 1.0) No Duplicate;Gen E;Res");
0850 gPad->SetLogz();
0851 if(PRINT) c38->Print((results_path+"/matchedJetResolutionVsEnergyMidEta."+results_suffix+".png").c_str());
0852 delete c38;
0853
0854 TCanvas *c39 = new TCanvas("c39","Jet Res Vs Gen E (1.0 < eta < 2.5)",800,600);
0855 c39->Clear();
0856 c39->Divide(1,1);
0857
0858 c39->cd(1);
0859 jetResVsEPosEtaNoDupHist->Draw("COLZ");
0860 jetResVsEPosEtaNoDupHist->SetTitle("(Reco - Gen)/Gen Jet Energy Vs Gen Energy (1.0 < eta < 2.5) No Duplicate;Gen E;Res");
0861 gPad->SetLogz();
0862 if(PRINT) c39->Print((results_path+"/matchedJetResolutionVsEnergyPosEta."+results_suffix+".png").c_str());
0863 delete c39;
0864
0865
0866
0867 const int BINS = 20;
0868 double binCent[BINS];
0869 double jesVsENeg[BINS];
0870 double jesVsEMid[BINS];
0871 double jesVsEPos[BINS];
0872 double jerVsENeg[BINS];
0873 double jerVsEMid[BINS];
0874 double jerVsEPos[BINS];
0875
0876 std::fill(std::begin(binCent), std::end(binCent), -999.);
0877 std::fill(std::begin(jesVsENeg), std::end(jesVsENeg), -999.);
0878 std::fill(std::begin(jesVsEMid), std::end(jesVsEMid), -999.);
0879 std::fill(std::begin(jesVsEPos), std::end(jesVsEPos), -999.);
0880 std::fill(std::begin(jerVsENeg), std::end(jerVsENeg), -999.);
0881 std::fill(std::begin(jerVsEMid), std::end(jerVsEMid), -999.);
0882 std::fill(std::begin(jerVsEPos), std::end(jerVsEPos), -999.);
0883
0884 TH1D *pxA = jetResVsENegEtaNoDupHist->ProjectionX("pxA",1,10000);
0885 for(int i=0; i<BINS; i++)
0886 {
0887 binCent[i] = pxA->GetBinCenter(i+1);
0888 }
0889
0890 TCanvas *c40 = new TCanvas("c40","Negative Rapidity Fit Results",800,600);
0891 c40->Clear();
0892 c40->Divide(5,4);
0893
0894 TH1D *hA[20];
0895 for(int i=1; i<21; i++)
0896 {
0897 hA[i-1] = (TH1D *)jetResVsENegEtaNoDupHist->ProjectionY(Form("projYA_%d",i),i,i);
0898
0899 TF1 *myGausA = new TF1("myGausA","gaus",-0.5,0.5);
0900 myGausA->SetParameters(hA[i-1]->GetMaximum(),0.0,0.01);
0901
0902 c40->cd(i);
0903
0904 hA[i-1]->Fit("myGausA","B","",-0.5,0.5);
0905 hA[i-1]->GetXaxis()->SetRangeUser(-1,1);
0906 gPad->SetLogy();
0907
0908 if(hA[i-1]->GetEntries() > 2)
0909 {
0910 auto fA = hA[i-1]->GetFunction("myGausA");
0911
0912 if(fA->GetParError(2)/fA->GetParameter(2) < 0.5)
0913 {
0914 jesVsENeg[i-1] = fA->GetParameter(1);
0915 jerVsENeg[i-1] = fA->GetParameter(2);
0916 }
0917
0918
0919 }
0920 }
0921 if(PRINT) c40->Print((results_path+"/matchedJetResolutionVsEnergyNegEtaFitSummary."+results_suffix+".png").c_str());
0922 delete c40;
0923
0924 TCanvas *c41 = new TCanvas("c41","Mid Rapidity Fit Results",800,600);
0925 c41->Clear();
0926 c41->Divide(5,4);
0927
0928 TH1D *hB[20];
0929 for(int i=1; i<21; i++)
0930 {
0931 hB[i-1] = (TH1D *)jetResVsEMidEtaNoDupHist->ProjectionY(Form("projYB_%d",i),i,i);
0932
0933 TF1 *myGausB = new TF1("myGausB","gaus",-0.5,0.5);
0934 myGausB->SetParameters(hB[i-1]->GetMaximum(),0.0,0.01);
0935
0936 c41->cd(i);
0937
0938 hB[i-1]->Fit("myGausB","B","",-0.5,0.5);
0939 hB[i-1]->GetXaxis()->SetRangeUser(-1,1);
0940 gPad->SetLogy();
0941
0942 if(hB[i-1]->GetEntries() > 2)
0943 {
0944 auto fB = hB[i-1]->GetFunction("myGausB");
0945
0946 if(fB->GetParError(2)/fB->GetParameter(2) < 0.5)
0947 {
0948 jesVsEMid[i-1] = fB->GetParameter(1);
0949 jerVsEMid[i-1] = fB->GetParameter(2);
0950 }
0951
0952
0953 }
0954 }
0955 if(PRINT) c41->Print((results_path+"/matchedJetResolutionVsEnergyMidEtaFitSummary."+results_suffix+".png").c_str());
0956 delete c41;
0957
0958 TCanvas *c42 = new TCanvas("c42","Positive Rapidity Fit Results",800,600);
0959 c42->Clear();
0960 c42->Divide(5,4);
0961
0962 TH1D *hC[20];
0963 for(int i=1; i<21; i++)
0964 {
0965 hC[i-1] = (TH1D *)jetResVsEPosEtaNoDupHist->ProjectionY(Form("projYC_%d",i),i,i);
0966
0967 TF1 *myGausC = new TF1("myGausC","gaus",-0.5,0.5);
0968 myGausC->SetParameters(hC[i-1]->GetMaximum(),0.0,0.01);
0969
0970 c42->cd(i);
0971
0972 hC[i-1]->Fit("myGausC","B","",-0.5,0.5);
0973 hC[i-1]->GetXaxis()->SetRangeUser(-1,1);
0974 gPad->SetLogy();
0975
0976 if(hC[i-1]->GetEntries() > 2)
0977 {
0978 auto fC = hC[i-1]->GetFunction("myGausC");
0979
0980 if(fC->GetParError(2)/fC->GetParameter(2) < 0.5)
0981 {
0982 jesVsEPos[i-1] = fC->GetParameter(1);
0983 jerVsEPos[i-1] = fC->GetParameter(2);
0984 }
0985
0986
0987 }
0988 }
0989 if(PRINT) c42->Print((results_path+"/matchedJetResolutionVsEnergyPosEtaFitSummary."+results_suffix+".png").c_str());
0990 delete c42;
0991 TCanvas *c43 = new TCanvas("c43","Positive JES/JER",800,600);
0992 c43->Clear();
0993 c43->Divide(1,1);
0994
0995 TGraph *gJESvsENeg = new TGraph(BINS,binCent,jesVsENeg);
0996 TGraph *gJERvsENeg = new TGraph(BINS,binCent,jerVsENeg);
0997
0998 TGraph *gJESvsEMid = new TGraph(BINS,binCent,jesVsEMid);
0999 TGraph *gJERvsEMid = new TGraph(BINS,binCent,jerVsEMid);
1000
1001 TGraph *gJESvsEPos = new TGraph(BINS,binCent,jesVsEPos);
1002 TGraph *gJERvsEPos = new TGraph(BINS,binCent,jerVsEPos);
1003
1004 TH2D *test43 = new TH2D("test43","Jet Energy Scale / Resolution Vs Eta;True Eta;JES/JER",1,0.,100.,1,-0.2,0.2);
1005 test43->Draw();
1006
1007 c43->cd(1);
1008 gJERvsENeg->Draw("*");
1009 gJERvsENeg->SetMarkerStyle(21);
1010 gJERvsENeg->SetMarkerSize(1);
1011 gJERvsENeg->SetMarkerColor(seabornBlue);
1012
1013 gJESvsENeg->Draw("*");
1014 gJESvsENeg->SetMarkerStyle(26);
1015 gJESvsENeg->SetMarkerSize(1);
1016 gJESvsENeg->SetMarkerColor(seabornBlue);
1017
1018 gJERvsEMid->Draw("*");
1019 gJERvsEMid->SetMarkerStyle(21);
1020 gJERvsEMid->SetMarkerSize(1);
1021 gJERvsEMid->SetMarkerColor(seabornRed);
1022
1023 gJESvsEMid->Draw("*");
1024 gJESvsEMid->SetMarkerStyle(26);
1025 gJESvsEMid->SetMarkerSize(1);
1026 gJESvsEMid->SetMarkerColor(seabornRed);
1027
1028 gJERvsEPos->Draw("*");
1029 gJERvsEPos->SetMarkerStyle(21);
1030 gJERvsEPos->SetMarkerSize(1);
1031 gJERvsEPos->SetMarkerColor(seabornGreen);
1032
1033 gJESvsEPos->Draw("*");
1034 gJESvsEPos->SetMarkerStyle(26);
1035 gJESvsEPos->SetMarkerSize(1);
1036 gJESvsEPos->SetMarkerColor(seabornGreen);
1037
1038 TLegend *legend = new TLegend(0.7,0.7,0.9,0.9);
1039 legend->AddEntry(gJERvsENeg, "JER, (-2.5 < #eta < -1)", "p");
1040 legend->AddEntry(gJESvsENeg, "JES, (-2.5 < #eta < -1)","p");
1041 legend->AddEntry(gJERvsEMid, "JER, (-1 < #eta < 1)", "p");
1042 legend->AddEntry(gJESvsEMid, "JES, (-1 < #eta < 1)", "p");
1043 legend->AddEntry(gJERvsEPos, "JER, (1 < #eta < 2.5) ", "p");
1044 legend->AddEntry(gJESvsEPos, "JES, (1 < #eta < 2.5)", "p");
1045 legend->Draw();
1046
1047 if(PRINT) c43->Print((results_path+"/matchedJetScaleResolutionSummary."+results_suffix+".png").c_str());
1048 delete c43;
1049
1050 return 0;
1051 }