Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:11:20

0001 #! /usr/bin/env python
0002 from optparse import OptionParser
0003 import sys
0004 import os
0005 import datetime
0006 from array import *
0007 from ROOT import TH1F, TH2F, TFile, TCanvas, TPad, TLegend, TColor, gROOT, kBlack
0008 import numpy as np
0009 import math
0010 import glob
0011 from plotUtil import GetHistogram
0012 
0013 LeftMargin = 0.15
0014 RightMargin = 0.08
0015 TopMargin = 0.08
0016 BottomMargin = 0.13
0017 titlesize = 0.05
0018 labelsize = 0.05
0019 pad1scale = 1.05
0020 pad2scale = 2.6
0021 
0022 gROOT.SetBatch(True)
0023 
0024 def draw_ratio(hdata, hsim, hweight, xtitle, plotname):
0025     c = TCanvas("c", "c", 800, 600)
0026     c.cd()
0027     pad1 = TPad( 'pad1', ' ', 0, 0.3, 1, 1)
0028     pad2 = TPad( 'pad2', ' ', 0, 0, 1, 0.3)
0029     pad1.SetBottomMargin(0.0)
0030     pad1.Draw()
0031     pad2.SetTopMargin(0.0)
0032     pad2.SetBottomMargin(0.35)
0033     pad2.Draw()
0034     pad1.cd()
0035     hdata.GetXaxis().SetTitle(xtitle)
0036     hdata.GetXaxis().SetTitleSize(titlesize*pad1scale)
0037     # hdata.GetXaxis().SetRangeUser(hdata.GetXaxis().GetXmin() - 1, hdata.GetXaxis().GetXmax() + 1)
0038     hdata.GetXaxis().SetRangeUser(hdata.GetXaxis().GetXmin(), hdata.GetXaxis().GetXmax())
0039     hdata.GetYaxis().SetTitle("Normalized counts")
0040     hdata.GetYaxis().SetTitleSize(titlesize*pad1scale)
0041     hdata.GetYaxis().SetTitleOffset(1.5)
0042     hdata.GetYaxis().SetLabelSize(labelsize*pad1scale)
0043     hdata.GetYaxis().SetRangeUser(0.0001, hdata.GetMaximum()*1.2 if hdata.GetMaximum() > hsim.GetMaximum() else hsim.GetMaximum() * 1.2)
0044     hdata.SetMarkerStyle(20)
0045     hdata.SetMarkerSize(0.8)
0046     hdata.SetMarkerColor(kBlack)
0047     hdata.SetLineColor(kBlack)
0048     hdata.Draw("PE1")
0049     hsim.SetLineColor(TColor.GetColor("#9A031E"))
0050     hsim.Draw("hist same")
0051     leg = TLegend(0.67, 0.77, 0.9, 0.9)
0052     leg.AddEntry(hdata, "Data", "lep")
0053     leg.AddEntry(hsim, "Simulation", "l")
0054     leg.SetTextSize(0.05*pad1scale)
0055     leg.SetFillStyle(0)
0056     leg.Draw("same")
0057     c.RedrawAxis()
0058     c.Update()
0059     # cd to the pad2
0060     pad2.cd()
0061     pad2.SetGridy()
0062     hweight.SetMarkerSize(0.8)
0063     hweight.GetXaxis().SetTitle(xtitle)
0064     hweight.GetXaxis().SetTitleSize(titlesize*pad2scale)
0065     hweight.GetXaxis().SetLabelSize(labelsize*pad2scale)
0066     hweight.GetXaxis().SetTitleOffset(1.3)
0067     hweight.GetYaxis().SetTitle("Data/Sim.")
0068     hweight.GetYaxis().SetNdivisions(505)
0069     hweight.GetYaxis().SetTitleSize(titlesize*pad2scale)
0070     hweight.GetYaxis().SetLabelSize(labelsize*pad2scale)
0071     hweight.GetYaxis().SetTitleOffset(0.6)
0072     hweight.GetXaxis().SetRangeUser(hdata.GetXaxis().GetXmin(), hdata.GetXaxis().GetXmax())
0073     hweight.GetYaxis().SetRangeUser(0, 2.1)
0074     hweight.SetMarkerColor(kBlack)
0075     hweight.SetLineColor(kBlack)
0076     hweight.Draw("PE1")
0077     c.SaveAs("{}.png".format(plotname))
0078     c.SaveAs("{}.pdf".format(plotname))
0079 
0080 if __name__ == '__main__':
0081     parser = OptionParser(usage="usage: %prog ver [options -h]")
0082     parser.add_option("--datafiledir", dest="datafiledir", default='/sphenix/user/hjheng/sPHENIXRepo/analysis/dNdEta_Run2023/analysis_INTT/plot/hists/Data_CombinedNtuple_Run20869_HotDead_BCO_ADC_Survey/RecoVtx', help="Data file directory")
0083     parser.add_option("--simfiledir", dest="simfiledir", default='/sphenix/user/hjheng/sPHENIXRepo/analysis/dNdEta_Run2023/analysis_INTT/plot/hists/Sim_Ntuple_HIJING_ana419_20240910/RecoVtx', help="Simulation file directory")
0084     parser.add_option("--plotappendix", dest="plotappendix", default='HIJING_ana419_20240910', help="Plot appendix")
0085     parser.add_option('--plotdir', dest='plotdir', type='string', default='RecoPV_ana', help='Plot directory')
0086 
0087     (opt, args) = parser.parse_args()
0088     print('opt: {}'.format(opt)) 
0089     
0090     datafiledir = opt.datafiledir
0091     simfiledir = opt.simfiledir
0092     plotappendix = opt.plotappendix
0093     plotdir = opt.plotdir
0094     os.makedirs('./{}/{}'.format(plotdir,plotappendix), exist_ok=True)
0095     
0096     if os.path.isfile("{}/hists_merged.root".format(datafiledir)):
0097         os.system("rm {}/hists_merged.root".format(datafiledir))
0098         os.system("hadd -j 20 {}/hists_merged.root {}/hists_0*.root".format(datafiledir, datafiledir))
0099     else:
0100         os.system("hadd -j 20 {}/hists_merged.root {}/hists_0*.root".format(datafiledir, datafiledir))
0101         
0102     if os.path.isfile("{}/hists_merged.root".format(simfiledir)):
0103         os.system("rm {}/hists_merged.root".format(simfiledir))
0104         os.system("hadd -j 20 {}/hists_merged.root {}/hists_0*.root".format(simfiledir, simfiledir))
0105     else:
0106         os.system("hadd -j 20 {}/hists_merged.root {}/hists_0*.root".format(simfiledir, simfiledir))
0107         
0108     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data = GetHistogram("{}/hists_merged.root".format(datafiledir), "hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse")
0109     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetName("hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data")
0110     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim = GetHistogram("{}/hists_merged.root".format(simfiledir), "hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse")
0111     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.SetName("hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim")
0112     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Scale(1.0/hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Integral())
0113     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.Scale(1.0/hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.Integral())
0114     VtxZ_reweight_VtxZm30to30 = hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Clone("VtxZ_reweight_VtxZm30to30")
0115     VtxZ_reweight_VtxZm30to30.Divide(hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim)
0116     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data = GetHistogram("{}/hists_merged.root".format(datafiledir), "hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse")
0117     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetName("hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data")
0118     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim = GetHistogram("{}/hists_merged.root".format(simfiledir), "hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse")
0119     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.SetName("hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim")
0120     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Scale(1.0/hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Integral())
0121     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.Scale(1.0/hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.Integral())
0122     VtxZ_reweight_VtxZm30to30_MBD = hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Clone("VtxZ_reweight_VtxZm30to30_MBD")
0123     VtxZ_reweight_VtxZm30to30_MBD.Divide(hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim)
0124     
0125     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data = GetHistogram("{}/hists_merged.root".format(datafiledir), "hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse")
0126     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.SetName("hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data")
0127     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim = GetHistogram("{}/hists_merged.root".format(simfiledir), "hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse")
0128     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim.SetName("hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim")
0129     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.Scale(1.0/hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.Integral())
0130     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim.Scale(1.0/hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim.Integral())
0131     VtxZ_reweight_VtxZm10to10 = hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.Clone("VtxZ_reweight_VtxZm10to10")
0132     VtxZ_reweight_VtxZm10to10.Divide(hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim)
0133     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data = GetHistogram("{}/hists_merged.root".format(datafiledir), "hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse")
0134     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.SetName("hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data")
0135     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim = GetHistogram("{}/hists_merged.root".format(simfiledir), "hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse")
0136     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim.SetName("hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim")
0137     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.Scale(1.0/hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.Integral())
0138     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim.Scale(1.0/hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim.Integral())
0139     VtxZ_reweight_VtxZm10to10_MBD = hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.Clone("VtxZ_reweight_VtxZm10to10_MBD")
0140     VtxZ_reweight_VtxZm10to10_MBD.Divide(hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim)
0141     
0142     draw_ratio(hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data, hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim, VtxZ_reweight_VtxZm30to30, "INTT Z_{vtx} [cm]", "./{}/{}/VtxZ_reweight_VtxZm30to30_{}".format(plotdir, plotappendix, plotappendix))
0143     draw_ratio(hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data, hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim, VtxZ_reweight_VtxZm10to10, "INTT Z_{vtx} [cm]", "./{}/{}/VtxZ_reweight_VtxZm10to10_{}".format(plotdir, plotappendix, plotappendix))
0144     draw_ratio(hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data, hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim, VtxZ_reweight_VtxZm30to30_MBD, "MBD Z_{vtx} [cm]", "./{}/{}/VtxZ_reweight_VtxZm30to30_MBD_{}".format(plotdir, plotappendix, plotappendix))
0145     draw_ratio(hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data, hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim, VtxZ_reweight_VtxZm10to10_MBD, "MBD Z_{vtx} [cm]", "./{}/{}/VtxZ_reweight_VtxZm10to10_MBD_{}".format(plotdir, plotappendix, plotappendix))
0146     
0147     # draw comparison of INTT and MBD vertex Z 
0148     c = TCanvas("c", "c", 800, 700)
0149     c.cd()
0150     pad1 = TPad( 'pad1', ' ', 0, 0.3, 1, 1)
0151     pad2 = TPad( 'pad2', ' ', 0, 0, 1, 0.3)
0152     pad1.SetBottomMargin(0.0)
0153     pad1.Draw()
0154     pad2.SetTopMargin(0.0)
0155     pad2.SetBottomMargin(0.35)
0156     pad2.Draw()
0157     pad1.cd()
0158     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetXaxis().SetTitle("vtx_{Z} [cm]")
0159     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetXaxis().SetTitleSize(titlesize*pad1scale)
0160     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetXaxis().SetRangeUser(hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetXaxis().GetXmin(), hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetXaxis().GetXmax())
0161     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetYaxis().SetTitle("Normalized counts")
0162     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetYaxis().SetTitleSize(titlesize*pad1scale)
0163     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetYaxis().SetTitleOffset(1.5)
0164     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetYaxis().SetLabelSize(labelsize*pad1scale)
0165     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetYaxis().SetRangeUser(0.0001, hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetMaximum()*1.2 if hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetMaximum() > hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetMaximum() else hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetMaximum() * 1.2)
0166     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetMarkerStyle(21)
0167     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetMarkerSize(0.8)
0168     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetMarkerColor(TColor.GetColor("#0F4C75"))
0169     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetLineColor(TColor.GetColor("#0F4C75"))
0170     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Draw("PE1")
0171     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.SetLineColor(TColor.GetColor("#0F4C75"))
0172     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.Draw("hist same")
0173     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetMarkerStyle(20)
0174     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetMarkerSize(0.8)
0175     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetMarkerColor(TColor.GetColor("#9A031E"))
0176     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.SetLineColor(TColor.GetColor("#9A031E"))
0177     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Draw("PE1 same")
0178     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.SetLineColor(TColor.GetColor("#9A031E"))
0179     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.Draw("hist same")
0180     leg = TLegend(0.67, 0.77, 0.9, 0.9)
0181     leg.AddEntry(hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data, "INTT tracklet", "lep")
0182     leg.AddEntry(hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data, "MBD", "lep")
0183     leg.SetTextSize(0.05*pad1scale)
0184     leg.SetFillStyle(0)
0185     leg.Draw("same")
0186     c.RedrawAxis()
0187     c.Update()
0188     # cd to the pad2
0189     pad2.cd()
0190     pad2.SetGridy()
0191     VtxZ_reweight_VtxZm30to30.SetMarkerSize(0.8)
0192     VtxZ_reweight_VtxZm30to30.GetXaxis().SetTitle("vtx_{Z} [cm]")
0193     VtxZ_reweight_VtxZm30to30.GetXaxis().SetTitleSize(titlesize*pad2scale)
0194     VtxZ_reweight_VtxZm30to30.GetXaxis().SetLabelSize(labelsize*pad2scale)
0195     VtxZ_reweight_VtxZm30to30.GetXaxis().SetTitleOffset(1.3)
0196     VtxZ_reweight_VtxZm30to30.GetYaxis().SetTitle("Data/Sim.")
0197     VtxZ_reweight_VtxZm30to30.GetYaxis().SetNdivisions(505)
0198     VtxZ_reweight_VtxZm30to30.GetYaxis().SetTitleSize(titlesize*pad2scale)
0199     VtxZ_reweight_VtxZm30to30.GetYaxis().SetLabelSize(labelsize*pad2scale)
0200     VtxZ_reweight_VtxZm30to30.GetYaxis().SetTitleOffset(0.6)
0201     VtxZ_reweight_VtxZm30to30.GetXaxis().SetRangeUser(hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetXaxis().GetXmin(), hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.GetXaxis().GetXmax())
0202     VtxZ_reweight_VtxZm30to30.GetYaxis().SetRangeUser(0, 2.1)
0203     VtxZ_reweight_VtxZm30to30.SetMarkerSize(0.8)
0204     VtxZ_reweight_VtxZm30to30.SetMarkerStyle(21)
0205     VtxZ_reweight_VtxZm30to30.SetMarkerColor(TColor.GetColor("#0F4C75"))
0206     VtxZ_reweight_VtxZm30to30.SetLineColor(TColor.GetColor("#0F4C75"))
0207     VtxZ_reweight_VtxZm30to30.Draw("PE1")
0208     VtxZ_reweight_VtxZm30to30_MBD.SetMarkerSize(0.8)
0209     VtxZ_reweight_VtxZm30to30_MBD.SetMarkerStyle(20)
0210     VtxZ_reweight_VtxZm30to30_MBD.SetMarkerColor(TColor.GetColor("#9A031E"))
0211     VtxZ_reweight_VtxZm30to30_MBD.SetLineColor(TColor.GetColor("#9A031E"))
0212     VtxZ_reweight_VtxZm30to30_MBD.Draw("PE1 same")
0213     c.SaveAs("./{}/{}/INTTMBDVtxZ_VtxZm30to30_comparison_{}.png".format(plotdir, plotappendix, plotappendix))
0214     c.SaveAs("./{}/{}/INTTMBDVtxZ_VtxZm30to30_comparison_{}.pdf".format(plotdir, plotappendix, plotappendix))
0215 
0216     
0217     f = TFile("./{}/{}/VtxZ_reweight_{}.root".format(plotdir, plotappendix, plotappendix), "recreate")
0218     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Write()
0219     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.Write()
0220     VtxZ_reweight_VtxZm30to30.Write()
0221     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.Write()
0222     hM_INTTVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim.Write()
0223     VtxZ_reweight_VtxZm10to10.Write()
0224     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_data.Write()
0225     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm30to30_coarse_sim.Write()
0226     VtxZ_reweight_VtxZm30to30_MBD.Write()
0227     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_data.Write()
0228     hM_MBDVtxZ_Centrality0to70_MBDAsymLe1_VtxZm10to10_coarse_sim.Write()
0229     VtxZ_reweight_VtxZm10to10_MBD.Write()
0230     f.Close()
0231