17parser = argparse.ArgumentParser(description=
'Create distributions for many variables and save them in a ROT file')
19parser.add_argument(
'inputFile', type=str)
20parser.add_argument(
'outputFile', type=str, default=
"")
21parser.add_argument(
'--treeName', type=str, default=
"physics")
22parser.add_argument(
'--binDic', type=str, default=
"")
23parser.add_argument(
'-b' ,
'--saveBinning', action=
'store_true')
24parser.add_argument(
'-pdf' ,
'--savePDF', action=
'store_true')
25parser.add_argument(
'--branchPattern', type=str, default=[
"jet_",
"MET_"], nargs=
'*')
26parser.add_argument(
'--histoType', type=str, default=
"leadingJetSel")
28args = parser.parse_args()
33inFileList = args.inputFile.split(
',')
35print (
"inFileList ", inFileList)
36print (
'outputFile', args.outputFile)
38inChain = ROOT.TChain(args.treeName)
49from JetValidation.D3PDHistoBuildLib
import HistoBuilderFromD3PD,isSupportedType, JetType
51builder = HistoBuilderFromD3PD(tree)
53patterns = 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 )
62if args.histoType ==
"leadingJetSel":
63 histoAdder = addleadinJetSelectorHistos
65 histoAdder = addAllHistos
67print (
"Adding branches...")
68for 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)
81print (
"\nRunning event loop...")
83print (
"Done event loop!")
86builder.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'))
addleadinJetSelectorHistos(aBranch)