Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-04-04 08:11:19

0001 #include <TFile.h>
0002 #include <TH1D.h>
0003 #include <TH2D.h>
0004 #include <TMath.h>
0005 #include <iostream>
0006 #include "unfold_Def.h"
0007 #include "/sphenix/user/hanpuj/plotstyle/AtlasStyle.C"
0008 #include "/sphenix/user/hanpuj/plotstyle/AtlasUtils.C"
0009 
0010 void draw_1D_multiple_plot_ratio(std::vector<TH1F*> h_input, std::vector<int> color, std::vector<int> markerstyle,
0011                                  bool do_rebin, int rebin_factor, bool do_normalize,
0012                                  bool set_xrange, float xlow, float xhigh, bool set_logx,
0013                                  bool set_yrange, float ylow, float yhigh, bool set_logy,
0014                                  bool set_ratioyrange, float ratiolow, float ratiohigh, TF1* fit_func,
0015                                  bool set_title, std::string xtitle, std::string ytitle, std::string ratio_title, bool do_binomial,
0016                                  bool set_text, std::vector<std::string> text, float xstart, float ystart, float size,
0017                                  bool set_legend, std::vector<std::string> legend, float xstart_legend, float ystart_legend, float size_legend,
0018                                  std::string output_name) {
0019   if (h_input.size() <= 1) {
0020     std::cout << "Error: no enough input histograms for draw_1D_multiple_plot_ratio" << std::endl;
0021     return;
0022   }
0023   std::vector<TH1F*> h;
0024   for (int i = 0; i < h_input.size(); ++i) {
0025     h.push_back((TH1F*)h_input[i]->Clone(Form("h_%d", i)));
0026   }
0027   TCanvas *can = new TCanvas("can", "", 800, 963);
0028   can->Divide(1, 2);
0029   gStyle->SetPalette(57);
0030   TPad *pad_1 = (TPad*)can->cd(1);
0031   pad_1->SetPad(0, 0.4, 1, 1);
0032   pad_1->SetTopMargin(0.03);
0033   pad_1->SetLeftMargin(0.15);
0034   pad_1->SetBottomMargin(0.035);
0035   pad_1->SetRightMargin(0.08);
0036   for (int i = 0; i < h.size(); ++i) {
0037     h.at(i)->SetMarkerStyle(markerstyle.at(i));
0038     h.at(i)->SetMarkerColor(color.at(i));
0039     h.at(i)->SetLineColor(color.at(i));
0040     if (do_rebin) h.at(i)->Rebin(rebin_factor);
0041     if (do_normalize) {
0042       for (int ib = 1; ib <= h.at(i)->GetNbinsX(); ++ib) {
0043         h.at(i)->SetBinContent(ib, h.at(i)->GetBinContent(ib)/h.at(i)->GetBinWidth(ib));
0044         h.at(i)->SetBinError(ib, h.at(i)->GetBinError(ib)/h.at(i)->GetBinWidth(ib));
0045       }
0046     }
0047   }
0048   if (set_xrange) h.at(0)->GetXaxis()->SetRangeUser(xlow, xhigh);
0049   if (set_logx) pad_1->SetLogx();
0050   if (set_yrange) h.at(0)->GetYaxis()->SetRangeUser(ylow, yhigh);
0051   if (set_logy) pad_1->SetLogy();
0052   if (set_title) {
0053     h.at(0)->GetXaxis()->SetTitle(xtitle.c_str());
0054     h.at(0)->GetYaxis()->SetTitle(ytitle.c_str());
0055   }
0056   h.at(0)->GetXaxis()->SetTitleSize(0.065);
0057   h.at(0)->GetYaxis()->SetTitleSize(0.065);
0058   h.at(0)->GetXaxis()->SetTitleOffset(1.04);
0059   h.at(0)->GetYaxis()->SetTitleOffset(1.06);
0060   h.at(0)->GetXaxis()->SetLabelSize(0.055);
0061   h.at(0)->GetYaxis()->SetLabelSize(0.055);
0062   h.at(0)->GetXaxis()->SetLabelOffset(2);
0063   h.at(0)->GetXaxis()->CenterTitle();
0064   h.at(0)->GetYaxis()->CenterTitle();
0065 
0066   h.at(0)->Draw();
0067   for (int i = 0; i < h.size(); ++i) {
0068     if (i == 0) continue;
0069     h.at(i)->Draw("same");
0070   }
0071 
0072   if (set_text) {
0073     for (int i = 0; i < text.size(); i++) {
0074       myText(xstart, ystart-i*(size+0.01), 1, text[i].c_str(), size);
0075     }
0076   }
0077   if (set_legend) {
0078     for (int i = 0; i < legend.size(); i++) {
0079       myMarkerLineText(xstart_legend, ystart_legend-i*(size+0.01), 1, color.at(i), markerstyle.at(i), color.at(i), 1, legend.at(i).c_str(), size_legend, true);
0080     }
0081   }
0082 
0083   TPad *pad_2 = (TPad*)can->cd(2);
0084   pad_2->SetPad(0, 0, 1, 0.4);
0085   pad_2->SetTopMargin(0.03);
0086   pad_2->SetLeftMargin(0.15);
0087   pad_2->SetBottomMargin(0.25);
0088   pad_2->SetRightMargin(0.08);
0089   std::vector<TH1F*> h_ratio;
0090   for (int i = 0; i < h.size()-1; ++i) {
0091     TH1F *h_temp = (TH1F*)h.at(i+1)->Clone(Form("h_ratio_%d", i));
0092     if (do_binomial) h_temp->Divide(h.at(i+1), h.at(0), 1, 1, "B");
0093     else h_temp->Divide(h.at(0));
0094     h_ratio.push_back(h_temp);
0095     h_ratio.at(i)->SetMarkerStyle(markerstyle.at(i+1));
0096     h_ratio.at(i)->SetMarkerColor(color.at(i+1));
0097     h_ratio.at(i)->SetLineColor(color.at(i+1));
0098   }
0099   if (set_title) {
0100     h_ratio.at(0)->GetXaxis()->SetTitle(xtitle.c_str());
0101     h_ratio.at(0)->GetYaxis()->SetTitle(ratio_title.c_str());
0102   } else {
0103     h_ratio.at(0)->GetXaxis()->SetTitle(h.at(0)->GetXaxis()->GetTitle());
0104     h_ratio.at(0)->GetYaxis()->SetTitle("Ratio");
0105   }
0106   if (set_xrange) h_ratio.at(0)->GetXaxis()->SetRangeUser(xlow, xhigh);
0107   if (set_ratioyrange) h_ratio.at(0)->GetYaxis()->SetRangeUser(ratiolow, ratiohigh);
0108   h_ratio.at(0)->GetXaxis()->CenterTitle();
0109   h_ratio.at(0)->GetYaxis()->CenterTitle();
0110   h_ratio.at(0)->GetXaxis()->SetTitleOffset(0.95);
0111   h_ratio.at(0)->GetYaxis()->SetTitleOffset(h.at(0)->GetYaxis()->GetTitleOffset()*4/6.);
0112   //h_ratio.at(0)->GetYaxis()->SetLabelOffset(h.at(0)->GetYaxis()->GetLabelOffset()*4/6.);
0113   h_ratio.at(0)->GetXaxis()->SetLabelSize(h.at(0)->GetXaxis()->GetLabelSize()*6/4.);
0114   h_ratio.at(0)->GetYaxis()->SetLabelSize(h.at(0)->GetYaxis()->GetLabelSize()*6/4.);
0115   h_ratio.at(0)->GetXaxis()->SetTitleSize(h.at(0)->GetXaxis()->GetTitleSize()*6/4.);
0116   h_ratio.at(0)->GetYaxis()->SetTitleSize(h.at(0)->GetYaxis()->GetTitleSize()*6/4.);
0117   h_ratio.at(0)->Draw();
0118   for (int i = 0; i < h_ratio.size(); ++i) {
0119     if (i == 0) continue;
0120     h_ratio.at(i)->Draw("same");
0121   }
0122   fit_func->SetLineColor(kRed);
0123   fit_func->Draw("same");
0124 
0125   TLine *line;
0126   if (set_xrange) line = new TLine(xlow, 1, xhigh, 1);
0127   else line = new TLine(h.at(0)->GetXaxis()->GetBinLowEdge(1), 1, h.at(0)->GetXaxis()->GetBinUpEdge(h.at(0)->GetNbinsX()), 1);
0128   line->SetLineColor(kBlack);
0129   line->SetLineStyle(3);
0130   line->Draw("same");
0131 
0132   can->SaveAs(output_name.c_str());
0133   delete can;
0134   delete line;
0135 }
0136 
0137 void get_reweight_hist(TFile* f_out, TH1D*& h_reweight, std::string h_reweightname, TH1D* h_data, TH1D* h_sim) { 
0138   h_data->Rebin(10); h_data->Scale(1.0 / h_data->Integral());
0139   h_sim->Rebin(10); h_sim->Scale(1.0 / h_sim->Integral());
0140   h_reweight = (TH1D*)h_data->Clone(h_reweightname.c_str());
0141   h_reweight->Divide(h_sim);
0142   h_reweight->SetName(h_reweightname.c_str());
0143 
0144   std::string prefix_to_remove = "h_reweight_";
0145   std::string new_prefix = "reweightfunc_";
0146   std::string plot_name = new_prefix + h_reweightname.substr(prefix_to_remove.length());
0147 
0148   TF1* func_reweight = new TF1(plot_name.c_str(), "[0]*TMath::Exp(-[1]*x) + [2]", 0, 200);
0149   func_reweight->SetParameters(1., 0.1, 0.5);
0150   h_reweight->Fit(func_reweight, "", "", 15, 70);
0151 
0152   std::vector<TH1F*> h_input;
0153   std::vector<int> color;
0154   std::vector<int> markerstyle;
0155   std::vector<std::string> text;
0156   std::vector<std::string> legend;
0157 
0158   h_input.push_back((TH1F*)h_sim);
0159   h_input.push_back((TH1F*)h_data);
0160   color.push_back(kRed);
0161   color.push_back(kBlack);
0162   markerstyle.push_back(24);
0163   markerstyle.push_back(24);
0164   text.push_back("#bf{#it{sPHENIX}} Internal");
0165   text.push_back("Data & PYTHIA8 p+p#sqrt{s} = 200 GeV");
0166   text.push_back("anti-k_{t} #kern[-0.5]{#it{R}} = 0.4");
0167   legend.push_back("Simulation jet spectrum");
0168   legend.push_back("Data jet spectrum");
0169   draw_1D_multiple_plot_ratio(h_input, color, markerstyle,
0170                               false, 10, true,
0171                               true, calibptbins[0], calibptbins[calibnpt], false,
0172                               false, 0, 0.5, true,
0173                               true, 0., 2., func_reweight,
0174                               true, "p_{T}^{jet} [GeV]", "Arbitrary Unit", "Reweight factor", 0,
0175                               true, text, 0.4, 0.9, 0.05,
0176                               true, legend, 0.25, 0.2, 0.05,
0177                               Form("figure_reweight/%s.png", plot_name.c_str()));
0178   h_input.clear();
0179   color.clear();
0180   markerstyle.clear();
0181   text.clear();
0182   legend.clear();
0183 
0184   f_out->cd();
0185   h_reweight->Write();
0186   func_reweight->Write();
0187 }
0188 
0189 void get_reweighthist(int radius_index = 4) {
0190 
0191   SetAtlasStyle();
0192   gStyle->SetPadTickX(1);
0193   gStyle->SetPadTickY(1);
0194 
0195   // Read Files
0196   TFile* f_data = new TFile(Form("output_data_r0%d.root", radius_index), "READ");
0197   TFile* f_sim = new TFile(Form("output_sim_r0%d.root", radius_index), "READ");
0198   TFile* f_out = new TFile(Form("output_reweightfunction_r0%d.root", radius_index), "RECREATE");
0199 
0200   // Read data histograms for reweighting
0201   TH1D* h_calibjet_pt_all = (TH1D*)f_data->Get("h_calibjet_pt_record_all");
0202   TH1D* h_calibjet_pt_all_jesup = (TH1D*)h_calibjet_pt_all->Clone("h_calibjet_pt_record_all_jesup");
0203   TH1D* h_calibjet_pt_all_jesdown = (TH1D*)h_calibjet_pt_all->Clone("h_calibjet_pt_record_all_jesdown");
0204   TH1D* h_calibjet_pt_all_jerup = (TH1D*)h_calibjet_pt_all->Clone("h_calibjet_pt_record_all_jerup");
0205   TH1D* h_calibjet_pt_all_jerdown = (TH1D*)h_calibjet_pt_all->Clone("h_calibjet_pt_record_all_jerdown");
0206   TH1D* h_calibjet_pt_all_jetup = (TH1D*)f_data->Get("h_calibjet_pt_record_all_jetup");
0207   TH1D* h_calibjet_pt_all_jetdown = (TH1D*)f_data->Get("h_calibjet_pt_record_all_jetdown");
0208 
0209   TH1D* h_calibjet_pt_zvertex30 = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex30");
0210   TH1D* h_calibjet_pt_zvertex30_jesup = (TH1D*)h_calibjet_pt_zvertex30->Clone("h_calibjet_pt_record_zvertex30_jesup");
0211   TH1D* h_calibjet_pt_zvertex30_jesdown = (TH1D*)h_calibjet_pt_zvertex30->Clone("h_calibjet_pt_record_zvertex30_jesdown");
0212   TH1D* h_calibjet_pt_zvertex30_jerup = (TH1D*)h_calibjet_pt_zvertex30->Clone("h_calibjet_pt_record_zvertex30_jerup");
0213   TH1D* h_calibjet_pt_zvertex30_jerdown = (TH1D*)h_calibjet_pt_zvertex30->Clone("h_calibjet_pt_record_zvertex30_jerdown");
0214   TH1D* h_calibjet_pt_zvertex30_jetup = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex30_jetup");
0215   TH1D* h_calibjet_pt_zvertex30_jetdown = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex30_jetdown");
0216   TH1D* h_calibjet_pt_zvertex30_mbdup = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex30_mbdup");
0217   TH1D* h_calibjet_pt_zvertex30_mbddown = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex30_mbddown");
0218 
0219   TH1D* h_calibjet_pt_zvertex60 = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex60");
0220   TH1D* h_calibjet_pt_zvertex60_jesup = (TH1D*)h_calibjet_pt_zvertex60->Clone("h_calibjet_pt_record_zvertex60_jesup");
0221   TH1D* h_calibjet_pt_zvertex60_jesdown = (TH1D*)h_calibjet_pt_zvertex60->Clone("h_calibjet_pt_record_zvertex60_jesdown");
0222   TH1D* h_calibjet_pt_zvertex60_jerup = (TH1D*)h_calibjet_pt_zvertex60->Clone("h_calibjet_pt_record_zvertex60_jerup");
0223   TH1D* h_calibjet_pt_zvertex60_jerdown = (TH1D*)h_calibjet_pt_zvertex60->Clone("h_calibjet_pt_record_zvertex60_jerdown");
0224   TH1D* h_calibjet_pt_zvertex60_jetup = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex60_jetup");
0225   TH1D* h_calibjet_pt_zvertex60_jetdown = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex60_jetdown");
0226   TH1D* h_calibjet_pt_zvertex60_mbdup = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex60_mbdup");
0227   TH1D* h_calibjet_pt_zvertex60_mbddown = (TH1D*)f_data->Get("h_calibjet_pt_record_zvertex60_mbddown");
0228 
0229   // Read sim histograms for reweighting
0230   TH1D* h_measure_unweighted_all = (TH1D*)f_sim->Get("h_measure_unweighted_all");
0231   TH1D* h_measure_unweighted_all_jesup = (TH1D*)f_sim->Get("h_measure_unweighted_all_jesup");
0232   TH1D* h_measure_unweighted_all_jesdown = (TH1D*)f_sim->Get("h_measure_unweighted_all_jesdown");
0233   TH1D* h_measure_unweighted_all_jerup = (TH1D*)f_sim->Get("h_measure_unweighted_all_jerup");
0234   TH1D* h_measure_unweighted_all_jerdown = (TH1D*)f_sim->Get("h_measure_unweighted_all_jerdown");
0235   TH1D* h_measure_unweighted_all_jetup = (TH1D*)f_sim->Get("h_measure_unweighted_all_jetup");
0236   TH1D* h_measure_unweighted_all_jetdown = (TH1D*)f_sim->Get("h_measure_unweighted_all_jetdown");
0237 
0238   TH1D* h_measure_unweighted_zvertex30 = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30");
0239   TH1D* h_measure_unweighted_zvertex30_jesup = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30_jesup");
0240   TH1D* h_measure_unweighted_zvertex30_jesdown = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30_jesdown");
0241   TH1D* h_measure_unweighted_zvertex30_jerup = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30_jerup");
0242   TH1D* h_measure_unweighted_zvertex30_jerdown = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30_jerdown");
0243   TH1D* h_measure_unweighted_zvertex30_jetup = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30_jetup");
0244   TH1D* h_measure_unweighted_zvertex30_jetdown = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30_jetdown");
0245   TH1D* h_measure_unweighted_zvertex30_mbdup = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30_mbdup");
0246   TH1D* h_measure_unweighted_zvertex30_mbddown = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex30_mbddown");
0247 
0248   TH1D* h_measure_unweighted_zvertex60 = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60");
0249   TH1D* h_measure_unweighted_zvertex60_jesup = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60_jesup");
0250   TH1D* h_measure_unweighted_zvertex60_jesdown = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60_jesdown");
0251   TH1D* h_measure_unweighted_zvertex60_jerup = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60_jerup");
0252   TH1D* h_measure_unweighted_zvertex60_jerdown = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60_jerdown");
0253   TH1D* h_measure_unweighted_zvertex60_jetup = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60_jetup");
0254   TH1D* h_measure_unweighted_zvertex60_jetdown = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60_jetdown");
0255   TH1D* h_measure_unweighted_zvertex60_mbdup = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60_mbdup");
0256   TH1D* h_measure_unweighted_zvertex60_mbddown = (TH1D*)f_sim->Get("h_measure_unweighted_zvertex60_mbddown");
0257 
0258   // Form reweighting histograms
0259   TH1D* h_reweight_all; get_reweight_hist(f_out, h_reweight_all, "h_reweight_all", h_calibjet_pt_all, h_measure_unweighted_all);
0260   TH1D* h_reweight_all_jesup; get_reweight_hist(f_out, h_reweight_all_jesup, "h_reweight_all_jesup", h_calibjet_pt_all_jesup, h_measure_unweighted_all_jesup);
0261   TH1D* h_reweight_all_jesdown; get_reweight_hist(f_out, h_reweight_all_jesdown, "h_reweight_all_jesdown", h_calibjet_pt_all_jesdown, h_measure_unweighted_all_jesdown);
0262   TH1D* h_reweight_all_jerup; get_reweight_hist(f_out, h_reweight_all_jerup, "h_reweight_all_jerup", h_calibjet_pt_all_jerup, h_measure_unweighted_all_jerup);
0263   TH1D* h_reweight_all_jerdown; get_reweight_hist(f_out, h_reweight_all_jerdown, "h_reweight_all_jerdown", h_calibjet_pt_all_jerdown, h_measure_unweighted_all_jerdown);
0264   TH1D* h_reweight_all_jetup; get_reweight_hist(f_out, h_reweight_all_jetup, "h_reweight_all_jetup", h_calibjet_pt_all_jetup, h_measure_unweighted_all_jetup);
0265   TH1D* h_reweight_all_jetdown; get_reweight_hist(f_out, h_reweight_all_jetdown, "h_reweight_all_jetdown", h_calibjet_pt_all_jetdown, h_measure_unweighted_all_jetdown);
0266 
0267   TH1D* h_reweight_zvertex30; get_reweight_hist(f_out, h_reweight_zvertex30, "h_reweight_zvertex30", h_calibjet_pt_zvertex30, h_measure_unweighted_zvertex30);
0268   TH1D* h_reweight_zvertex30_jesup; get_reweight_hist(f_out, h_reweight_zvertex30_jesup, "h_reweight_zvertex30_jesup", h_calibjet_pt_zvertex30_jesup, h_measure_unweighted_zvertex30_jesup);
0269   TH1D* h_reweight_zvertex30_jesdown; get_reweight_hist(f_out, h_reweight_zvertex30_jesdown, "h_reweight_zvertex30_jesdown", h_calibjet_pt_zvertex30_jesdown, h_measure_unweighted_zvertex30_jesdown);
0270   TH1D* h_reweight_zvertex30_jerup; get_reweight_hist(f_out, h_reweight_zvertex30_jerup, "h_reweight_zvertex30_jerup", h_calibjet_pt_zvertex30_jerup, h_measure_unweighted_zvertex30_jerup);
0271   TH1D* h_reweight_zvertex30_jerdown; get_reweight_hist(f_out, h_reweight_zvertex30_jerdown, "h_reweight_zvertex30_jerdown", h_calibjet_pt_zvertex30_jerdown, h_measure_unweighted_zvertex30_jerdown);
0272   TH1D* h_reweight_zvertex30_jetup; get_reweight_hist(f_out, h_reweight_zvertex30_jetup, "h_reweight_zvertex30_jetup", h_calibjet_pt_zvertex30_jetup, h_measure_unweighted_zvertex30_jetup);
0273   TH1D* h_reweight_zvertex30_jetdown; get_reweight_hist(f_out, h_reweight_zvertex30_jetdown, "h_reweight_zvertex30_jetdown", h_calibjet_pt_zvertex30_jetdown, h_measure_unweighted_zvertex30_jetdown);
0274   TH1D* h_reweight_zvertex30_mbdup; get_reweight_hist(f_out, h_reweight_zvertex30_mbdup, "h_reweight_zvertex30_mbdup", h_calibjet_pt_zvertex30_mbdup, h_measure_unweighted_zvertex30_mbdup);
0275   TH1D* h_reweight_zvertex30_mbddown; get_reweight_hist(f_out, h_reweight_zvertex30_mbddown, "h_reweight_zvertex30_mbddown", h_calibjet_pt_zvertex30_mbddown, h_measure_unweighted_zvertex30_mbddown);
0276 
0277   TH1D* h_reweight_zvertex60; get_reweight_hist(f_out, h_reweight_zvertex60, "h_reweight_zvertex60", h_calibjet_pt_zvertex60, h_measure_unweighted_zvertex60);
0278   TH1D* h_reweight_zvertex60_jesup; get_reweight_hist(f_out, h_reweight_zvertex60_jesup, "h_reweight_zvertex60_jesup", h_calibjet_pt_zvertex60_jesup, h_measure_unweighted_zvertex60_jesup);
0279   TH1D* h_reweight_zvertex60_jesdown; get_reweight_hist(f_out, h_reweight_zvertex60_jesdown, "h_reweight_zvertex60_jesdown", h_calibjet_pt_zvertex60_jesdown, h_measure_unweighted_zvertex60_jesdown);
0280   TH1D* h_reweight_zvertex60_jerup; get_reweight_hist(f_out, h_reweight_zvertex60_jerup, "h_reweight_zvertex60_jerup", h_calibjet_pt_zvertex60_jerup, h_measure_unweighted_zvertex60_jerup);
0281   TH1D* h_reweight_zvertex60_jerdown; get_reweight_hist(f_out, h_reweight_zvertex60_jerdown, "h_reweight_zvertex60_jerdown", h_calibjet_pt_zvertex60_jerdown, h_measure_unweighted_zvertex60_jerdown);
0282   TH1D* h_reweight_zvertex60_jetup; get_reweight_hist(f_out, h_reweight_zvertex60_jetup, "h_reweight_zvertex60_jetup", h_calibjet_pt_zvertex60_jetup, h_measure_unweighted_zvertex60_jetup);
0283   TH1D* h_reweight_zvertex60_jetdown; get_reweight_hist(f_out, h_reweight_zvertex60_jetdown, "h_reweight_zvertex60_jetdown", h_calibjet_pt_zvertex60_jetdown, h_measure_unweighted_zvertex60_jetdown);
0284   TH1D* h_reweight_zvertex60_mbdup; get_reweight_hist(f_out, h_reweight_zvertex60_mbdup, "h_reweight_zvertex60_mbdup", h_calibjet_pt_zvertex60_mbdup, h_measure_unweighted_zvertex60_mbdup);
0285   TH1D* h_reweight_zvertex60_mbddown; get_reweight_hist(f_out, h_reweight_zvertex60_mbddown, "h_reweight_zvertex60_mbddown", h_calibjet_pt_zvertex60_mbddown, h_measure_unweighted_zvertex60_mbddown);
0286 }