1 """Define methods to construct configured RPC 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 LHCPeriod, ProductionStep
8 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
9 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
10 from MuonConfig.MuonByteStreamCnvTestConfig
import RpcDigitToRpcRDOCfg
11 from MuonConfig.MuonByteStreamCnvTestConfig
import NrpcDigitToNrpcRDOCfg
12 from MuonConfig.MuonCablingConfig
import RPCCablingConfigCfg
13 from DigitizationConfig.TruthDigitizationOutputConfig
import TruthDigitizationOutputCfg
14 from DigitizationConfig.PileUpToolsConfig
import PileUpToolsCfg
15 from DigitizationConfig.PileUpMergeSvcConfig
import PileUpMergeSvcCfg, PileUpXingFolderCfg
29 """Return a PileUpXingFolder tool configured for RPC"""
32 kwargs.setdefault(
"CacheRefreshFrequency", 1.0)
33 kwargs.setdefault(
"ItemList", [
"RPCSimHitCollection#RPC_Hits"])
38 """Return ComponentAccumulator with configured RpcDigitizationTool"""
40 if flags.GeoModel.Run < LHCPeriod.Run3:
41 from MuonConfig.MuonCondAlgConfig
import RpcCondDbAlgCfg
43 if flags.Digitization.DoXingByXingPileUp:
46 kwargs.setdefault(
"OutputObjectName",
"RPC_DIGITS")
47 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
48 kwargs.setdefault(
"OutputSDOName", flags.Overlay.BkgPrefix +
"RPC_SDO")
50 kwargs.setdefault(
"OutputSDOName",
"RPC_SDO")
52 kwargs.setdefault(
"DeadTime", 100)
53 kwargs.setdefault(
"PatchForRpcTime",
True)
55 kwargs.setdefault(
"PatchForRpcTimeShift", 12.5)
56 kwargs.setdefault(
"turnON_efficiency",
True)
57 kwargs.setdefault(
"turnON_clustersize",
True)
58 kwargs.setdefault(
"ClusterSize1_2uncorr",
False)
59 kwargs.setdefault(
"CutProjectedTracks", 100)
60 kwargs.setdefault(
"RPCInfoFromDb",
True)
61 kwargs.setdefault(
"Efficiency_fromCOOL",
True)
62 kwargs.setdefault(
"EfficiencyPatchForBMShighEta",
False)
63 kwargs.setdefault(
"ClusterSize_fromCOOL",
True)
64 kwargs.setdefault(
"IgnoreRunDependentConfig",
False)
65 kwargs.setdefault(
"PhiAndEtaEff_A",[0.938, 0.938, 0.938, 0.938, 0.938, 0.938, 0.938, 0.938, 0.938])
66 kwargs.setdefault(
"OnlyPhiEff_A" ,[0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022])
67 kwargs.setdefault(
"OnlyEtaEff_A" ,[0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022])
68 kwargs.setdefault(
"PhiAndEtaEff_C",[0.938, 0.938, 0.938, 0.938, 0.938, 0.938, 0.938, 0.938, 0.938])
69 kwargs.setdefault(
"OnlyPhiEff_C" ,[0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022])
70 kwargs.setdefault(
"OnlyEtaEff_C" ,[0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022])
71 kwargs.setdefault(
"FracClusterSize1_A", [0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664])
72 kwargs.setdefault(
"FracClusterSize2_A", [0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986])
73 kwargs.setdefault(
"FracClusterSizeTail_A",[0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035 ])
74 kwargs.setdefault(
"MeanClusterSizeTail_A",[0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598])
75 kwargs.setdefault(
"FracClusterSize1_C", [0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664, 0.609664])
76 kwargs.setdefault(
"FracClusterSize2_C", [0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986, 0.259986])
77 kwargs.setdefault(
"FracClusterSizeTail_C",[0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035, 0.13035 ])
78 kwargs.setdefault(
"MeanClusterSizeTail_C",[0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598, 0.548598])
79 from RngComps.RngCompsConfig
import AthRNGSvcCfg
80 kwargs.setdefault(
"RndmSvc", acc.getPrimaryAndMerge(
AthRNGSvcCfg(flags)).name)
81 RpcDigitizationTool = CompFactory.RpcDigitizationTool(name, **kwargs)
82 acc.setPrivateTools(RpcDigitizationTool)
87 """Return ComponentAccumulator with configured RpcDigitizationTool"""
89 if flags.Digitization.PileUp:
91 if not flags.Digitization.DoXingByXingPileUp:
93 kwargs.setdefault(
"PileUpMergeSvc", acc.getPrimaryAndMerge(
PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
95 kwargs.setdefault(
"PileUpMergeSvc",
'')
96 kwargs.setdefault(
"OnlyUseContainerName", flags.Digitization.PileUp)
97 kwargs.setdefault(
"OutputObjectName",
"RPC_DIGITS")
98 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
99 kwargs.setdefault(
"OutputSDOName", flags.Overlay.BkgPrefix +
"RPC_SDO")
101 kwargs.setdefault(
"OutputSDOName",
"RPC_SDO")
103 acc.setPrivateTools(tool)
108 """Return ComponentAccumulator with RpcDigitizationTool configured for Overlay"""
109 kwargs.setdefault(
"OnlyUseContainerName",
False)
110 kwargs.setdefault(
"OutputObjectName", flags.Overlay.SigPrefix +
"RPC_DIGITS")
111 kwargs.setdefault(
"OutputSDOName", flags.Overlay.SigPrefix +
"RPC_SDO")
112 kwargs.setdefault(
"PileUpMergeSvc",
'')
117 """Return ComponentAccumulator with Output for RPC. Not standalone."""
119 if flags.Output.doWriteRDO:
120 ItemList = [
"RpcPadContainer#*"]
121 if flags.Muon.enableNRPC:
122 ItemList += [
'xAOD::NRPCRDOContainer#*' ,
'xAOD::NRPCRDOAuxContainer#*' ]
123 if flags.Digitization.EnableTruth:
124 ItemList += [
"MuonSimDataCollection#*"]
131 """Return ComponentAccumulator for RPC digitization"""
133 if "PileUpTools" not in kwargs:
135 kwargs[
"PileUpTools"] = PileUpTools
141 """Return ComponentAccumulator with RPC Overlay digitization"""
144 if flags.Common.ProductionStep != ProductionStep.FastChain:
145 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
150 if flags.Concurrency.NumThreads > 0:
151 kwargs.setdefault(
"Cardinality", flags.Concurrency.NumThreads)
154 kwargs.setdefault(
"ExtraInputs", flags.Overlay.ExtraInputs)
156 the_alg = CompFactory.MuonDigitizer(name=
"RPC_OverlayDigitizer", **kwargs)
157 acc.addEventAlgo(the_alg)
163 """Return ComponentAccumulator for RPC digitization and Output"""
170 """Return ComponentAccumulator with RPC digitization and Digit to RPCPAD RDO"""
174 if flags.Muon.enableNRPC: