DESY Hbb Analysis Framework
pileupCalcMC.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 # pileupCalcMC.py
4 
5 from argparse import ArgumentParser
6 from importlib import import_module
7 from ROOT import TH1D
8 from ROOT import TFile
9 
10 # parsing arguments
11 parser = ArgumentParser()
12 parser.add_argument("--pu" , dest="pileup" , help="Pileup from mixing module")
13 parser.add_argument("--n" , dest="nbins" , type=int, default=100 , help="number of bins")
14 parser.add_argument("--min" , dest="min" , type=int, default=0 , help="Min pileup")
15 parser.add_argument("--max" , dest="max" , type=int, default=100 , help="Max pileup")
16 parser.add_argument("--out" , dest="out" , default="MyMCPileupHistogram.root", help="output")
17 args = parser.parse_args()
18 if not args.pileup:
19  print "nothing to be done"
20  quit()
21 
22 puconfig = import_module(args.pileup)
23 
24 bins = puconfig.mix.input.nbPileupEvents.probFunctionVariable
25 values = puconfig.mix.input.nbPileupEvents.probValue
26 
27 
28 hPU = TH1D("pileup", "true pileup", args.nbins, args.min, args.max)
29 
30 for i in range(1, args.nbins+1):
31  try:
32  hPU.SetBinContent(i,values[bins.index(hPU.GetBinLowEdge(i))])
33  except ValueError as error:
34  hPU.SetBinContent(i,0)
35 
36 fout = TFile(args.out,"recreate")
37 hPU.Write()
38 fout.Close()
39