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 *
0008 import numpy
0009 import math
0010 import glob
0011 from plotUtil import *
0012 
0013 titlesize = 0.05
0014 labelsize = 0.05
0015 pad1scale = 1.05
0016 pad2scale = 2.6
0017 
0018 gROOT.SetBatch(True)
0019 
0020 if __name__ == '__main__': 
0021     hM_PHG4Hit_all_z0 = TH1F("hM_PHG4Hit_all_z0","hM_PHG4Hit_all_z0",500,-25,25)
0022     hM_TrkrHit_truthhit_z0 = TH1F("hM_TrkrHit_truthhit_z0","hM_TrkrHit_truthhit_z0",500,-25,25)
0023     
0024     # os.makedirs('./ClusEtaStripSize/', exist_ok=True)
0025     
0026     file = TFile("/sphenix/user/hjheng/sPHENIXRepo/analysis/dNdEta_Run2023/production/Sim_Ntuple_HIJING_ana443_20241102/ntuple_00008.root", "READ")
0027     # file = TFile("/sphenix/user/hjheng/sPHENIXRepo/analysis/dNdEta_Run2023/macros/testNtuple.root", "READ")
0028     # file = TFile("/sphenix/user/hjheng/sPHENIXRepo/analysis/dNdEta_Run2023/macros/testNtuple_20241101localtest.root", "READ")
0029     tree = file.Get("EventTree")
0030     nentries = tree.GetEntries()
0031     for ientry in range(nentries):
0032         tree.GetEntry(ientry)
0033         for i in range(len(tree.PHG4Hit_z0)):
0034             hM_PHG4Hit_all_z0.Fill(tree.PHG4Hit_z0[i])
0035         for i in range(len(tree.TrkrHit_truthHit_z0)):
0036             hM_TrkrHit_truthhit_z0.Fill(tree.TrkrHit_truthHit_z0[i])
0037             
0038     maxbincontent = max(hM_PHG4Hit_all_z0.GetMaximum(), hM_TrkrHit_truthhit_z0.GetMaximum())
0039 
0040     c = TCanvas("c","c",800,600)
0041     pad1 = TPad( 'pad1', ' ', 0, 0.3, 1, 1)
0042     pad2 = TPad( 'pad2', ' ', 0, 0, 1, 0.3)
0043     pad1.SetBottomMargin(0.0)
0044     pad1.Draw()
0045     pad2.SetTopMargin(0.0)
0046     pad2.SetBottomMargin(0.3)
0047     pad2.Draw()
0048     pad1.cd()
0049     hM_PHG4Hit_all_z0.SetLineColor(kBlack)
0050     hM_PHG4Hit_all_z0.SetLineWidth(2)
0051     hM_PHG4Hit_all_z0.GetYaxis().SetTitle("Counts")
0052     hM_PHG4Hit_all_z0.GetYaxis().SetTitleOffset(1.5)
0053     hM_PHG4Hit_all_z0.GetYaxis().SetRangeUser(0, maxbincontent*1.3)
0054     hM_PHG4Hit_all_z0.GetYaxis().SetTitleSize(titlesize)
0055     hM_PHG4Hit_all_z0.GetXaxis().SetTitleSize(titlesize)
0056     hM_PHG4Hit_all_z0.Draw("hist")
0057     hM_TrkrHit_truthhit_z0.SetLineColor(kRed+1)
0058     hM_TrkrHit_truthhit_z0.SetLineWidth(2)
0059     hM_TrkrHit_truthhit_z0.Draw("hist same")
0060     print(hM_PHG4Hit_all_z0.Integral(-1,-1), hM_TrkrHit_truthhit_z0.Integral(-1,-1))
0061     leg = TLegend(0.5, 0.8, 0.9, 0.9)
0062     leg.AddEntry(hM_PHG4Hit_all_z0, "PHG4Hit (all)", "l")
0063     leg.AddEntry(hM_TrkrHit_truthhit_z0, "PHG4Hit (TrkrHit matched)", "l")
0064     leg.SetFillStyle(0)
0065     leg.SetTextSize(0.05)
0066     leg.Draw()
0067     pad2.cd()
0068     pad2.SetGridy()
0069     hM_ratio = hM_TrkrHit_truthhit_z0.Clone("hM_ratio")
0070     hM_ratio.Divide(hM_PHG4Hit_all_z0)
0071     hM_ratio.SetLineColor(kBlack)
0072     hM_ratio.SetLineWidth(1)
0073     hM_ratio.GetXaxis().SetTitle("PHG4Hit z_{0} [cm]")
0074     hM_ratio.GetYaxis().SetTitle("Ratio")
0075     hM_ratio.GetYaxis().SetNdivisions(505)
0076     hM_ratio.GetYaxis().SetTitleSize(titlesize*pad2scale)
0077     hM_ratio.GetYaxis().SetLabelSize(labelsize*pad2scale)
0078     hM_ratio.GetYaxis().SetTitleOffset(0.6)
0079     hM_ratio.GetXaxis().SetTitleSize(titlesize*pad2scale)
0080     hM_ratio.GetXaxis().SetLabelSize(labelsize*pad2scale)
0081     hM_ratio.GetXaxis().SetTitleOffset(1.1)
0082     hM_ratio.GetYaxis().SetRangeUser(0, 1.2)
0083     hM_ratio.Draw("l")
0084     pad1.RedrawAxis()
0085     c.SaveAs("./ClusEtaStripSize/TrkrHit_truthhit_z0.png")
0086     c.SaveAs("./ClusEtaStripSize/TrkrHit_truthhit_z0.pdf")
0087