65 isEMDecoration=None):
66
67 acc = ComponentAccumulator()
68
69 isRun3 = (flags.GeoModel.Run == LHCPeriod.Run3)
70 excludeTRT = isRun3
71
72
73 defaultCfg = getPhotonBDTConfig(flags, useNFs)
74
75
76 workingPoint = workingPoint or defaultCfg["workingPoint"]
77 modelConv = modelConv or defaultCfg["modelConv"]
78 modelUnconv = modelUnconv or defaultCfg["modelUnconv"]
79 scoreDecoration = scoreDecoration or defaultCfg["scoreDecoration"]
80 isEMDecoration = isEMDecoration or defaultCfg["isEMDecoration"]
81
82 Single = CompFactory.PhotonIDBDT.PhotonSingleBDTCalculator
83 Calc = CompFactory.PhotonIDBDT.PhotonBDTCalculator
84 Sel = CompFactory.PhotonIDBDT.AsgPhotonBDTSelector
85
86 singleConv = Single(f"{name}_SingleConv",
87 ModelFile=modelConv,
88 BDTTreeName="lgbm")
89 acc.addPublicTool(singleConv)
90
91 singleUnconv = Single(f"{name}_SingleUnconv",
92 ModelFile=modelUnconv,
93 BDTTreeName="lgbm")
94 acc.addPublicTool(singleUnconv)
95
96 bdtCalc = Calc(f"{name}_BDTCalc",
97 ToolConv=singleConv,
98 ToolUnconv=singleUnconv,
99 DecorationName=scoreDecoration,
100 ExcludeTRT=excludeTRT,
101 ForceRecompute=forceRecompute,
102 ReserveVarsConv=reserveVarsConv,
103 ReserveVarsUnconv=reserveVarsUnconv)
104 acc.addPublicTool(bdtCalc)
105
106 selector = Sel(name,
107 WorkingPoint=workingPoint,
108 ScoreDecoration=scoreDecoration,
109 ComputeIfMissing=computeIfMissing,
110 ReapplyWPIfNoShowerShapes=reapplyWPIfNoShowerShapes,
111 IsEMDecoration=isEMDecoration,
112 ExcludeTRT=excludeTRT,
113 BDTTool=bdtCalc)
114 acc.setPrivateTools(selector)
115
116 return acc
117