32def egammaAODFixesCfg(flags, correctCluster = True):
33
34
35 doFix, name = runAODFix(flags, correctCluster)
36 if not doFix:
37 return None
38 getfunc().__name__ = name
39
40 result=ComponentAccumulator()
41
42
43 hasElectrons = "Electrons" in flags.Input.Collections
44 hasPhotons = "Photons" in flags.Input.Collections
45 if not hasElectrons and not hasPhotons:
46 return None
47
48
49
50
51
52 from SGComps.AddressRemappingConfig import InputRenameCfg
53 if hasElectrons:
54 result.merge(InputRenameCfg("xAOD::ElectronContainer", "Electrons", "old_Electrons"))
55 result.merge(InputRenameCfg("xAOD::ElectronAuxContainer", "ElectronsAux.", "old_ElectronsAux."))
56 if hasPhotons:
57 result.merge(InputRenameCfg("xAOD::PhotonContainer", "Photons", "old_Photons"))
58 result.merge(InputRenameCfg("xAOD::PhotonAuxContainer", "PhotonsAux.", "old_PhotonsAux."))
59
60 kwargs = dict()
61 kwargs['CorrectCluster'] = correctCluster
62 kwargs['FixAmbiguityLinks'] = (name.find('egammaAmbiguityLinksFix') >= 0)
63 if correctCluster:
64
65 from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg
66 result.merge(LArBadChannelCfg(flags))
67
68
69 from CaloBadChannelTool.CaloBadChanToolConfig import CaloBadChanToolCfg
70 result.popToolsAndMerge( CaloBadChanToolCfg(flags) )
71 result.merge(InputRenameCfg("xAOD::CaloClusterContainer", "egammaClusters", "old_egammaClusters"))
72 result.merge(InputRenameCfg("xAOD::CaloClusterAuxContainer", "egammaClustersAux.", "old_egammaClustersAux."))
73 result.merge(InputRenameCfg("CaloClusterCellLinkContainer", "egammaClusters_links", "old_egammaClusters_links"))
74 kwargs['CaloDetDescrManager'] = 'CaloDetDescrManager'
75 from egammaTools.egammaSwToolConfig import egammaSwToolCfg
76 kwargs['ClusterCorrectionTool'] = result.popToolsAndMerge(egammaSwToolCfg(flags))
77 from egammaMVACalib.egammaMVACalibConfig import egammaMVASvcCfg
78 kwargs['MVACalibSvc'] = result.getPrimaryAndMerge(egammaMVASvcCfg(flags))
79 kwargs['EGammaClustersOutputName'] = flags.Egamma.Keys.Output.CaloClusters
80 kwargs['EGammaClustersInputName'] = f'old_{flags.Egamma.Keys.Output.CaloClusters}'
81
82 kwargs['IsoLeakCorrectionTool'] = CompFactory.CP.IsolationCorrectionTool(
83 LogLogFitForLeakage = True)
84
85
86 result.addEventAlgo(CompFactory.egammaAODFixes(**kwargs))
87
88 return result
89
90
91