8def FlowEnergyDecoratorCfg(**kwargs):
9 """
10 Function to configure FlowEnergyDecorator for Athena.
11 FlowEnergyDecorator decorates UFO's (UFOCSSK) with energy cluster's information.
12 """
13
14 ca = ComponentAccumulator()
15 flowContainerKey = kwargs.setdefault("UFOContainer", "UFOCSSK")
16 pflowContainerKey = kwargs.setdefault("PFlowContainer", "GlobalNeutralParticleFlowObjects")
17 layerEnergiesEM = kwargs.pop("layerEnergiesEM", [ "PreSamplerB", "PreSamplerE", "EMB1", "EMB2", "EMB3", "EME1", "EME2", "EME3", "FCAL0" ])
18 layerEnergiesHAD = kwargs.pop("layerEnergiesHAD", [ "TileBar0", "TileBar1", "TileBar2", "TileExt0", "TileExt1", "TileExt2",
19 "TileGap1", "TileGap2", "TileGap3", "FCAL1", "FCAL2", "HEC1", "HEC2", "HEC3" ])
20
21
22 accessorLayerEnergiesEM = [pflowContainerKey + "." + "LAYERENERGY_" + layer for layer in layerEnergiesEM]
23 decorLayerEnergiesEM = [flowContainerKey + "." + "e" + layer for layer in layerEnergiesEM]
24 accessorLayerEnergiesHAD = [pflowContainerKey + "." + "LAYERENERGY_" + layer for layer in layerEnergiesHAD]
25 decorLayerEnergiesHAD = [flowContainerKey + "." + "e" + layer for layer in layerEnergiesHAD]
26 kwargs.setdefault("LayerEnergyAccessorsEM", accessorLayerEnergiesEM)
27 kwargs.setdefault("LayerEnergyDecoratorsEM", decorLayerEnergiesEM)
28 kwargs.setdefault("LayerEnergyAccessorsHAD", accessorLayerEnergiesHAD)
29 kwargs.setdefault("LayerEnergyDecoratorsHAD", decorLayerEnergiesHAD)
30 decorator = CompFactory.FlowEnergyDecorator(
31 name="FlowEnergyDecorator", **kwargs
32 )
33
34 ca.addEventAlgo(decorator)
35
36 return ca