17 acc = ComponentAccumulator()
20 if flags.Detector.GeometryITk:
21 kwargs[
"doTrackMatching"] =
True
22 kwargs[
"doCookieCutting"] =
True
23 if flags.Reco.EnableHGTDExtension:
24 if "forwardelectronNNselectors" not in kwargs:
25 LooseFwdElectronSelector_NN = AsgForwardElectronSelectorToolCfg(
27 "LooseForwardNNElectronSelector",
29 MediumFwdElectronSelector_NN = AsgForwardElectronSelectorToolCfg(
31 "MediumForwardNNElectronSelector",
33 TightFwdElectronSelector_NN = AsgForwardElectronSelectorToolCfg(
35 "TightForwardNNElectronSelector",
38 kwargs[
"dofwdDNN"] =
True
39 kwargs.setdefault(
"forwardelectronNNselectors",
40 [LooseFwdElectronSelector_NN.popPrivateTools(),
41 MediumFwdElectronSelector_NN.popPrivateTools(),
42 TightFwdElectronSelector_NN.popPrivateTools()])
44 "forwardelectronNNselectorResultNames",
45 [
"Loose",
"Medium",
"Tight"])
46 acc.merge(LooseFwdElectronSelector_NN)
47 acc.merge(MediumFwdElectronSelector_NN)
48 acc.merge(TightFwdElectronSelector_NN)
50 kwargs[
"dopTCal"] =
True
51 forward_elecpTCalib = AsgForwardElectronCalibrationToolCfg (flags,
52 "forwardelectronNNpTCalib")
53 kwargs.setdefault(
"forwardelectronNNCalib",forward_elecpTCalib.popPrivateTools())
54 kwargs.setdefault(
"ExtraInputs", extraInputs)
55 kwargs.setdefault(
"TrackMatchBuilderTool", acc.popToolsAndMerge(EMTrackMatchBuilderCfg(flags)))
58 if "forwardelectronIsEMselectors" not in kwargs:
59 LooseFwdElectronSelector = AsgForwardElectronIsEMSelectorCfg(
61 "LooseForwardElectronSelector",
62 egammaPID.ForwardElectronIDLoose)
63 MediumFwdElectronSelector = AsgForwardElectronIsEMSelectorCfg(
65 "MediumForwardElectronSelector",
66 egammaPID.ForwardElectronIDMedium)
67 TightFwdElectronSelector = AsgForwardElectronIsEMSelectorCfg(
69 "TightForwardElectronSelector",
70 egammaPID.ForwardElectronIDTight)
72 kwargs.setdefault(
"forwardelectronIsEMselectors",
73 [LooseFwdElectronSelector.popPrivateTools(),
74 MediumFwdElectronSelector.popPrivateTools(),
75 TightFwdElectronSelector.popPrivateTools()])
77 "forwardelectronIsEMselectorResultNames",
78 [
"Loose",
"Medium",
"Tight"])
80 acc.merge(LooseFwdElectronSelector)
81 acc.merge(MediumFwdElectronSelector)
82 acc.merge(TightFwdElectronSelector)
86 if "ObjectQualityTool" not in kwargs
and not flags.Common.isOnline:
87 egOQ = egammaOQFlagsBuilderCfg(flags)
88 kwargs[
"ObjectQualityTool"] = egOQ.popPrivateTools()
91 if flags.Egamma.doForwardCalib:
92 kwargs[
"doEnergyCal"] =
True
93 kwargs[
"PrimaryVerticesContainerKey"] =
"PrimaryVertices"
94 kwargs[
"EventInfoKey"] =
"EventInfo"
95 from egammaMVACalib.egammaMVACalibConfig
import egammaMVASvcCfg
96 kwargs[
"MVACalibSvc"] = acc.getPrimaryAndMerge(egammaMVASvcCfg(flags))
98 kwargs.setdefault(
"ElectronOutputName",
99 flags.Egamma.Keys.Output.ForwardElectrons)
100 kwargs.setdefault(
"TopoClusterName",
101 flags.Egamma.Keys.Internal.ForwardTopoClusters)
102 kwargs.setdefault(
"ClusterContainerName",
103 flags.Egamma.Keys.Output.ForwardClusters)
104 fwdAlg = CompFactory.egammaForwardBuilder(name, **kwargs)
106 acc.addEventAlgo(fwdAlg)