31def TileDQstatusAlgCfg(flags, **kwargs):
32 """Return component accumulator with configured Tile DQ status algorithm
33
34 Arguments:
35 flags -- Athena configuration flags
36 TileDQstatus - name of Tile DQ status produced
37 TileDigitsContainer - name of Tile digits container, provided it will be used,
38 otherwise it will be determined automatically depending on flags.
39 TileRawChannelContainer - name of Tile raw channel container, provided it will be used,
40 otherwise it will be determined automatically depending on flags.
41 TileBeamElemContainer - name of Tile beam elements container, provided it will be used,
42 otherwise it will be determined automatically depending on flags.
43 """
44
45
46 acc = ComponentAccumulator()
47 kwargs.setdefault('TileDQstatus', 'TileDQstatus')
48
49 name = kwargs['TileDQstatus'] + 'Alg'
50 kwargs.setdefault('name', name)
51
52 if not (flags.Input.isMC or flags.Overlay.DataOverlay or flags.Input.Format is Format.POOL):
53 if flags.Tile.RunType in [TileRunType.PHY, TileRunType.GAPLAS, TileRunType.GAPCIS]:
54 beamElemContainer = ""
55 else:
56 beamElemContainer = 'TileBeamElemCnt'
57
58 if flags.Tile.readDigits:
59 digitsContainer = 'TileDigitsCnt'
60 else:
61 digitsContainer = ""
62
63 rawChannelContainer = 'TileRawChannelCnt'
64
65 elif flags.Common.isOverlay and flags.Overlay.DataOverlay:
66 beamElemContainer = ''
67 digitsContainer = flags.Overlay.BkgPrefix + 'TileDigitsCnt'
68 rawChannelContainer = flags.Overlay.BkgPrefix + 'TileRawChannelCnt'
69
70 if not flags.Overlay.ByteStream:
71 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
72 acc.merge(SGInputLoaderCfg(flags, [f'TileDigitsContainer#{digitsContainer}']))
73 acc.merge(SGInputLoaderCfg(flags, [f'TileRawChannelContainer#{rawChannelContainer}']))
74 else:
75 beamElemContainer = ""
76 digitsContainer = ""
77 rawChannelContainer = ""
78
79 kwargs.setdefault('TileBeamElemContainer', beamElemContainer)
80 kwargs.setdefault('TileDigitsContainer', digitsContainer)
81 kwargs.setdefault('TileRawChannelContainer', rawChannelContainer)
82
83 if 'TileDQstatusTool' not in kwargs:
84 tileDQstatusTool = acc.popToolsAndMerge( TileDQstatusToolCfg(flags) )
85 kwargs['TileDQstatusTool'] = tileDQstatusTool
86
87 TileDQstatusAlg=CompFactory.TileDQstatusAlg
89
90 return acc
91
92
93
Produce a TileDQstatus object.