babymaker  e95a6a9342d4604277fe7cc6149b6b5b24447d89
make_dataset_table.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 from ROOT import TChain, TFile, TTree, TH1D
4 import os, sys, subprocess
5 import pprint
6 import glob
7 import json
8 import string
9 import time
10 import math
11 
12 mcdir = '/cms2r0/babymaker/babies/2016_08_10/mc/unskimmed'
13 dadir = '/cms2r0/babymaker/babies/2016_11_08/data/unskimmed'
14 
15 mcset = set([i.split('_RunIISpring')[0].split('fullbaby_')[-1] for i in glob.glob(mcdir+"/*.root")])
16 daset = set([i.strip(i.split('_')[-1]).rstrip('_').split('fullbaby_')[-1] for i in glob.glob(dadir+"/*.root")])
17 
18 def table_header(cols=3):
19  header = "\\documentclass{article}\n"
20  header += "\\usepackage{amsmath,graphicx,rotating}\n"
21  header += "\\usepackage[landscape]{geometry}\n"
22  header += "\\thispagestyle{empty}\n"
23  header += "\\begin{document}\n"
24  header += "\\begin{table}\n"
25  header += "\\centering\n"
26  header += "\\resizebox{\\textwidth}{!}{\n"
27  header += "\n\\begin{tabular}[tbp!]{ l "
28  for i in range(cols): header += "r"
29  header += "}\\hline\\hline\n"
30  return header
31 
33  footer = "\\hline\\hline\n\\end{tabular}\n\n"
34  footer += "}\n"
35  footer += "\\end{table}\n"
36  footer += "\\end{document}\n"
37  return footer
38 
39 
40 darows = []
41 for ds in sorted(daset):
42  darows.append('\\multicolumn{1}{l}{'+ds.replace('_','\\_')+'}\\\\\n')
43 
44 mcrows = []
45 for ds in sorted(mcset):
46  c = TChain("tree")
47  c.Add(mcdir+"/*"+ds+"*.root")
48  ntot = c.GetEntries()
49  nneg = 0
50  if "amcatnlo" in ds:
51  nneg = c.GetEntries("weight<0")
52  f = TFile(glob.glob(mcdir+"/*"+ds+"*.root")[0],"READ")
53  g = f.Get("treeglobal")
54  xsec = -1
55  for event in g:
56  xsec = event.xsec
57  break
58  lumi = ntot/xsec/1000.*math.pow(1-2*float(nneg)/ntot,2)
59  print ds, ntot, xsec, lumi
60  mcrows.append(' &'.join([ds.replace('_','\\_'),'{:,}'.format(ntot),'{:,.2f}'.format(lumi)])+' \\\\\n')
61 
62 texfile = "dataset_table.tex"
63 tex = open(texfile,"w")
64 tex.write(table_header(3))
65 tex.write(' &'.join(['Dataset name','Events','L [fb$^{-1}$]']))
66 tex.write('\\hline\n')
67 for i in darows: tex.write(i)
68 tex.write('\\hline\n')
69 for i in mcrows: tex.write(i)
70 tex.write(table_footer())
71 tex.close()
72 
73 os.system("cat "+texfile)