File indexing completed on 2025-08-06 08:12:07
0001
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}')