3"""Define method to construct configured Tile DQ status tool and algorithm"""
5from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory
import CompFactory
7from AthenaConfiguration.Enums
import Format
8from TileConfiguration.TileConfigFlags
import TileRunType
11 """Return component accumulator with configured private Tile DQ status tool
14 flags -- Athena configuration flags
15 SimulateTrips - flag to simulate drawer trips. Defaults to False.
18 acc = ComponentAccumulator()
20 kwargs.setdefault(
'SimulateTrips',
False)
22 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
23 acc.merge( TileBadChannelsCondAlgCfg(flags) )
25 TileDQstatusTool=CompFactory.TileDQstatusTool
32 """Return component accumulator with configured Tile DQ status algorithm
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.
46 acc = ComponentAccumulator()
47 kwargs.setdefault(
'TileDQstatus',
'TileDQstatus')
49 name = kwargs[
'TileDQstatus'] +
'Alg'
50 kwargs.setdefault(
'name', name)
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 =
""
56 beamElemContainer =
'TileBeamElemCnt'
58 if flags.Tile.readDigits:
59 digitsContainer =
'TileDigitsCnt'
63 rawChannelContainer =
'TileRawChannelCnt'
65 elif flags.Common.isOverlay
and flags.Overlay.DataOverlay:
66 beamElemContainer =
''
67 digitsContainer = flags.Overlay.BkgPrefix +
'TileDigitsCnt'
68 rawChannelContainer = flags.Overlay.BkgPrefix +
'TileRawChannelCnt'
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}']))
75 beamElemContainer =
""
77 rawChannelContainer =
""
79 kwargs.setdefault(
'TileBeamElemContainer', beamElemContainer)
80 kwargs.setdefault(
'TileDigitsContainer', digitsContainer)
81 kwargs.setdefault(
'TileRawChannelContainer', rawChannelContainer)
83 if 'TileDQstatusTool' not in kwargs:
85 kwargs[
'TileDQstatusTool'] = tileDQstatusTool
87 TileDQstatusAlg=CompFactory.TileDQstatusAlg
94if __name__ ==
"__main__":
96 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
97 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
98 from AthenaCommon.Logging
import log
104 flags = initConfigFlags()
105 flags.Input.Files = defaultTestFiles.RAW_RUN2
106 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
107 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
108 flags.Tile.RunType = TileRunType.PHY
111 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
112 acc = MainServicesCfg(flags)
114 from TileByteStream.TileByteStreamConfig
import TileRawDataReadingCfg
115 acc.merge( TileRawDataReadingCfg(flags) )
120 acc.printConfig(withDetails =
True, summariseProps =
True)
121 acc.store( open(
'TileDQstatus.pkl',
'wb') )
123 sc = acc.run(maxEvents = 3)
127 sys.exit(
not sc.isSuccess())
Produce a TileDQstatus object.
TileDQstatusAlgCfg(flags, **kwargs)
TileDQstatusToolCfg(flags, **kwargs)