13def egammaForwardBuilderCfg(flags, name='egammaForwardElectron', **kwargs):
14
15 acc = ComponentAccumulator()
16
17 if flags.Detector.GeometryITk:
18 kwargs["doTrackMatching"] = True
19 kwargs["doCookieCutting"] = True
20 kwargs.setdefault("TrackMatchBuilderTool", acc.popToolsAndMerge(EMTrackMatchBuilderCfg(flags)))
21 if "forwardelectronIsEMselectors" not in kwargs:
22 LooseFwdElectronSelector = AsgForwardElectronIsEMSelectorCfg(
23 flags,
24 "LooseForwardElectronSelector",
25 egammaPID.ForwardElectronIDLoose)
26 MediumFwdElectronSelector = AsgForwardElectronIsEMSelectorCfg(
27 flags,
28 "MediumForwardElectronSelector",
29 egammaPID.ForwardElectronIDMedium)
30 TightFwdElectronSelector = AsgForwardElectronIsEMSelectorCfg(
31 flags,
32 "TightForwardElectronSelector",
33 egammaPID.ForwardElectronIDTight)
34
35 kwargs.setdefault("forwardelectronIsEMselectors",
36 [LooseFwdElectronSelector.popPrivateTools(),
37 MediumFwdElectronSelector.popPrivateTools(),
38 TightFwdElectronSelector.popPrivateTools()])
39 kwargs.setdefault(
40 "forwardelectronIsEMselectorResultNames",
41 ["Loose", "Medium", "Tight"])
42
43 acc.merge(LooseFwdElectronSelector)
44 acc.merge(MediumFwdElectronSelector)
45 acc.merge(TightFwdElectronSelector)
46
47 if "ObjectQualityTool" not in kwargs and not flags.Common.isOnline:
48 egOQ = egammaOQFlagsBuilderCfg(flags)
49 kwargs["ObjectQualityTool"] = egOQ.popPrivateTools()
50 acc.merge(egOQ)
51
52 if flags.Egamma.doForwardCalib:
53 kwargs["doEnergyCal"] = True
54 kwargs["PrimaryVerticesContainerKey"] = "PrimaryVertices"
55 kwargs["EventInfoKey"] = "EventInfo"
56 from egammaMVACalib.egammaMVACalibConfig import egammaMVASvcCfg
57 kwargs["MVACalibSvc"] = acc.getPrimaryAndMerge(egammaMVASvcCfg(flags))
58
59 kwargs.setdefault("ElectronOutputName",
60 flags.Egamma.Keys.Output.ForwardElectrons)
61 kwargs.setdefault("TopoClusterName",
62 flags.Egamma.Keys.Internal.ForwardTopoClusters)
63 kwargs.setdefault("ClusterContainerName",
64 flags.Egamma.Keys.Output.ForwardClusters)
65 fwdAlg = CompFactory.egammaForwardBuilder(name, **kwargs)
66
67 acc.addEventAlgo(fwdAlg)
68 return acc
69
70