33def TileHitVecToCntToolCfg(flags, **kwargs):
34 """Return component accumulator with configured private Tile hit vector to container tool
35
36 Arguments:
37 flags -- Athena configuration flags
38 """
39
40 kwargs.setdefault('name', 'TileHitVecToCntTool')
41 kwargs.setdefault('RndmEvtOverlay', flags.Common.isOverlay)
42 if flags.Common.isOverlay:
43 kwargs.setdefault('OnlyUseContainerName', False)
44 else:
45 kwargs.setdefault('OnlyUseContainerName', flags.Digitization.PileUp)
46
47 acc = ComponentAccumulator()
48
49 from TileConditions.TileInfoLoaderConfig import TileInfoLoaderCfg
50 acc.merge( TileInfoLoaderCfg(flags) )
51
52 from TileConditions.TileSamplingFractionConfig import TileSamplingFractionCondAlgCfg
53 acc.merge( TileSamplingFractionCondAlgCfg(flags) )
54
55 from TileConditions.TileCablingSvcConfig import TileCablingSvcCfg
56 acc.merge(TileCablingSvcCfg(flags))
57
58 if flags.Detector.EnableMBTS:
59 kwargs.setdefault('TileHitVectors', ['TileHitVec', 'MBTSHits'])
60 else:
61 kwargs.setdefault('TileHitVectors', ['TileHitVec'])
62 kwargs.setdefault('TileHitContainer', 'TileHitCnt')
63
64 if flags.Common.isOverlay and not flags.Sim.DoFullChain:
65 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
66 acc.merge(SGInputLoaderCfg(flags, [f'TileHitVector#{vec}' for vec in kwargs['TileHitVectors']]))
67
68 kwargs.setdefault('DoHSTruthReconstruction', flags.Digitization.EnableCaloHSTruthRecoInputs)
69 if kwargs['DoHSTruthReconstruction']:
70 kwargs.setdefault('TileHitContainer_DigiHSTruth', 'TileHitCnt_DigiHSTruth')
71 else:
72 kwargs.setdefault('TileHitContainer_DigiHSTruth', '')
73
74 if 'RndmSvc' not in kwargs:
75 from RngComps.RngCompsConfig import AthRNGSvcCfg
76 kwargs['RndmSvc'] = acc.getPrimaryAndMerge(AthRNGSvcCfg(flags))
77
78 if kwargs['RndmEvtOverlay']:
79 kwargs.setdefault('PileUp', False)
80 else:
81 kwargs.setdefault('PileUp', flags.Digitization.PileUp)
82
83 if flags.Beam.Type is BeamType.Cosmics:
84 kwargs.setdefault('HitTimeFlag', 2)
85 kwargs.setdefault('UseTriggerTime', True)
86 kwargs.setdefault('CosTimeKey', 'CosTrigTime')
87 acc.addEventAlgo(CompFactory.CosTriggerTimeAlg())
88
89 if flags.Digitization.PileUp:
90 intervals = []
91 if flags.Digitization.DoXingByXingPileUp:
92 kwargs.setdefault("FirstXing", getTileFirstXing() )
93 kwargs.setdefault("LastXing", getTileLastXing() )
94 else:
95 intervals += [acc.popToolsAndMerge(TileRangeCfg(flags))]
96 kwargs.setdefault("PileUpMergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
97 else:
98 kwargs.setdefault("PileUpMergeSvc", '')
99
100 acc.setPrivateTools(CompFactory.TileHitVecToCntTool(**kwargs))
101
102 return acc
103
104