11def _configureClusterCorrections(flags, swTool):
12 "Add attributes ClusterCorrectionToolsXX to egammaSwTool object"
13
14 acc = ComponentAccumulator()
15 from CaloClusterCorrection.CaloSwCorrections import (
16 make_CaloSwCorrectionsCfg)
17
18 clusterTypes = dict(
19 Ele35='ele35', Ele55='ele55', Ele37='ele37',
20 Gam35='gam35_unconv', Gam55='gam55_unconv', Gam37='gam37_unconv',
21 Econv35='gam35_conv', Econv55='gam55_conv', Econv37='gam37_conv'
22 )
23
24 version = flags.Egamma.Calib.SuperClusterCorrectionVersion
25 suffix = 'EGSuperCluster'
26 attrPref = 'ClusterCorrectionToolsSuperCluster'
27
28 for attrName, clName in clusterTypes.items():
29 attrName = attrPref + attrName
30 if not hasattr(swTool, attrName):
31 continue
32 toolsAcc = make_CaloSwCorrectionsCfg(
33 flags, clName, suffix=suffix,
34 version=version,
35 cells_name=flags.Egamma.Keys.Input.CaloCells)
36 tools = acc.popToolsAndMerge(toolsAcc)
37 setattr(swTool, attrName, GaudiHandles.PrivateToolHandleArray(tools))
38
39 return acc
40
41