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'
65 kwargs[
'TileDQstatus'] =
'TileDQstatus'
67 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
68 acc.merge(SGInputLoaderCfg(flags, [f
'TileDigitsContainer#{kwargs["InputTileDigitContainer"]}']))
70 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
71 acc.merge(TileDQstatusAlgCfg(flags))
73 if tileNoise
or tileCoherNoise
or kwargs[
'RndmEvtOverlay']:
74 if 'RndmSvc' not in kwargs:
75 from RngComps.RngCompsConfig
import AthRNGSvcCfg
76 kwargs[
'RndmSvc'] = acc.getPrimaryAndMerge( AthRNGSvcCfg(flags) )
78 kwargs[
'RndmSvc'] =
None
80 if kwargs[
'UseCoolPulseShapes']:
81 from TileConditions.TilePulseShapeConfig
import TilePulseShapeCondAlgCfg
82 acc.merge( TilePulseShapeCondAlgCfg(flags) )
84 if kwargs[
'MaskBadChannels']
or kwargs[
'RndmEvtOverlay']:
85 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
86 acc.merge( TileBadChannelsCondAlgCfg(flags) )
88 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
89 kwargs.setdefault(
'TileDigitsContainer', flags.Overlay.BkgPrefix +
'TileDigitsCnt')
91 kwargs.setdefault(
'TileDigitsContainer',
'TileDigitsCnt')
93 kwargs.setdefault(
'DoHSTruthReconstruction', flags.Digitization.EnableCaloHSTruthRecoInputs)
94 if kwargs[
'DoHSTruthReconstruction']:
95 kwargs.setdefault(
'TileHitContainer_DigiHSTruth',
'TileHitCnt_DigiHSTruth')
96 kwargs.setdefault(
'TileDigitsContainer_DigiHSTruth',
'TileDigitsCnt_DigiHSTruth')
98 kwargs.setdefault(
'TileHitContainer_DigiHSTruth',
'')
99 kwargs.setdefault(
'TileDigitsContainer_DigiHSTruth',
'')
102 kwargs.setdefault(
'IntegerDigits', flags.Common.ProductionStep != ProductionStep.PileUpPresampling)
104 TileDigitsMaker=CompFactory.TileDigitsMaker
107 acc.addEventAlgo(digitsMaker, primary =
True)
112 """Return component accumulator with configured Tile digits maker algorithm and Output Stream
115 flags -- Athena configuration flags
117 name -- name of TileDigitsMaker algorithm. Defaults to TileDigitsMaker.
118 UseCoolPulseShapes -- flag to use pulse shape from database. Defaults to True.
119 RndmEvtOverlay -- flag to add PileUp or noise by overlaying random events.
120 True if Common.ProductionStep equals to ProductionStep.Overlay.
121 MaskBadChannels -- flag to mask channels tagged bad. Defaults to False.
125 tileDigitsMaker = acc.getPrimary()
127 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
128 if hasattr(tileDigitsMaker,
'TileDigitsContainer'):
129 tileDigitsContainer = tileDigitsMaker.TileDigitsContainer
131 tileDigitsContainer = tileDigitsMaker.getDefaultProperty(
'TileDigitsContainer')
133 if hasattr(tileDigitsMaker,
'TileFilteredContainer'):
134 tileDigitsContainer = tileDigitsMaker.TileFilteredContainer
136 tileDigitsContainer = tileDigitsMaker.getDefaultProperty(
'TileFilteredContainer')
138 tileDigitsContainer = str(tileDigitsContainer).
split(
'+').pop()
139 if flags.Digitization.AddCaloDigi:
140 outputItemList = [
'TileDigitsContainer#*']
142 outputItemList = [
'TileDigitsContainer#' + tileDigitsContainer]
144 if flags.Output.doWriteRDO:
145 if flags.Digitization.EnableTruth:
146 outputItemList += [
"CaloCalibrationHitContainer#*"]
147 from DigitizationConfig.TruthDigitizationOutputConfig
import TruthDigitizationOutputCfg
148 acc.merge(TruthDigitizationOutputCfg(flags))
149 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
150 acc.merge( OutputStreamCfg(flags, streamName =
'RDO', ItemList = outputItemList) )
158 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultTestFiles