17 parser = argparse.ArgumentParser(description=
'Create distributions for many variables and save them in a ROT file')
19 parser.add_argument(
'inputFile', type=str)
20 parser.add_argument(
'outputFile', type=str, default=
"")
21 parser.add_argument(
'--treeName', type=str, default=
"physics")
22 parser.add_argument(
'--binDic', type=str, default=
"")
23 parser.add_argument(
'-b' ,
'--saveBinning', action=
'store_true')
24 parser.add_argument(
'-pdf' ,
'--savePDF', action=
'store_true')
25 parser.add_argument(
'--branchPattern', type=str, default=[
"jet_",
"MET_"], nargs=
'*')
26 parser.add_argument(
'--histoType', type=str, default=
"leadingJetSel")
28 args = parser.parse_args()
33 inFileList = args.inputFile.split(
',')
35 print (
"inFileList ", inFileList)
36 print (
'outputFile', args.outputFile)
38 inChain = ROOT.TChain(args.treeName)
49 from JetValidation.D3PDHistoBuildLib
import HistoBuilderFromD3PD,isSupportedType, JetType
51 builder = HistoBuilderFromD3PD(tree)
53 patterns = args.branchPattern
56 if isSupportedType(tree.GetBranchType(aBranch)):
57 builder.addHistos(aBranch)
59 if (
"LC" in aBranch
or "EM" in aBranch)
and isSupportedType(tree.GetBranchType(aBranch)):
60 builder.addHistosWithLeadingJetSelectors( JetType(aBranch), aBranch )
62 if args.histoType ==
"leadingJetSel":
63 histoAdder = addleadinJetSelectorHistos
65 histoAdder = addAllHistos
67 print (
"Adding branches...")
68 for aBranch
in sorted(tree.GetSetOfTreeBranchNames()):
70 if any( aBranch.startswith( p )
for p
in patterns):
74 if os.path.exists(args.binDic):
75 builder.readHistoBins( args.binDic )
77 print (
"ERROR : requested to read binning from non existent file : ", args.binDic)
81 print (
"\nRunning event loop...")
83 print (
"Done event loop!")
86 builder.saveHistos(args.outputFile)
88 print (
"Building a structured pdf...")
89 builder.dumpStructuredPDF(args.outputFile.replace(
'.root',
'.pdf'))
91 print (
"Saving histo binning...")
92 builder.saveHistoBins(args.outputFile.replace(
'.root',
'.pck'))