9 acc = ComponentAccumulator()
12 if flags.Input.Format
is Format.POOL:
13 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
14 acc.merge(SGInputLoaderCfg(flags, [
"TileRawChannelContainer/MuRcvRawChCnt"]))
16 from TriggerJobOpts.TriggerByteStreamConfig
import ByteStreamReadCfg
17 acc.merge(ByteStreamReadCfg(flags, [
"TileRawChannelContainer/MuRcvRawChCnt"]))
19 from TileConditions.TileInfoLoaderConfig
import TileInfoLoaderCfg
20 acc.merge( TileInfoLoaderCfg(flags) )
22 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
23 acc.merge(TileCablingSvcCfg(flags))
25 from TileConditions.TileEMScaleConfig
import TileEMScaleCondAlgCfg
26 acc.merge( TileEMScaleCondAlgCfg(flags) )
28 tmdbAlg = CompFactory.TileMuonReceiverDecision(
'TileMuonReceiverDecision'
29 , TileRawChannelContainer =
"MuRcvRawChCnt"
30 , TileMuonReceiverContainer =
"rerunTileMuRcvCnt"
33 , MuonReceiverEneThreshCellD6Low = 500
34 , MuonReceiverEneThreshCellD6andD5Low = 500
35 , MuonReceiverEneThreshCellD6High = 600
36 , MuonReceiverEneThreshCellD6andD5High = 600
38 , MuonReceiverEneThreshCellD5 = 500
39 , MuonReceiverEneThreshCellD6 = 500
40 , MuonReceiverEneThreshCellD5andD6 = 500)
41 acc.addEventAlgo(tmdbAlg)
45 acc = ComponentAccumulator()
49 postFix =
"_L1MuonSim"
50 from MuonConfig.MuonBytestreamDecodeConfig
import MuonCacheNames
51 cacheCreator = CompFactory.MuonCacheCreator(RpcCacheKey = MuonCacheNames.RpcCache,
52 TgcCacheKey = MuonCacheNames.TgcCache,
53 MdtCsmCacheKey = MuonCacheNames.MdtCsmCache,
54 CscCacheKey = (MuonCacheNames.CscCache
if flags.Detector.GeometryCSC
else ""))
55 acc.addEventAlgo(cacheCreator)
57 RPCRodDecoder = CompFactory.Muon.RpcROD_Decoder(name =
"RpcROD_Decoder" + postFix, NOBXS=flags.Trigger.L1MuonSim.RPCNBX)
58 MuonRpcRawDataProviderTool = CompFactory.Muon.RPC_RawDataProviderTool(name =
"RPC_RawDataProviderTool" + postFix,
59 RpcContainerCacheKey = MuonCacheNames.RpcCache,
60 WriteOutRpcSectorLogic =
False,
61 Decoder = RPCRodDecoder,
62 RdoLocation =
"RPCPAD_L1" )
63 RpcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name =
"RpcRawDataProvider" + postFix,
64 ProviderTool = MuonRpcRawDataProviderTool,
67 acc.addEventAlgo(RpcRawDataProvider)
69 TGCRodDecoder = CompFactory.Muon.TGC_RodDecoderReadout(name =
"TGC_RodDecoderReadout" + postFix)
70 MuonTgcRawDataProviderTool = CompFactory.Muon.TGC_RawDataProviderTool(name =
"TGC_RawDataProviderTool" + postFix,
71 TgcContainerCacheKey = MuonCacheNames.TgcCache,
72 Decoder = TGCRodDecoder,
73 RdoLocation =
"TGCRDO_L1")
74 TgcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name =
"TgcRawDataProvider" + postFix,
75 ProviderTool = MuonTgcRawDataProviderTool,
78 acc.addEventAlgo(TgcRawDataProvider)
80 if flags.Detector.GeometrysTGC:
81 from MuonConfig.MuonBytestreamDecodeConfig
import sTgcRODDecoderCfg
82 MuonsTgcRawDataProviderTool = CompFactory.Muon.STGC_RawDataProviderTool(name =
"STGC_RawDataProviderTool"+postFix,
83 Decoder = acc.popToolsAndMerge(sTgcRODDecoderCfg(flags,
84 name =
"sTgcROD_Decoder"+postFix)),
85 RdoLocation =
"sTGCRDO_L1")
86 sTgcRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name =
"sTgcRawDataProvider"+postFix,
87 ProviderTool = MuonsTgcRawDataProviderTool,
90 acc.addEventAlgo(sTgcRawDataProvider)
93 if flags.Detector.GeometryMM:
94 from MuonConfig.MuonBytestreamDecodeConfig
import MmRDODDecoderCfg
95 Muon_MM_RawDataProviderTool = CompFactory.Muon.MM_RawDataProviderTool
96 MuonMmRawDataProviderTool = Muon_MM_RawDataProviderTool(name =
"MM_RawDataProviderTool"+postFix,
97 Decoder = acc.popToolsAndMerge(MmRDODDecoderCfg(flags,
98 name=
"MM_RODDecoder"+postFix)),
99 RdoLocation =
"MMRDO_L1")
100 MmRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name =
"MmRawDataProvider"+postFix,
101 ProviderTool = MuonMmRawDataProviderTool,
103 DecodePerRoI =
False)
104 acc.addEventAlgo(MmRawDataProvider)
106 if flags.Trigger.L1MuonSim.EmulateNSW
and flags.Trigger.L1MuonSim.NSWVetoMode:
108 MDTRodDecoder = CompFactory.MdtROD_Decoder(name =
"MdtROD_Decoder" + postFix)
109 MuonMdtRawDataProviderTool = CompFactory.Muon.MDT_RawDataProviderTool(name = f
"MDT_RawDataProviderTool{postFix}",
110 CsmContainerCacheKey = MuonCacheNames.MdtCsmCache,
111 Decoder = MDTRodDecoder,
112 RdoLocation =
"MDTCSM_L1")
113 MdtRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name =
"MdtRawDataProvider" + postFix,
114 ProviderTool = MuonMdtRawDataProviderTool,
117 acc.addEventAlgo(MdtRawDataProvider)
119 if flags.Detector.GeometryCSC:
120 CSCRodDecoder = CompFactory.Muon.CscROD_Decoder(name =
"CscROD_Decoder" + postFix,
122 IsOldCosmics =
False )
123 MuonCscRawDataProviderTool = CompFactory.Muon.CSC_RawDataProviderToolMT(name =
"CSC_RawDataProviderToolMT" + postFix,
124 CscContainerCacheKey = MuonCacheNames.CscCache,
125 Decoder = CSCRodDecoder,
126 RdoLocation =
"CSCRDO_L1" )
127 CscRawDataProvider = CompFactory.Muon.MuonRawDataProvider(name =
"CscRawDataProvider" + postFix,
128 ProviderTool = MuonCscRawDataProviderTool,
131 RequireDetectorManager =
True,
132 DetectorManagerKey =
"MuonDetectorManager",
133 IgnoreMissingRoIs =
True)
134 acc.addEventAlgo(CscRawDataProvider)
139 acc = ComponentAccumulator()
140 if not flags.Trigger.L1MuonSim.EmulateNSW
or not flags.Trigger.L1MuonSim.NSWVetoMode:
142 postFix =
"_L1MuonSim"
143 suffix =
"" if flags.Input.isMC
else "_L1"
144 if flags.Input.Format
is Format.POOL:
146 (
'RpcPadContainer',
'RPCPAD'),
147 (
'TgcRdoContainer',
'TGCRDO'),
148 (
'CscRawDataContainer',
'CSCRDO'),
149 (
'MdtCsmContainer',
'MDTCSM')
151 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
152 acc.merge(SGInputLoaderCfg(flags, Load=rdoInputs))
154 if flags.Detector.GeometryCSC:
155 from MuonConfig.MuonRdoDecodeConfig
import CscRDODecodeCfg
156 acc.merge(CscRDODecodeCfg(flags,name=
"CscRdoToCscPrepData" + postFix, RDOContainer =
"CSCRDO"+suffix))
157 CscClusterBuilderTool = CompFactory.CscThresholdClusterBuilderTool(name =
"CscThresholdClusterBuilderTool" + postFix)
158 CscClusterBuilder = CompFactory.CscThresholdClusterBuilder(name =
"CscThresholdClusterBuilder"+postFix,
159 cluster_builder = CscClusterBuilderTool)
160 acc.addEventAlgo(CscClusterBuilder)
162 from MuonConfig.MuonRdoDecodeConfig
import MdtRDODecodeCfg
163 acc.merge(MdtRDODecodeCfg(flags, name =
"MdtRdoToMdtPrepData" + postFix,
164 RDOContainer =
"MDTCSM"+suffix ))
166 from MuonConfig.MuonRdoDecodeConfig
import RpcRDODecodeCfg
167 acc.merge(RpcRDODecodeCfg(flags, name =
"RpcRdoToRpcPrepData" + postFix,
168 RDOContainer =
"RPCPAD"+suffix))
170 from MuonConfig.MuonRdoDecodeConfig
import TgcRDODecodeCfg
171 acc.merge(TgcRDODecodeCfg(flags, name =
"TgcRdoToPrepData" + postFix,
172 RDOContainer =
"TGCRDO"+suffix))
176 acc = ComponentAccumulator()
177 if not flags.Trigger.L1MuonSim.EmulateNSW
or not flags.Trigger.L1MuonSim.NSWVetoMode:
179 postFix =
"_L1MuonSim"
180 theMuonLayerHough = CompFactory.MuonLayerHoughAlg(
"MuonLayerHoughAlg" + postFix,
181 TgcPrepDataContainer =
"TGC_Measurements",
182 RpcPrepDataContainer =
"RPC_Measurements",
183 CscPrepDataContainer = (
"CSC_Clusters" if flags.Detector.GeometryCSC
else ""),
184 MdtPrepDataContainer =
"MDT_DriftCircles",
185 sTgcPrepDataContainer = (
"STGC_Measurements" if flags.Detector.GeometrysTGC
else ""),
186 MMPrepDataContainer = (
"MM_Measurements" if flags.Detector.GeometryMM
else "") )
187 acc.addEventAlgo(theMuonLayerHough)
188 theSegmentFinderAlg = CompFactory.MuonSegmentFinderAlg(
"MuonSegmentFinderAlg" + postFix)
189 if not flags.Detector.GeometryCSC:
190 theSegmentFinderAlg.CSC_clusterkey =
""
191 theSegmentFinderAlg.Csc2dSegmentMaker =
""
192 theSegmentFinderAlg.Csc4dSegmentMaker =
""
193 acc.addEventAlgo(theSegmentFinderAlg)
194 xAODMuonSegmentCnv = CompFactory.xAODMaker.MuonSegmentCnvAlg(
"MuonSegmentCnvAlg" + postFix)
195 acc.addEventAlgo(xAODMuonSegmentCnv)
201 result = ComponentAccumulator()
202 kwargs.setdefault(
"DecodeSTGC_RDO", flags.Detector.GeometrysTGC)
203 kwargs.setdefault(
"DecodeMM_RDO", flags.Detector.GeometryMM)
204 kwargs.setdefault(
"DecodeNrpcRDO", flags.Muon.enableNRPC)
205 from MuonConfig.MuonByteStreamCnvTestConfig
import STgcRdoDecoderCfg, MMRdoDecoderCfg, MdtRdoDecoderCfg
206 kwargs.setdefault(
"stgcRdoDecoderTool", result.popToolsAndMerge(STgcRdoDecoderCfg(flags))
207 if flags.Detector.GeometrysTGC
else "" )
208 kwargs.setdefault(
"mmRdoDecoderTool", result.popToolsAndMerge(MMRdoDecoderCfg(flags))
209 if flags.Detector.GeometryMM
else "" )
210 kwargs.setdefault(
"mdtRdoDecoderTool", result.popToolsAndMerge(MdtRdoDecoderCfg(flags)))
212 rpcrdo_decode = CompFactory.Muon.RpcRDO_Decoder(
"RpcRDO_Decoder", BCZERO=flags.Trigger.L1MuonSim.RPCNBCZ)
213 kwargs.setdefault(
"rpcRdoDecoderTool", rpcrdo_decode)
215 the_tool = CompFactory.MuonRdoToMuonDigitTool (name, **kwargs)
216 result.setPrivateTools(the_tool)
220 acc = ComponentAccumulator()
222 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
223 acc.merge( AtlasFieldCacheCondAlgCfg(flags) )
225 suffix =
"" if flags.Input.Format
is Format.POOL
else "_L1"
226 RPCRdoName =
"RPCPAD"+suffix
227 TGCRdoName =
"TGCRDO"+suffix
228 MMRdoName =
"MMRDO"+suffix
229 sTGCRdoName =
"sTGCRDO"+suffix
231 if flags.Input.Format
is Format.POOL:
232 rdoInputs = [(
'TgcRdoContainer',
'TGCRDO')]
234 if 'RPCPAD' in flags.Input.Collections:
235 rdoInputs += [(
'RpcPadContainer',
'RPCPAD')]
237 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
239 (
'Muon::MM_RawDataContainer',
'MMRDO'),
240 (
'Muon::STGC_RawDataContainer',
'sTGCRDO')
242 if flags.Muon.enableNRPC
and (
"NRPCRDO" in flags.Input.Collections):
244 (
'xAOD::NRPCRDOContainer' ,
'NRPCRDO'),
245 (
'xAOD::NRPCRDOAuxContainer',
'NRPCRDOAux.')
247 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
248 acc.merge(SGInputLoaderCfg(flags, Load=rdoInputs))
250 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
251 acc.merge(MuonGeoModelCfg(flags))
253 from MuonConfig.MuonByteStreamCnvTestConfig
import RpcRdoToRpcDigitCfg, TgcRdoToTgcDigitCfg, STGC_RdoToDigitCfg, MM_RdoToDigitCfg
255 acc.merge(RpcRdoToRpcDigitCfg(flags, RpcDigitContainer =
"RPC_DIGITS_L1", RpcRdoContainer = RPCRdoName ))
256 acc.merge(TgcRdoToTgcDigitCfg(flags, TgcDigitContainer =
"TGC_DIGITS_L1", TgcRdoContainer = TGCRdoName ))
257 if flags.Detector.GeometrysTGC:
258 acc.merge(STGC_RdoToDigitCfg(flags, sTgcRdoContainer = sTGCRdoName, sTgcDigitContainer =
"sTGC_DIGITS_L1"))
259 if flags.Detector.GeometryMM:
260 acc.merge(MM_RdoToDigitCfg(flags, MmRdoContainer = MMRdoName, MmDigitContainer =
"MM_DIGITS_L1" ))
265 acc = ComponentAccumulator()
266 if not flags.Detector.GeometrysTGC
and not flags.Detector.GeometryMM:
269 if flags.Input.Format
is Format.POOL
and flags.Input.isMC:
271 (
'McEventCollection',
'TruthEvent'),
272 *( [(
'MuonSimDataCollection',
'sTGC_SDO')]
if not flags.Muon.usePhaseIIGeoSetup
else [] ),
273 (
'TrackRecordCollection',
'MuonEntryLayer'),
275 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
276 acc.merge(SGInputLoaderCfg(flags, Load=rdoInputs))
278 PadEmulatorTool = CompFactory.NSWL1.PadEmulatorTool(
"NSWL1__PadEmulatorTool", DoNtuple=flags.Trigger.L1MuonSim.WritesTGCBranches, IsMC = flags.Input.isMC, sTGC_DigitContainerName=
"sTGC_DIGITS_L1")
279 MMTriggerTool = CompFactory.NSWL1.MMTriggerTool(
"NSWL1__MMTriggerTool",DoNtuple=flags.Trigger.L1MuonSim.WriteMMBranches, IsMC = flags.Input.isMC, MmDigitContainer=
"MM_DIGITS_L1")
280 TriggerProcessorTool = CompFactory.NSWL1.TriggerProcessorTool(
"NSWL1__TriggerProcessorTool")
283 if not flags.Input.isMC:
284 from MuonConfig.MuonCondAlgConfig
import NswDcsDbAlgCfg
285 acc.merge(NswDcsDbAlgCfg(flags))
287 nswAlg = CompFactory.NSWL1.NSWL1Simulation(
"NSWL1Simulation",
288 DoNtuple = flags.Trigger.L1MuonSim.WriteNSWDebugNtuple,
289 DoMM = flags.Trigger.L1MuonSim.doMMTrigger,
290 DoMMDiamonds = flags.Trigger.L1MuonSim.doMMTrigger,
291 DosTGC = flags.Trigger.L1MuonSim.doPadTrigger
or flags.Trigger.L1MuonSim.doStripTrigger,
292 DoPad = flags.Trigger.L1MuonSim.doPadTrigger,
293 PadEmulatorTool = PadEmulatorTool,
294 DoStrip = flags.Trigger.L1MuonSim.doStripTrigger,
295 MMTriggerTool = MMTriggerTool,
296 TriggerProcessorTool = TriggerProcessorTool,
297 NSWTrigRDOContainerName =
"L1_NSWTrigContainer" )
298 acc.addEventAlgo(nswAlg)
318 acc = ComponentAccumulator()
319 tgcAlg = CompFactory.LVL1TGCTrigger.LVL1TGCTrigger(
"LVL1TGCTrigger",
320 InputData_perEvent =
"TGC_DIGITS_L1",
321 InputRDO =
"TGCRDO" if flags.Input.isMC
else "TGCRDO_L1",
322 useRun3Config =
True,
323 TileMuRcv_Input =
"rerunTileMuRcvCnt",
325 if (flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM):
326 tgcAlg.MaskFileName12 =
"TrigT1TGCMaskedChannel.noFI._12.db"
328 tgcAlg.NSWSideInfo =
"AC"
329 tgcAlg.NSWTrigger_Input =
"L1_NSWTrigContainer"
330 tgcAlg.FORCENSWCOIN =
not flags.Trigger.L1MuonSim.NSWVetoMode
331 tgcAlg.USEBIS78 = flags.Trigger.L1MuonSim.doBIS78
333 tgcAlg.MaskFileName12 =
"TrigT1TGCMaskedChannel._12.db"
335 if flags.Trigger.L1MuonSim.EmulateNSW:
336 tgcAlg.MuctpiPhase1LocationTGC =
"L1MuctpiStoreTGCint"
338 if flags.Input.Format
is Format.BS:
339 from TriggerJobOpts.TriggerByteStreamConfig
import ByteStreamReadCfg
340 readBSConfig = ByteStreamReadCfg(flags, [
'ByteStreamMetadataContainer/ByteStreamMetadata'])
341 acc.merge(readBSConfig)
343 tgcAlg.ByteStreamMetadataRHKey =
''
344 acc.addEventAlgo(tgcAlg)
346 from PathResolver
import PathResolver
348 acc.merge(addFolders(flags,
'<db>sqlite://;schema={0};dbname=OFLP200</db> /TGC/TRIGGER/CW_BW_RUN3'.format(bwCW_Run3_filePath),
349 tag=
'TgcTriggerCwBwRun3-01',
350 className=
'CondAttrListCollection'))
351 acc.addCondAlgo(CompFactory.TGCTriggerCondAlg())
352 from MuonConfig.MuonCablingConfig
import TGCCablingConfigCfg
353 acc.merge( TGCCablingConfigCfg(flags) )
373 acc = ComponentAccumulator()
374 rpcRecRoiTool = CompFactory.LVL1.TrigT1RPCRecRoiTool(
"TrigT1RPCRecRoiTool", UseRun3Config=
True)
375 tgcRecRoiTool = CompFactory.LVL1.TrigT1TGCRecRoiTool(
"TrigT1TGCRecRoiTool", UseRun3Config=
True)
376 trigThresholdDecTool = CompFactory.LVL1.TrigThresholdDecisionTool(name=
"TrigThresholdDecisionTool",
377 RPCRecRoiTool = rpcRecRoiTool,
378 TGCRecRoiTool = tgcRecRoiTool)
379 muctpiTool = CompFactory.LVL1MUCTPIPHASE1.MUCTPI_AthTool(name=
"MUCTPI_AthTool",
380 MuCTPICTPLocation =
'L1MuCTPItoCTPLocation',
381 OverlapStrategyName = flags.Trigger.MUCTPI.OverlapStrategy,
382 LUTXMLFile = flags.Trigger.MUCTPI.LUTXMLFile,
383 BarrelRoIFile = flags.Trigger.MUCTPI.BarrelRoIFile,
384 EndcapForwardRoIFile = flags.Trigger.MUCTPI.EndcapForwardRoIFile,
385 Side0LUTFile = flags.Trigger.MUCTPI.Side0LUTFile,
386 Side1LUTFile = flags.Trigger.MUCTPI.Side1LUTFile,
387 InputSource =
'DIGITIZATION',
388 RPCRecRoiTool = rpcRecRoiTool,
389 TGCRecRoiTool = tgcRecRoiTool,
390 TrigThresholdDecisionTool = trigThresholdDecTool)
391 muctpiAlg = CompFactory.LVL1MUCTPIPHASE1.MUCTPI_AthAlg(name=
"MUCTPI_AthAlg",
392 MUCTPI_AthTool = muctpiTool)
393 acc.addEventAlgo(muctpiAlg)
394 from TrigConfigSvc.TrigConfigSvcCfg
import L1ConfigSvcCfg
395 acc.merge(L1ConfigSvcCfg(flags))