11 """Return component accumulator with configured Tile digits maker algorithm
14 flags -- Athena configuration flags
16 name -- name of TileDigitsMaker algorithm. Defaults to TileDigitsMaker.
17 UseCoolPulseShapes -- flag to use pulse shape from database. Defaults to True.
18 RndmEvtOverlay -- flag to add PileUp or noise by overlaying random events.
19 True if flag.Common.isOverlay equals to True.
20 MaskBadChannels -- flag to mask channels tagged bad. Defaults to False.
23 kwargs.setdefault(
'name',
'TileDigitsMaker')
24 kwargs.setdefault(
'UseCoolPulseShapes',
True)
25 kwargs.setdefault(
'MaskBadChannels',
False)
26 kwargs.setdefault(
'RndmEvtOverlay', flags.Common.isOverlay)
27 kwargs.setdefault(
'OnlyUseContainerName',
not flags.Common.isOverlay)
29 acc = TileHitVecToCntCfg(flags)
31 from TileConditions.TileInfoLoaderConfig
import TileInfoLoaderCfg
32 infoLoaderAcc = TileInfoLoaderCfg(flags)
33 infoLoader = infoLoaderAcc.getPrimary()
34 acc.merge( infoLoaderAcc )
36 infoLoaderProperties = infoLoader._properties.items()
38 if 'TileNoise' in infoLoaderProperties:
39 tileNoise = infoLoaderProperties[
'TileNoise']
41 tileNoise = infoLoader._descriptors[
'TileNoise'].default
43 if 'TileCoherNoise' in infoLoaderProperties:
44 tileCoherNoise = infoLoaderProperties[
'TileCoherNoise']
46 tileCoherNoise = infoLoader._descriptors[
'TileCoherNoise'].default
48 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
49 acc.merge(TileCablingSvcCfg(flags))
51 from TileConditions.TileSampleNoiseConfig
import TileSampleNoiseCondAlgCfg
52 acc.merge( TileSampleNoiseCondAlgCfg(flags) )
54 from TileConditions.TileEMScaleConfig
import TileEMScaleCondAlgCfg
55 acc.merge( TileEMScaleCondAlgCfg(flags) )
57 from TileConditions.TileSamplingFractionConfig
import TileSamplingFractionCondAlgCfg
58 acc.merge( TileSamplingFractionCondAlgCfg(flags) )
60 if kwargs[
'RndmEvtOverlay']:
62 tileCoherNoise =
False
64 kwargs[
'InputTileDigitContainer'] = f
'{flags.Overlay.BkgPrefix}TileDigitsCnt' if not flags.Overlay.IgnoreBkgInputs
else ""
65 kwargs[
'TileDQstatus'] =
'TileDQstatus'
67 if kwargs[
'InputTileDigitContainer']:
68 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
69 acc.merge(SGInputLoaderCfg(flags, [f
'TileDigitsContainer#{kwargs["InputTileDigitContainer"]}']))
71 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
72 acc.merge(TileDQstatusAlgCfg(flags))
74 if tileNoise
or tileCoherNoise
or kwargs[
'RndmEvtOverlay']:
75 if 'RndmSvc' not in kwargs:
76 from RngComps.RngCompsConfig
import AthRNGSvcCfg
77 kwargs[
'RndmSvc'] = acc.getPrimaryAndMerge( AthRNGSvcCfg(flags) )
79 kwargs[
'RndmSvc'] =
None
81 if kwargs[
'UseCoolPulseShapes']:
82 from TileConditions.TilePulseShapeConfig
import TilePulseShapeCondAlgCfg
83 acc.merge( TilePulseShapeCondAlgCfg(flags) )
85 if kwargs[
'MaskBadChannels']
or kwargs[
'RndmEvtOverlay']:
86 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
87 acc.merge( TileBadChannelsCondAlgCfg(flags) )
89 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
90 kwargs.setdefault(
'TileDigitsContainer', flags.Overlay.BkgPrefix +
'TileDigitsCnt')
92 kwargs.setdefault(
'TileDigitsContainer',
'TileDigitsCnt')
94 kwargs.setdefault(
'DoHSTruthReconstruction', flags.Digitization.EnableCaloHSTruthRecoInputs)
95 if kwargs[
'DoHSTruthReconstruction']:
96 kwargs.setdefault(
'TileHitContainer_DigiHSTruth',
'TileHitCnt_DigiHSTruth')
97 kwargs.setdefault(
'TileDigitsContainer_DigiHSTruth',
'TileDigitsCnt_DigiHSTruth')
99 kwargs.setdefault(
'TileHitContainer_DigiHSTruth',
'')
100 kwargs.setdefault(
'TileDigitsContainer_DigiHSTruth',
'')
103 kwargs.setdefault(
'IntegerDigits', flags.Common.ProductionStep != ProductionStep.PileUpPresampling)
105 TileDigitsMaker=CompFactory.TileDigitsMaker
108 acc.addEventAlgo(digitsMaker, primary =
True)
113 """Return component accumulator with configured Tile digits maker algorithm and Output Stream
116 flags -- Athena configuration flags
118 name -- name of TileDigitsMaker algorithm. Defaults to TileDigitsMaker.
119 UseCoolPulseShapes -- flag to use pulse shape from database. Defaults to True.
120 RndmEvtOverlay -- flag to add PileUp or noise by overlaying random events.
121 True if Common.ProductionStep equals to ProductionStep.Overlay.
122 MaskBadChannels -- flag to mask channels tagged bad. Defaults to False.
126 tileDigitsMaker = acc.getPrimary()
128 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
129 if hasattr(tileDigitsMaker,
'TileDigitsContainer'):
130 tileDigitsContainer = tileDigitsMaker.TileDigitsContainer
132 tileDigitsContainer = tileDigitsMaker.getDefaultProperty(
'TileDigitsContainer')
134 if hasattr(tileDigitsMaker,
'TileFilteredContainer'):
135 tileDigitsContainer = tileDigitsMaker.TileFilteredContainer
137 tileDigitsContainer = tileDigitsMaker.getDefaultProperty(
'TileFilteredContainer')
139 tileDigitsContainer = str(tileDigitsContainer).
split(
'+').pop()
140 if flags.Digitization.AddCaloDigi:
141 outputItemList = [
'TileDigitsContainer#*']
143 outputItemList = [
'TileDigitsContainer#' + tileDigitsContainer]
145 if flags.Output.doWriteRDO:
146 if flags.Digitization.EnableTruth:
147 outputItemList += [
"CaloCalibrationHitContainer#*"]
148 from DigitizationConfig.TruthDigitizationOutputConfig
import TruthDigitizationOutputCfg
149 acc.merge(TruthDigitizationOutputCfg(flags))
150 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
151 acc.merge( OutputStreamCfg(flags, streamName =
'RDO', ItemList = outputItemList) )
159 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultTestFiles