3from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory
import CompFactory
5from AthenaConfiguration.Enums
import BeamType
9 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCaloTagToolCfg
10 result = ComponentAccumulator()
11 kwargs.setdefault(
"MuonCombinedInDetExtensionTool",
12 result.popToolsAndMerge(MuonCaloTagToolCfg(flags)))
13 kwargs.setdefault(
"TagMap",
"caloTagMap")
14 kwargs.setdefault(
"CombinedTrackCollection",
"")
15 kwargs.setdefault(
"METrackCollection",
"")
16 kwargs.setdefault(
"usePRDs",
False)
17 alg = CompFactory.MuonCombinedInDetExtensionAlg(name, **kwargs)
18 result.addEventAlgo(alg, primary=
True)
23 kwargs.setdefault(
"TagMap",
"caloTagMap_LRT")
24 kwargs.setdefault(
"InDetCandidateLocation",
"TrackParticleCandidateLRT")
29 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonSegmentTagToolCfg
30 result = MuonSegmentTagToolCfg(flags)
31 muon_segment_tag_tool = result.popPrivateTools()
32 kwargs.setdefault(
"MuonSegmentTagTool", muon_segment_tag_tool)
33 kwargs.setdefault(
"InDetCandidateLocation",
34 "InDetCandidates" if not flags.MuonCombined.doCombinedFit
else "InDetCandidatesSystemExtened")
35 alg = CompFactory.MuonSegmentTagAlg(name, **kwargs)
36 result.addEventAlgo(alg, primary=
True)
41 kwargs.setdefault(
"TagMap",
"segmentTagMap_LRT")
42 kwargs.setdefault(
"InDetCandidateLocation",
"TrackParticleCandidateLRT"
43 if not flags.MuonCombined.doCombinedFit
else "InDetCandidateLRT_SystemExtended")
48 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonInsideOutRecoToolCfg
49 result = ComponentAccumulator()
50 kwargs.setdefault(
"MuonCombinedInDetExtensionTool",
51 result.popToolsAndMerge(MuonInsideOutRecoToolCfg(flags)))
52 kwargs.setdefault(
"usePRDs",
True)
53 kwargs.setdefault(
"HasCSC", flags.Detector.GeometryCSC)
54 kwargs.setdefault(
"HasSTgc", flags.Detector.GeometrysTGC)
55 kwargs.setdefault(
"HasMM", flags.Detector.GeometryMM)
56 kwargs.setdefault(
"TagMap",
"muGirlTagMap")
57 kwargs.setdefault(
"SegmentCollection",
"MuGirlSegments")
58 kwargs.setdefault(
"TGCPrepDataLocation",
59 'TGC_MeasurementsAllBCs')
60 kwargs.setdefault(
"InDetCandidateLocation",
61 "InDetCandidates" if not flags.MuonCombined.doCombinedFit
else "InDetCandidatesSystemExtened")
63 alg = CompFactory.MuonCombinedInDetExtensionAlg(name, **kwargs)
64 result.addEventAlgo(alg, primary=
True)
69 kwargs.setdefault(
"TagMap",
"MuGirlMap_LRT")
70 kwargs.setdefault(
"METrackCollection",
"MuGirlMETracks_LRT")
71 kwargs.setdefault(
"SegmentCollection",
"MuGirlSegments_LRT")
72 kwargs.setdefault(
"CombinedTrackCollection",
73 "MuGirlCombinedMuonContainerLRT")
74 kwargs.setdefault(
"InDetCandidateLocation",
"TrackParticleCandidateLRT"
75 if not flags.MuonCombined.doCombinedFit
else "InDetCandidateLRT_SystemExtended")
80 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonStauRecoToolCfg
81 result = ComponentAccumulator()
82 kwargs.setdefault(
"MuonCombinedInDetExtensionTool",
83 result.popToolsAndMerge(MuonStauRecoToolCfg(flags)))
84 kwargs.setdefault(
"TagMap",
"stauTagMap")
85 kwargs.setdefault(
"HasCSC", flags.Detector.GeometryCSC)
86 kwargs.setdefault(
"HasSTgc",
False)
87 kwargs.setdefault(
"HasMM",
False)
88 kwargs.setdefault(
"TGCPrepDataLocation",
'TGC_MeasurementsAllBCs')
89 kwargs.setdefault(
"CombinedTrackCollection",
"MuGirlStauCombinedTracks")
90 kwargs.setdefault(
"METrackCollection",
"")
91 kwargs.setdefault(
"SegmentCollection",
"TrkStauSegments")
92 kwargs.setdefault(
"InDetCandidateLocation",
93 "InDetCandidates" if not flags.MuonCombined.doCombinedFit
else "InDetCandidatesStaus")
94 alg = CompFactory.MuonCombinedInDetExtensionAlg(name, **kwargs)
95 result.addEventAlgo(alg, primary=
True)
100 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCandidateToolCfg
102 result = ComponentAccumulator()
105 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
106 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
109 if flags.Beam.Type
is BeamType.Cosmics:
110 tool_kwargs.setdefault(
"ExtrapolationStrategy", 1)
112 acc = MuonCandidateToolCfg(flags, **tool_kwargs)
113 kwargs.setdefault(
"MuonCandidateTool", acc.popPrivateTools())
116 alg = CompFactory.MuonCombinedMuonCandidateAlg(name, **kwargs)
117 result.addEventAlgo(alg, primary=
True)
121 from InDetConfig.InDetTrackSelectorToolConfig
import MuonCombinedInDetDetailedTrackSelectorToolCfg, MuonCombinedInDetDetailedForwardTrackSelectorToolCfg
122 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonSystemExtensionToolCfg
123 result = ComponentAccumulator()
124 kwargs.setdefault(
"TrackSelector", result.popToolsAndMerge(MuonCombinedInDetDetailedTrackSelectorToolCfg(flags)))
125 kwargs.setdefault(
"WaitForTrackLink",
not flags.Muon.MuonTrigger)
127 if flags.MuonCombined.doSiAssocForwardMuons
and flags.Tracking.doForwardTracks:
128 kwargs.setdefault(
"DoSiliconAssocForwardMuons",
True)
129 kwargs.setdefault(
"InDetForwardTrackSelector", result.popToolsAndMerge(
130 MuonCombinedInDetDetailedForwardTrackSelectorToolCfg(flags)))
132 kwargs.setdefault(
"MuonSystemExtensionTool", result.popToolsAndMerge(MuonSystemExtensionToolCfg(flags)))
136 kwargs.setdefault(
"ExtendBulk",
not flags.MuonCombined.doCombinedFit)
138 if flags.Reco.EnableCaloExtension
and not flags.Muon.MuonTrigger:
139 kwargs.setdefault(
"CaloExtensionLocation", [
"ParticleCaloExtension"])
141 alg = CompFactory.MuonCombinedInDetCandidateAlg(name, **kwargs)
142 result.addEventAlgo(alg, primary=
True)
147 result = ComponentAccumulator()
148 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonSystemExtensionToolCfg
149 muon_ext_tool = result.popToolsAndMerge(
150 MuonSystemExtensionToolCfg(flags))
151 kwargs.setdefault(
"MuonSystemExtensionTool", muon_ext_tool)
152 kwargs.setdefault(
"noNSWforSeeding",
True)
153 kwargs.setdefault(
"WriteStauCandidates",
"InDetCandidatesStausPrompt"
154 if flags.Tracking.doLargeD0
else "InDetCandidatesStaus")
156 if not flags.Muon.MuonTrigger:
157 from MuonConfig.MuonSegmentFindingConfig
import MuonLayerHoughAlgCfg
158 result.merge(MuonLayerHoughAlgCfg(flags))
159 kwargs.setdefault(
"UseOnlyHitSectors",
160 not flags.Muon.MuonTrigger
and flags.Beam.Type
is BeamType.Collisions)
161 alg = CompFactory.MuonInDetToMuonSystemExtensionAlg(name, **kwargs)
162 result.addEventAlgo(alg, primary=
True)
167 kwargs.setdefault(
"WriteStauCandidates",
"InDetCandidatesStausLRT")
168 kwargs.setdefault(
"WriteInDetCandidates",
169 "InDetCandidateLRT_SystemExtended")
170 kwargs.setdefault(
"InputInDetCandidates",
"TrackParticleCandidateLRT")
171 kwargs.setdefault(
"CombinedTagMap",
"muidcoTagMap_LRT")
176 from InDetConfig.InDetTrackSelectorToolConfig
import MuonCombinedInDetDetailedForwardTrackSelectorToolCfg, MuonCombinedInDetDetailedTrackSelectorTool_LRTCfg
177 result = ComponentAccumulator()
179 kwargs.setdefault(
"TrackSelector", result.popToolsAndMerge(
180 MuonCombinedInDetDetailedTrackSelectorTool_LRTCfg(flags)))
184 kwargs.setdefault(
"TrackParticleLocation", [
"InDetLargeD0TrackParticles"])
185 kwargs.setdefault(
"InDetCandidateLocation",
"TrackParticleCandidateLRT")
186 kwargs.setdefault(
"DoSiliconAssocForwardMuons",
False)
187 kwargs.setdefault(
"WaitForTrackLink",
not flags.Muon.MuonTrigger)
189 kwargs.setdefault(
"InDetForwardTrackSelector", result.popToolsAndMerge(
190 MuonCombinedInDetDetailedForwardTrackSelectorToolCfg(flags)))
192 if flags.Reco.EnableCaloExtension
and not flags.Muon.MuonTrigger:
193 kwargs.setdefault(
"CaloExtensionLocation", [
194 "ParticleCaloExtension_LRT"])
196 result.merge(cand_alg)
201 result = ComponentAccumulator()
204 from MuonConfig.MuonRecToolsConfig
import MuonEDMPrinterToolCfg
205 kwargs.setdefault(
"Printer", result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags)))
206 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCombinedFitTagToolCfg, MuonCombinedStacoTagToolCfg
208 if flags.MuonCombined.doCombinedFit:
209 tools.append(result.popToolsAndMerge(MuonCombinedFitTagToolCfg(flags)))
210 tagmaps+=[
'muidcoTagMap']
211 if flags.MuonCombined.doStatisticalCombination
and flags.Beam.Type
is not BeamType.Cosmics:
212 tools.append(result.popToolsAndMerge(MuonCombinedStacoTagToolCfg(flags)))
213 tagmaps+=[
'stacoTagMap']
215 kwargs.setdefault(
"MuonCombinedTagTools", tools)
216 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonAlignmentUncertToolThetaCfg
217 kwargs.setdefault(
"AlignmentUncertTool", result.getPrimaryAndMerge(MuonAlignmentUncertToolThetaCfg(flags)))
219 kwargs.setdefault(
"DeltaEtaPreSelection", 0.2)
220 kwargs.setdefault(
"DeltaPhiPreSelection", 0.2)
222 kwargs.setdefault(
"CombinedTagMaps", tagmaps)
223 alg = CompFactory.MuonCombinedAlg(name, **kwargs)
224 result.addEventAlgo(alg, primary=
True)
228 kwargs.setdefault(
"InDetCandidateLocation",
"TrackParticleCandidateLRT")
229 kwargs.setdefault(
"CombinedTagMaps", [
230 "muidcoTagMap_LRT",
"stacoTagMap_LRT"])
231 kwargs.setdefault(
"MuidCombinedTracksLocation",
"MuidCombinedTracks_LRT")
232 kwargs.setdefault(
"MuidMETracksLocation",
"MuidMETracks_LRT")
237 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
238 result = MuonCreatorToolCfg(flags, name=
"MuonCreatorTool")
239 kwargs.setdefault(
"MuonCreatorTool", result.popPrivateTools())
244 if flags.MuonCombined.doMuGirl:
245 tag_maps += [
"muGirlTagMap"]
246 if flags.MuonCombined.doStatisticalCombination:
247 tag_maps += [
"stacoTagMap"]
248 if flags.MuonCombined.doCombinedFit:
249 tag_maps += [
"muidcoTagMap"]
250 if flags.MuonCombined.doCaloTrkMuId:
251 tag_maps += [
"caloTagMap"]
252 if flags.MuonCombined.doMuonSegmentTagger:
253 tag_maps += [
"segmentTagMap"]
254 kwargs.setdefault(
"TagMaps", tag_maps)
255 if flags.Muon.MuonTrigger:
256 kwargs.setdefault(
"MakeClusters",
False)
257 kwargs.setdefault(
"ClusterContainerName",
"")
258 kwargs.setdefault(
"SegmentContainerName",
"")
259 kwargs.setdefault(
"TagToSegmentKey",
"")
260 if flags.Muon.SAMuonTrigger:
261 kwargs.setdefault(
"CreateSAmuons",
True)
262 kwargs.setdefault(
"TagMaps", [])
264 alg = CompFactory.MuonCreatorAlg(name, **kwargs)
265 result.addEventAlgo(alg, primary=
True)
270 result = ComponentAccumulator()
271 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
272 creatorTool = result.popToolsAndMerge(
273 MuonCreatorToolCfg(flags,
"MuonCreatorTool_LRT", RequireIDTrack=
True))
274 kwargs.setdefault(
"MuonCreatorTool", creatorTool)
277 if flags.MuonCombined.doMuGirl:
278 tag_maps += [
"MuGirlMap_LRT"]
279 if flags.MuonCombined.doStatisticalCombination:
280 tag_maps += [
"stacoTagMap_LRT"]
281 if flags.MuonCombined.doCombinedFit:
282 tag_maps += [
"muidcoTagMap_LRT"]
283 if flags.MuonCombined.doCaloTrkMuId:
284 tag_maps += [
"caloTagMap_LRT"]
285 if flags.MuonCombined.doMuonSegmentTagger:
286 tag_maps += [
"segmentTagMap_LRT"]
287 kwargs.setdefault(
"TagMaps", tag_maps)
288 kwargs.setdefault(
"MuonContainerLocation",
"MuonsLRT")
289 kwargs.setdefault(
"ExtrapolatedLocation",
"ExtraPolatedMuonsLRT")
290 kwargs.setdefault(
"MSOnlyExtrapolatedLocation",
291 "MSOnlyExtraPolatedMuonsLRT")
292 kwargs.setdefault(
"CombinedLocation",
"CombinedMuonsLRT")
293 kwargs.setdefault(
"BuildSlowMuon",
False)
294 kwargs.setdefault(
"MakeClusters",
False)
295 kwargs.setdefault(
"ClusterContainerName",
"")
300 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
301 result = MuonCreatorToolCfg(
302 flags, BuildStauContainer=
True, name=
'StauCreatorTool')
303 kwargs.setdefault(
"MuonCreatorTool", result.popPrivateTools())
304 kwargs.setdefault(
"MuonContainerLocation",
"Staus")
305 kwargs.setdefault(
"CombinedLocation",
"CombinedStau")
306 kwargs.setdefault(
"ExtrapolatedLocation",
"ExtrapolatedStau")
307 kwargs.setdefault(
"MSOnlyExtrapolatedLocation",
"MSOnlyExtrapolatedStau")
308 kwargs.setdefault(
"MuonCandidateLocation", [])
309 kwargs.setdefault(
"SegmentContainerName",
"StauSegments")
310 kwargs.setdefault(
"TagToSegmentKey",
"")
311 kwargs.setdefault(
"BuildSlowMuon", 1)
312 kwargs.setdefault(
"ClusterContainerName",
"SlowMuonClusterCollection")
313 kwargs.setdefault(
"TagMaps", [
"stauTagMap"])
320 result = ComponentAccumulator()
321 kwargs.setdefault(
"saveUnusedSegments",
322 flags.MuonCombined.writeUnAssocSegments)
324 if flags.MuonCombined.doMuGirl:
325 tag_maps += [
"muGirlTagMap"]
326 if flags.MuonCombined.doStatisticalCombination:
327 tag_maps += [
"stacoTagMap"]
328 if flags.MuonCombined.doCombinedFit:
329 tag_maps += [
"muidcoTagMap"]
330 if flags.MuonCombined.doMuonSegmentTagger:
331 tag_maps += [
"segmentTagMap"]
332 muon_maps = [
"MuonCandidates"]
333 if flags.Tracking.doLargeD0:
334 if flags.MuonCombined.doMuGirl:
335 tag_maps += [
"MuGirlMap_LRT"]
336 if flags.MuonCombined.doStatisticalCombination:
337 tag_maps += [
"stacoTagMap_LRT"]
338 if flags.MuonCombined.doCombinedFit:
339 tag_maps += [
"muidcoTagMap_LRT"]
340 if flags.MuonCombined.doMuonSegmentTagger:
341 tag_maps += [
"segmentTagMap_LRT"]
342 kwargs.setdefault(
"MuonCandidateMaps", muon_maps)
343 kwargs.setdefault(
"TagMaps", tag_maps)
344 from MuonConfig.MuonRecToolsConfig
import MuonAmbiProcessorCfg
345 kwargs.setdefault(
"AmbiguityProcessor", result.popToolsAndMerge(
346 MuonAmbiProcessorCfg(flags)))
348 the_alg = CompFactory.MuonSegContainerMergerAlg(name, **kwargs)
349 result.addEventAlgo(the_alg)
354 result = ComponentAccumulator()
356 "ToMerge", [
"InDetCandidatesStausPrompt",
"InDetCandidatesStausLRT"])
357 kwargs.setdefault(
"ToWrite",
"InDetCandidatesStaus")
358 the_alg = CompFactory.MuonInDetExtensionMergerAlg(name, **kwargs)
359 result.addEventAlgo(the_alg, primary=
True)
369 tp_coll = [
"ExtrapolatedMuonTrackParticles",
370 "CombinedMuonTrackParticles",
371 "MSOnlyExtrapolatedMuonTrackParticles"]
372 track_coll = [
"ExtrapolatedMuonTracks",
373 "CombinedMuonTracks",
374 "MSOnlyExtrapolatedTracks"]
375 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
376 tp_coll += [
"CombinedStauTrackParticles",
377 "ExtrapolatedStauTrackParticles"]
378 track_coll += [
"CombinedStauTracks",
379 "ExtrapolatedStauTracks"]
380 if flags.Tracking.doLargeD0:
381 tp_coll += [
"CombinedMuonsLRTTrackParticles",
382 "ExtraPolatedMuonsLRTTrackParticles",
383 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
384 track_coll += [
"CombinedMuonsLRTTracks",
385 "ExtraPolatedMuonsLRTTracks",
386 "MSOnlyExtraPolatedMuonsLRTTrackParticlesTracks"]
387 return tp_coll, track_coll
391 result = ComponentAccumulator()
392 the_alg = CompFactory.MuonTrkIDMSScatterDecorAlg(name=name, **kwargs)
393 result.addEventAlgo(the_alg)
398 result = ComponentAccumulator()
399 the_alg = CompFactory.MuonTrkAEOTDecorationAlg(name=name, **kwargs)
400 result.addEventAlgo(the_alg)
405 result = ComponentAccumulator()
406 the_alg = CompFactory.MuonPrecisionLayerDecorAlg(name=name, **kwargs)
407 result.addEventAlgo(the_alg)
412 result = ComponentAccumulator()
413 trk_cols = [
"ExtrapolatedMuonTrackParticles",
414 "CombinedMuonTrackParticles",
415 "MSOnlyExtrapolatedMuonTrackParticles"]
416 stau_coll = [
"CombinedStauTrackParticles",
417 "ExtrapolatedStauTrackParticles"]
if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta
else []
418 track_coll_lrt = [
"CombinedMuonsLRTTrackParticles",
419 "ExtraPolatedMuonsLRTTrackParticles",
420 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
if flags.Tracking.doLargeD0
else []
423 for coll
in trk_cols + stau_coll + track_coll_lrt:
425 TrackContainer=coll))
428 TrackContainer=coll))
430 prec_trk_cols = [
"ExtrapolatedMuonTrackParticles",
431 "CombinedMuonTrackParticles",
432 "MSOnlyExtrapolatedMuonTrackParticles"]
434 MuonContainer=
"Muons",
435 TrackContainer=prec_trk_cols))
436 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
439 MuonContainer=
"Staus",
440 TrackContainer=stau_coll))
441 if flags.Tracking.doLargeD0:
444 MuonContainer=
"MuonsLRT",
445 TrackContainer=track_coll_lrt))
451 result = ComponentAccumulator()
454 from MuonConfig.MuonTruthAlgsConfig
import MuonDetailedTrackTruthMakerCfg
455 result.merge(MuonDetailedTrackTruthMakerCfg(flags, name=
"MuonCombinedDetailedTrackTruthMaker",
456 TrackCollectionNames=trk_cols))
458 if(
not flags.Muon.scheduleActsReco):
459 for i
in range(len(trk_cols)):
460 from TrkConfig.TrkTruthAlgsConfig
import TrackTruthSelectorCfg, TrackParticleTruthAlgCfg
461 result.merge(TrackTruthSelectorCfg(flags, tracks=trk_cols[i]))
462 result.merge(TrackParticleTruthAlgCfg(flags, tracks=trk_cols[i],
463 TrackParticleName=particle_cols[i]))
469 result = ComponentAccumulator()
472 from MuonConfig.MuonTruthAlgsConfig
import MuonTruthAssociationAlgCfg
473 result.merge(MuonTruthAssociationAlgCfg(flags))
475 if flags.Tracking.doLargeD0:
476 result.merge(MuonTruthAssociationAlgCfg(flags, name=
"MuonTruthAssociationAlgLRT",
477 MuonContainerName=
"MuonsLRT",
478 RecoLinkName=
"recoMuonLinkLRT",
479 TrackContainers=trk_cols))
481 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
482 result.merge(MuonTruthAssociationAlgCfg(flags, name=
"MuonTruthAssociationAlgStau",
483 MuonContainerName=
"Staus",
485 TrackContainers=trk_cols))
490 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
491 result = ComponentAccumulator()
494 from TrkEventCnvTools.TrkEventCnvToolsConfig
import (
495 TrkEventCnvSuperToolCfg)
496 result.merge(TrkEventCnvSuperToolCfg(flags))
501 for track_pt
in 500, 1000:
502 for cone_str
in "",
"LooseCone":
503 name = f
"Nonprompt_All_MaxWeightTTVA{cone_str}_pt{track_pt}"
504 iso_vars += [
"ptconeCorrBitset_"+name,
505 "ptconecoreTrackPtrCorrection_"+name]
506 for cone_size
in 20, 30, 40:
507 for var_str
in "",
"var":
508 iso_vars.append(f
"pt{var_str}cone{cone_size}_{name}")
512 aod_items += [
"xAOD::MuonSegmentContainer#MuonSegments"]
513 aod_items += [
"xAOD::MuonSegmentAuxContainer#MuonSegmentsAux."]
514 if flags.MuonCombined.writeUnAssocSegments:
515 aod_items += [
"xAOD::MuonSegmentContainer#UnAssocMuonSegments"]
516 aod_items += [
"xAOD::MuonSegmentAuxContainer#UnAssocMuonSegmentsAux."]
517 if flags.MuonCombined.doMuGirlLowBeta:
518 aod_items += [
"xAOD::MuonSegmentContainer#StauSegments"]
519 aod_items += [
"xAOD::MuonSegmentAuxContainer#StauSegmentsAux."]
522 if flags.Detector.EnableCalo:
523 aod_items += [
"xAOD::CaloClusterContainer#MuonClusterCollection"]
524 aod_items += [
"xAOD::CaloClusterAuxContainer#MuonClusterCollectionAux."]
525 aod_items += [
"CaloClusterCellLinkContainer#MuonClusterCollection_links"]
526 from CaloRec.CaloThinCellsByClusterAlgConfig
import CaloThinCellsByClusterAlgCfg
527 result.merge(CaloThinCellsByClusterAlgCfg(flags, streamName=
"StreamAOD",
528 clusters=
"MuonClusterCollection",
529 samplings=[
"TileGap1",
"TileGap2",
"TileGap3",
"TileBar0",
"TileExt0",
"HEC0"]))
532 excludedAuxData =
'-clusterAssociation'
533 aod_items += [
"xAOD::TrackParticleContainer#"+col
for col
in particle_col]
534 aod_items += [
"xAOD::TrackParticleAuxContainer#"+col +
535 "Aux." + excludedAuxData
for col
in particle_col]
537 aod_items += [
"xAOD::MuonContainer#Muons"]
538 aod_items += [
"xAOD::MuonContainer#MuonsLRT"]
541 wp_decors = [
"DFCommonMuonsTight",
"DFCommonGoodMuon",
"DFCommonMuonsMedium",
542 "DFCommonMuonsLoose",
"InnerDetectorPt",
"MuonSpectrometerPt",
"isMedium_DRAWZmumu"]
545 gpf_vars = [
"chargedGlobalFELinks",
"neutralGlobalFELinks",
546 "deltaR_muon_clus_GlobalFEalg",
"muon_efrac_matched_GlobalFE"]
548 excludedMuonAuxData =
".-"+
".-".join(iso_vars+wp_decors+gpf_vars)
550 aod_items += [
"xAOD::MuonAuxContainer#MuonsAux" + excludedMuonAuxData]
551 aod_items += [
"xAOD::MuonAuxContainer#MuonsLRTAux" + excludedMuonAuxData]
554 aod_items += [
"xAOD::MuonContainer#Staus"]
555 aod_items += [
"xAOD::MuonAuxContainer#StausAux" + excludedMuonAuxData]
556 aod_items += [
"xAOD::SlowMuonContainer#SlowMuons"]
557 aod_items += [
"xAOD::SlowMuonAuxContainer#SlowMuonsAux."]
562 esd_items = [
"TrackCollection#"+col
for col
in trk_col]
563 esd_items += [
"Trk::SegmentCollection#TrkMuonSegments"]
564 if flags.MuonCombined.writeUnAssocSegments:
565 esd_items += [
"Trk::SegmentCollection#UnAssocMuonTrkSegments"]
568 esd_items += [
"DetailedTrackTruthCollection#ExtrapolatedMuonTracksTruth"]
569 esd_items += [
"DetailedTrackTruthCollection#CombinedMuonTracksTruth"]
570 esd_items += [
"DetailedTrackTruthCollection#ExtrapolatedMuonTrackParticlesTruth"]
571 esd_items += [
"DetailedTrackTruthCollection#CombinedMuonTrackParticlesTruth"]
573 if flags.MuonCombined.doCosmicSplitTracks:
574 esd_items += [
"TrackCollection#Combined_Tracks_split"]
575 esd_items += [
"TrackCollection#Tracks_split"]
576 esd_items += [
"Rec::TrackParticleContainer#TrackParticleCandidate_split"]
578 esd_items += aod_items
580 result.merge(addToESD(flags, esd_items))
581 result.merge(addToAOD(flags, aod_items))
598 from MuonConfig.MuonGeometryConfig
import MuonIdHelperSvcCfg
601 result = MuonIdHelperSvcCfg(flags)
603 from CaloRec.CaloTopoClusterConfig
import CaloTopoClusterCfg
604 result.merge(CaloTopoClusterCfg(flags))
605 from TrackToCalo.CaloExtensionBuilderAlgCfg
import CaloExtensionBuilderCfg
606 result.merge(CaloExtensionBuilderCfg(flags))
608 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig
import TrackingGeometryCondAlgCfg
609 result.merge(TrackingGeometryCondAlgCfg(flags))
610 from MuonConfig.MuonRecToolsConfig
import MuonEDMHelperSvcCfg
611 result.merge(MuonEDMHelperSvcCfg(flags))
614 from TrkConfig.TrackCollectionReadConfig
import TrackCollectionReadCfg
615 result.merge(TrackCollectionReadCfg(flags,
'Tracks'))
619 if flags.MuonCombined.doMuGirl
or \
620 flags.MuonCombined.doStatisticalCombination
or \
621 flags.MuonCombined.doCaloTrkMuId
or \
622 flags.MuonCombined.doCombinedFit
or \
623 flags.MuonCombined.doMuonSegmentTagger:
626 if flags.Tracking.doLargeD0:
631 if flags.MuonCombined.doStatisticalCombination
or flags.MuonCombined.doCombinedFit:
633 if flags.Tracking.doLargeD0:
637 if flags.MuonCombined.doCombinedFit:
639 if flags.Tracking.doLargeD0:
641 if flags.MuonCombined.doMuGirl:
644 InDetCandidateLocation=
"InDetCandidates"
645 if not flags.MuonCombined.doCombinedFit
else "InDetCandidatesSystemExtened"))
646 if flags.MuonCombined.doMuGirlLowBeta:
647 if flags.Tracking.doLargeD0:
652 if flags.Tracking.doLargeD0:
655 if flags.MuonCombined.doCaloTrkMuId:
657 if flags.Tracking.doLargeD0:
660 if flags.MuonCombined.doMuonSegmentTagger:
662 if flags.Tracking.doLargeD0:
666 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentCnvAlgCfg
667 result.merge(MuonSegmentCnvAlgCfg(flags,
"MuonSegmentCnvAlg",
668 SegmentContainerName=
"TrkMuonSegments",
669 xAODContainerName=
"MuonSegments"))
670 if flags.MuonCombined.writeUnAssocSegments:
671 result.merge(MuonSegmentCnvAlgCfg(flags,
"UnAssocMuonSegmentCnvAlg",
672 SegmentContainerName=
"UnAssocMuonTrkSegments",
673 xAODContainerName=
"UnAssocMuonSegments"))
674 if flags.MuonCombined.doMuGirlLowBeta:
675 result.merge(MuonSegmentCnvAlgCfg(flags,
"MuonStauSegmentCnvAlg",
676 SegmentContainerName=
"TrkStauSegments",
677 xAODContainerName=
"StauSegments"))
680 if flags.Tracking.doLargeD0:
683 if flags.MuonCombined.doMuGirlLowBeta:
689 from MuonConfig.MuonRecToolsConfig
import MuonTrackScoringToolCfg
690 result.addPublicTool(result.popToolsAndMerge(
691 MuonTrackScoringToolCfg(flags)))
692 from TrkConfig.TrkTrackSummaryToolConfig
import MuonCombinedTrackSummaryToolCfg
693 result.addPublicTool(result.popToolsAndMerge(
694 MuonCombinedTrackSummaryToolCfg(flags)))
697 from AthenaConfiguration.Enums
import Format
698 if flags.Input.isMC
and flags.Input.Format != Format.BS:
701 if not flags.Muon.usePhaseIIGeoSetup
and \
702 "MuonSegments" not in flags.Input.Collections:
704 from MuonConfig.MuonTruthAlgsConfig
import MuonSegmentTruthAssociationAlgCfg
705 result.merge(MuonSegmentTruthAssociationAlgCfg(flags))
707 result.addEventAlgo(CompFactory.ClusterMatching.CaloClusterMatchLinkAlg(
708 "MuonTCLinks", ClustersToDecorate=
"MuonClusterCollection"))
716if __name__ ==
"__main__":
720 from MuonConfig.MuonConfigUtils
import SetupMuonStandaloneCA
721 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
722 flags = initConfigFlags()
723 flags.Input.Files = [
724 '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MuonCombinedConfig/myESD_q454_unslimmedTracks.pool.root']
725 from MuonConfig.MuonConfigUtils
import configureCondTag
726 configureCondTag(flags)
729 flags.MuonCombined.doMuGirlLowBeta =
False
737 cfg = SetupMuonStandaloneCA(flags)
739 from MuonConfig.MuonPrepDataConvConfig
import MuonPrepDataConvCfg
740 cfg.merge(MuonPrepDataConvCfg(flags))
747 cfg.getEventAlgo(
"MuonInDetToMuonSystemExtensionAlg").UseOnlyHitSectors =
False
748 cfg.getEventAlgo(
"MuonInDetToMuonSystemExtensionAlg_LRT").UseOnlyHitSectors =
False
763 from SGComps.AddressRemappingConfig
import AddressRemappingCfg
765 rename_maps = [
'%s#%s->%s' % (
"xAOD::MuonContainer",
"Muons",
"old_Muons"),
766 '%s#%s->%s' % (
"xAOD::MuonAuxContainer",
767 "MuonsAux.",
"old_MuonsAux."),
768 '%s#%s->%s' % (
"xAOD::MuonContainer",
769 "Muons.rpcHitIdentifier",
"old_Muons.rpcHitIdentifier"),
770 '%s#%s->%s' % (
"xAOD::TruthParticleContainer",
771 "MuonTruthParticles.recoMuonLink",
"MuonTruthParticles.old_recoMuonLink")
773 cfg.merge(AddressRemappingCfg(rename_maps))
775 from MuonConfig.MuonConfigUtils
import executeTest
CombinedMuonTruthAssociationAlgsCfg(flags)
MuonCombinedMuonCandidateAlgCfg(flags, name="MuonCombinedMuonCandidateAlg", **kwargs)
MuonInDetExtensionMergerAlgCfg(flags, name="MuonInDetExtensionMergerAlg", **kwargs)
MuonSegmentTagAlgCfg(flags, name="MuonSegmentTagAlg", **kwargs)
MuonTrkIDMSScatterDecorAlgCfg(flags, name="MuonCombIDMSScatterDecorAlg", **kwargs)
LRT_MuGirlAlgCfg(flags, name="MuGirlAlg_LRT", **kwargs)
MuonCaloTagAlgCfg(flags, name="MuonCaloTagAlg", **kwargs)
CombinedMuonTrackTruthAlgsCfg(flags)
MuonDecorationAlgsCfg(flags)
LRT_MuonInDetToMuonSystemExtensionAlgCfg(flags, name="MuonInDetToMuonSystemExtensionAlg_LRT", **kwargs)
MuonPrecisionLayerDecorAlgCfg(flags, name="MuonPrecisionLayerDecorAlg", **kwargs)
LRT_MuonCaloTagAlgCfg(flags, name="MuonCaloTagAlg_LRT", **kwargs)
MuonCombinedReconstructionCfg(flags)
MuonInsideOutRecoAlgCfg(flags, name="MuonInsideOutRecoAlg", **kwargs)
StauCreatorAlgCfg(flags, name="StauCreatorAlg", **kwargs)
MuonSegContainerMergerAlgCfg(flags, name="MuonSegContainerMergerAlg", **kwargs)
MuonInDetToMuonSystemExtensionAlgCfg(flags, name="MuonInDetToMuonSystemExtensionAlg", **kwargs)
MuonCombinedInDetCandidateAlgCfg(flags, name="MuonCombinedInDetCandidateAlg", **kwargs)
MuGirlStauAlgCfg(flags, name="MuGirlStauAlg", **kwargs)
GetCombinedTrkContainers(flags)
LRT_MuonSegmentTagAlgCfg(flags, name="MuonSegmentTagAlg_LRT", **kwargs)
MuonCombinedAlgCfg(flags, name="MuonCombinedAlg", **kwargs)
CombinedMuonOutputCfg(flags)
MuonTrkAEOTDecorAlgCfg(flags, name="MuonCombAEOTDecorAlg", **kwargs)
LRT_MuonCombinedInDetCandidateAlgCfg(flags, name="MuonCombinedInDetCandidateAlg_LRT", **kwargs)
LRT_MuonCreatorAlgCfg(flags, name="MuonCreatorAlg_LRT", **kwargs)
LRT_MuonCombinedAlgCfg(flags, name="MuonCombinedAlg_LRT", **kwargs)
MuonCreatorAlgCfg(flags, name="MuonCreatorAlg", **kwargs)