12 parser = argparse.ArgumentParser(description=
"Make simple plots of an LHE file")
13 parser.add_argument(
'inputFiles', help=
'Comma-separated list of input files to sum in plots')
14 args = vars(parser.parse_args(sys.argv[1:]))
18 for a
in args[
'inputFiles'].
split(
','):
19 inputfilenames+=glob.glob(a)
20 if len(inputfilenames)==0:
21 print(
'You must specify at least one input file')
26 ROOT.gROOT.SetBatch(
True)
27 ROOT.gErrorIgnoreLevel = ROOT.kError
31 e_init_0 = ROOT.TH1D(
'e_init_0',
'',100,0,2000)
32 e_init_1 = ROOT.TH1D(
'e_init_1',
'',100,0,2000)
33 pdg_init = ROOT.TH1D(
'pdg_init',
'',25,0,25)
35 pt_hard_0 = ROOT.TH1D(
'pt_hard_0',
'',100,0,1000)
36 pt_hard_1 = ROOT.TH1D(
'pt_hard_1',
'',100,0,1000)
38 pt_extra_0 = ROOT.TH1D(
'pt_extra_0',
'',100,0,1000)
39 pt_extra_1 = ROOT.TH1D(
'pt_extra_1',
'',100,0,1000)
40 pt_extra_2 = ROOT.TH1D(
'pt_extra_2',
'',100,0,1000)
41 pt_extra_3 = ROOT.TH1D(
'pt_extra_3',
'',100,0,1000)
42 pt_extra_4 = ROOT.TH1D(
'pt_extra_4',
'',100,0,1000)
43 pt_extra_5 = ROOT.TH1D(
'pt_extra_5',
'',100,0,1000)
44 pdg_extras = ROOT.TH1D(
'pdg_extras',
'',100,0,1000)
46 multip = ROOT.TH1D(
'mult',
'',20,0,20)
47 weights = ROOT.TH1D(
'weights',
'',100,0,1000)
49 histograms = [e_init_0,e_init_1,pdg_init,pt_hard_0,pt_hard_1,pt_extra_0,pt_extra_1,pt_extra_2,pt_extra_3,pt_extra_4,pt_extra_5,pdg_extras,multip,weights]
52 for inputfilename
in inputfilenames:
54 with open(inputfilename,
'r')
as inputfile:
58 for line
in inputfile:
60 if 'ktdurham' in line
and '=' in line:
62 print (
'Matching cut:',float(line.split()[0]))
65 if len(line.split(
'#')[0].
strip())==0:
68 if not event
and '<event>' not in line:
71 if not event
and '<event>' in line:
75 if '<' in line
or '>' in line:
81 npartons = int(line.split()[0])
82 multip.Fill(npartons-2)
83 weight = float(line.split()[2])
90 e_init_0.Fill( float(line.split()[9]) )
92 e_init_1.Fill( float(line.split()[9]) )
93 pdg_init.Fill( abs(int(line.split()[0])) )
96 momentum_x = float(line.split()[6])
97 momentum_y = float(line.split()[7])
98 pt = math.sqrt(momentum_x*momentum_x+momentum_y*momentum_y)
101 if npartons>extras+1:
110 elif extras-1==npartons:
112 elif extras-2==npartons:
114 elif extras-3==npartons:
116 elif extras-4==npartons:
118 elif extras-5==npartons:
120 pdg_extras.Fill( abs(int(line.split()[0])) )
126 output_hists = ROOT.TFile.Open(
'output_hists.root',
'RECREATE')