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 result = ComponentAccumulator()
102 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
103 from MuonConfig.MuonRecToolsConfig
import MuonAmbiProcessorCfg
104 from MuonConfig.MuonRecToolsConfig
import MuonEDMPrinterToolCfg
105 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import CombinedMuonTrackBuilderCfg, ExtrapolateMuonToIPToolCfg
106 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
108 kwargs.setdefault(
"Printer", result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags)))
109 if "TrackBuilder" not in kwargs:
110 kwargs.setdefault(
"TrackBuilder", result.popToolsAndMerge(
111 CombinedMuonTrackBuilderCfg(flags, name=
"CombinedMuonTrackBuilder")))
114 if flags.Muon.MuonTrigger
and flags.Beam.Type
is not BeamType.Cosmics:
116 kwargs.setdefault(
"TrackExtrapolationTool",
"")
118 kwargs.setdefault(
"TrackExtrapolationTool", result.popToolsAndMerge(
119 ExtrapolateMuonToIPToolCfg(flags)))
120 kwargs.setdefault(
"SegmentContainer",
"TrackMuonSegments")
121 kwargs.setdefault(
"AmbiguityProcessor", result.popToolsAndMerge(MuonAmbiProcessorCfg(flags)))
123 from TrkConfig.TrkTrackSummaryToolConfig
import MuonTrackSummaryToolCfg
124 kwargs.setdefault(
"TrackSummaryTool", result.popToolsAndMerge(MuonTrackSummaryToolCfg(flags)))
128 if flags.Beam.Type
is BeamType.Cosmics:
129 kwargs.setdefault(
"ExtrapolationStrategy", 1)
131 track_segment_association_tool = CompFactory.MuonCombined.TrackSegmentAssociationTool(
132 MuonEDMPrinterTool=result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags)))
134 kwargs.setdefault(
"TrackSegmentAssociationTool", track_segment_association_tool)
135 result.addPublicTool(track_segment_association_tool)
138 if flags.Beam.Type
is BeamType.Cosmics:
139 kwargs.setdefault(
"ExtrapolationStrategy", 1)
141 alg = CompFactory.MuonCombinedMuonCandidateAlg(name, **kwargs)
142 result.addEventAlgo(alg, primary=
True)
146 from InDetConfig.InDetTrackSelectorToolConfig
import MuonCombinedInDetDetailedTrackSelectorToolCfg, MuonCombinedInDetDetailedForwardTrackSelectorToolCfg
147 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonSystemExtensionToolCfg
148 result = ComponentAccumulator()
149 kwargs.setdefault(
"TrackSelector", result.popToolsAndMerge(MuonCombinedInDetDetailedTrackSelectorToolCfg(flags)))
150 kwargs.setdefault(
"WaitForTrackLink",
not flags.Muon.MuonTrigger)
152 if flags.MuonCombined.doSiAssocForwardMuons
and flags.Tracking.doForwardTracks:
153 kwargs.setdefault(
"DoSiliconAssocForwardMuons",
True)
154 kwargs.setdefault(
"InDetForwardTrackSelector", result.popToolsAndMerge(
155 MuonCombinedInDetDetailedForwardTrackSelectorToolCfg(flags)))
157 kwargs.setdefault(
"MuonSystemExtensionTool", result.popToolsAndMerge(MuonSystemExtensionToolCfg(flags)))
161 kwargs.setdefault(
"ExtendBulk",
not flags.MuonCombined.doCombinedFit)
163 if flags.Reco.EnableCaloExtension
and not flags.Muon.MuonTrigger:
164 kwargs.setdefault(
"CaloExtensionLocation", [
"ParticleCaloExtension"])
166 alg = CompFactory.MuonCombinedInDetCandidateAlg(name, **kwargs)
167 result.addEventAlgo(alg, primary=
True)
172 result = ComponentAccumulator()
173 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonSystemExtensionToolCfg
174 muon_ext_tool = result.popToolsAndMerge(
175 MuonSystemExtensionToolCfg(flags))
176 kwargs.setdefault(
"MuonSystemExtensionTool", muon_ext_tool)
177 kwargs.setdefault(
"noNSWforSeeding",
True)
178 kwargs.setdefault(
"WriteStauCandidates",
"InDetCandidatesStausPrompt"
179 if flags.Tracking.doLargeD0
else "InDetCandidatesStaus")
181 if not flags.Muon.MuonTrigger:
182 from MuonConfig.MuonSegmentFindingConfig
import MuonLayerHoughAlgCfg
183 result.merge(MuonLayerHoughAlgCfg(flags))
184 kwargs.setdefault(
"UseOnlyHitSectors",
185 not flags.Muon.MuonTrigger
and flags.Beam.Type
is BeamType.Collisions)
186 alg = CompFactory.MuonInDetToMuonSystemExtensionAlg(name, **kwargs)
187 result.addEventAlgo(alg, primary=
True)
192 kwargs.setdefault(
"WriteStauCandidates",
"InDetCandidatesStausLRT")
193 kwargs.setdefault(
"WriteInDetCandidates",
194 "InDetCandidateLRT_SystemExtended")
195 kwargs.setdefault(
"InputInDetCandidates",
"TrackParticleCandidateLRT")
196 kwargs.setdefault(
"CombinedTagMap",
"muidcoTagMap_LRT")
201 from InDetConfig.InDetTrackSelectorToolConfig
import MuonCombinedInDetDetailedForwardTrackSelectorToolCfg, MuonCombinedInDetDetailedTrackSelectorTool_LRTCfg
202 result = ComponentAccumulator()
204 kwargs.setdefault(
"TrackSelector", result.popToolsAndMerge(
205 MuonCombinedInDetDetailedTrackSelectorTool_LRTCfg(flags)))
209 kwargs.setdefault(
"TrackParticleLocation", [
"InDetLargeD0TrackParticles"])
210 kwargs.setdefault(
"InDetCandidateLocation",
"TrackParticleCandidateLRT")
211 kwargs.setdefault(
"DoSiliconAssocForwardMuons",
False)
212 kwargs.setdefault(
"WaitForTrackLink",
not flags.Muon.MuonTrigger)
214 kwargs.setdefault(
"InDetForwardTrackSelector", result.popToolsAndMerge(
215 MuonCombinedInDetDetailedForwardTrackSelectorToolCfg(flags)))
217 if flags.Reco.EnableCaloExtension
and not flags.Muon.MuonTrigger:
218 kwargs.setdefault(
"CaloExtensionLocation", [
219 "ParticleCaloExtension_LRT"])
221 result.merge(cand_alg)
226 result = ComponentAccumulator()
229 from MuonConfig.MuonRecToolsConfig
import MuonEDMPrinterToolCfg
230 kwargs.setdefault(
"Printer", result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags)))
231 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCombinedFitTagToolCfg, MuonCombinedStacoTagToolCfg
233 if flags.MuonCombined.doCombinedFit:
234 tools.append(result.popToolsAndMerge(MuonCombinedFitTagToolCfg(flags)))
235 tagmaps+=[
'muidcoTagMap']
236 if flags.MuonCombined.doStatisticalCombination
and flags.Beam.Type
is not BeamType.Cosmics:
237 tools.append(result.popToolsAndMerge(MuonCombinedStacoTagToolCfg(flags)))
238 tagmaps+=[
'stacoTagMap']
240 kwargs.setdefault(
"MuonCombinedTagTools", tools)
241 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonAlignmentUncertToolThetaCfg
242 kwargs.setdefault(
"AlignmentUncertTool", result.getPrimaryAndMerge(MuonAlignmentUncertToolThetaCfg(flags)))
244 kwargs.setdefault(
"DeltaEtaPreSelection", 0.2)
245 kwargs.setdefault(
"DeltaPhiPreSelection", 0.2)
247 kwargs.setdefault(
"CombinedTagMaps", tagmaps)
248 alg = CompFactory.MuonCombinedAlg(name, **kwargs)
249 result.addEventAlgo(alg, primary=
True)
253 kwargs.setdefault(
"InDetCandidateLocation",
"TrackParticleCandidateLRT")
254 kwargs.setdefault(
"CombinedTagMaps", [
255 "muidcoTagMap_LRT",
"stacoTagMap_LRT"])
256 kwargs.setdefault(
"MuidCombinedTracksLocation",
"MuidCombinedTracks_LRT")
257 kwargs.setdefault(
"MuidMETracksLocation",
"MuidMETracks_LRT")
262 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
263 result = MuonCreatorToolCfg(flags, name=
"MuonCreatorTool")
264 kwargs.setdefault(
"MuonCreatorTool", result.popPrivateTools())
269 if flags.MuonCombined.doMuGirl:
270 tag_maps += [
"muGirlTagMap"]
271 if flags.MuonCombined.doStatisticalCombination:
272 tag_maps += [
"stacoTagMap"]
273 if flags.MuonCombined.doCombinedFit:
274 tag_maps += [
"muidcoTagMap"]
275 if flags.MuonCombined.doCaloTrkMuId:
276 tag_maps += [
"caloTagMap"]
277 if flags.MuonCombined.doMuonSegmentTagger:
278 tag_maps += [
"segmentTagMap"]
279 kwargs.setdefault(
"TagMaps", tag_maps)
280 if flags.Muon.MuonTrigger:
281 kwargs.setdefault(
"MakeClusters",
False)
282 kwargs.setdefault(
"ClusterContainerName",
"")
283 kwargs.setdefault(
"SegmentContainerName",
"")
284 kwargs.setdefault(
"TagToSegmentKey",
"")
285 if flags.Muon.SAMuonTrigger:
286 kwargs.setdefault(
"CreateSAmuons",
True)
287 kwargs.setdefault(
"TagMaps", [])
289 alg = CompFactory.MuonCreatorAlg(name, **kwargs)
290 result.addEventAlgo(alg, primary=
True)
295 result = ComponentAccumulator()
296 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
297 creatorTool = result.popToolsAndMerge(
298 MuonCreatorToolCfg(flags,
"MuonCreatorTool_LRT", RequireIDTrack=
True))
299 kwargs.setdefault(
"MuonCreatorTool", creatorTool)
302 if flags.MuonCombined.doMuGirl:
303 tag_maps += [
"MuGirlMap_LRT"]
304 if flags.MuonCombined.doStatisticalCombination:
305 tag_maps += [
"stacoTagMap_LRT"]
306 if flags.MuonCombined.doCombinedFit:
307 tag_maps += [
"muidcoTagMap_LRT"]
308 if flags.MuonCombined.doCaloTrkMuId:
309 tag_maps += [
"caloTagMap_LRT"]
310 if flags.MuonCombined.doMuonSegmentTagger:
311 tag_maps += [
"segmentTagMap_LRT"]
312 kwargs.setdefault(
"TagMaps", tag_maps)
313 kwargs.setdefault(
"MuonContainerLocation",
"MuonsLRT")
314 kwargs.setdefault(
"ExtrapolatedLocation",
"ExtraPolatedMuonsLRT")
315 kwargs.setdefault(
"MSOnlyExtrapolatedLocation",
316 "MSOnlyExtraPolatedMuonsLRT")
317 kwargs.setdefault(
"CombinedLocation",
"CombinedMuonsLRT")
318 kwargs.setdefault(
"BuildSlowMuon",
False)
319 kwargs.setdefault(
"MakeClusters",
False)
320 kwargs.setdefault(
"ClusterContainerName",
"")
325 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
326 result = MuonCreatorToolCfg(
327 flags, BuildStauContainer=
True, name=
'StauCreatorTool')
328 kwargs.setdefault(
"MuonCreatorTool", result.popPrivateTools())
329 kwargs.setdefault(
"MuonContainerLocation",
"Staus")
330 kwargs.setdefault(
"CombinedLocation",
"CombinedStau")
331 kwargs.setdefault(
"ExtrapolatedLocation",
"ExtrapolatedStau")
332 kwargs.setdefault(
"MSOnlyExtrapolatedLocation",
"MSOnlyExtrapolatedStau")
333 kwargs.setdefault(
"MuonCandidateLocation", [])
334 kwargs.setdefault(
"SegmentContainerName",
"StauSegments")
335 kwargs.setdefault(
"TagToSegmentKey",
"")
336 kwargs.setdefault(
"BuildSlowMuon", 1)
337 kwargs.setdefault(
"ClusterContainerName",
"SlowMuonClusterCollection")
338 kwargs.setdefault(
"TagMaps", [
"stauTagMap"])
345 result = ComponentAccumulator()
346 kwargs.setdefault(
"saveUnusedSegments",
347 flags.MuonCombined.writeUnAssocSegments)
349 if flags.MuonCombined.doMuGirl:
350 tag_maps += [
"muGirlTagMap"]
351 if flags.MuonCombined.doStatisticalCombination:
352 tag_maps += [
"stacoTagMap"]
353 if flags.MuonCombined.doCombinedFit:
354 tag_maps += [
"muidcoTagMap"]
355 if flags.MuonCombined.doMuonSegmentTagger:
356 tag_maps += [
"segmentTagMap"]
357 muon_maps = [
"MuonCandidates"]
358 if flags.Tracking.doLargeD0:
359 if flags.MuonCombined.doMuGirl:
360 tag_maps += [
"MuGirlMap_LRT"]
361 if flags.MuonCombined.doStatisticalCombination:
362 tag_maps += [
"stacoTagMap_LRT"]
363 if flags.MuonCombined.doCombinedFit:
364 tag_maps += [
"muidcoTagMap_LRT"]
365 if flags.MuonCombined.doMuonSegmentTagger:
366 tag_maps += [
"segmentTagMap_LRT"]
367 kwargs.setdefault(
"MuonCandidateMaps", muon_maps)
368 kwargs.setdefault(
"TagMaps", tag_maps)
369 from MuonConfig.MuonRecToolsConfig
import MuonAmbiProcessorCfg
370 kwargs.setdefault(
"AmbiguityProcessor", result.popToolsAndMerge(
371 MuonAmbiProcessorCfg(flags)))
373 the_alg = CompFactory.MuonSegContainerMergerAlg(name, **kwargs)
374 result.addEventAlgo(the_alg)
379 result = ComponentAccumulator()
381 "ToMerge", [
"InDetCandidatesStausPrompt",
"InDetCandidatesStausLRT"])
382 kwargs.setdefault(
"ToWrite",
"InDetCandidatesStaus")
383 the_alg = CompFactory.MuonInDetExtensionMergerAlg(name, **kwargs)
384 result.addEventAlgo(the_alg, primary=
True)
394 tp_coll = [
"ExtrapolatedMuonTrackParticles",
395 "CombinedMuonTrackParticles",
396 "MSOnlyExtrapolatedMuonTrackParticles"]
397 track_coll = [
"ExtrapolatedMuonTracks",
398 "CombinedMuonTracks",
399 "MSOnlyExtrapolatedTracks"]
400 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
401 tp_coll += [
"CombinedStauTrackParticles",
402 "ExtrapolatedStauTrackParticles"]
403 track_coll += [
"CombinedStauTracks",
404 "ExtrapolatedStauTracks"]
405 if flags.Tracking.doLargeD0:
406 tp_coll += [
"CombinedMuonsLRTTrackParticles",
407 "ExtraPolatedMuonsLRTTrackParticles",
408 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
409 track_coll += [
"CombinedMuonsLRTTracks",
410 "ExtraPolatedMuonsLRTTracks",
411 "MSOnlyExtraPolatedMuonsLRTTrackParticlesTracks"]
412 return tp_coll, track_coll
416 result = ComponentAccumulator()
417 the_alg = CompFactory.MuonTrkIDMSScatterDecorAlg(name=name, **kwargs)
418 result.addEventAlgo(the_alg)
423 result = ComponentAccumulator()
424 the_alg = CompFactory.MuonTrkAEOTDecorationAlg(name=name, **kwargs)
425 result.addEventAlgo(the_alg)
430 result = ComponentAccumulator()
431 the_alg = CompFactory.MuonPrecisionLayerDecorAlg(name=name, **kwargs)
432 result.addEventAlgo(the_alg)
437 result = ComponentAccumulator()
438 trk_cols = [
"ExtrapolatedMuonTrackParticles",
439 "CombinedMuonTrackParticles",
440 "MSOnlyExtrapolatedMuonTrackParticles"]
441 stau_coll = [
"CombinedStauTrackParticles",
442 "ExtrapolatedStauTrackParticles"]
if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta
else []
443 track_coll_lrt = [
"CombinedMuonsLRTTrackParticles",
444 "ExtraPolatedMuonsLRTTrackParticles",
445 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
if flags.Tracking.doLargeD0
else []
448 for coll
in trk_cols + stau_coll + track_coll_lrt:
450 TrackContainer=coll))
453 TrackContainer=coll))
455 prec_trk_cols = [
"ExtrapolatedMuonTrackParticles",
456 "CombinedMuonTrackParticles",
457 "MSOnlyExtrapolatedMuonTrackParticles"]
459 MuonContainer=
"Muons",
460 TrackContainer=prec_trk_cols))
461 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
464 MuonContainer=
"Staus",
465 TrackContainer=stau_coll))
466 if flags.Tracking.doLargeD0:
469 MuonContainer=
"MuonsLRT",
470 TrackContainer=track_coll_lrt))
476 result = ComponentAccumulator()
479 from MuonConfig.MuonTruthAlgsConfig
import MuonDetailedTrackTruthMakerCfg
480 result.merge(MuonDetailedTrackTruthMakerCfg(flags, name=
"MuonCombinedDetailedTrackTruthMaker",
481 TrackCollectionNames=trk_cols))
483 if(
not flags.Muon.scheduleActsReco):
484 for i
in range(len(trk_cols)):
485 from TrkConfig.TrkTruthAlgsConfig
import TrackTruthSelectorCfg, TrackParticleTruthAlgCfg
486 result.merge(TrackTruthSelectorCfg(flags, tracks=trk_cols[i]))
487 result.merge(TrackParticleTruthAlgCfg(flags, tracks=trk_cols[i],
488 TrackParticleName=particle_cols[i]))
494 result = ComponentAccumulator()
497 from MuonConfig.MuonTruthAlgsConfig
import MuonTruthAssociationAlgCfg
498 result.merge(MuonTruthAssociationAlgCfg(flags))
500 if flags.Tracking.doLargeD0:
501 result.merge(MuonTruthAssociationAlgCfg(flags, name=
"MuonTruthAssociationAlgLRT",
502 MuonContainerName=
"MuonsLRT",
503 RecoLinkName=
"recoMuonLinkLRT",
504 TrackContainers=trk_cols))
506 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
507 result.merge(MuonTruthAssociationAlgCfg(flags, name=
"MuonTruthAssociationAlgStau",
508 MuonContainerName=
"Staus",
510 TrackContainers=trk_cols))
515 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
516 result = ComponentAccumulator()
519 from TrkEventCnvTools.TrkEventCnvToolsConfig
import (
520 TrkEventCnvSuperToolCfg)
521 result.merge(TrkEventCnvSuperToolCfg(flags))
526 for track_pt
in 500, 1000:
527 for cone_str
in "",
"LooseCone":
528 name = f
"Nonprompt_All_MaxWeightTTVA{cone_str}_pt{track_pt}"
529 iso_vars += [
"ptconeCorrBitset_"+name,
530 "ptconecoreTrackPtrCorrection_"+name]
531 for cone_size
in 20, 30, 40:
532 for var_str
in "",
"var":
533 iso_vars.append(f
"pt{var_str}cone{cone_size}_{name}")
537 aod_items += [
"xAOD::MuonSegmentContainer#MuonSegments"]
538 aod_items += [
"xAOD::MuonSegmentAuxContainer#MuonSegmentsAux."]
539 if flags.MuonCombined.writeUnAssocSegments:
540 aod_items += [
"xAOD::MuonSegmentContainer#UnAssocMuonSegments"]
541 aod_items += [
"xAOD::MuonSegmentAuxContainer#UnAssocMuonSegmentsAux."]
542 if flags.MuonCombined.doMuGirlLowBeta:
543 aod_items += [
"xAOD::MuonSegmentContainer#StauSegments"]
544 aod_items += [
"xAOD::MuonSegmentAuxContainer#StauSegmentsAux."]
547 if flags.Detector.EnableCalo:
548 aod_items += [
"xAOD::CaloClusterContainer#MuonClusterCollection"]
549 aod_items += [
"xAOD::CaloClusterAuxContainer#MuonClusterCollectionAux."]
550 aod_items += [
"CaloClusterCellLinkContainer#MuonClusterCollection_links"]
551 from CaloRec.CaloThinCellsByClusterAlgConfig
import CaloThinCellsByClusterAlgCfg
552 result.merge(CaloThinCellsByClusterAlgCfg(flags, streamName=
"StreamAOD",
553 clusters=
"MuonClusterCollection",
554 samplings=[
"TileGap1",
"TileGap2",
"TileGap3",
"TileBar0",
"TileExt0",
"HEC0"]))
557 excludedAuxData =
'-clusterAssociation'
558 aod_items += [
"xAOD::TrackParticleContainer#"+col
for col
in particle_col]
559 aod_items += [
"xAOD::TrackParticleAuxContainer#"+col +
560 "Aux." + excludedAuxData
for col
in particle_col]
562 aod_items += [
"xAOD::MuonContainer#Muons"]
563 aod_items += [
"xAOD::MuonContainer#MuonsLRT"]
566 wp_decors = [
"DFCommonMuonsTight",
"DFCommonGoodMuon",
"DFCommonMuonsMedium",
567 "DFCommonMuonsLoose",
"InnerDetectorPt",
"MuonSpectrometerPt",
"isMedium_DRAWZmumu"]
570 gpf_vars = [
"chargedGlobalFELinks",
"neutralGlobalFELinks",
571 "deltaR_muon_clus_GlobalFEalg",
"muon_efrac_matched_GlobalFE"]
573 excludedMuonAuxData =
".-"+
".-".join(iso_vars+wp_decors+gpf_vars)
575 aod_items += [
"xAOD::MuonAuxContainer#MuonsAux" + excludedMuonAuxData]
576 aod_items += [
"xAOD::MuonAuxContainer#MuonsLRTAux" + excludedMuonAuxData]
579 aod_items += [
"xAOD::MuonContainer#Staus"]
580 aod_items += [
"xAOD::MuonAuxContainer#StausAux" + excludedMuonAuxData]
581 aod_items += [
"xAOD::SlowMuonContainer#SlowMuons"]
582 aod_items += [
"xAOD::SlowMuonAuxContainer#SlowMuonsAux."]
587 esd_items = [
"TrackCollection#"+col
for col
in trk_col]
588 esd_items += [
"Trk::SegmentCollection#TrkMuonSegments"]
589 if flags.MuonCombined.writeUnAssocSegments:
590 esd_items += [
"Trk::SegmentCollection#UnAssocMuonTrkSegments"]
593 esd_items += [
"DetailedTrackTruthCollection#ExtrapolatedMuonTracksTruth"]
594 esd_items += [
"DetailedTrackTruthCollection#CombinedMuonTracksTruth"]
595 esd_items += [
"DetailedTrackTruthCollection#ExtrapolatedMuonTrackParticlesTruth"]
596 esd_items += [
"DetailedTrackTruthCollection#CombinedMuonTrackParticlesTruth"]
598 if flags.MuonCombined.doCosmicSplitTracks:
599 esd_items += [
"TrackCollection#Combined_Tracks_split"]
600 esd_items += [
"TrackCollection#Tracks_split"]
601 esd_items += [
"Rec::TrackParticleContainer#TrackParticleCandidate_split"]
603 esd_items += aod_items
605 result.merge(addToESD(flags, esd_items))
606 result.merge(addToAOD(flags, aod_items))
623 from MuonConfig.MuonGeometryConfig
import MuonIdHelperSvcCfg
626 result = MuonIdHelperSvcCfg(flags)
628 from CaloRec.CaloTopoClusterConfig
import CaloTopoClusterCfg
629 result.merge(CaloTopoClusterCfg(flags))
630 from TrackToCalo.CaloExtensionBuilderAlgCfg
import CaloExtensionBuilderCfg
631 result.merge(CaloExtensionBuilderCfg(flags))
633 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig
import TrackingGeometryCondAlgCfg
634 result.merge(TrackingGeometryCondAlgCfg(flags))
635 from MuonConfig.MuonRecToolsConfig
import MuonEDMHelperSvcCfg
636 result.merge(MuonEDMHelperSvcCfg(flags))
639 from TrkConfig.TrackCollectionReadConfig
import TrackCollectionReadCfg
640 result.merge(TrackCollectionReadCfg(flags,
'Tracks'))
644 if flags.MuonCombined.doMuGirl
or \
645 flags.MuonCombined.doStatisticalCombination
or \
646 flags.MuonCombined.doCaloTrkMuId
or \
647 flags.MuonCombined.doCombinedFit
or \
648 flags.MuonCombined.doMuonSegmentTagger:
651 if flags.Tracking.doLargeD0:
656 if flags.MuonCombined.doStatisticalCombination
or flags.MuonCombined.doCombinedFit:
658 if flags.Tracking.doLargeD0:
662 if flags.MuonCombined.doCombinedFit:
664 if flags.Tracking.doLargeD0:
666 if flags.MuonCombined.doMuGirl:
669 InDetCandidateLocation=
"InDetCandidates"
670 if not flags.MuonCombined.doCombinedFit
else "InDetCandidatesSystemExtened"))
671 if flags.MuonCombined.doMuGirlLowBeta:
672 if flags.Tracking.doLargeD0:
677 if flags.Tracking.doLargeD0:
680 if flags.MuonCombined.doCaloTrkMuId:
682 if flags.Tracking.doLargeD0:
685 if flags.MuonCombined.doMuonSegmentTagger:
687 if flags.Tracking.doLargeD0:
691 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentCnvAlgCfg
692 result.merge(MuonSegmentCnvAlgCfg(flags,
"MuonSegmentCnvAlg",
693 SegmentContainerName=
"TrkMuonSegments",
694 xAODContainerName=
"MuonSegments"))
695 if flags.MuonCombined.writeUnAssocSegments:
696 result.merge(MuonSegmentCnvAlgCfg(flags,
"UnAssocMuonSegmentCnvAlg",
697 SegmentContainerName=
"UnAssocMuonTrkSegments",
698 xAODContainerName=
"UnAssocMuonSegments"))
699 if flags.MuonCombined.doMuGirlLowBeta:
700 result.merge(MuonSegmentCnvAlgCfg(flags,
"MuonStauSegmentCnvAlg",
701 SegmentContainerName=
"TrkStauSegments",
702 xAODContainerName=
"StauSegments"))
705 if flags.Tracking.doLargeD0:
708 if flags.MuonCombined.doMuGirlLowBeta:
714 from MuonConfig.MuonRecToolsConfig
import MuonTrackScoringToolCfg
715 result.addPublicTool(result.popToolsAndMerge(
716 MuonTrackScoringToolCfg(flags)))
717 from TrkConfig.TrkTrackSummaryToolConfig
import MuonCombinedTrackSummaryToolCfg
718 result.addPublicTool(result.popToolsAndMerge(
719 MuonCombinedTrackSummaryToolCfg(flags)))
722 from AthenaConfiguration.Enums
import Format
723 if flags.Input.isMC
and flags.Input.Format != Format.BS:
726 if not flags.Muon.usePhaseIIGeoSetup
and \
727 "MuonSegments" not in flags.Input.Collections:
729 from MuonConfig.MuonTruthAlgsConfig
import MuonSegmentTruthAssociationAlgCfg
730 result.merge(MuonSegmentTruthAssociationAlgCfg(flags))
732 result.addEventAlgo(CompFactory.ClusterMatching.CaloClusterMatchLinkAlg(
733 "MuonTCLinks", ClustersToDecorate=
"MuonClusterCollection"))
741if __name__ ==
"__main__":
745 from MuonConfig.MuonConfigUtils
import SetupMuonStandaloneCA
746 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
747 flags = initConfigFlags()
748 flags.Input.Files = [
749 '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MuonCombinedConfig/myESD_q454_unslimmedTracks.pool.root']
750 from MuonConfig.MuonConfigUtils
import configureCondTag
751 configureCondTag(flags)
754 flags.MuonCombined.doMuGirlLowBeta =
False
762 cfg = SetupMuonStandaloneCA(flags)
764 from MuonConfig.MuonPrepDataConvConfig
import MuonPrepDataConvCfg
765 cfg.merge(MuonPrepDataConvCfg(flags))
772 cfg.getEventAlgo(
"MuonInDetToMuonSystemExtensionAlg").UseOnlyHitSectors =
False
773 cfg.getEventAlgo(
"MuonInDetToMuonSystemExtensionAlg_LRT").UseOnlyHitSectors =
False
788 from SGComps.AddressRemappingConfig
import AddressRemappingCfg
790 rename_maps = [
'%s#%s->%s' % (
"xAOD::MuonContainer",
"Muons",
"old_Muons"),
791 '%s#%s->%s' % (
"xAOD::MuonAuxContainer",
792 "MuonsAux.",
"old_MuonsAux."),
793 '%s#%s->%s' % (
"xAOD::MuonContainer",
794 "Muons.rpcHitIdentifier",
"old_Muons.rpcHitIdentifier"),
795 '%s#%s->%s' % (
"xAOD::TruthParticleContainer",
796 "MuonTruthParticles.recoMuonLink",
"MuonTruthParticles.old_recoMuonLink")
798 cfg.merge(AddressRemappingCfg(rename_maps))
800 from MuonConfig.MuonConfigUtils
import executeTest
CombinedMuonTruthAssociationAlgsCfg(flags)
MuonCombinedInDetCandidateAlgCfg(flags, name="MuonCombinedInDetCandidateAlg", **kwargs)
CombinedMuonTrackTruthAlgsCfg(flags)
LRT_MuonCombinedInDetCandidateAlgCfg(flags, name="MuonCombinedInDetCandidateAlg_LRT", **kwargs)
MuonInsideOutRecoAlgCfg(flags, name="MuonInsideOutRecoAlg", **kwargs)
MuonCaloTagAlgCfg(flags, name="MuonCaloTagAlg", **kwargs)
MuonInDetToMuonSystemExtensionAlgCfg(flags, name="MuonInDetToMuonSystemExtensionAlg", **kwargs)
MuonDecorationAlgsCfg(flags)
MuonSegmentTagAlgCfg(flags, name="MuonSegmentTagAlg", **kwargs)
LRT_MuonSegmentTagAlgCfg(flags, name="MuonSegmentTagAlg_LRT", **kwargs)
MuonInDetExtensionMergerAlgCfg(flags, name="MuonInDetExtensionMergerAlg", **kwargs)
StauCreatorAlgCfg(flags, name="StauCreatorAlg", **kwargs)
MuonSegContainerMergerAlgCfg(flags, name="MuonSegContainerMergerAlg", **kwargs)
CombinedMuonOutputCfg(flags)
MuonPrecisionLayerDecorAlgCfg(flags, name="MuonPrecisionLayerDecorAlg", **kwargs)
MuonTrkAEOTDecorAlgCfg(flags, name="MuonCombAEOTDecorAlg", **kwargs)
MuonTrkIDMSScatterDecorAlgCfg(flags, name="MuonCombIDMSScatterDecorAlg", **kwargs)
MuonCombinedAlgCfg(flags, name="MuonCombinedAlg", **kwargs)
LRT_MuonInDetToMuonSystemExtensionAlgCfg(flags, name="MuonInDetToMuonSystemExtensionAlg_LRT", **kwargs)
LRT_MuonCreatorAlgCfg(flags, name="MuonCreatorAlg_LRT", **kwargs)
GetCombinedTrkContainers(flags)
LRT_MuonCombinedAlgCfg(flags, name="MuonCombinedAlg_LRT", **kwargs)
MuonCreatorAlgCfg(flags, name="MuonCreatorAlg", **kwargs)
MuonCombinedMuonCandidateAlgCfg(flags, name="MuonCombinedMuonCandidateAlg", **kwargs)
LRT_MuGirlAlgCfg(flags, name="MuGirlAlg_LRT", **kwargs)
MuonCombinedReconstructionCfg(flags)
MuGirlStauAlgCfg(flags, name="MuGirlStauAlg", **kwargs)
LRT_MuonCaloTagAlgCfg(flags, name="MuonCaloTagAlg_LRT", **kwargs)