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)
31 from TileConditions.TileInfoLoaderConfig
import TileInfoLoaderCfg
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
51 from TileConditions.TileSampleNoiseConfig
import TileSampleNoiseCondAlgCfg
54 from TileConditions.TileEMScaleConfig
import TileEMScaleCondAlgCfg
57 from TileConditions.TileSamplingFractionConfig
import TileSamplingFractionCondAlgCfg
60 if kwargs[
'RndmEvtOverlay']:
62 tileCoherNoise =
False
64 if flags.Overlay.DataOverlay:
65 from TileByteStream.TileByteStreamConfig
import TileRawDataReadingCfg
68 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
71 kwargs[
'InputTileDigitContainer'] = f
'{flags.Overlay.BkgPrefix}TileDigitsCnt'
72 kwargs[
'TileDQstatus'] =
'TileDQstatus'
74 if not flags.Overlay.DataOverlay:
75 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
76 acc.merge(
SGInputLoaderCfg(flags, [f
'TileDigitsContainer#{kwargs["InputTileDigitContainer"]}']))
78 if tileNoise
or tileCoherNoise
or kwargs[
'RndmEvtOverlay']:
79 if 'RndmSvc' not in kwargs:
80 from RngComps.RngCompsConfig
import AthRNGSvcCfg
81 kwargs[
'RndmSvc'] = acc.getPrimaryAndMerge(
AthRNGSvcCfg(flags) ).name
83 kwargs[
'RndmSvc'] =
None
85 if kwargs[
'UseCoolPulseShapes']:
86 from TileConditions.TilePulseShapeConfig
import TilePulseShapeCondAlgCfg
89 if kwargs[
'MaskBadChannels']
or kwargs[
'RndmEvtOverlay']:
90 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
93 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
94 kwargs.setdefault(
'TileDigitsContainer', flags.Overlay.BkgPrefix +
'TileDigitsCnt')
96 kwargs.setdefault(
'TileDigitsContainer',
'TileDigitsCnt')
98 kwargs.setdefault(
'DoHSTruthReconstruction', flags.Digitization.EnableCaloHSTruthRecoInputs)
99 if kwargs[
'DoHSTruthReconstruction']:
100 kwargs.setdefault(
'TileHitContainer_DigiHSTruth',
'TileHitCnt_DigiHSTruth')
101 kwargs.setdefault(
'TileDigitsContainer_DigiHSTruth',
'TileDigitsCnt_DigiHSTruth')
103 kwargs.setdefault(
'TileHitContainer_DigiHSTruth',
'')
104 kwargs.setdefault(
'TileDigitsContainer_DigiHSTruth',
'')
107 kwargs.setdefault(
'IntegerDigits', flags.Common.ProductionStep != ProductionStep.PileUpPresampling)
109 TileDigitsMaker=CompFactory.TileDigitsMaker
112 acc.addEventAlgo(digitsMaker, primary =
True)