1"""Define functions for TTL1 Overlay with ComponentAccumulator
3Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
6from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
7from AthenaConfiguration.ComponentFactory
import CompFactory
9from LArDigitization.LArDigitizationConfig
import LArOverlayTriggerDigitizationBasicCfg
10from TileSimAlgs.TileHitToTTL1Config
import TileHitToTTL1Cfg
14 """LArTTL1Overlay configuration using ComponentAccumulator"""
15 acc = ComponentAccumulator()
16 acc.merge(LArOverlayTriggerDigitizationBasicCfg(flags))
18 kwargs.setdefault("BkgEmTTL1Key", f"{flags.Overlay.BkgPrefix}LArTTL1EM")
19 kwargs.setdefault("SignalEmTTL1Key", f"{flags.Overlay.SigPrefix}LArTTL1EM")
20 kwargs.setdefault("OutputEmTTL1Key", "LArTTL1EM")
22 kwargs.setdefault("BkgHadTTL1Key", f"{flags.Overlay.BkgPrefix}LArTTL1HAD")
23 kwargs.setdefault("SignalHadTTL1Key", f"{flags.Overlay.SigPrefix}LArTTL1HAD")
24 kwargs.setdefault("OutputHadTTL1Key", "LArTTL1HAD")
26 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
27 acc.merge(SGInputLoaderCfg(flags, [
28 f'LArTTL1Container#{kwargs["BkgEmTTL1Key"]}',
29 f'LArTTL1Container#{kwargs["BkgHadTTL1Key"]}',
32 acc.addEventAlgo(CompFactory.LVL1.LArTTL1Overlay(name, **kwargs))
34 if flags.Output.doWriteRDO:
35 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
36 acc.merge(OutputStreamCfg(flags, streamName='RDO', ItemList=[
37 'LArTTL1Container#LArTTL1EM',
38 'LArTTL1Container#LArTTL1HAD',
41 if flags.Output.doWriteRDO_SGNL:
42 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
43 acc.merge(OutputStreamCfg(flags, streamName='RDO_SGNL', ItemList=[
44 f'LArTTL1Container#{flags.Overlay.SigPrefix}LArTTL1EM',
45 f'LArTTL1Container#{flags.Overlay.SigPrefix}LArTTL1HAD',
51def TileTTL1OverlayCfg(flags, name="TileTTL1Overlay", **kwargs):
52 """TileTTL1Overlay configuration using ComponentAccumulato
r"""
53 acc = ComponentAccumulator()
54 acc.merge(TileHitToTTL1Cfg(flags))
56 kwargs.setdefault("BkgTileTTL1Key", f"{flags.Overlay.BkgPrefix}TileTTL1Cnt")
57 kwargs.setdefault("SignalTileTTL1Key", f"{flags.Overlay.SigPrefix}TileTTL1Cnt")
58 kwargs.setdefault("OutputTileTTL1Key", "TileTTL1Cnt")
59 inputs = [f'TileTTL1Container#{kwargs["BkgTileTTL1Key"]}']
61 if flags.Detector.EnableMBTS:
62 kwargs.setdefault("BkgTileMBTSTTL1Key", f"{flags.Overlay.BkgPrefix}TileTTL1MBTS")
63 kwargs.setdefault("SignalTileMBTSTTL1Key", f"{flags.Overlay.SigPrefix}TileTTL1MBTS")
64 kwargs.setdefault("OutputTileMBTSTTL1Key", "TileTTL1MBTS")
65 inputs.append(f'TileTTL1Container#{kwargs["BkgTileMBTSTTL1Key"]}')
67 kwargs.setdefault("BkgTileMBTSTTL1Key", "")
68 kwargs.setdefault("SignalTileMBTSTTL1Key", "")
69 kwargs.setdefault("OutputTileMBTSTTL1Key", "")
71 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
72 acc.merge(SGInputLoaderCfg(flags, inputs))
74 acc.addEventAlgo(CompFactory.LVL1.TileTTL1Overlay(name, **kwargs))
76 if flags.Output.doWriteRDO:
77 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
78 acc.merge(OutputStreamCfg(flags, streamName='RDO', ItemList=[
79 'TileTTL1Container#TileTTL1Cnt',
81 if flags.Detector.EnableMBTS:
82 acc.merge(OutputStreamCfg(flags, streamName='RDO', ItemList=[
83 'TileTTL1Container#TileTTL1MBTS',
86 if flags.Output.doWriteRDO_SGNL:
87 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
88 acc.merge(OutputStreamCfg(flags, streamName='RDO_SGNL', ItemList=[
89 f'TileTTL1Container#{flags.Overlay.SigPrefix}TileTTL1Cnt',
91 if flags.Detector.EnableMBTS:
92 acc.merge(OutputStreamCfg(flags, streamName='RDO_SGNL', ItemList=[
93 f'TileTTL1Container#{flags.Overlay.SigPrefix}TileTTL1MBTS',
LArTTL1OverlayCfg(flags, name="LArTTL1Overlay", **kwargs)