1 """Define methods to construct configured TGC Digitization tools and algorithms
3 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
7 from AthenaConfiguration.Enums
import ProductionStep
8 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
9 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
10 from MuonConfig.MuonByteStreamCnvTestConfig
import TgcDigitToTgcRDOCfg
11 from MuonConfig.MuonCablingConfig
import TGCCablingConfigCfg
12 from DigitizationConfig.TruthDigitizationOutputConfig
import TruthDigitizationOutputCfg
13 from DigitizationConfig.PileUpToolsConfig
import PileUpToolsCfg
14 from DigitizationConfig.PileUpMergeSvcConfig
import PileUpMergeSvcCfg, PileUpXingFolderCfg
28 """Return a PileUpXingFolder tool configured for TGC"""
31 kwargs.setdefault(
"CacheRefreshFrequency", 1.0)
32 kwargs.setdefault(
"ItemList", [
"TGCSimHitCollection#TGC_Hits"])
37 """Return ComponentAccumulator with configured TgcDigitizationTool"""
39 if flags.Digitization.PileUp:
41 if flags.Digitization.DoXingByXingPileUp:
46 kwargs.setdefault(
"PileUpMergeSvc", acc.getPrimaryAndMerge(
PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
48 kwargs.setdefault(
"PileUpMergeSvc",
'')
49 kwargs.setdefault(
"OnlyUseContainerName", flags.Digitization.PileUp)
50 if flags.Digitization.DoXingByXingPileUp:
53 kwargs.setdefault(
"OutputObjectName",
"TGC_DIGITS")
54 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
55 kwargs.setdefault(
"OutputSDOName", flags.Overlay.BkgPrefix +
"TGC_SDO")
57 kwargs.setdefault(
"OutputSDOName",
"TGC_SDO")
59 from MuonConfig.MuonCondAlgConfig
import TgcDigitCondAlgCfg
61 kwargs.setdefault(
"TGCDigitASDposKey",
"TGCDigitASDposData")
62 kwargs.setdefault(
"TGCDigitTimeOffsetKey",
"TGCDigitTimeOffsetData")
63 kwargs.setdefault(
"TGCDigitCrosstalkKey",
"TGCDigitCrosstalkData")
65 from AthenaConfiguration.Enums
import LHCPeriod
66 if flags.GeoModel.Run < LHCPeriod.Run3:
67 kwargs.setdefault(
"FourBunchDigitization",
False)
69 from RngComps.RngCompsConfig
import AthRNGSvcCfg
70 kwargs.setdefault(
"RndmSvc", acc.getPrimaryAndMerge(
AthRNGSvcCfg(flags)).name)
72 TgcDigitizationTool = CompFactory.TgcDigitizationTool
78 """Return ComponentAccumulator with TgcDigitizationTool configured for Overlay"""
80 kwargs.setdefault(
"OnlyUseContainerName",
False)
81 kwargs.setdefault(
"OutputObjectName", flags.Overlay.SigPrefix +
"TGC_DIGITS")
82 kwargs.setdefault(
"OutputSDOName", flags.Overlay.SigPrefix +
"TGC_SDO")
84 from MuonConfig.MuonCondAlgConfig
import TgcDigitCondAlgCfg
86 kwargs.setdefault(
"TGCDigitASDposKey",
"TGCDigitASDposData")
87 kwargs.setdefault(
"TGCDigitTimeOffsetKey",
"TGCDigitTimeOffsetData")
88 kwargs.setdefault(
"TGCDigitCrosstalkKey",
"TGCDigitCrosstalkData")
90 from AthenaConfiguration.Enums
import LHCPeriod
91 if flags.GeoModel.Run < LHCPeriod.Run3:
92 kwargs.setdefault(
"FourBunchDigitization",
False)
94 from RngComps.RngCompsConfig
import AthRNGSvcCfg
95 kwargs.setdefault(
"RndmSvc", acc.getPrimaryAndMerge(
AthRNGSvcCfg(flags)).name)
96 kwargs.setdefault(
"PileUpMergeSvc",
'')
97 TgcDigitizationTool = CompFactory.TgcDigitizationTool
103 """Return ComponentAccumulator with Output for TGC. Not standalone."""
105 if flags.Output.doWriteRDO:
106 ItemList = [
"TgcRdoContainer#*"]
107 if flags.Digitization.EnableTruth:
108 ItemList += [
"MuonSimDataCollection#*"]
115 """Return ComponentAccumulator for TGC digitization"""
117 if "PileUpTools" not in kwargs:
119 kwargs[
"PileUpTools"] = PileUpTools
125 """Return ComponentAccumulator with TGC Overlay digitization"""
127 if flags.Common.ProductionStep != ProductionStep.FastChain:
128 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
133 if flags.Concurrency.NumThreads > 0:
134 kwargs.setdefault(
"Cardinality", flags.Concurrency.NumThreads)
137 kwargs.setdefault(
"ExtraInputs", flags.Overlay.ExtraInputs)
139 the_alg = CompFactory.MuonDigitizer(name=
"TGC_OverlayDigitizer", **kwargs)
140 acc.addEventAlgo(the_alg)
146 """Return ComponentAccumulator for TGC digitization and Output"""
153 """Return ComponentAccumulator with TGC digitization and Digit to TGCRDO"""