Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:12:07

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 
0012 gROOT.SetBatch(True)
0013 
0014 def centrality_bin(exp):
0015     if exp == 'ALICE':
0016         cbin = [0, 5, 10, 20, 30, 40, 50, 60, 70]
0017     elif exp == 'PHOBOS':
0018         cbin = [0, 3, 6, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70]
0019     elif exp == 'CMS':
0020         cbin = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70]
0021     else:
0022         print('Experiment not recognized. Exiting...')
0023         sys.exit()
0024         
0025     return cbin
0026 
0027 if __name__ == '__main__':
0028     parser = OptionParser(usage='usage: %prog ver [options -h]')
0029     parser.add_option('--filename', dest='filename', type='string', default='./mbdana_npart_20869.root', help='file name')
0030     parser.add_option('--experiment', dest='experiment', type='string', default='ALICE', help='use the centrality binning from which experiment: ALICE, PHOBOS, or CMS')
0031     
0032     (opt, args) = parser.parse_args()
0033     print('opt: {}'.format(opt))
0034 
0035     filename = opt.filename
0036     experiment = opt.experiment
0037     
0038     centralitybin = centrality_bin(experiment)
0039     ncentbin = len(centralitybin) - 1
0040     avgnpart_centbin = [0] * ncentbin
0041     
0042     fullcentbin = [i for i in range(0, centralitybin[-1]+1)]
0043     nfullcentbin = len(fullcentbin) - 1
0044     npart_fullcentbin = []
0045     
0046     f = TFile(filename, "READ")
0047     ntp = f.Get("tn_npart")
0048     j = 0
0049     for i in range(0, ntp.GetEntries()):
0050         ntp.GetEntry(i)
0051         print('Centrality bin: {}-{}, <npart>: {}'.format(ntp.bin-1, ntp.bin, ntp.npart))
0052         npart_fullcentbin.append(ntp.npart)
0053         
0054         if ntp.bin <= centralitybin[j+1]:
0055             avgnpart_centbin[j] += ntp.npart
0056         
0057         if ntp.bin > centralitybin[j+1]:
0058             avgnpart_centbin[j] /= (centralitybin[j+1] - centralitybin[j])
0059             j += 1
0060             if j == ncentbin:
0061                 break
0062             avgnpart_centbin[j] += ntp.npart
0063     
0064     f.Close()
0065        
0066     print('---------------------------------------------------------------------------\nUsing the centrality bin of experiment {}: '.format(experiment), centralitybin)
0067     print('The corresponding <npart> for each centrality interval is:', [float('{:.4g}'.format(x)) for x in avgnpart_centbin])
0068         
0069     print('Latex code for the table:')
0070     print('---------------------------------------------------------------------------')
0071     print(r'\begin{table}[h]')
0072     print(r'\centering')
0073     print(r'\begin{tabular}{c|c}')
0074     print(r'\hline')
0075     print(r'Centrality interval [\%] & $\langle$\npart$\rangle$ \\')
0076     print(r'\hline')
0077     for i in range(0, ncentbin):
0078         print(r'{}-{} & {:.4g} \\'.format(centralitybin[i], centralitybin[i+1], avgnpart_centbin[i]))
0079     print(r'\hline')
0080     print(r'\end{tabular}')
0081     print(r'\caption{Centrality intervals and corresponding $\langle$\npart$\rangle$ values.}')
0082     print(r'\label{tab:centinterval_npart}')
0083     print(r'\end{table}')
0084     print('---------------------------------------------------------------------------')
0085     print(r'\begin{table}[h]')
0086     print(r'\centering')
0087     print(r'\begin{tabular}{c|c}')
0088     print(r'\hline')
0089     print(r'Centrality interval [\%] & $\langle$\npart$\rangle$ \\')
0090     print(r'\hline')
0091     for i in range(0, nfullcentbin):
0092         print(r'{}-{} & {:.4g} \\'.format(fullcentbin[i], fullcentbin[i+1], npart_fullcentbin[i]))
0093     print(r'\hline')
0094     print(r'\end{tabular}')
0095     print(r'\caption{Centrality intervals and corresponding $\langle$\npart$\rangle$ values.}')
0096     print(r'\label{tab:centinterval_npart}')
0097     print(r'\end{table}')