1 """Define methods to construct configured MDT Digitization tools and algorithms
3 Copyright (C) 2002-2023 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 BeamType, ProductionStep
8 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
9 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
10 from MuonConfig.MuonByteStreamCnvTestConfig
import MdtDigitToMdtRDOCfg
11 from MuonConfig.MuonCablingConfig
import MDTCablingConfigCfg
12 from DigitizationConfig.TruthDigitizationOutputConfig
import TruthDigitizationOutputCfg
13 from DigitizationConfig.PileUpToolsConfig
import PileUpToolsCfg
14 from DigitizationConfig.PileUpMergeSvcConfig
import PileUpMergeSvcCfg, PileUpXingFolderCfg
29 """Return a PileUpXingFolder tool configured for MDT"""
32 kwargs.setdefault(
"CacheRefreshFrequency", 1.0)
33 kwargs.setdefault(
"ItemList", [
"MDTSimHitCollection#MDT_Hits"])
38 """Return an RT_Relation_DB_DigiTool"""
40 acc.setPrivateTools(CompFactory.RT_Relation_DB_DigiTool(name, **kwargs))
45 """Return a configured MDT_Response_DigiTool"""
47 kwargs.setdefault(
"DoQballGamma", (flags.Input.SpecialConfiguration.get(
"MDT_QballConfig",
"False") ==
"True"))
48 MDT_Response_DigiTool = CompFactory.MDT_Response_DigiTool
54 """Return ComponentAccumulator with common MdtDigitizationTool config"""
55 from MuonConfig.MuonCondAlgConfig
import MdtCondDbAlgCfg
56 from MuonConfig.MuonCalibrationConfig
import MdtCalibDbAlgCfg
63 if not flags.Muon.usePhaseIIGeoSetup:
64 kwargs.setdefault(
"DiscardEarlyHits",
True)
65 kwargs.setdefault(
"UseTof", flags.Beam.Type
is not BeamType.Cosmics)
66 kwargs.setdefault(
"DoQballCharge", (flags.Input.SpecialConfiguration.get(
"MDT_QballConfig",
"False") ==
"True"))
70 from ActsAlignmentAlgs.AlignmentAlgsConfig
import ActsGeometryContextAlgCfg
73 kwargs.setdefault(
"SimHitKey",
"xMdtSimHits")
74 kwargs.setdefault(
"StreamName",
"MdtDigitForklifting")
76 if flags.Digitization.DoXingByXingPileUp:
79 from RngComps.RngCompsConfig
import AthRNGSvcCfg
80 kwargs.setdefault(
"RndmSvc", acc.getPrimaryAndMerge(
AthRNGSvcCfg(flags)))
81 if not flags.Muon.usePhaseIIGeoSetup:
82 acc.setPrivateTools(CompFactory.MdtDigitizationTool(name, **kwargs))
84 acc.setPrivateTools(CompFactory.MuonR4.MdtDigitizationTool(name, **kwargs))
89 """Return ComponentAccumulator with configured MdtDigitizationTool"""
91 if flags.Digitization.PileUp:
93 if not flags.Digitization.DoXingByXingPileUp:
95 kwargs.setdefault(
"PileUpMergeSvc", acc.getPrimaryAndMerge(
PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
97 kwargs.setdefault(
"PileUpMergeSvc",
'')
98 kwargs.setdefault(
"OnlyUseContainerName", flags.Digitization.PileUp)
99 kwargs.setdefault(
"OutputObjectName",
"MDT_DIGITS")
100 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
101 kwargs.setdefault(
"OutputSDOName", flags.Overlay.BkgPrefix +
"MDT_SDO")
103 kwargs.setdefault(
"OutputSDOName",
"MDT_SDO")
105 acc.setPrivateTools(tool)
110 """Return ComponentAccumulator with MdtDigitizationTool configured for Overlay"""
111 kwargs.setdefault(
"OnlyUseContainerName",
False)
112 kwargs.setdefault(
"OutputObjectName", flags.Overlay.SigPrefix +
"MDT_DIGITS")
113 kwargs.setdefault(
"OutputSDOName", flags.Overlay.SigPrefix +
"MDT_SDO")
114 kwargs.setdefault(
"PileUpMergeSvc",
'')
119 """Return ComponentAccumulator with Output for MDT. Not standalone."""
121 if flags.Output.doWriteRDO:
122 ItemList = [
"MdtCsmContainer#*"]
123 if flags.Digitization.EnableTruth:
124 for pref
in [flags.Overlay.SigPrefix, flags.Overlay.BkgPrefix,
""]:
126 ItemList += [f
"MuonSimDataCollection#{pref}MDT_SDO"]
128 ItemList += [f
"xAOD::MuonSimHitContainer#{pref}MDT_SDO", f
"xAOD::MuonSimHitAuxContainer#{pref}MDT_SDOAux."]
135 """Return ComponentAccumulator for MDT digitization"""
137 if "PileUpTools" not in kwargs:
139 kwargs[
"PileUpTools"] = PileUpTools
145 """Return ComponentAccumulator with MDT Overlay digitization"""
147 from MuonConfig.MuonCalibrationConfig
import MdtCalibDbAlgCfg
150 if flags.Common.ProductionStep != ProductionStep.FastChain:
151 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
156 if flags.Concurrency.NumThreads > 0:
157 kwargs.setdefault(
"Cardinality", flags.Concurrency.NumThreads)
160 kwargs.setdefault(
"ExtraInputs", flags.Overlay.ExtraInputs)
162 acc.addEventAlgo(CompFactory.MuonDigitizer(name=
"MDT_OverlayDigitizer", **kwargs))
168 """Return ComponentAccumulator for MDT digitization and Output"""
175 """Return ComponentAccumulator with MDT digitization and Digit to MDTCSM RDO"""