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.usePhaseIIGeoSetup:
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()
495 if flags.Muon.usePhaseIIGeoSetup:
499 from MuonConfig.MuonTruthAlgsConfig
import MuonTruthAssociationAlgCfg
500 result.merge(MuonTruthAssociationAlgCfg(flags))
502 if flags.Tracking.doLargeD0:
503 result.merge(MuonTruthAssociationAlgCfg(flags, name=
"MuonTruthAssociationAlgLRT",
504 MuonContainerName=
"MuonsLRT",
505 RecoLinkName=
"recoMuonLinkLRT",
506 TrackContainers=trk_cols))
508 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
509 result.merge(MuonTruthAssociationAlgCfg(flags, name=
"MuonTruthAssociationAlgStau",
510 MuonContainerName=
"Staus",
512 TrackContainers=trk_cols))
517 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
518 result = ComponentAccumulator()
521 from TrkEventCnvTools.TrkEventCnvToolsConfig
import (
522 TrkEventCnvSuperToolCfg)
523 result.merge(TrkEventCnvSuperToolCfg(flags))
528 for track_pt
in 500, 1000:
529 for cone_str
in "",
"LooseCone":
530 name = f
"Nonprompt_All_MaxWeightTTVA{cone_str}_pt{track_pt}"
531 iso_vars += [
"ptconeCorrBitset_"+name,
532 "ptconecoreTrackPtrCorrection_"+name]
533 for cone_size
in 20, 30, 40:
534 for var_str
in "",
"var":
535 iso_vars.append(f
"pt{var_str}cone{cone_size}_{name}")
539 aod_items += [
"xAOD::MuonSegmentContainer#MuonSegments"]
540 aod_items += [
"xAOD::MuonSegmentAuxContainer#MuonSegmentsAux."]
541 if flags.MuonCombined.writeUnAssocSegments:
542 aod_items += [
"xAOD::MuonSegmentContainer#UnAssocMuonSegments"]
543 aod_items += [
"xAOD::MuonSegmentAuxContainer#UnAssocMuonSegmentsAux."]
544 if flags.MuonCombined.doMuGirlLowBeta:
545 aod_items += [
"xAOD::MuonSegmentContainer#StauSegments"]
546 aod_items += [
"xAOD::MuonSegmentAuxContainer#StauSegmentsAux."]
549 if flags.Detector.EnableCalo:
550 aod_items += [
"xAOD::CaloClusterContainer#MuonClusterCollection"]
551 aod_items += [
"xAOD::CaloClusterAuxContainer#MuonClusterCollectionAux."]
552 aod_items += [
"CaloClusterCellLinkContainer#MuonClusterCollection_links"]
553 from CaloRec.CaloThinCellsByClusterAlgConfig
import CaloThinCellsByClusterAlgCfg
554 result.merge(CaloThinCellsByClusterAlgCfg(flags, streamName=
"StreamAOD",
555 clusters=
"MuonClusterCollection",
556 samplings=[
"TileGap1",
"TileGap2",
"TileGap3",
"TileBar0",
"TileExt0",
"HEC0"]))
559 excludedAuxData =
'-clusterAssociation'
560 aod_items += [
"xAOD::TrackParticleContainer#"+col
for col
in particle_col]
561 aod_items += [
"xAOD::TrackParticleAuxContainer#"+col +
562 "Aux." + excludedAuxData
for col
in particle_col]
564 aod_items += [
"xAOD::MuonContainer#Muons"]
565 aod_items += [
"xAOD::MuonContainer#MuonsLRT"]
568 wp_decors = [
"DFCommonMuonsTight",
"DFCommonGoodMuon",
"DFCommonMuonsMedium",
569 "DFCommonMuonsLoose",
"InnerDetectorPt",
"MuonSpectrometerPt",
"isMedium_DRAWZmumu"]
572 gpf_vars = [
"chargedGlobalFELinks",
"neutralGlobalFELinks",
573 "deltaR_muon_clus_GlobalFEalg",
"muon_efrac_matched_GlobalFE"]
575 excludedMuonAuxData =
".-"+
".-".join(iso_vars+wp_decors+gpf_vars)
577 aod_items += [
"xAOD::MuonAuxContainer#MuonsAux" + excludedMuonAuxData]
578 aod_items += [
"xAOD::MuonAuxContainer#MuonsLRTAux" + excludedMuonAuxData]
581 aod_items += [
"xAOD::MuonContainer#Staus"]
582 aod_items += [
"xAOD::MuonAuxContainer#StausAux" + excludedMuonAuxData]
583 aod_items += [
"xAOD::SlowMuonContainer#SlowMuons"]
584 aod_items += [
"xAOD::SlowMuonAuxContainer#SlowMuonsAux."]
589 esd_items = [
"TrackCollection#"+col
for col
in trk_col]
590 esd_items += [
"Trk::SegmentCollection#TrkMuonSegments"]
591 if flags.MuonCombined.writeUnAssocSegments:
592 esd_items += [
"Trk::SegmentCollection#UnAssocMuonTrkSegments"]
595 esd_items += [
"DetailedTrackTruthCollection#ExtrapolatedMuonTracksTruth"]
596 esd_items += [
"DetailedTrackTruthCollection#CombinedMuonTracksTruth"]
597 esd_items += [
"DetailedTrackTruthCollection#ExtrapolatedMuonTrackParticlesTruth"]
598 esd_items += [
"DetailedTrackTruthCollection#CombinedMuonTrackParticlesTruth"]
600 if flags.MuonCombined.doCosmicSplitTracks:
601 esd_items += [
"TrackCollection#Combined_Tracks_split"]
602 esd_items += [
"TrackCollection#Tracks_split"]
603 esd_items += [
"Rec::TrackParticleContainer#TrackParticleCandidate_split"]
605 esd_items += aod_items
607 result.merge(addToESD(flags, esd_items))
608 result.merge(addToAOD(flags, aod_items))
625 from MuonConfig.MuonGeometryConfig
import MuonIdHelperSvcCfg
628 result = MuonIdHelperSvcCfg(flags)
630 from CaloRec.CaloTopoClusterConfig
import CaloTopoClusterCfg
631 result.merge(CaloTopoClusterCfg(flags))
632 from TrackToCalo.CaloExtensionBuilderAlgCfg
import CaloExtensionBuilderCfg
633 result.merge(CaloExtensionBuilderCfg(flags))
635 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig
import TrackingGeometryCondAlgCfg
636 result.merge(TrackingGeometryCondAlgCfg(flags))
637 from MuonConfig.MuonRecToolsConfig
import MuonEDMHelperSvcCfg
638 result.merge(MuonEDMHelperSvcCfg(flags))
641 from TrkConfig.TrackCollectionReadConfig
import TrackCollectionReadCfg
642 result.merge(TrackCollectionReadCfg(flags,
'Tracks'))
646 if flags.MuonCombined.doMuGirl
or \
647 flags.MuonCombined.doStatisticalCombination
or \
648 flags.MuonCombined.doCaloTrkMuId
or \
649 flags.MuonCombined.doCombinedFit
or \
650 flags.MuonCombined.doMuonSegmentTagger:
653 if flags.Tracking.doLargeD0:
658 if flags.MuonCombined.doStatisticalCombination
or flags.MuonCombined.doCombinedFit:
660 if flags.Tracking.doLargeD0:
664 if flags.MuonCombined.doCombinedFit:
666 if flags.Tracking.doLargeD0:
668 if flags.MuonCombined.doMuGirl:
671 InDetCandidateLocation=
"InDetCandidates"
672 if not flags.MuonCombined.doCombinedFit
else "InDetCandidatesSystemExtened"))
673 if flags.MuonCombined.doMuGirlLowBeta:
674 if flags.Tracking.doLargeD0:
679 if flags.Tracking.doLargeD0:
682 if flags.MuonCombined.doCaloTrkMuId:
684 if flags.Tracking.doLargeD0:
687 if flags.MuonCombined.doMuonSegmentTagger:
689 if flags.Tracking.doLargeD0:
693 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentCnvAlgCfg
694 result.merge(MuonSegmentCnvAlgCfg(flags,
"MuonSegmentCnvAlg",
695 SegmentContainerName=
"TrkMuonSegments",
696 xAODContainerName=
"MuonSegments"))
697 if flags.MuonCombined.writeUnAssocSegments:
698 result.merge(MuonSegmentCnvAlgCfg(flags,
"UnAssocMuonSegmentCnvAlg",
699 SegmentContainerName=
"UnAssocMuonTrkSegments",
700 xAODContainerName=
"UnAssocMuonSegments"))
701 if flags.MuonCombined.doMuGirlLowBeta:
702 result.merge(MuonSegmentCnvAlgCfg(flags,
"MuonStauSegmentCnvAlg",
703 SegmentContainerName=
"TrkStauSegments",
704 xAODContainerName=
"StauSegments"))
707 if flags.Tracking.doLargeD0:
710 if flags.MuonCombined.doMuGirlLowBeta:
716 from MuonConfig.MuonRecToolsConfig
import MuonTrackScoringToolCfg
717 result.addPublicTool(result.popToolsAndMerge(
718 MuonTrackScoringToolCfg(flags)))
719 from TrkConfig.TrkTrackSummaryToolConfig
import MuonCombinedTrackSummaryToolCfg
720 result.addPublicTool(result.popToolsAndMerge(
721 MuonCombinedTrackSummaryToolCfg(flags)))
724 from AthenaConfiguration.Enums
import Format
725 if flags.Input.isMC
and flags.Input.Format != Format.BS:
728 if not flags.Muon.usePhaseIIGeoSetup
and \
729 "MuonSegments" not in flags.Input.Collections:
731 from MuonConfig.MuonTruthAlgsConfig
import MuonSegmentTruthAssociationAlgCfg
732 result.merge(MuonSegmentTruthAssociationAlgCfg(flags))
734 result.addEventAlgo(CompFactory.ClusterMatching.CaloClusterMatchLinkAlg(
735 "MuonTCLinks", ClustersToDecorate=
"MuonClusterCollection"))
743if __name__ ==
"__main__":
747 from MuonConfig.MuonConfigUtils
import SetupMuonStandaloneCA
748 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
749 flags = initConfigFlags()
750 flags.Input.Files = [
751 '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MuonCombinedConfig/myESD_q454_unslimmedTracks.pool.root']
752 from MuonConfig.MuonConfigUtils
import configureCondTag
753 configureCondTag(flags)
756 flags.MuonCombined.doMuGirlLowBeta =
False
764 cfg = SetupMuonStandaloneCA(flags)
766 from MuonConfig.MuonPrepDataConvConfig
import MuonPrepDataConvCfg
767 cfg.merge(MuonPrepDataConvCfg(flags))
774 cfg.getEventAlgo(
"MuonInDetToMuonSystemExtensionAlg").UseOnlyHitSectors =
False
775 cfg.getEventAlgo(
"MuonInDetToMuonSystemExtensionAlg_LRT").UseOnlyHitSectors =
False
790 from SGComps.AddressRemappingConfig
import AddressRemappingCfg
792 rename_maps = [
'%s#%s->%s' % (
"xAOD::MuonContainer",
"Muons",
"old_Muons"),
793 '%s#%s->%s' % (
"xAOD::MuonAuxContainer",
794 "MuonsAux.",
"old_MuonsAux."),
795 '%s#%s->%s' % (
"xAOD::MuonContainer",
796 "Muons.rpcHitIdentifier",
"old_Muons.rpcHitIdentifier"),
797 '%s#%s->%s' % (
"xAOD::TruthParticleContainer",
798 "MuonTruthParticles.recoMuonLink",
"MuonTruthParticles.old_recoMuonLink")
800 cfg.merge(AddressRemappingCfg(rename_maps))
802 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)