Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-04-05 08:11:17

0001 #include <TFile.h>
0002 #include <TH1D.h>
0003 #include <TH2D.h>
0004 #include <TMath.h>
0005 #include <iostream>
0006 #include <vector>
0007 #include <string>
0008 #include <cmath>
0009 #include "RooUnfold.h"
0010 #include "RooUnfoldResponse.h"
0011 #include "RooUnfoldBayes.h"
0012 #include "/sphenix/user/hanpuj/plotstyle/AtlasStyle.C"
0013 #include "/sphenix/user/hanpuj/plotstyle/AtlasUtils.C"
0014 #include "unfold_Def.h"
0015 
0016 void do_unfolding_closure() {
0017   //********** Files **********//
0018   TFile *f_out = new TFile("output_closure_r04.root", "RECREATE");
0019   TFile *f_in_rm = new TFile("output_sim_r04.root", "READ");
0020 
0021   //********** Input histograms **********//
0022   TH1D *h_fullclosure_truth_zvertex60 = (TH1D*)f_in_rm->Get("h_fullclosure_truth_zvertex60"); // h_truth
0023   TH1D *h_fullclosure_measure_zvertex60 = (TH1D*)f_in_rm->Get("h_fullclosure_measure_zvertex60"); // h_measure
0024   TH2D *h_fullclosure_respmatrix_zvertex60 = (TH2D*)f_in_rm->Get("h_fullclosure_respmatrix_zvertex60"); // h_respmatrix
0025   TH1D *h_fullclosure_fake_zvertex60 = (TH1D*)f_in_rm->Get("h_fullclosure_fake_zvertex60"); // h_fake
0026   TH1D *h_fullclosure_miss_zvertex60 = (TH1D*)f_in_rm->Get("h_fullclosure_miss_zvertex60"); // h_miss
0027 
0028   TH1D *h_halfclosure_inputmeasure_zvertex60 = (TH1D*)f_in_rm->Get("h_halfclosure_inputmeasure_zvertex60"); // h_inputmeasure
0029   h_halfclosure_inputmeasure_zvertex60->SetBinContent(h_halfclosure_inputmeasure_zvertex60->FindBin(70),0.3);
0030   TH1D *h_halfclosure_truth_zvertex60 = (TH1D*)f_in_rm->Get("h_halfclosure_truth_zvertex60"); // h_truth
0031   TH1D *h_halfclosure_measure_zvertex60 = (TH1D*)f_in_rm->Get("h_halfclosure_measure_zvertex60"); // h_measure
0032   TH2D *h_halfclosure_respmatrix_zvertex60 = (TH2D*)f_in_rm->Get("h_halfclosure_respmatrix_zvertex60"); // h_respmatrix
0033   TH1D *h_halfclosure_fake_zvertex60 = (TH1D*)f_in_rm->Get("h_halfclosure_fake_zvertex60"); // h_fake
0034   TH1D *h_halfclosure_miss_zvertex60 = (TH1D*)f_in_rm->Get("h_halfclosure_miss_zvertex60"); // h_miss
0035 
0036   //********** Get purity & efficiency **********//
0037   // Calculate purity: h_purity = (h_measure – h_fake) / h_measure
0038   TH1D *h_fullclosure_purity_zvertex60 = (TH1D*)h_fullclosure_measure_zvertex60->Clone("h_fullclosure_purity_zvertex60");
0039   h_fullclosure_purity_zvertex60->Add(h_fullclosure_fake_zvertex60, -1);
0040   h_fullclosure_purity_zvertex60->Divide(h_fullclosure_purity_zvertex60, h_fullclosure_measure_zvertex60, 1, 1, "B");
0041 
0042   TH1D *h_halfclosure_purity_zvertex60 = (TH1D*)h_halfclosure_measure_zvertex60->Clone("h_halfclosure_purity_zvertex60");
0043   h_halfclosure_purity_zvertex60->Add(h_halfclosure_fake_zvertex60, -1);
0044   h_halfclosure_purity_zvertex60->Divide(h_halfclosure_purity_zvertex60, h_halfclosure_measure_zvertex60, 1, 1, "B");
0045 
0046   // Calculate efficiency: h_efficiency = (h_truth – h_miss) / h_truth
0047   TH1D *h_fullclosure_efficiency_zvertex60 = (TH1D*)h_fullclosure_truth_zvertex60->Clone("h_fullclosure_efficiency_zvertex60");
0048   h_fullclosure_efficiency_zvertex60->Add(h_fullclosure_miss_zvertex60, -1);
0049   h_fullclosure_efficiency_zvertex60->Divide(h_fullclosure_efficiency_zvertex60, h_fullclosure_truth_zvertex60, 1, 1, "B");
0050 
0051   TH1D *h_halfclosure_efficiency_zvertex60 = (TH1D*)h_halfclosure_truth_zvertex60->Clone("h_halfclosure_efficiency_zvertex60");
0052   h_halfclosure_efficiency_zvertex60->Add(h_halfclosure_miss_zvertex60, -1);
0053   h_halfclosure_efficiency_zvertex60->Divide(h_halfclosure_efficiency_zvertex60, h_halfclosure_truth_zvertex60, 1, 1, "B");
0054 
0055   //********** Full closure test 1 **********//
0056   // Apply purity correction: h_measure_puritycorrected = h_measure * h_purity
0057   TH1D *h_fullclosure_puritycorrected_measure_zvertex60 = (TH1D*)h_fullclosure_measure_zvertex60->Clone("h_fullclosure_puritycorrected_measure_zvertex60");
0058   h_fullclosure_puritycorrected_measure_zvertex60->Multiply(h_fullclosure_purity_zvertex60);
0059 
0060   TH1D *h_halfclosure_puritycorrected_measure_zvertex60 = (TH1D*)h_halfclosure_inputmeasure_zvertex60->Clone("h_halfclosure_puritycorrected_measure_zvertex60");
0061   h_halfclosure_puritycorrected_measure_zvertex60->Multiply(h_halfclosure_purity_zvertex60);
0062 
0063   // Check whether purity corrected h_measure equal the reco-axis projection of h_respmatrix
0064   TH1D *h_fullclosure_recoaxis_projection_zvertex60 = (TH1D*)h_fullclosure_respmatrix_zvertex60->ProjectionX("h_fullclosure_recoaxis_projection_zvertex60");
0065 
0066   TH1D *h_halfclosure_recoaxis_projection_zvertex60 = (TH1D*)h_halfclosure_respmatrix_zvertex60->ProjectionX("h_halfclosure_recoaxis_projection_zvertex60");
0067 
0068   // Save the ratio to h_fullclosure_test1_zvertex60 for plotting
0069   TH1D *h_fullclosure_test1_zvertex60 = (TH1D*)h_fullclosure_puritycorrected_measure_zvertex60->Clone("h_fullclosure_test1_zvertex60");
0070   h_fullclosure_test1_zvertex60->Divide(h_fullclosure_recoaxis_projection_zvertex60);
0071 
0072   TH1D *h_halfclosure_test1_zvertex60 = (TH1D*)h_halfclosure_puritycorrected_measure_zvertex60->Clone("h_halfclosure_test1_zvertex60");
0073   h_halfclosure_test1_zvertex60->Divide(h_halfclosure_recoaxis_projection_zvertex60);
0074 
0075   //********** Full closure test 2 **********//
0076   // Form response matrix object without fake and miss
0077   TH1D *h_fullclosure_rm_measure_zvertex60 = (TH1D*)h_fullclosure_respmatrix_zvertex60->ProjectionX("h_fullclosure_rm_measure_zvertex60");
0078   TH1D *h_fullclosure_rm_truth_zvertex60 = (TH1D*)h_fullclosure_respmatrix_zvertex60->ProjectionY("h_fullclosure_rm_truth_zvertex60");
0079   RooUnfoldResponse *rm_fullclosure_zvertex60 = new RooUnfoldResponse(h_fullclosure_rm_measure_zvertex60, h_fullclosure_rm_truth_zvertex60, h_fullclosure_respmatrix_zvertex60, "rm_fullclosure_zvertex60", "");
0080 
0081   TH1D *h_halfclosure_rm_measure_zvertex60 = (TH1D*)h_halfclosure_respmatrix_zvertex60->ProjectionX("h_halfclosure_rm_measure_zvertex60");
0082   TH1D *h_halfclosure_rm_truth_zvertex60 = (TH1D*)h_halfclosure_respmatrix_zvertex60->ProjectionY("h_halfclosure_rm_truth_zvertex60");
0083   RooUnfoldResponse *rm_halfclosure_zvertex60 = new RooUnfoldResponse(h_halfclosure_rm_measure_zvertex60, h_halfclosure_rm_truth_zvertex60, h_halfclosure_respmatrix_zvertex60, "rm_halfclosure_zvertex60", "");
0084 
0085   // Unfold h_measure_puritycorrected with 1 iteration
0086   RooUnfoldBayes fullclosure_unfold_iter1(rm_fullclosure_zvertex60, h_fullclosure_puritycorrected_measure_zvertex60, 1);
0087   TH1D *h_fullclosure_unfolded_iter1_zvertex60 = (TH1D*)fullclosure_unfold_iter1.Hunfold(RooUnfold::kErrors);
0088   h_fullclosure_unfolded_iter1_zvertex60->SetName("h_fullclosure_unfolded_iter1_zvertex60");
0089 
0090   RooUnfoldBayes halfclosure_unfold_iter1(rm_halfclosure_zvertex60, h_halfclosure_puritycorrected_measure_zvertex60, 1);
0091   TH1D *h_halfclosure_unfolded_iter1_zvertex60 = (TH1D*)halfclosure_unfold_iter1.Hunfold(RooUnfold::kErrors);
0092   h_halfclosure_unfolded_iter1_zvertex60->SetName("h_halfclosure_unfolded_iter1_zvertex60");
0093 
0094   // Unfold h_measure_puritycorrected with 5 iterations
0095   RooUnfoldBayes fullclosure_unfold_iter5(rm_fullclosure_zvertex60, h_fullclosure_puritycorrected_measure_zvertex60, 5);
0096   TH1D *h_fullclosure_unfolded_iter5_zvertex60 = (TH1D*)fullclosure_unfold_iter5.Hunfold(RooUnfold::kErrors);
0097   h_fullclosure_unfolded_iter5_zvertex60->SetName("h_fullclosure_unfolded_iter5_zvertex60");
0098 
0099   RooUnfoldBayes halfclosure_unfold_iter5(rm_halfclosure_zvertex60, h_halfclosure_puritycorrected_measure_zvertex60, 5);
0100   TH1D *h_halfclosure_unfolded_iter5_zvertex60 = (TH1D*)halfclosure_unfold_iter5.Hunfold(RooUnfold::kErrors);
0101   h_halfclosure_unfolded_iter5_zvertex60->SetName("h_halfclosure_unfolded_iter5_zvertex60");
0102 
0103   // Check whether the output equal the truth-axis projection of h_respmatrix
0104   TH1D *h_fullclosure_truthaxis_projection_zvertex60 = (TH1D*)h_fullclosure_respmatrix_zvertex60->ProjectionY("h_fullclosure_truthaxis_projection_zvertex60");
0105 
0106   TH1D *h_halfclosure_truthaxis_projection_zvertex60 = (TH1D*)h_halfclosure_respmatrix_zvertex60->ProjectionY("h_halfclosure_truthaxis_projection_zvertex60");
0107 
0108   // Save the ratio to h_fullclosure_test2_iter1_zvertex60 and h_fullclosure_test2_iter5_zvertex60 for plotting
0109   TH1D *h_fullclosure_test2_iter1_zvertex60 = (TH1D*)h_fullclosure_unfolded_iter1_zvertex60->Clone("h_fullclosure_test2_iter1_zvertex60");
0110   h_fullclosure_test2_iter1_zvertex60->Divide(h_fullclosure_truthaxis_projection_zvertex60);
0111   TH1D *h_fullclosure_test2_iter5_zvertex60 = (TH1D*)h_fullclosure_unfolded_iter5_zvertex60->Clone("h_fullclosure_test2_iter5_zvertex60");
0112   h_fullclosure_test2_iter5_zvertex60->Divide(h_fullclosure_truthaxis_projection_zvertex60);
0113 
0114   TH1D *h_halfclosure_test2_iter1_zvertex60 = (TH1D*)h_halfclosure_unfolded_iter1_zvertex60->Clone("h_halfclosure_test2_iter1_zvertex60");
0115   h_halfclosure_test2_iter1_zvertex60->Divide(h_halfclosure_truthaxis_projection_zvertex60);
0116   TH1D *h_halfclosure_test2_iter5_zvertex60 = (TH1D*)h_halfclosure_unfolded_iter5_zvertex60->Clone("h_halfclosure_test2_iter5_zvertex60");
0117   h_halfclosure_test2_iter5_zvertex60->Divide(h_halfclosure_truthaxis_projection_zvertex60);
0118 
0119   //********** Full closure test 3 **********//
0120   // Apply efficiency correction: h_unfolded_efficiencycorrected = h_unfolded / h_efficiency
0121   TH1D *h_fullclosure_efficiencycorrected_unfolded_iter1_zvertex = (TH1D*)h_fullclosure_unfolded_iter1_zvertex60->Clone("h_fullclosure_efficiencycorrected_unfolded_iter1_zvertex60");
0122   h_fullclosure_efficiencycorrected_unfolded_iter1_zvertex->Divide(h_fullclosure_efficiency_zvertex60);
0123 
0124   TH1D *h_halfclosure_efficiencycorrected_unfolded_iter1_zvertex = (TH1D*)h_halfclosure_unfolded_iter1_zvertex60->Clone("h_halfclosure_efficiencycorrected_unfolded_iter1_zvertex60");
0125   h_halfclosure_efficiencycorrected_unfolded_iter1_zvertex->Divide(h_halfclosure_efficiency_zvertex60);
0126 
0127   // Check whether efficiency corrected h_unfolded equal h_truth and save the ratio to h_fullclosure_test3_iter1_zvertex60 for plotting
0128   TH1D *h_fullclosure_test3_iter1_zvertex60 = (TH1D*)h_fullclosure_efficiencycorrected_unfolded_iter1_zvertex->Clone("h_fullclosure_test3_iter1_zvertex60");
0129   h_fullclosure_test3_iter1_zvertex60->Divide(h_fullclosure_truth_zvertex60);
0130 
0131   TH1D *h_halfclosure_test3_iter1_zvertex60 = (TH1D*)h_halfclosure_efficiencycorrected_unfolded_iter1_zvertex->Clone("h_halfclosure_test3_iter1_zvertex60");
0132   h_halfclosure_test3_iter1_zvertex60->Divide(h_halfclosure_truth_zvertex60);
0133 
0134   //********** Writing to output **********//
0135   f_out->cd();
0136   // Input histograms
0137   h_fullclosure_truth_zvertex60->Write();
0138   h_fullclosure_measure_zvertex60->Write();
0139   h_fullclosure_respmatrix_zvertex60->Write();
0140   h_fullclosure_fake_zvertex60->Write();
0141   h_fullclosure_miss_zvertex60->Write();
0142 
0143   h_halfclosure_inputmeasure_zvertex60->Write();
0144   h_halfclosure_truth_zvertex60->Write();
0145   h_halfclosure_measure_zvertex60->Write();
0146   h_halfclosure_respmatrix_zvertex60->Write();
0147   h_halfclosure_fake_zvertex60->Write();
0148   h_halfclosure_miss_zvertex60->Write();
0149 
0150   // Purity and efficiency histograms
0151   h_fullclosure_purity_zvertex60->Write();
0152   h_fullclosure_efficiency_zvertex60->Write();
0153 
0154   h_halfclosure_purity_zvertex60->Write();
0155   h_halfclosure_efficiency_zvertex60->Write();
0156 
0157   // Full closure test 1
0158   h_fullclosure_puritycorrected_measure_zvertex60->Write();
0159   h_fullclosure_recoaxis_projection_zvertex60->Write();
0160   h_fullclosure_test1_zvertex60->Write();
0161 
0162   h_halfclosure_puritycorrected_measure_zvertex60->Write();
0163   h_halfclosure_recoaxis_projection_zvertex60->Write();
0164   h_halfclosure_test1_zvertex60->Write();
0165 
0166   // Full closure test 2
0167   h_fullclosure_unfolded_iter1_zvertex60->Write();
0168   h_fullclosure_unfolded_iter5_zvertex60->Write();
0169   h_fullclosure_truthaxis_projection_zvertex60->Write();
0170   h_fullclosure_test2_iter1_zvertex60->Write();
0171   h_fullclosure_test2_iter5_zvertex60->Write();
0172 
0173   h_halfclosure_unfolded_iter1_zvertex60->Write();
0174   h_halfclosure_unfolded_iter5_zvertex60->Write();
0175   h_halfclosure_truthaxis_projection_zvertex60->Write();
0176   h_halfclosure_test2_iter1_zvertex60->Write();
0177   h_halfclosure_test2_iter5_zvertex60->Write();
0178 
0179   // Full closure test 3
0180   h_fullclosure_efficiencycorrected_unfolded_iter1_zvertex->Write();
0181   h_fullclosure_test3_iter1_zvertex60->Write();
0182 
0183   h_halfclosure_efficiencycorrected_unfolded_iter1_zvertex->Write();
0184   h_halfclosure_test3_iter1_zvertex60->Write();
0185   f_out->Close();
0186 
0187   //********** Plotting **********//
0188   SetAtlasStyle();
0189   gStyle->SetPadTickX(1);
0190   gStyle->SetPadTickY(1);
0191 /*
0192   // Plot response matrix
0193   TH2D *draw_respmatrix = (TH2D*)h_fullclosure_respmatrix_zvertex60->Clone("draw_respmatrix");
0194   TCanvas *can_respmatrix = new TCanvas("can_respmatrix", "", 800, 700);
0195   gStyle->SetPalette(57);
0196   can_respmatrix->SetTopMargin(0.12);
0197   can_respmatrix->SetLeftMargin(0.15);
0198   can_respmatrix->SetBottomMargin(0.15);
0199   can_respmatrix->SetRightMargin(0.2);
0200   can_respmatrix->SetLogz();
0201   draw_respmatrix->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0202   draw_respmatrix->GetYaxis()->SetTitle("p_{T}^{truth} [GeV]");
0203   draw_respmatrix->GetZaxis()->SetTitle(" ");
0204   draw_respmatrix->GetZaxis()->SetRangeUser(1e-6, 2e5);
0205   draw_respmatrix->GetXaxis()->SetTitleSize(0.065);
0206   draw_respmatrix->GetYaxis()->SetTitleSize(0.065);
0207   draw_respmatrix->GetZaxis()->SetTitleSize(0.06);
0208   draw_respmatrix->GetXaxis()->SetTitleOffset(1.04);
0209   draw_respmatrix->GetYaxis()->SetTitleOffset(1.06);
0210   draw_respmatrix->GetZaxis()->SetTitleOffset(1.22);
0211   draw_respmatrix->GetXaxis()->SetLabelSize(0.055);
0212   draw_respmatrix->GetYaxis()->SetLabelSize(0.055);
0213   draw_respmatrix->GetZaxis()->SetLabelSize(0.055);
0214   draw_respmatrix->GetXaxis()->CenterTitle();
0215   draw_respmatrix->GetYaxis()->CenterTitle();
0216   draw_respmatrix->GetZaxis()->CenterTitle();
0217   draw_respmatrix->GetYaxis()->SetRangeUser(truthptbins[0], truthptbins[truthnpt-1]);
0218   draw_respmatrix->Draw("colz");
0219   myText(0.03, 0.97, 1, "#bf{#it{sPHENIX}} Simulation    PYTHIA8 p+p#sqrt{s} = 200 GeV", 0.05);
0220   myText(0.03, 0.91, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4,  |#eta^{jet}| < 0.7,  |z| < 60 cm", 0.05);
0221   can_respmatrix->SaveAs("figure_closure/fullclosure_respmatrix.png");
0222 
0223   // Plot purity and efficiency
0224   TH1D *draw_measure = (TH1D*)h_fullclosure_measure_zvertex60->Clone("draw_measure");
0225   TH1D *draw_fake = (TH1D*)h_fullclosure_fake_zvertex60->Clone("draw_fake");
0226   TH1D *draw_purity = (TH1D*)h_fullclosure_purity_zvertex60->Clone("draw_purity");
0227   TCanvas *can_purity = new TCanvas("can_purity", "", 800, 963);
0228   can_purity->Divide(1, 2);
0229   gStyle->SetPalette(57);
0230   TPad *pad_purity_1 = (TPad*)can_purity->cd(1);
0231   pad_purity_1->SetPad(0, 0.4, 1, 1);
0232   pad_purity_1->SetTopMargin(0.03);
0233   pad_purity_1->SetLeftMargin(0.15);
0234   pad_purity_1->SetBottomMargin(0.035);
0235   pad_purity_1->SetRightMargin(0.08);
0236   pad_purity_1->SetLogy();
0237   draw_measure->SetMarkerStyle(53);
0238   draw_measure->SetMarkerSize(2);
0239   draw_measure->SetMarkerColor(kBlack);
0240   draw_measure->SetLineColor(kBlack);
0241   draw_fake->SetMarkerStyle(54);
0242   draw_fake->SetMarkerSize(2);
0243   draw_fake->SetMarkerColor(kRed);
0244   draw_fake->SetLineColor(kRed);
0245   draw_measure->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0246   draw_measure->GetYaxis()->SetTitle("Arb. Unit");
0247   draw_measure->GetXaxis()->SetRangeUser(15, 75);
0248   draw_measure->GetYaxis()->SetRangeUser(5e-2, 5e5);
0249   draw_measure->GetXaxis()->SetTitleSize(0.065);
0250   draw_measure->GetYaxis()->SetTitleSize(0.065);
0251   draw_measure->GetXaxis()->SetTitleOffset(1.04);
0252   draw_measure->GetYaxis()->SetTitleOffset(1.06);
0253   draw_measure->GetXaxis()->SetLabelSize(0.055);
0254   draw_measure->GetYaxis()->SetLabelSize(0.055);
0255   draw_measure->GetXaxis()->SetLabelOffset(2);
0256   draw_measure->GetXaxis()->CenterTitle();
0257   draw_measure->GetYaxis()->CenterTitle();
0258   draw_measure->Draw();
0259   draw_fake->Draw("same");
0260   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0261   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0262   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0263   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0264   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_measure", 0.05, true);
0265   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "h_fake", 0.05, true);
0266   TPad *pad_purity_2 = (TPad*)can_purity->cd(2);
0267   pad_purity_2->SetPad(0, 0, 1, 0.4);
0268   pad_purity_2->SetTopMargin(0.03);
0269   pad_purity_2->SetLeftMargin(0.15);
0270   pad_purity_2->SetBottomMargin(0.25);
0271   pad_purity_2->SetRightMargin(0.08);
0272   draw_purity->SetMarkerStyle(53);
0273   draw_purity->SetMarkerSize(2);
0274   draw_purity->SetMarkerColor(kBlack);
0275   draw_purity->SetLineColor(kBlack);
0276   draw_purity->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0277   draw_purity->GetYaxis()->SetTitle("Purity");
0278   draw_purity->GetXaxis()->SetRangeUser(15, 75);
0279   draw_purity->GetYaxis()->SetRangeUser(0.85, 1.05);
0280   draw_purity->GetXaxis()->CenterTitle();
0281   draw_purity->GetYaxis()->CenterTitle();
0282   draw_purity->GetXaxis()->SetTitleOffset(0.95);
0283   draw_purity->GetYaxis()->SetTitleOffset(draw_measure->GetYaxis()->GetTitleOffset()*4/6.);
0284   draw_purity->GetXaxis()->SetLabelSize(draw_measure->GetXaxis()->GetLabelSize()*6/4.);
0285   draw_purity->GetYaxis()->SetLabelSize(draw_measure->GetYaxis()->GetLabelSize()*6/4.);
0286   draw_purity->GetXaxis()->SetTitleSize(draw_measure->GetXaxis()->GetTitleSize()*6/4.);
0287   draw_purity->GetYaxis()->SetTitleSize(draw_measure->GetYaxis()->GetTitleSize()*6/4.);
0288   draw_purity->Draw();
0289   myText(0.22, 0.9, 1, "h_purity = (h_measure - h_fake) / h_measure", 0.075);
0290   TLine *line_purity;
0291   line_purity = new TLine(15, 1, 75, 1);
0292   line_purity->SetLineColor(kBlack);
0293   line_purity->SetLineStyle(3);
0294   line_purity->Draw("same");
0295   can_purity->SaveAs("figure_closure/fullclosure_purity.png");
0296 
0297   TH1D *draw_truth = (TH1D*)h_fullclosure_truth_zvertex60->Clone("draw_truth");
0298   TH1D *draw_miss = (TH1D*)h_fullclosure_miss_zvertex60->Clone("draw_miss");
0299   TH1D *draw_efficiency = (TH1D*)h_fullclosure_efficiency_zvertex60->Clone("draw_efficiency");
0300   TCanvas *can_efficiency = new TCanvas("can_efficiency", "", 800, 963);
0301   can_efficiency->Divide(1, 2);
0302   gStyle->SetPalette(57);
0303   TPad *pad_efficiency_1 = (TPad*)can_efficiency->cd(1);
0304   pad_efficiency_1->SetPad(0, 0.4, 1, 1);
0305   pad_efficiency_1->SetTopMargin(0.03);
0306   pad_efficiency_1->SetLeftMargin(0.15);
0307   pad_efficiency_1->SetBottomMargin(0.035);
0308   pad_efficiency_1->SetRightMargin(0.08);
0309   pad_efficiency_1->SetLogy();
0310   draw_truth->SetMarkerStyle(53);
0311   draw_truth->SetMarkerSize(2);
0312   draw_truth->SetMarkerColor(kBlack);
0313   draw_truth->SetLineColor(kBlack);
0314   draw_miss->SetMarkerStyle(54);
0315   draw_miss->SetMarkerSize(2);
0316   draw_miss->SetMarkerColor(kRed);
0317   draw_miss->SetLineColor(kRed);
0318   draw_truth->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0319   draw_truth->GetYaxis()->SetTitle("Arb. Unit");
0320   draw_truth->GetXaxis()->SetRangeUser(7, 86);
0321   draw_truth->GetYaxis()->SetRangeUser(5e-4, 5e7);
0322   draw_truth->GetXaxis()->SetTitleSize(0.065);
0323   draw_truth->GetYaxis()->SetTitleSize(0.065);
0324   draw_truth->GetXaxis()->SetTitleOffset(1.04);
0325   draw_truth->GetYaxis()->SetTitleOffset(1.06);
0326   draw_truth->GetXaxis()->SetLabelSize(0.055);
0327   draw_truth->GetYaxis()->SetLabelSize(0.055);
0328   draw_truth->GetXaxis()->SetLabelOffset(2);
0329   draw_truth->GetXaxis()->CenterTitle();
0330   draw_truth->GetYaxis()->CenterTitle();
0331   draw_truth->Draw();
0332   draw_miss->Draw("same");
0333   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0334   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0335   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0336   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0337   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_truth", 0.05, true);
0338   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "h_miss", 0.05, true);
0339   TPad *pad_efficiency_2 = (TPad*)can_efficiency->cd(2);
0340   pad_efficiency_2->SetPad(0, 0, 1, 0.4);
0341   pad_efficiency_2->SetTopMargin(0.03);
0342   pad_efficiency_2->SetLeftMargin(0.15);
0343   pad_efficiency_2->SetBottomMargin(0.25);
0344   pad_efficiency_2->SetRightMargin(0.08);
0345   draw_efficiency->SetMarkerStyle(53);
0346   draw_efficiency->SetMarkerSize(2);
0347   draw_efficiency->SetMarkerColor(kBlack);
0348   draw_efficiency->SetLineColor(kBlack);
0349   draw_efficiency->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0350   draw_efficiency->GetYaxis()->SetTitle("Efficiency");
0351   draw_efficiency->GetXaxis()->SetRangeUser(7, 86);
0352   draw_efficiency->GetYaxis()->SetRangeUser(0, 1.2);
0353   draw_efficiency->GetXaxis()->CenterTitle();
0354   draw_efficiency->GetYaxis()->CenterTitle();
0355   draw_efficiency->GetXaxis()->SetTitleOffset(0.95);
0356   draw_efficiency->GetYaxis()->SetTitleOffset(draw_truth->GetYaxis()->GetTitleOffset()*4/6.);
0357   draw_efficiency->GetXaxis()->SetLabelSize(draw_truth->GetXaxis()->GetLabelSize()*6/4.);
0358   draw_efficiency->GetYaxis()->SetLabelSize(draw_truth->GetYaxis()->GetLabelSize()*6/4.);
0359   draw_efficiency->GetXaxis()->SetTitleSize(draw_truth->GetXaxis()->GetTitleSize()*6/4.);
0360   draw_efficiency->GetYaxis()->SetTitleSize(draw_truth->GetYaxis()->GetTitleSize()*6/4.);
0361   draw_efficiency->Draw();
0362   myText(0.22, 0.9, 1, "h_efficiency = (h_truth - h_miss) / h_truth", 0.075);
0363   TLine *line_efficiency;
0364   line_efficiency = new TLine(7, 1, 86, 1);
0365   line_efficiency->SetLineColor(kBlack);
0366   line_efficiency->SetLineStyle(3);
0367   line_efficiency->Draw("same");
0368   can_efficiency->SaveAs("figure_closure/fullclosure_efficiency.png");
0369 
0370   // Plot full closure test 1
0371   TH1D *draw_correctedmeasure = (TH1D*)h_fullclosure_puritycorrected_measure_zvertex60->Clone("draw_correctedmeasure");
0372   TH1D *draw_recoprojection = (TH1D*)h_fullclosure_recoaxis_projection_zvertex60->Clone("draw_recoprojection"); 
0373   TH1D *draw_test1 = (TH1D*)h_fullclosure_test1_zvertex60->Clone("draw_test1");
0374   TCanvas *can_test1 = new TCanvas("can_test1", "", 800, 963);
0375   can_test1->Divide(1, 2);
0376   gStyle->SetPalette(57);
0377   TPad *pad_test1_1 = (TPad*)can_test1->cd(1);
0378   pad_test1_1->SetPad(0, 0.4, 1, 1);
0379   pad_test1_1->SetTopMargin(0.03);
0380   pad_test1_1->SetLeftMargin(0.15);
0381   pad_test1_1->SetBottomMargin(0.035);
0382   pad_test1_1->SetRightMargin(0.08);
0383   pad_test1_1->SetLogy();
0384   draw_correctedmeasure->SetMarkerStyle(53);
0385   draw_correctedmeasure->SetMarkerSize(2);
0386   draw_correctedmeasure->SetMarkerColor(kBlack);
0387   draw_correctedmeasure->SetLineColor(kBlack);
0388   draw_recoprojection->SetMarkerStyle(54);
0389   draw_recoprojection->SetMarkerSize(2);
0390   draw_recoprojection->SetMarkerColor(kRed);
0391   draw_recoprojection->SetLineColor(kRed);
0392   draw_correctedmeasure->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0393   draw_correctedmeasure->GetYaxis()->SetTitle("Arb. Unit");
0394   draw_correctedmeasure->GetXaxis()->SetRangeUser(15, 75);
0395   draw_correctedmeasure->GetYaxis()->SetRangeUser(1, 5e5);
0396   draw_correctedmeasure->GetXaxis()->SetTitleSize(0.065);
0397   draw_correctedmeasure->GetYaxis()->SetTitleSize(0.065);
0398   draw_correctedmeasure->GetXaxis()->SetTitleOffset(1.04);
0399   draw_correctedmeasure->GetYaxis()->SetTitleOffset(1.06);
0400   draw_correctedmeasure->GetXaxis()->SetLabelSize(0.055);
0401   draw_correctedmeasure->GetYaxis()->SetLabelSize(0.055);
0402   draw_correctedmeasure->GetXaxis()->SetLabelOffset(2);
0403   draw_correctedmeasure->GetXaxis()->CenterTitle();
0404   draw_correctedmeasure->GetYaxis()->CenterTitle();
0405   draw_correctedmeasure->Draw();
0406   draw_recoprojection->Draw("same");
0407   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0408   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0409   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0410   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0411   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_measure #times  h_purity", 0.05, true);
0412   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "Reco axis projection of response matrix", 0.05, true);
0413   TPad *pad_test1_2 = (TPad*)can_test1->cd(2);
0414   pad_test1_2->SetPad(0, 0, 1, 0.4);
0415   pad_test1_2->SetTopMargin(0.03);
0416   pad_test1_2->SetLeftMargin(0.15);
0417   pad_test1_2->SetBottomMargin(0.25);
0418   pad_test1_2->SetRightMargin(0.08);
0419   draw_test1->SetMarkerStyle(53);
0420   draw_test1->SetMarkerSize(2);
0421   draw_test1->SetMarkerColor(kBlack);
0422   draw_test1->SetLineColor(kBlack);
0423   draw_test1->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0424   draw_test1->GetYaxis()->SetTitle("Ratio");
0425   draw_test1->GetXaxis()->SetRangeUser(15, 75);
0426   draw_test1->GetYaxis()->SetRangeUser(0.85, 1.15);
0427   draw_test1->GetXaxis()->CenterTitle();
0428   draw_test1->GetYaxis()->CenterTitle();
0429   draw_test1->GetXaxis()->SetTitleOffset(0.95);
0430   draw_test1->GetYaxis()->SetTitleOffset(draw_correctedmeasure->GetYaxis()->GetTitleOffset()*4/6.);
0431   draw_test1->GetXaxis()->SetLabelSize(draw_correctedmeasure->GetXaxis()->GetLabelSize()*6/4.);
0432   draw_test1->GetYaxis()->SetLabelSize(draw_correctedmeasure->GetYaxis()->GetLabelSize()*6/4.);
0433   draw_test1->GetXaxis()->SetTitleSize(draw_correctedmeasure->GetXaxis()->GetTitleSize()*6/4.);
0434   draw_test1->GetYaxis()->SetTitleSize(draw_correctedmeasure->GetYaxis()->GetTitleSize()*6/4.);
0435   draw_test1->Draw();
0436   TLine *line_test1;
0437   line_test1 = new TLine(15, 1, 75, 1);
0438   line_test1->SetLineColor(kBlack);
0439   line_test1->SetLineStyle(3);
0440   line_test1->Draw("same");
0441   can_test1->SaveAs("figure_closure/fullclosure_test1.png");
0442 
0443   // Plot full closure test 2
0444   TH1D *draw_unfolded_iter1 = (TH1D*)h_fullclosure_unfolded_iter1_zvertex60->Clone("draw_unfolded_iter1");
0445   TH1D *draw_unfolded_iter5 = (TH1D*)h_fullclosure_unfolded_iter5_zvertex60->Clone("draw_unfolded_iter5");
0446   TH1D *draw_truthprojection = (TH1D*)h_fullclosure_truthaxis_projection_zvertex60->Clone("draw_truthprojection");
0447   TH1D *draw_test2_iter1 = (TH1D*)h_fullclosure_test2_iter1_zvertex60->Clone("draw_test2_iter1");
0448   TH1D *draw_test2_iter5 = (TH1D*)h_fullclosure_test2_iter5_zvertex60->Clone("draw_test2_iter5");
0449 
0450   TCanvas *can_test2_iter1 = new TCanvas("can_test2_iter1", "", 800, 963);
0451   can_test2_iter1->Divide(1, 2);
0452   gStyle->SetPalette(57);
0453   TPad *pad_test2_iter1_1 = (TPad*)can_test2_iter1->cd(1);
0454   pad_test2_iter1_1->SetPad(0, 0.4, 1, 1);
0455   pad_test2_iter1_1->SetTopMargin(0.03);
0456   pad_test2_iter1_1->SetLeftMargin(0.15);
0457   pad_test2_iter1_1->SetBottomMargin(0.035);
0458   pad_test2_iter1_1->SetRightMargin(0.08);
0459   pad_test2_iter1_1->SetLogy();
0460   draw_unfolded_iter1->SetMarkerStyle(53);
0461   draw_unfolded_iter1->SetMarkerSize(2);
0462   draw_unfolded_iter1->SetMarkerColor(kBlack);
0463   draw_unfolded_iter1->SetLineColor(kBlack);
0464   draw_truthprojection->SetMarkerStyle(54);
0465   draw_truthprojection->SetMarkerSize(2);
0466   draw_truthprojection->SetMarkerColor(kRed);
0467   draw_truthprojection->SetLineColor(kRed);
0468   draw_unfolded_iter1->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0469   draw_unfolded_iter1->GetYaxis()->SetTitle("Arb. Unit");
0470   draw_unfolded_iter1->GetXaxis()->SetRangeUser(7, 86);
0471   draw_unfolded_iter1->GetYaxis()->SetRangeUser(5e-4, 5e5);
0472   draw_unfolded_iter1->GetXaxis()->SetTitleSize(0.065);
0473   draw_unfolded_iter1->GetYaxis()->SetTitleSize(0.065);
0474   draw_unfolded_iter1->GetXaxis()->SetTitleOffset(1.04);
0475   draw_unfolded_iter1->GetYaxis()->SetTitleOffset(1.06);
0476   draw_unfolded_iter1->GetXaxis()->SetLabelSize(0.055);
0477   draw_unfolded_iter1->GetYaxis()->SetLabelSize(0.055);
0478   draw_unfolded_iter1->GetXaxis()->SetLabelOffset(2);
0479   draw_unfolded_iter1->GetXaxis()->CenterTitle();
0480   draw_unfolded_iter1->GetYaxis()->CenterTitle();
0481   draw_unfolded_iter1->Draw();
0482   draw_truthprojection->Draw("same");
0483   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0484   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0485   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0486   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0487   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_unfolded (1 iteration)", 0.05, true);
0488   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "Truth axis projection of response matrix", 0.05, true);
0489   TPad *pad_test2_iter1_2 = (TPad*)can_test2_iter1->cd(2);
0490   pad_test2_iter1_2->SetPad(0, 0, 1, 0.4);
0491   pad_test2_iter1_2->SetTopMargin(0.03);
0492   pad_test2_iter1_2->SetLeftMargin(0.15);
0493   pad_test2_iter1_2->SetBottomMargin(0.25);
0494   pad_test2_iter1_2->SetRightMargin(0.08);
0495   draw_test2_iter1->SetMarkerStyle(53);
0496   draw_test2_iter1->SetMarkerSize(2);
0497   draw_test2_iter1->SetMarkerColor(kBlack);
0498   draw_test2_iter1->SetLineColor(kBlack);
0499   draw_test2_iter1->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0500   draw_test2_iter1->GetYaxis()->SetTitle("Ratio");
0501   draw_test2_iter1->GetXaxis()->SetRangeUser(7, 86);
0502   draw_test2_iter1->GetYaxis()->SetRangeUser(0.85, 1.15);
0503   draw_test2_iter1->GetXaxis()->CenterTitle();
0504   draw_test2_iter1->GetYaxis()->CenterTitle();
0505   draw_test2_iter1->GetXaxis()->SetTitleOffset(0.95);
0506   draw_test2_iter1->GetYaxis()->SetTitleOffset(draw_unfolded_iter1->GetYaxis()->GetTitleOffset()*4/6.);
0507   draw_test2_iter1->GetXaxis()->SetLabelSize(draw_unfolded_iter1->GetXaxis()->GetLabelSize()*6/4.);
0508   draw_test2_iter1->GetYaxis()->SetLabelSize(draw_unfolded_iter1->GetYaxis()->GetLabelSize()*6/4.);
0509   draw_test2_iter1->GetXaxis()->SetTitleSize(draw_unfolded_iter1->GetXaxis()->GetTitleSize()*6/4.);
0510   draw_test2_iter1->GetYaxis()->SetTitleSize(draw_unfolded_iter1->GetYaxis()->GetTitleSize()*6/4.);
0511   draw_test2_iter1->Draw();
0512   TLine *line_test2_iter1;
0513   line_test2_iter1 = new TLine(7, 1, 86, 1);
0514   line_test2_iter1->SetLineColor(kBlack);
0515   line_test2_iter1->SetLineStyle(3);
0516   line_test2_iter1->Draw("same");
0517   can_test2_iter1->SaveAs("figure_closure/fullclosure_test2_iter1.png");
0518 
0519   TCanvas *can_test2_iter5 = new TCanvas("can_test2_iter5", "", 800, 963);
0520   can_test2_iter5->Divide(1, 2);
0521   gStyle->SetPalette(57);
0522   TPad *pad_test2_iter5_1 = (TPad*)can_test2_iter5->cd(1);
0523   pad_test2_iter5_1->SetPad(0, 0.4, 1, 1);
0524   pad_test2_iter5_1->SetTopMargin(0.03);
0525   pad_test2_iter5_1->SetLeftMargin(0.15);
0526   pad_test2_iter5_1->SetBottomMargin(0.035);
0527   pad_test2_iter5_1->SetRightMargin(0.08);
0528   pad_test2_iter5_1->SetLogy();
0529   draw_unfolded_iter5->SetMarkerStyle(53);
0530   draw_unfolded_iter5->SetMarkerSize(2);
0531   draw_unfolded_iter5->SetMarkerColor(kBlack);
0532   draw_unfolded_iter5->SetLineColor(kBlack);
0533   draw_truthprojection->SetMarkerStyle(54);
0534   draw_truthprojection->SetMarkerSize(2);
0535   draw_truthprojection->SetMarkerColor(kRed);
0536   draw_truthprojection->SetLineColor(kRed);
0537   draw_unfolded_iter5->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0538   draw_unfolded_iter5->GetYaxis()->SetTitle("Arb. Unit");
0539   draw_unfolded_iter5->GetXaxis()->SetRangeUser(7, 86);
0540   draw_unfolded_iter5->GetYaxis()->SetRangeUser(5e-4, 5e5);
0541   draw_unfolded_iter5->GetXaxis()->SetTitleSize(0.065);
0542   draw_unfolded_iter5->GetYaxis()->SetTitleSize(0.065);
0543   draw_unfolded_iter5->GetXaxis()->SetTitleOffset(1.04);
0544   draw_unfolded_iter5->GetYaxis()->SetTitleOffset(1.06);
0545   draw_unfolded_iter5->GetXaxis()->SetLabelSize(0.055);
0546   draw_unfolded_iter5->GetYaxis()->SetLabelSize(0.055);
0547   draw_unfolded_iter5->GetXaxis()->SetLabelOffset(2);
0548   draw_unfolded_iter5->GetXaxis()->CenterTitle();
0549   draw_unfolded_iter5->GetYaxis()->CenterTitle();
0550   draw_unfolded_iter5->Draw();
0551   draw_truthprojection->Draw("same");
0552   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0553   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0554   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0555   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0556   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_unfolded (5 iteration)", 0.05, true);
0557   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "Truth axis projection of response matrix", 0.05, true);
0558   TPad *pad_test2_iter5_2 = (TPad*)can_test2_iter5->cd(2);
0559   pad_test2_iter5_2->SetPad(0, 0, 1, 0.4);
0560   pad_test2_iter5_2->SetTopMargin(0.03);
0561   pad_test2_iter5_2->SetLeftMargin(0.15);
0562   pad_test2_iter5_2->SetBottomMargin(0.25);
0563   pad_test2_iter5_2->SetRightMargin(0.08);
0564   draw_test2_iter5->SetMarkerStyle(53);
0565   draw_test2_iter5->SetMarkerSize(2);
0566   draw_test2_iter5->SetMarkerColor(kBlack);
0567   draw_test2_iter5->SetLineColor(kBlack);
0568   draw_test2_iter5->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0569   draw_test2_iter5->GetYaxis()->SetTitle("Ratio");
0570   draw_test2_iter5->GetXaxis()->SetRangeUser(7, 86);
0571   draw_test2_iter5->GetYaxis()->SetRangeUser(0.85, 1.15);
0572   draw_test2_iter5->GetXaxis()->CenterTitle();
0573   draw_test2_iter5->GetYaxis()->CenterTitle();
0574   draw_test2_iter5->GetXaxis()->SetTitleOffset(0.95);
0575   draw_test2_iter5->GetYaxis()->SetTitleOffset(draw_unfolded_iter5->GetYaxis()->GetTitleOffset()*4/6.);
0576   draw_test2_iter5->GetXaxis()->SetLabelSize(draw_unfolded_iter5->GetXaxis()->GetLabelSize()*6/4.);
0577   draw_test2_iter5->GetYaxis()->SetLabelSize(draw_unfolded_iter5->GetYaxis()->GetLabelSize()*6/4.);
0578   draw_test2_iter5->GetXaxis()->SetTitleSize(draw_unfolded_iter5->GetXaxis()->GetTitleSize()*6/4.);
0579   draw_test2_iter5->GetYaxis()->SetTitleSize(draw_unfolded_iter5->GetYaxis()->GetTitleSize()*6/4.);
0580   draw_test2_iter5->Draw();
0581   TLine *line_test2_iter5;
0582   line_test2_iter5 = new TLine(7, 1, 86, 1);
0583   line_test2_iter5->SetLineColor(kBlack);
0584   line_test2_iter5->SetLineStyle(3);
0585   line_test2_iter5->Draw("same");
0586   can_test2_iter5->SaveAs("figure_closure/fullclosure_test2_iter5.png");
0587 
0588   // Plot full closure test 3
0589   TH1D *draw_efficiencycorrected_unfolded = (TH1D*)h_fullclosure_efficiencycorrected_unfolded_iter1_zvertex->Clone("draw_efficiencycorrected_unfolded");
0590   TH1D *draw_truth_final = (TH1D*)h_fullclosure_truth_zvertex60->Clone("draw_truth_final");
0591   TH1D *draw_test3 = (TH1D*)h_fullclosure_test3_iter1_zvertex60->Clone("draw_test3");
0592   TCanvas *can_test3 = new TCanvas("can_test3", "", 800, 963);
0593   can_test3->Divide(1, 2);
0594   gStyle->SetPalette(57);
0595   TPad *pad_test3_1 = (TPad*)can_test3->cd(1);
0596   pad_test3_1->SetPad(0, 0.4, 1, 1);
0597   pad_test3_1->SetTopMargin(0.03);
0598   pad_test3_1->SetLeftMargin(0.15);
0599   pad_test3_1->SetBottomMargin(0.035);
0600   pad_test3_1->SetRightMargin(0.08);
0601   pad_test3_1->SetLogy();
0602   draw_efficiencycorrected_unfolded->SetMarkerStyle(53);
0603   draw_efficiencycorrected_unfolded->SetMarkerSize(2);
0604   draw_efficiencycorrected_unfolded->SetMarkerColor(kBlack);
0605   draw_efficiencycorrected_unfolded->SetLineColor(kBlack);
0606   draw_truth_final->SetMarkerStyle(54);
0607   draw_truth_final->SetMarkerSize(2);
0608   draw_truth_final->SetMarkerColor(kRed);
0609   draw_truth_final->SetLineColor(kRed);
0610   draw_efficiencycorrected_unfolded->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0611   draw_efficiencycorrected_unfolded->GetYaxis()->SetTitle("Arb. Unit");
0612   draw_efficiencycorrected_unfolded->GetXaxis()->SetRangeUser(7, 86);
0613   draw_efficiencycorrected_unfolded->GetYaxis()->SetRangeUser(5e-4, 1e8);
0614   draw_efficiencycorrected_unfolded->GetXaxis()->SetTitleSize(0.065);
0615   draw_efficiencycorrected_unfolded->GetYaxis()->SetTitleSize(0.065);
0616   draw_efficiencycorrected_unfolded->GetXaxis()->SetTitleOffset(1.04);
0617   draw_efficiencycorrected_unfolded->GetYaxis()->SetTitleOffset(1.06);
0618   draw_efficiencycorrected_unfolded->GetXaxis()->SetLabelSize(0.055);
0619   draw_efficiencycorrected_unfolded->GetYaxis()->SetLabelSize(0.055);
0620   draw_efficiencycorrected_unfolded->GetXaxis()->SetLabelOffset(2);
0621   draw_efficiencycorrected_unfolded->GetXaxis()->CenterTitle();
0622   draw_efficiencycorrected_unfolded->GetYaxis()->CenterTitle();
0623   draw_efficiencycorrected_unfolded->Draw();
0624   draw_truth_final->Draw("same");
0625   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0626   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0627   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0628   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0629   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_unfolded (1 iteration) / h_efficiency", 0.05, true);
0630   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "h_truth", 0.05, true);
0631   TPad *pad_test3_2 = (TPad*)can_test3->cd(2);
0632   pad_test3_2->SetPad(0, 0, 1, 0.4);
0633   pad_test3_2->SetTopMargin(0.03);
0634   pad_test3_2->SetLeftMargin(0.15);
0635   pad_test3_2->SetBottomMargin(0.25);
0636   pad_test3_2->SetRightMargin(0.08);
0637   draw_test3->SetMarkerStyle(53);
0638   draw_test3->SetMarkerSize(2);
0639   draw_test3->SetMarkerColor(kBlack);
0640   draw_test3->SetLineColor(kBlack);
0641   draw_test3->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0642   draw_test3->GetYaxis()->SetTitle("Ratio");
0643   draw_test3->GetXaxis()->SetRangeUser(7, 86);
0644   draw_test3->GetYaxis()->SetRangeUser(0.85, 1.15);
0645   draw_test3->GetXaxis()->CenterTitle();
0646   draw_test3->GetYaxis()->CenterTitle();
0647   draw_test3->GetXaxis()->SetTitleOffset(0.95);
0648   draw_test3->GetYaxis()->SetTitleOffset(draw_efficiencycorrected_unfolded->GetYaxis()->GetTitleOffset()*4/6.);
0649   draw_test3->GetXaxis()->SetLabelSize(draw_efficiencycorrected_unfolded->GetXaxis()->GetLabelSize()*6/4.);
0650   draw_test3->GetYaxis()->SetLabelSize(draw_efficiencycorrected_unfolded->GetYaxis()->GetLabelSize()*6/4.);
0651   draw_test3->GetXaxis()->SetTitleSize(draw_efficiencycorrected_unfolded->GetXaxis()->GetTitleSize()*6/4.);
0652   draw_test3->GetYaxis()->SetTitleSize(draw_efficiencycorrected_unfolded->GetYaxis()->GetTitleSize()*6/4.);
0653   draw_test3->Draw();
0654   TLine *line_test3;
0655   line_test3 = new TLine(7, 1, 86, 1);
0656   line_test3->SetLineColor(kBlack);
0657   line_test3->SetLineStyle(3);
0658   line_test3->Draw("same");
0659   can_test3->SaveAs("figure_closure/fullclosure_test3.png");
0660 */
0661 
0662 
0663   //***** Half closure */
0664   // Plot response matrix
0665   TH2D *draw_respmatrix = (TH2D*)h_halfclosure_respmatrix_zvertex60->Clone("draw_respmatrix");
0666   TCanvas *can_respmatrix = new TCanvas("can_respmatrix", "", 800, 700);
0667   gStyle->SetPalette(57);
0668   can_respmatrix->SetTopMargin(0.12);
0669   can_respmatrix->SetLeftMargin(0.15);
0670   can_respmatrix->SetBottomMargin(0.15);
0671   can_respmatrix->SetRightMargin(0.2);
0672   can_respmatrix->SetLogz();
0673   draw_respmatrix->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0674   draw_respmatrix->GetYaxis()->SetTitle("p_{T}^{truth} [GeV]");
0675   draw_respmatrix->GetZaxis()->SetTitle(" ");
0676   draw_respmatrix->GetZaxis()->SetRangeUser(1e-6, 2e5);
0677   draw_respmatrix->GetXaxis()->SetTitleSize(0.065);
0678   draw_respmatrix->GetYaxis()->SetTitleSize(0.065);
0679   draw_respmatrix->GetZaxis()->SetTitleSize(0.06);
0680   draw_respmatrix->GetXaxis()->SetTitleOffset(1.04);
0681   draw_respmatrix->GetYaxis()->SetTitleOffset(1.06);
0682   draw_respmatrix->GetZaxis()->SetTitleOffset(1.22);
0683   draw_respmatrix->GetXaxis()->SetLabelSize(0.055);
0684   draw_respmatrix->GetYaxis()->SetLabelSize(0.055);
0685   draw_respmatrix->GetZaxis()->SetLabelSize(0.055);
0686   draw_respmatrix->GetXaxis()->CenterTitle();
0687   draw_respmatrix->GetYaxis()->CenterTitle();
0688   draw_respmatrix->GetZaxis()->CenterTitle();
0689   draw_respmatrix->GetYaxis()->SetRangeUser(truthptbins[0], truthptbins[truthnpt-1]);
0690   draw_respmatrix->Draw("colz");
0691   myText(0.03, 0.97, 1, "#bf{#it{sPHENIX}} Simulation    PYTHIA8 p+p#sqrt{s} = 200 GeV", 0.05);
0692   myText(0.03, 0.91, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4,  |#eta^{jet}| < 0.7,  |z| < 60 cm", 0.05);
0693   can_respmatrix->SaveAs("figure_closure/halfclosure_respmatrix.png");
0694 
0695   // Plot input
0696   TH1D *draw_measure_resp = (TH1D*)h_halfclosure_measure_zvertex60->Clone("draw_measure_resp");
0697   TH1D *draw_measure_input = (TH1D*)h_halfclosure_inputmeasure_zvertex60->Clone("draw_measure_input");
0698   TH1D *draw_measure_ratio = (TH1D*)h_halfclosure_inputmeasure_zvertex60->Clone("draw_measure_ratio");
0699   draw_measure_ratio->Divide(h_halfclosure_inputmeasure_zvertex60, h_halfclosure_measure_zvertex60, 1, 1, "B");
0700   TCanvas *can_measure = new TCanvas("can_measure", "", 800, 963);
0701   can_measure->Divide(1, 2);
0702   gStyle->SetPalette(57);
0703   TPad *pad_measure_1 = (TPad*)can_measure->cd(1);
0704   pad_measure_1->SetPad(0, 0.4, 1, 1);
0705   pad_measure_1->SetTopMargin(0.03);
0706   pad_measure_1->SetLeftMargin(0.15);
0707   pad_measure_1->SetBottomMargin(0.035);
0708   pad_measure_1->SetRightMargin(0.08);
0709   pad_measure_1->SetLogy();
0710   draw_measure_resp->SetMarkerStyle(53);
0711   draw_measure_resp->SetMarkerSize(2);
0712   draw_measure_resp->SetMarkerColor(kBlack);
0713   draw_measure_resp->SetLineColor(kBlack);
0714   draw_measure_input->SetMarkerStyle(54);
0715   draw_measure_input->SetMarkerSize(2);
0716   draw_measure_input->SetMarkerColor(kRed);
0717   draw_measure_input->SetLineColor(kRed);
0718   draw_measure_resp->GetXaxis()->SetTitle("p_{T}^{calib} [GeV]");
0719   draw_measure_resp->GetYaxis()->SetTitle("Arb. Unit");
0720   draw_measure_resp->GetXaxis()->SetRangeUser(15, 75);
0721   draw_measure_resp->GetYaxis()->SetRangeUser(5e-2, 5e5);
0722   draw_measure_resp->GetXaxis()->SetTitleSize(0.065);
0723   draw_measure_resp->GetYaxis()->SetTitleSize(0.065);
0724   draw_measure_resp->GetXaxis()->SetTitleOffset(1.04);
0725   draw_measure_resp->GetYaxis()->SetTitleOffset(1.06);
0726   draw_measure_resp->GetXaxis()->SetLabelSize(0.055);
0727   draw_measure_resp->GetYaxis()->SetLabelSize(0.055);
0728   draw_measure_resp->GetXaxis()->SetLabelOffset(2);
0729   draw_measure_resp->GetXaxis()->CenterTitle();
0730   draw_measure_resp->GetYaxis()->CenterTitle();
0731   draw_measure_resp->Draw();
0732   draw_measure_input->Draw("same");
0733   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0734   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0735   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0736   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0737   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_measure", 0.05, true);
0738   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "h_input", 0.05, true);
0739   TPad *pad_measure_2 = (TPad*)can_measure->cd(2);
0740   pad_measure_2->SetPad(0, 0, 1, 0.4);
0741   pad_measure_2->SetTopMargin(0.03);
0742   pad_measure_2->SetLeftMargin(0.15);
0743   pad_measure_2->SetBottomMargin(0.25);
0744   pad_measure_2->SetRightMargin(0.08);
0745   draw_measure_ratio->SetMarkerStyle(53);
0746   draw_measure_ratio->SetMarkerSize(2);
0747   draw_measure_ratio->SetMarkerColor(kBlack);
0748   draw_measure_ratio->SetLineColor(kBlack);
0749   draw_measure_ratio->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0750   draw_measure_ratio->GetYaxis()->SetTitle("h_input / h_measure");
0751   draw_measure_ratio->GetXaxis()->SetRangeUser(15, 75);
0752   draw_measure_ratio->GetYaxis()->SetRangeUser(0.85, 1.05);
0753   draw_measure_ratio->GetXaxis()->CenterTitle();
0754   draw_measure_ratio->GetYaxis()->CenterTitle();
0755   draw_measure_ratio->GetXaxis()->SetTitleOffset(0.95);
0756   draw_measure_ratio->GetYaxis()->SetTitleOffset(draw_measure_resp->GetYaxis()->GetTitleOffset()*4/6.);
0757   draw_measure_ratio->GetXaxis()->SetLabelSize(draw_measure_resp->GetXaxis()->GetLabelSize()*6/4.);
0758   draw_measure_ratio->GetYaxis()->SetLabelSize(draw_measure_resp->GetYaxis()->GetLabelSize()*6/4.);
0759   draw_measure_ratio->GetXaxis()->SetTitleSize(draw_measure_resp->GetXaxis()->GetTitleSize()*6/4.);
0760   draw_measure_ratio->GetYaxis()->SetTitleSize(draw_measure_resp->GetYaxis()->GetTitleSize()*6/4.);
0761   draw_measure_ratio->Draw();
0762   TLine *line_measure;
0763   line_measure = new TLine(15, 1, 75, 1);
0764   line_measure->SetLineColor(kBlack);
0765   line_measure->SetLineStyle(3);
0766   line_measure->Draw("same");
0767   can_measure->SaveAs("figure_closure/halfclosure_measure.png");
0768 
0769   // Plot purity and efficiency
0770   TH1D *draw_measure = (TH1D*)h_halfclosure_measure_zvertex60->Clone("draw_measure");
0771   TH1D *draw_fake = (TH1D*)h_halfclosure_fake_zvertex60->Clone("draw_fake");
0772   TH1D *draw_purity = (TH1D*)h_halfclosure_purity_zvertex60->Clone("draw_purity");
0773   TCanvas *can_purity = new TCanvas("can_purity", "", 800, 963);
0774   can_purity->Divide(1, 2);
0775   gStyle->SetPalette(57);
0776   TPad *pad_purity_1 = (TPad*)can_purity->cd(1);
0777   pad_purity_1->SetPad(0, 0.4, 1, 1);
0778   pad_purity_1->SetTopMargin(0.03);
0779   pad_purity_1->SetLeftMargin(0.15);
0780   pad_purity_1->SetBottomMargin(0.035);
0781   pad_purity_1->SetRightMargin(0.08);
0782   pad_purity_1->SetLogy();
0783   draw_measure->SetMarkerStyle(53);
0784   draw_measure->SetMarkerSize(2);
0785   draw_measure->SetMarkerColor(kBlack);
0786   draw_measure->SetLineColor(kBlack);
0787   draw_fake->SetMarkerStyle(54);
0788   draw_fake->SetMarkerSize(2);
0789   draw_fake->SetMarkerColor(kRed);
0790   draw_fake->SetLineColor(kRed);
0791   draw_measure->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0792   draw_measure->GetYaxis()->SetTitle("Arb. Unit");
0793   draw_measure->GetXaxis()->SetRangeUser(15, 75);
0794   draw_measure->GetYaxis()->SetRangeUser(5e-2, 5e5);
0795   draw_measure->GetXaxis()->SetTitleSize(0.065);
0796   draw_measure->GetYaxis()->SetTitleSize(0.065);
0797   draw_measure->GetXaxis()->SetTitleOffset(1.04);
0798   draw_measure->GetYaxis()->SetTitleOffset(1.06);
0799   draw_measure->GetXaxis()->SetLabelSize(0.055);
0800   draw_measure->GetYaxis()->SetLabelSize(0.055);
0801   draw_measure->GetXaxis()->SetLabelOffset(2);
0802   draw_measure->GetXaxis()->CenterTitle();
0803   draw_measure->GetYaxis()->CenterTitle();
0804   draw_measure->Draw();
0805   draw_fake->Draw("same");
0806   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0807   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0808   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0809   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0810   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_measure", 0.05, true);
0811   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "h_fake", 0.05, true);
0812   TPad *pad_purity_2 = (TPad*)can_purity->cd(2);
0813   pad_purity_2->SetPad(0, 0, 1, 0.4);
0814   pad_purity_2->SetTopMargin(0.03);
0815   pad_purity_2->SetLeftMargin(0.15);
0816   pad_purity_2->SetBottomMargin(0.25);
0817   pad_purity_2->SetRightMargin(0.08);
0818   draw_purity->SetMarkerStyle(53);
0819   draw_purity->SetMarkerSize(2);
0820   draw_purity->SetMarkerColor(kBlack);
0821   draw_purity->SetLineColor(kBlack);
0822   draw_purity->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0823   draw_purity->GetYaxis()->SetTitle("Purity");
0824   draw_purity->GetXaxis()->SetRangeUser(15, 75);
0825   draw_purity->GetYaxis()->SetRangeUser(0.85, 1.05);
0826   draw_purity->GetXaxis()->CenterTitle();
0827   draw_purity->GetYaxis()->CenterTitle();
0828   draw_purity->GetXaxis()->SetTitleOffset(0.95);
0829   draw_purity->GetYaxis()->SetTitleOffset(draw_measure->GetYaxis()->GetTitleOffset()*4/6.);
0830   draw_purity->GetXaxis()->SetLabelSize(draw_measure->GetXaxis()->GetLabelSize()*6/4.);
0831   draw_purity->GetYaxis()->SetLabelSize(draw_measure->GetYaxis()->GetLabelSize()*6/4.);
0832   draw_purity->GetXaxis()->SetTitleSize(draw_measure->GetXaxis()->GetTitleSize()*6/4.);
0833   draw_purity->GetYaxis()->SetTitleSize(draw_measure->GetYaxis()->GetTitleSize()*6/4.);
0834   draw_purity->Draw();
0835   myText(0.22, 0.9, 1, "h_purity = (h_measure - h_fake) / h_measure", 0.075);
0836   TLine *line_purity;
0837   line_purity = new TLine(15, 1, 75, 1);
0838   line_purity->SetLineColor(kBlack);
0839   line_purity->SetLineStyle(3);
0840   line_purity->Draw("same");
0841   can_purity->SaveAs("figure_closure/halfclosure_purity.png");
0842 
0843   TH1D *draw_truth = (TH1D*)h_halfclosure_truth_zvertex60->Clone("draw_truth");
0844   TH1D *draw_miss = (TH1D*)h_halfclosure_miss_zvertex60->Clone("draw_miss");
0845   TH1D *draw_efficiency = (TH1D*)h_halfclosure_efficiency_zvertex60->Clone("draw_efficiency");
0846   TCanvas *can_efficiency = new TCanvas("can_efficiency", "", 800, 963);
0847   can_efficiency->Divide(1, 2);
0848   gStyle->SetPalette(57);
0849   TPad *pad_efficiency_1 = (TPad*)can_efficiency->cd(1);
0850   pad_efficiency_1->SetPad(0, 0.4, 1, 1);
0851   pad_efficiency_1->SetTopMargin(0.03);
0852   pad_efficiency_1->SetLeftMargin(0.15);
0853   pad_efficiency_1->SetBottomMargin(0.035);
0854   pad_efficiency_1->SetRightMargin(0.08);
0855   pad_efficiency_1->SetLogy();
0856   draw_truth->SetMarkerStyle(53);
0857   draw_truth->SetMarkerSize(2);
0858   draw_truth->SetMarkerColor(kBlack);
0859   draw_truth->SetLineColor(kBlack);
0860   draw_miss->SetMarkerStyle(54);
0861   draw_miss->SetMarkerSize(2);
0862   draw_miss->SetMarkerColor(kRed);
0863   draw_miss->SetLineColor(kRed);
0864   draw_truth->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0865   draw_truth->GetYaxis()->SetTitle("Arb. Unit");
0866   draw_truth->GetXaxis()->SetRangeUser(7, 86);
0867   draw_truth->GetYaxis()->SetRangeUser(5e-4, 5e7);
0868   draw_truth->GetXaxis()->SetTitleSize(0.065);
0869   draw_truth->GetYaxis()->SetTitleSize(0.065);
0870   draw_truth->GetXaxis()->SetTitleOffset(1.04);
0871   draw_truth->GetYaxis()->SetTitleOffset(1.06);
0872   draw_truth->GetXaxis()->SetLabelSize(0.055);
0873   draw_truth->GetYaxis()->SetLabelSize(0.055);
0874   draw_truth->GetXaxis()->SetLabelOffset(2);
0875   draw_truth->GetXaxis()->CenterTitle();
0876   draw_truth->GetYaxis()->CenterTitle();
0877   draw_truth->Draw();
0878   draw_miss->Draw("same");
0879   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0880   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0881   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0882   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0883   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_truth", 0.05, true);
0884   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "h_miss", 0.05, true);
0885   TPad *pad_efficiency_2 = (TPad*)can_efficiency->cd(2);
0886   pad_efficiency_2->SetPad(0, 0, 1, 0.4);
0887   pad_efficiency_2->SetTopMargin(0.03);
0888   pad_efficiency_2->SetLeftMargin(0.15);
0889   pad_efficiency_2->SetBottomMargin(0.25);
0890   pad_efficiency_2->SetRightMargin(0.08);
0891   draw_efficiency->SetMarkerStyle(53);
0892   draw_efficiency->SetMarkerSize(2);
0893   draw_efficiency->SetMarkerColor(kBlack);
0894   draw_efficiency->SetLineColor(kBlack);
0895   draw_efficiency->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
0896   draw_efficiency->GetYaxis()->SetTitle("Efficiency");
0897   draw_efficiency->GetXaxis()->SetRangeUser(7, 86);
0898   draw_efficiency->GetYaxis()->SetRangeUser(0, 1.2);
0899   draw_efficiency->GetXaxis()->CenterTitle();
0900   draw_efficiency->GetYaxis()->CenterTitle();
0901   draw_efficiency->GetXaxis()->SetTitleOffset(0.95);
0902   draw_efficiency->GetYaxis()->SetTitleOffset(draw_truth->GetYaxis()->GetTitleOffset()*4/6.);
0903   draw_efficiency->GetXaxis()->SetLabelSize(draw_truth->GetXaxis()->GetLabelSize()*6/4.);
0904   draw_efficiency->GetYaxis()->SetLabelSize(draw_truth->GetYaxis()->GetLabelSize()*6/4.);
0905   draw_efficiency->GetXaxis()->SetTitleSize(draw_truth->GetXaxis()->GetTitleSize()*6/4.);
0906   draw_efficiency->GetYaxis()->SetTitleSize(draw_truth->GetYaxis()->GetTitleSize()*6/4.);
0907   draw_efficiency->Draw();
0908   myText(0.22, 0.9, 1, "h_efficiency = (h_truth - h_miss) / h_truth", 0.075);
0909   TLine *line_efficiency;
0910   line_efficiency = new TLine(7, 1, 86, 1);
0911   line_efficiency->SetLineColor(kBlack);
0912   line_efficiency->SetLineStyle(3);
0913   line_efficiency->Draw("same");
0914   can_efficiency->SaveAs("figure_closure/halfclosure_efficiency.png");
0915 
0916   // Plot half closure test 1
0917   TH1D *draw_correctedmeasure = (TH1D*)h_halfclosure_puritycorrected_measure_zvertex60->Clone("draw_correctedmeasure");
0918   TH1D *draw_recoprojection = (TH1D*)h_halfclosure_recoaxis_projection_zvertex60->Clone("draw_recoprojection"); 
0919   TH1D *draw_test1 = (TH1D*)h_halfclosure_test1_zvertex60->Clone("draw_test1");
0920   TCanvas *can_test1 = new TCanvas("can_test1", "", 800, 963);
0921   can_test1->Divide(1, 2);
0922   gStyle->SetPalette(57);
0923   TPad *pad_test1_1 = (TPad*)can_test1->cd(1);
0924   pad_test1_1->SetPad(0, 0.4, 1, 1);
0925   pad_test1_1->SetTopMargin(0.03);
0926   pad_test1_1->SetLeftMargin(0.15);
0927   pad_test1_1->SetBottomMargin(0.035);
0928   pad_test1_1->SetRightMargin(0.08);
0929   pad_test1_1->SetLogy();
0930   draw_correctedmeasure->SetMarkerStyle(53);
0931   draw_correctedmeasure->SetMarkerSize(2);
0932   draw_correctedmeasure->SetMarkerColor(kBlack);
0933   draw_correctedmeasure->SetLineColor(kBlack);
0934   draw_recoprojection->SetMarkerStyle(54);
0935   draw_recoprojection->SetMarkerSize(2);
0936   draw_recoprojection->SetMarkerColor(kRed);
0937   draw_recoprojection->SetLineColor(kRed);
0938   draw_correctedmeasure->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0939   draw_correctedmeasure->GetYaxis()->SetTitle("Arb. Unit");
0940   draw_correctedmeasure->GetXaxis()->SetRangeUser(15, 75);
0941   draw_correctedmeasure->GetYaxis()->SetRangeUser(1, 5e5);
0942   draw_correctedmeasure->GetXaxis()->SetTitleSize(0.065);
0943   draw_correctedmeasure->GetYaxis()->SetTitleSize(0.065);
0944   draw_correctedmeasure->GetXaxis()->SetTitleOffset(1.04);
0945   draw_correctedmeasure->GetYaxis()->SetTitleOffset(1.06);
0946   draw_correctedmeasure->GetXaxis()->SetLabelSize(0.055);
0947   draw_correctedmeasure->GetYaxis()->SetLabelSize(0.055);
0948   draw_correctedmeasure->GetXaxis()->SetLabelOffset(2);
0949   draw_correctedmeasure->GetXaxis()->CenterTitle();
0950   draw_correctedmeasure->GetYaxis()->CenterTitle();
0951   draw_correctedmeasure->Draw();
0952   draw_recoprojection->Draw("same");
0953   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
0954   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
0955   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
0956   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
0957   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_measure #times  h_purity", 0.05, true);
0958   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "Reco axis projection of response matrix", 0.05, true);
0959   TPad *pad_test1_2 = (TPad*)can_test1->cd(2);
0960   pad_test1_2->SetPad(0, 0, 1, 0.4);
0961   pad_test1_2->SetTopMargin(0.03);
0962   pad_test1_2->SetLeftMargin(0.15);
0963   pad_test1_2->SetBottomMargin(0.25);
0964   pad_test1_2->SetRightMargin(0.08);
0965   draw_test1->SetMarkerStyle(53);
0966   draw_test1->SetMarkerSize(2);
0967   draw_test1->SetMarkerColor(kBlack);
0968   draw_test1->SetLineColor(kBlack);
0969   draw_test1->GetXaxis()->SetTitle("p_{T}^{reco} [GeV]");
0970   draw_test1->GetYaxis()->SetTitle("Ratio");
0971   draw_test1->GetXaxis()->SetRangeUser(15, 75);
0972   draw_test1->GetYaxis()->SetRangeUser(0.85, 1.15);
0973   draw_test1->GetXaxis()->CenterTitle();
0974   draw_test1->GetYaxis()->CenterTitle();
0975   draw_test1->GetXaxis()->SetTitleOffset(0.95);
0976   draw_test1->GetYaxis()->SetTitleOffset(draw_correctedmeasure->GetYaxis()->GetTitleOffset()*4/6.);
0977   draw_test1->GetXaxis()->SetLabelSize(draw_correctedmeasure->GetXaxis()->GetLabelSize()*6/4.);
0978   draw_test1->GetYaxis()->SetLabelSize(draw_correctedmeasure->GetYaxis()->GetLabelSize()*6/4.);
0979   draw_test1->GetXaxis()->SetTitleSize(draw_correctedmeasure->GetXaxis()->GetTitleSize()*6/4.);
0980   draw_test1->GetYaxis()->SetTitleSize(draw_correctedmeasure->GetYaxis()->GetTitleSize()*6/4.);
0981   draw_test1->Draw();
0982   TLine *line_test1;
0983   line_test1 = new TLine(15, 1, 75, 1);
0984   line_test1->SetLineColor(kBlack);
0985   line_test1->SetLineStyle(3);
0986   line_test1->Draw("same");
0987   can_test1->SaveAs("figure_closure/halfclosure_test1.png");
0988 
0989   // Plot half closure test 2
0990   TH1D *draw_unfolded_iter1 = (TH1D*)h_halfclosure_unfolded_iter1_zvertex60->Clone("draw_unfolded_iter1");
0991   TH1D *draw_unfolded_iter5 = (TH1D*)h_halfclosure_unfolded_iter5_zvertex60->Clone("draw_unfolded_iter5");
0992   TH1D *draw_truthprojection = (TH1D*)h_halfclosure_truthaxis_projection_zvertex60->Clone("draw_truthprojection");
0993   TH1D *draw_test2_iter1 = (TH1D*)h_halfclosure_test2_iter1_zvertex60->Clone("draw_test2_iter1");
0994   TH1D *draw_test2_iter5 = (TH1D*)h_halfclosure_test2_iter5_zvertex60->Clone("draw_test2_iter5");
0995 
0996   TCanvas *can_test2_iter1 = new TCanvas("can_test2_iter1", "", 800, 963);
0997   can_test2_iter1->Divide(1, 2);
0998   gStyle->SetPalette(57);
0999   TPad *pad_test2_iter1_1 = (TPad*)can_test2_iter1->cd(1);
1000   pad_test2_iter1_1->SetPad(0, 0.4, 1, 1);
1001   pad_test2_iter1_1->SetTopMargin(0.03);
1002   pad_test2_iter1_1->SetLeftMargin(0.15);
1003   pad_test2_iter1_1->SetBottomMargin(0.035);
1004   pad_test2_iter1_1->SetRightMargin(0.08);
1005   pad_test2_iter1_1->SetLogy();
1006   draw_unfolded_iter1->SetMarkerStyle(53);
1007   draw_unfolded_iter1->SetMarkerSize(2);
1008   draw_unfolded_iter1->SetMarkerColor(kBlack);
1009   draw_unfolded_iter1->SetLineColor(kBlack);
1010   draw_truthprojection->SetMarkerStyle(54);
1011   draw_truthprojection->SetMarkerSize(2);
1012   draw_truthprojection->SetMarkerColor(kRed);
1013   draw_truthprojection->SetLineColor(kRed);
1014   draw_unfolded_iter1->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
1015   draw_unfolded_iter1->GetYaxis()->SetTitle("Arb. Unit");
1016   draw_unfolded_iter1->GetXaxis()->SetRangeUser(7, 86);
1017   draw_unfolded_iter1->GetYaxis()->SetRangeUser(5e-4, 5e5);
1018   draw_unfolded_iter1->GetXaxis()->SetTitleSize(0.065);
1019   draw_unfolded_iter1->GetYaxis()->SetTitleSize(0.065);
1020   draw_unfolded_iter1->GetXaxis()->SetTitleOffset(1.04);
1021   draw_unfolded_iter1->GetYaxis()->SetTitleOffset(1.06);
1022   draw_unfolded_iter1->GetXaxis()->SetLabelSize(0.055);
1023   draw_unfolded_iter1->GetYaxis()->SetLabelSize(0.055);
1024   draw_unfolded_iter1->GetXaxis()->SetLabelOffset(2);
1025   draw_unfolded_iter1->GetXaxis()->CenterTitle();
1026   draw_unfolded_iter1->GetYaxis()->CenterTitle();
1027   draw_unfolded_iter1->Draw();
1028   draw_truthprojection->Draw("same");
1029   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
1030   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
1031   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
1032   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
1033   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_unfolded (1 iteration)", 0.05, true);
1034   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "Truth axis projection of response matrix", 0.05, true);
1035   TPad *pad_test2_iter1_2 = (TPad*)can_test2_iter1->cd(2);
1036   pad_test2_iter1_2->SetPad(0, 0, 1, 0.4);
1037   pad_test2_iter1_2->SetTopMargin(0.03);
1038   pad_test2_iter1_2->SetLeftMargin(0.15);
1039   pad_test2_iter1_2->SetBottomMargin(0.25);
1040   pad_test2_iter1_2->SetRightMargin(0.08);
1041   draw_test2_iter1->SetMarkerStyle(53);
1042   draw_test2_iter1->SetMarkerSize(2);
1043   draw_test2_iter1->SetMarkerColor(kBlack);
1044   draw_test2_iter1->SetLineColor(kBlack);
1045   draw_test2_iter1->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
1046   draw_test2_iter1->GetYaxis()->SetTitle("Ratio");
1047   draw_test2_iter1->GetXaxis()->SetRangeUser(7, 86);
1048   draw_test2_iter1->GetYaxis()->SetRangeUser(0.85, 1.15);
1049   draw_test2_iter1->GetXaxis()->CenterTitle();
1050   draw_test2_iter1->GetYaxis()->CenterTitle();
1051   draw_test2_iter1->GetXaxis()->SetTitleOffset(0.95);
1052   draw_test2_iter1->GetYaxis()->SetTitleOffset(draw_unfolded_iter1->GetYaxis()->GetTitleOffset()*4/6.);
1053   draw_test2_iter1->GetXaxis()->SetLabelSize(draw_unfolded_iter1->GetXaxis()->GetLabelSize()*6/4.);
1054   draw_test2_iter1->GetYaxis()->SetLabelSize(draw_unfolded_iter1->GetYaxis()->GetLabelSize()*6/4.);
1055   draw_test2_iter1->GetXaxis()->SetTitleSize(draw_unfolded_iter1->GetXaxis()->GetTitleSize()*6/4.);
1056   draw_test2_iter1->GetYaxis()->SetTitleSize(draw_unfolded_iter1->GetYaxis()->GetTitleSize()*6/4.);
1057   draw_test2_iter1->Draw();
1058   TLine *line_test2_iter1;
1059   line_test2_iter1 = new TLine(7, 1, 86, 1);
1060   line_test2_iter1->SetLineColor(kBlack);
1061   line_test2_iter1->SetLineStyle(3);
1062   line_test2_iter1->Draw("same");
1063   can_test2_iter1->SaveAs("figure_closure/halfclosure_test2_iter1.png");
1064 
1065   TCanvas *can_test2_iter5 = new TCanvas("can_test2_iter5", "", 800, 963);
1066   can_test2_iter5->Divide(1, 2);
1067   gStyle->SetPalette(57);
1068   TPad *pad_test2_iter5_1 = (TPad*)can_test2_iter5->cd(1);
1069   pad_test2_iter5_1->SetPad(0, 0.4, 1, 1);
1070   pad_test2_iter5_1->SetTopMargin(0.03);
1071   pad_test2_iter5_1->SetLeftMargin(0.15);
1072   pad_test2_iter5_1->SetBottomMargin(0.035);
1073   pad_test2_iter5_1->SetRightMargin(0.08);
1074   pad_test2_iter5_1->SetLogy();
1075   draw_unfolded_iter5->SetMarkerStyle(53);
1076   draw_unfolded_iter5->SetMarkerSize(2);
1077   draw_unfolded_iter5->SetMarkerColor(kBlack);
1078   draw_unfolded_iter5->SetLineColor(kBlack);
1079   draw_truthprojection->SetMarkerStyle(54);
1080   draw_truthprojection->SetMarkerSize(2);
1081   draw_truthprojection->SetMarkerColor(kRed);
1082   draw_truthprojection->SetLineColor(kRed);
1083   draw_unfolded_iter5->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
1084   draw_unfolded_iter5->GetYaxis()->SetTitle("Arb. Unit");
1085   draw_unfolded_iter5->GetXaxis()->SetRangeUser(7, 86);
1086   draw_unfolded_iter5->GetYaxis()->SetRangeUser(5e-4, 5e5);
1087   draw_unfolded_iter5->GetXaxis()->SetTitleSize(0.065);
1088   draw_unfolded_iter5->GetYaxis()->SetTitleSize(0.065);
1089   draw_unfolded_iter5->GetXaxis()->SetTitleOffset(1.04);
1090   draw_unfolded_iter5->GetYaxis()->SetTitleOffset(1.06);
1091   draw_unfolded_iter5->GetXaxis()->SetLabelSize(0.055);
1092   draw_unfolded_iter5->GetYaxis()->SetLabelSize(0.055);
1093   draw_unfolded_iter5->GetXaxis()->SetLabelOffset(2);
1094   draw_unfolded_iter5->GetXaxis()->CenterTitle();
1095   draw_unfolded_iter5->GetYaxis()->CenterTitle();
1096   draw_unfolded_iter5->Draw();
1097   draw_truthprojection->Draw("same");
1098   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
1099   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
1100   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
1101   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
1102   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_unfolded (5 iteration)", 0.05, true);
1103   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "Truth axis projection of response matrix", 0.05, true);
1104   TPad *pad_test2_iter5_2 = (TPad*)can_test2_iter5->cd(2);
1105   pad_test2_iter5_2->SetPad(0, 0, 1, 0.4);
1106   pad_test2_iter5_2->SetTopMargin(0.03);
1107   pad_test2_iter5_2->SetLeftMargin(0.15);
1108   pad_test2_iter5_2->SetBottomMargin(0.25);
1109   pad_test2_iter5_2->SetRightMargin(0.08);
1110   draw_test2_iter5->SetMarkerStyle(53);
1111   draw_test2_iter5->SetMarkerSize(2);
1112   draw_test2_iter5->SetMarkerColor(kBlack);
1113   draw_test2_iter5->SetLineColor(kBlack);
1114   draw_test2_iter5->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
1115   draw_test2_iter5->GetYaxis()->SetTitle("Ratio");
1116   draw_test2_iter5->GetXaxis()->SetRangeUser(7, 86);
1117   draw_test2_iter5->GetYaxis()->SetRangeUser(0.85, 1.15);
1118   draw_test2_iter5->GetXaxis()->CenterTitle();
1119   draw_test2_iter5->GetYaxis()->CenterTitle();
1120   draw_test2_iter5->GetXaxis()->SetTitleOffset(0.95);
1121   draw_test2_iter5->GetYaxis()->SetTitleOffset(draw_unfolded_iter5->GetYaxis()->GetTitleOffset()*4/6.);
1122   draw_test2_iter5->GetXaxis()->SetLabelSize(draw_unfolded_iter5->GetXaxis()->GetLabelSize()*6/4.);
1123   draw_test2_iter5->GetYaxis()->SetLabelSize(draw_unfolded_iter5->GetYaxis()->GetLabelSize()*6/4.);
1124   draw_test2_iter5->GetXaxis()->SetTitleSize(draw_unfolded_iter5->GetXaxis()->GetTitleSize()*6/4.);
1125   draw_test2_iter5->GetYaxis()->SetTitleSize(draw_unfolded_iter5->GetYaxis()->GetTitleSize()*6/4.);
1126   draw_test2_iter5->Draw();
1127   TLine *line_test2_iter5;
1128   line_test2_iter5 = new TLine(7, 1, 86, 1);
1129   line_test2_iter5->SetLineColor(kBlack);
1130   line_test2_iter5->SetLineStyle(3);
1131   line_test2_iter5->Draw("same");
1132   can_test2_iter5->SaveAs("figure_closure/halfclosure_test2_iter5.png");
1133 
1134   // Plot half closure test 3
1135   TH1D *draw_efficiencycorrected_unfolded = (TH1D*)h_halfclosure_efficiencycorrected_unfolded_iter1_zvertex->Clone("draw_efficiencycorrected_unfolded");
1136   TH1D *draw_truth_final = (TH1D*)h_halfclosure_truth_zvertex60->Clone("draw_truth_final");
1137   TH1D *draw_test3 = (TH1D*)h_halfclosure_test3_iter1_zvertex60->Clone("draw_test3");
1138   TCanvas *can_test3 = new TCanvas("can_test3", "", 800, 963);
1139   can_test3->Divide(1, 2);
1140   gStyle->SetPalette(57);
1141   TPad *pad_test3_1 = (TPad*)can_test3->cd(1);
1142   pad_test3_1->SetPad(0, 0.4, 1, 1);
1143   pad_test3_1->SetTopMargin(0.03);
1144   pad_test3_1->SetLeftMargin(0.15);
1145   pad_test3_1->SetBottomMargin(0.035);
1146   pad_test3_1->SetRightMargin(0.08);
1147   pad_test3_1->SetLogy();
1148   draw_efficiencycorrected_unfolded->SetMarkerStyle(53);
1149   draw_efficiencycorrected_unfolded->SetMarkerSize(2);
1150   draw_efficiencycorrected_unfolded->SetMarkerColor(kBlack);
1151   draw_efficiencycorrected_unfolded->SetLineColor(kBlack);
1152   draw_truth_final->SetMarkerStyle(54);
1153   draw_truth_final->SetMarkerSize(2);
1154   draw_truth_final->SetMarkerColor(kRed);
1155   draw_truth_final->SetLineColor(kRed);
1156   draw_efficiencycorrected_unfolded->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
1157   draw_efficiencycorrected_unfolded->GetYaxis()->SetTitle("Arb. Unit");
1158   draw_efficiencycorrected_unfolded->GetXaxis()->SetRangeUser(7, 86);
1159   draw_efficiencycorrected_unfolded->GetYaxis()->SetRangeUser(5e-4, 1e8);
1160   draw_efficiencycorrected_unfolded->GetXaxis()->SetTitleSize(0.065);
1161   draw_efficiencycorrected_unfolded->GetYaxis()->SetTitleSize(0.065);
1162   draw_efficiencycorrected_unfolded->GetXaxis()->SetTitleOffset(1.04);
1163   draw_efficiencycorrected_unfolded->GetYaxis()->SetTitleOffset(1.06);
1164   draw_efficiencycorrected_unfolded->GetXaxis()->SetLabelSize(0.055);
1165   draw_efficiencycorrected_unfolded->GetYaxis()->SetLabelSize(0.055);
1166   draw_efficiencycorrected_unfolded->GetXaxis()->SetLabelOffset(2);
1167   draw_efficiencycorrected_unfolded->GetXaxis()->CenterTitle();
1168   draw_efficiencycorrected_unfolded->GetYaxis()->CenterTitle();
1169   draw_efficiencycorrected_unfolded->Draw();
1170   draw_truth_final->Draw("same");
1171   myText(0.58, 0.9, 1, "#bf{#it{sPHENIX}} Simulation", 0.05);
1172   myText(0.58, 0.84, 1, "anti-k_{t} #kern[-0.5]{#it{R}} = 0.4", 0.05);
1173   myText(0.58, 0.78, 1, "|#eta^{jet}| < 0.7", 0.05);
1174   myText(0.58, 0.72, 1, "|z| < 60 cm", 0.05);
1175   myMarkerLineText(0.25, 0.2, 2, kBlack, 53, kBlack, 1, "h_unfolded (1 iteration) / h_efficiency", 0.05, true);
1176   myMarkerLineText(0.25, 0.12, 2, kRed, 54, kRed, 1, "h_truth", 0.05, true);
1177   TPad *pad_test3_2 = (TPad*)can_test3->cd(2);
1178   pad_test3_2->SetPad(0, 0, 1, 0.4);
1179   pad_test3_2->SetTopMargin(0.03);
1180   pad_test3_2->SetLeftMargin(0.15);
1181   pad_test3_2->SetBottomMargin(0.25);
1182   pad_test3_2->SetRightMargin(0.08);
1183   draw_test3->SetMarkerStyle(53);
1184   draw_test3->SetMarkerSize(2);
1185   draw_test3->SetMarkerColor(kBlack);
1186   draw_test3->SetLineColor(kBlack);
1187   draw_test3->GetXaxis()->SetTitle("p_{T}^{truth} [GeV]");
1188   draw_test3->GetYaxis()->SetTitle("Ratio");
1189   draw_test3->GetXaxis()->SetRangeUser(7, 86);
1190   draw_test3->GetYaxis()->SetRangeUser(0.85, 1.15);
1191   draw_test3->GetXaxis()->CenterTitle();
1192   draw_test3->GetYaxis()->CenterTitle();
1193   draw_test3->GetXaxis()->SetTitleOffset(0.95);
1194   draw_test3->GetYaxis()->SetTitleOffset(draw_efficiencycorrected_unfolded->GetYaxis()->GetTitleOffset()*4/6.);
1195   draw_test3->GetXaxis()->SetLabelSize(draw_efficiencycorrected_unfolded->GetXaxis()->GetLabelSize()*6/4.);
1196   draw_test3->GetYaxis()->SetLabelSize(draw_efficiencycorrected_unfolded->GetYaxis()->GetLabelSize()*6/4.);
1197   draw_test3->GetXaxis()->SetTitleSize(draw_efficiencycorrected_unfolded->GetXaxis()->GetTitleSize()*6/4.);
1198   draw_test3->GetYaxis()->SetTitleSize(draw_efficiencycorrected_unfolded->GetYaxis()->GetTitleSize()*6/4.);
1199   draw_test3->Draw();
1200   TLine *line_test3;
1201   line_test3 = new TLine(7, 1, 86, 1);
1202   line_test3->SetLineColor(kBlack);
1203   line_test3->SetLineStyle(3);
1204   line_test3->Draw("same");
1205   can_test3->SaveAs("figure_closure/halfclosure_test3.png");
1206 
1207 }