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 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
71 acc.merge(SGInputLoaderCfg(flags, [f'TileDigitsContainer#{digitsContainer}']))
72 acc.merge(SGInputLoaderCfg(flags, [f'TileRawChannelContainer#{rawChannelContainer}']))
73 else:
74 beamElemContainer = ""
75 digitsContainer = ""
76 rawChannelContainer = ""
77
78 kwargs.setdefault('TileBeamElemContainer', beamElemContainer)
79 kwargs.setdefault('TileDigitsContainer', digitsContainer)
80 kwargs.setdefault('TileRawChannelContainer', rawChannelContainer)
81
82 if 'TileDQstatusTool' not in kwargs:
83 tileDQstatusTool = acc.popToolsAndMerge( TileDQstatusToolCfg(flags) )
84 kwargs['TileDQstatusTool'] = tileDQstatusTool
85
86 TileDQstatusAlg=CompFactory.TileDQstatusAlg
88
89 return acc
90
91
92
Produce a TileDQstatus object.