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 = MuonCombinedInDetDetailedTrackSelectorToolCfg(flags)
124 kwargs.setdefault(
"TrackSelector", result.popPrivateTools())
125 if flags.MuonCombined.doSiAssocForwardMuons
and flags.Tracking.doForwardTracks:
126 kwargs.setdefault(
"DoSiliconAssocForwardMuons",
True)
127 kwargs.setdefault(
"InDetForwardTrackSelector", result.popToolsAndMerge(
128 MuonCombinedInDetDetailedForwardTrackSelectorToolCfg(flags)))
130 muon_ext_tool = result.popToolsAndMerge(
131 MuonSystemExtensionToolCfg(flags))
132 kwargs.setdefault(
"MuonSystemExtensionTool", muon_ext_tool)
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)
188 kwargs.setdefault(
"InDetForwardTrackSelector", result.popToolsAndMerge(
189 MuonCombinedInDetDetailedForwardTrackSelectorToolCfg(flags)))
191 if flags.Reco.EnableCaloExtension
and not flags.Muon.MuonTrigger:
192 kwargs.setdefault(
"CaloExtensionLocation", [
193 "ParticleCaloExtension_LRT"])
195 result.merge(cand_alg)
200 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCombinedToolCfg
201 result = ComponentAccumulator()
202 kwargs.setdefault(
"MuonCombinedTool", result.popToolsAndMerge(
203 MuonCombinedToolCfg(flags)))
207 for h
in kwargs[
'MuonCombinedTool'].MuonCombinedTagTools:
208 if str(h).
find(
'FitTagTool') >= 0:
209 tagmaps.append(
'muidcoTagMap')
210 elif str(h).
find(
'StacoTagTool') >= 0:
211 tagmaps.append(
'stacoTagMap')
212 kwargs.setdefault(
"CombinedTagMaps", tagmaps)
213 alg = CompFactory.MuonCombinedAlg(name, **kwargs)
214 result.addEventAlgo(alg, primary=
True)
218 kwargs.setdefault(
"InDetCandidateLocation",
"TrackParticleCandidateLRT")
219 kwargs.setdefault(
"CombinedTagMaps", [
220 "muidcoTagMap_LRT",
"stacoTagMap_LRT"])
221 kwargs.setdefault(
"MuidCombinedTracksLocation",
"MuidCombinedTracks_LRT")
222 kwargs.setdefault(
"MuidMETracksLocation",
"MuidMETracks_LRT")
227 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
228 result = MuonCreatorToolCfg(flags, name=
"MuonCreatorTool")
229 kwargs.setdefault(
"MuonCreatorTool", result.popPrivateTools())
234 if flags.MuonCombined.doMuGirl:
235 tag_maps += [
"muGirlTagMap"]
236 if flags.MuonCombined.doStatisticalCombination:
237 tag_maps += [
"stacoTagMap"]
238 if flags.MuonCombined.doCombinedFit:
239 tag_maps += [
"muidcoTagMap"]
240 if flags.MuonCombined.doCaloTrkMuId:
241 tag_maps += [
"caloTagMap"]
242 if flags.MuonCombined.doMuonSegmentTagger:
243 tag_maps += [
"segmentTagMap"]
244 kwargs.setdefault(
"TagMaps", tag_maps)
245 if flags.Muon.MuonTrigger:
246 kwargs.setdefault(
"MakeClusters",
False)
247 kwargs.setdefault(
"ClusterContainerName",
"")
248 kwargs.setdefault(
"SegmentContainerName",
"")
249 kwargs.setdefault(
"TagToSegmentKey",
"")
250 if flags.Muon.SAMuonTrigger:
251 kwargs.setdefault(
"CreateSAmuons",
True)
252 kwargs.setdefault(
"TagMaps", [])
254 alg = CompFactory.MuonCreatorAlg(name, **kwargs)
255 result.addEventAlgo(alg, primary=
True)
260 result = ComponentAccumulator()
261 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
262 creatorTool = result.popToolsAndMerge(
263 MuonCreatorToolCfg(flags,
"MuonCreatorTool_LRT", RequireIDTrack=
True))
264 kwargs.setdefault(
"MuonCreatorTool", creatorTool)
267 if flags.MuonCombined.doMuGirl:
268 tag_maps += [
"MuGirlMap_LRT"]
269 if flags.MuonCombined.doStatisticalCombination:
270 tag_maps += [
"stacoTagMap_LRT"]
271 if flags.MuonCombined.doCombinedFit:
272 tag_maps += [
"muidcoTagMap_LRT"]
273 if flags.MuonCombined.doCaloTrkMuId:
274 tag_maps += [
"caloTagMap_LRT"]
275 if flags.MuonCombined.doMuonSegmentTagger:
276 tag_maps += [
"segmentTagMap_LRT"]
277 kwargs.setdefault(
"TagMaps", tag_maps)
278 kwargs.setdefault(
"MuonContainerLocation",
"MuonsLRT")
279 kwargs.setdefault(
"ExtrapolatedLocation",
"ExtraPolatedMuonsLRT")
280 kwargs.setdefault(
"MSOnlyExtrapolatedLocation",
281 "MSOnlyExtraPolatedMuonsLRT")
282 kwargs.setdefault(
"CombinedLocation",
"CombinedMuonsLRT")
283 kwargs.setdefault(
"BuildSlowMuon",
False)
284 kwargs.setdefault(
"MakeClusters",
False)
285 kwargs.setdefault(
"ClusterContainerName",
"")
290 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonCreatorToolCfg
291 result = MuonCreatorToolCfg(
292 flags, BuildStauContainer=
True, name=
'StauCreatorTool')
293 kwargs.setdefault(
"MuonCreatorTool", result.popPrivateTools())
294 kwargs.setdefault(
"MuonContainerLocation",
"Staus")
295 kwargs.setdefault(
"CombinedLocation",
"CombinedStau")
296 kwargs.setdefault(
"ExtrapolatedLocation",
"ExtrapolatedStau")
297 kwargs.setdefault(
"MSOnlyExtrapolatedLocation",
"MSOnlyExtrapolatedStau")
298 kwargs.setdefault(
"MuonCandidateLocation", [])
299 kwargs.setdefault(
"SegmentContainerName",
"StauSegments")
300 kwargs.setdefault(
"TagToSegmentKey",
"")
301 kwargs.setdefault(
"BuildSlowMuon", 1)
302 kwargs.setdefault(
"ClusterContainerName",
"SlowMuonClusterCollection")
303 kwargs.setdefault(
"TagMaps", [
"stauTagMap"])
310 result = ComponentAccumulator()
311 kwargs.setdefault(
"saveUnusedSegments",
312 flags.MuonCombined.writeUnAssocSegments)
314 if flags.MuonCombined.doMuGirl:
315 tag_maps += [
"muGirlTagMap"]
316 if flags.MuonCombined.doStatisticalCombination:
317 tag_maps += [
"stacoTagMap"]
318 if flags.MuonCombined.doCombinedFit:
319 tag_maps += [
"muidcoTagMap"]
320 if flags.MuonCombined.doMuonSegmentTagger:
321 tag_maps += [
"segmentTagMap"]
322 muon_maps = [
"MuonCandidates"]
323 if flags.Tracking.doLargeD0:
324 if flags.MuonCombined.doMuGirl:
325 tag_maps += [
"MuGirlMap_LRT"]
326 if flags.MuonCombined.doStatisticalCombination:
327 tag_maps += [
"stacoTagMap_LRT"]
328 if flags.MuonCombined.doCombinedFit:
329 tag_maps += [
"muidcoTagMap_LRT"]
330 if flags.MuonCombined.doMuonSegmentTagger:
331 tag_maps += [
"segmentTagMap_LRT"]
332 kwargs.setdefault(
"MuonCandidateMaps", muon_maps)
333 kwargs.setdefault(
"TagMaps", tag_maps)
334 from MuonConfig.MuonRecToolsConfig
import MuonAmbiProcessorCfg
335 kwargs.setdefault(
"AmbiguityProcessor", result.popToolsAndMerge(
336 MuonAmbiProcessorCfg(flags)))
338 the_alg = CompFactory.MuonSegContainerMergerAlg(name, **kwargs)
339 result.addEventAlgo(the_alg)
344 result = ComponentAccumulator()
346 "ToMerge", [
"InDetCandidatesStausPrompt",
"InDetCandidatesStausLRT"])
347 kwargs.setdefault(
"ToWrite",
"InDetCandidatesStaus")
348 the_alg = CompFactory.MuonInDetExtensionMergerAlg(name, **kwargs)
349 result.addEventAlgo(the_alg, primary=
True)
359 tp_coll = [
"ExtrapolatedMuonTrackParticles",
360 "CombinedMuonTrackParticles",
361 "MSOnlyExtrapolatedMuonTrackParticles"]
362 track_coll = [
"ExtrapolatedMuonTracks",
363 "CombinedMuonTracks",
364 "MSOnlyExtrapolatedTracks"]
365 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
366 tp_coll += [
"CombinedStauTrackParticles",
367 "ExtrapolatedStauTrackParticles"]
368 track_coll += [
"CombinedStauTracks",
369 "ExtrapolatedStauTracks"]
370 if flags.Tracking.doLargeD0:
371 tp_coll += [
"CombinedMuonsLRTTrackParticles",
372 "ExtraPolatedMuonsLRTTrackParticles",
373 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
374 track_coll += [
"CombinedMuonsLRTTracks",
375 "ExtraPolatedMuonsLRTTracks",
376 "MSOnlyExtraPolatedMuonsLRTTrackParticlesTracks"]
377 return tp_coll, track_coll
381 result = ComponentAccumulator()
382 the_alg = CompFactory.MuonTrkIDMSScatterDecorAlg(name=name, **kwargs)
383 result.addEventAlgo(the_alg)
388 result = ComponentAccumulator()
389 the_alg = CompFactory.MuonTrkAEOTDecorationAlg(name=name, **kwargs)
390 result.addEventAlgo(the_alg)
395 result = ComponentAccumulator()
396 the_alg = CompFactory.MuonPrecisionLayerDecorAlg(name=name, **kwargs)
397 result.addEventAlgo(the_alg)
402 result = ComponentAccumulator()
403 trk_cols = [
"ExtrapolatedMuonTrackParticles",
404 "CombinedMuonTrackParticles",
405 "MSOnlyExtrapolatedMuonTrackParticles"]
406 stau_coll = [
"CombinedStauTrackParticles",
407 "ExtrapolatedStauTrackParticles"]
if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta
else []
408 track_coll_lrt = [
"CombinedMuonsLRTTrackParticles",
409 "ExtraPolatedMuonsLRTTrackParticles",
410 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
if flags.Tracking.doLargeD0
else []
413 for coll
in trk_cols + stau_coll + track_coll_lrt:
415 TrackContainer=coll))
418 TrackContainer=coll))
420 prec_trk_cols = [
"ExtrapolatedMuonTrackParticles",
421 "CombinedMuonTrackParticles",
422 "MSOnlyExtrapolatedMuonTrackParticles"]
424 MuonContainer=
"Muons",
425 TrackContainer=prec_trk_cols))
426 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
429 MuonContainer=
"Staus",
430 TrackContainer=stau_coll))
431 if flags.Tracking.doLargeD0:
434 MuonContainer=
"MuonsLRT",
435 TrackContainer=track_coll_lrt))
441 result = ComponentAccumulator()
444 from MuonConfig.MuonTruthAlgsConfig
import MuonDetailedTrackTruthMakerCfg
445 result.merge(MuonDetailedTrackTruthMakerCfg(flags, name=
"MuonCombinedDetailedTrackTruthMaker",
446 TrackCollectionNames=trk_cols))
448 if(
not flags.Muon.scheduleActsReco):
449 for i
in range(len(trk_cols)):
450 from TrkConfig.TrkTruthAlgsConfig
import TrackTruthSelectorCfg, TrackParticleTruthAlgCfg
451 result.merge(TrackTruthSelectorCfg(flags, tracks=trk_cols[i]))
452 result.merge(TrackParticleTruthAlgCfg(flags, tracks=trk_cols[i],
453 TrackParticleName=particle_cols[i]))
459 result = ComponentAccumulator()
462 from MuonConfig.MuonTruthAlgsConfig
import MuonTruthAssociationAlgCfg
463 result.merge(MuonTruthAssociationAlgCfg(flags))
465 if flags.Tracking.doLargeD0:
466 result.merge(MuonTruthAssociationAlgCfg(flags, name=
"MuonTruthAssociationAlgLRT",
467 MuonContainerName=
"MuonsLRT",
468 RecoLinkName=
"recoMuonLinkLRT",
469 TrackContainers=trk_cols))
471 if flags.MuonCombined.doMuGirl
and flags.MuonCombined.doMuGirlLowBeta:
472 result.merge(MuonTruthAssociationAlgCfg(flags, name=
"MuonTruthAssociationAlgStau",
473 MuonContainerName=
"Staus",
475 TrackContainers=trk_cols))
480 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
481 result = ComponentAccumulator()
484 from TrkEventCnvTools.TrkEventCnvToolsConfig
import (
485 TrkEventCnvSuperToolCfg)
486 result.merge(TrkEventCnvSuperToolCfg(flags))
491 for track_pt
in 500, 1000:
492 for cone_str
in "",
"LooseCone":
493 name = f
"Nonprompt_All_MaxWeightTTVA{cone_str}_pt{track_pt}"
494 iso_vars += [
"ptconeCorrBitset_"+name,
495 "ptconecoreTrackPtrCorrection_"+name]
496 for cone_size
in 20, 30, 40:
497 for var_str
in "",
"var":
498 iso_vars.append(f
"pt{var_str}cone{cone_size}_{name}")
502 aod_items += [
"xAOD::MuonSegmentContainer#MuonSegments"]
503 aod_items += [
"xAOD::MuonSegmentAuxContainer#MuonSegmentsAux."]
504 if flags.MuonCombined.writeUnAssocSegments:
505 aod_items += [
"xAOD::MuonSegmentContainer#UnAssocMuonSegments"]
506 aod_items += [
"xAOD::MuonSegmentAuxContainer#UnAssocMuonSegmentsAux."]
507 if flags.MuonCombined.doMuGirlLowBeta:
508 aod_items += [
"xAOD::MuonSegmentContainer#StauSegments"]
509 aod_items += [
"xAOD::MuonSegmentAuxContainer#StauSegmentsAux."]
512 if flags.Detector.EnableCalo:
513 aod_items += [
"xAOD::CaloClusterContainer#MuonClusterCollection"]
514 aod_items += [
"xAOD::CaloClusterAuxContainer#MuonClusterCollectionAux."]
515 aod_items += [
"CaloClusterCellLinkContainer#MuonClusterCollection_links"]
516 from CaloRec.CaloThinCellsByClusterAlgConfig
import CaloThinCellsByClusterAlgCfg
517 result.merge(CaloThinCellsByClusterAlgCfg(flags, streamName=
"StreamAOD",
518 clusters=
"MuonClusterCollection",
519 samplings=[
"TileGap1",
"TileGap2",
"TileGap3",
"TileBar0",
"TileExt0",
"HEC0"]))
522 excludedAuxData =
'-clusterAssociation'
523 aod_items += [
"xAOD::TrackParticleContainer#"+col
for col
in particle_col]
524 aod_items += [
"xAOD::TrackParticleAuxContainer#"+col +
525 "Aux." + excludedAuxData
for col
in particle_col]
527 aod_items += [
"xAOD::MuonContainer#Muons"]
528 aod_items += [
"xAOD::MuonContainer#MuonsLRT"]
531 wp_decors = [
"DFCommonMuonsTight",
"DFCommonGoodMuon",
"DFCommonMuonsMedium",
532 "DFCommonMuonsLoose",
"InnerDetectorPt",
"MuonSpectrometerPt",
"isMedium_DRAWZmumu"]
535 gpf_vars = [
"chargedGlobalFELinks",
"neutralGlobalFELinks",
536 "deltaR_muon_clus_GlobalFEalg",
"muon_efrac_matched_GlobalFE"]
538 excludedMuonAuxData =
".-"+
".-".join(iso_vars+wp_decors+gpf_vars)
540 aod_items += [
"xAOD::MuonAuxContainer#MuonsAux" + excludedMuonAuxData]
541 aod_items += [
"xAOD::MuonAuxContainer#MuonsLRTAux" + excludedMuonAuxData]
544 aod_items += [
"xAOD::MuonContainer#Staus"]
545 aod_items += [
"xAOD::MuonAuxContainer#StausAux" + excludedMuonAuxData]
546 aod_items += [
"xAOD::SlowMuonContainer#SlowMuons"]
547 aod_items += [
"xAOD::SlowMuonAuxContainer#SlowMuonsAux."]
552 esd_items = [
"TrackCollection#"+col
for col
in trk_col]
553 esd_items += [
"Trk::SegmentCollection#TrkMuonSegments"]
554 if flags.MuonCombined.writeUnAssocSegments:
555 esd_items += [
"Trk::SegmentCollection#UnAssocMuonTrkSegments"]
558 esd_items += [
"DetailedTrackTruthCollection#ExtrapolatedMuonTracksTruth"]
559 esd_items += [
"DetailedTrackTruthCollection#CombinedMuonTracksTruth"]
560 esd_items += [
"DetailedTrackTruthCollection#ExtrapolatedMuonTrackParticlesTruth"]
561 esd_items += [
"DetailedTrackTruthCollection#CombinedMuonTrackParticlesTruth"]
563 if flags.MuonCombined.doCosmicSplitTracks:
564 esd_items += [
"TrackCollection#Combined_Tracks_split"]
565 esd_items += [
"TrackCollection#Tracks_split"]
566 esd_items += [
"Rec::TrackParticleContainer#TrackParticleCandidate_split"]
568 esd_items += aod_items
570 result.merge(addToESD(flags, esd_items))
571 result.merge(addToAOD(flags, aod_items))
588 from MuonConfig.MuonGeometryConfig
import MuonIdHelperSvcCfg
591 result = MuonIdHelperSvcCfg(flags)
593 from CaloRec.CaloTopoClusterConfig
import CaloTopoClusterCfg
594 result.merge(CaloTopoClusterCfg(flags))
595 from TrackToCalo.CaloExtensionBuilderAlgCfg
import CaloExtensionBuilderCfg
596 result.merge(CaloExtensionBuilderCfg(flags))
598 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig
import TrackingGeometryCondAlgCfg
599 result.merge(TrackingGeometryCondAlgCfg(flags))
600 from MuonConfig.MuonRecToolsConfig
import MuonEDMHelperSvcCfg
601 result.merge(MuonEDMHelperSvcCfg(flags))
604 from TrkConfig.TrackCollectionReadConfig
import TrackCollectionReadCfg
605 result.merge(TrackCollectionReadCfg(flags,
'Tracks'))
609 if flags.MuonCombined.doMuGirl
or \
610 flags.MuonCombined.doStatisticalCombination
or \
611 flags.MuonCombined.doCaloTrkMuId
or \
612 flags.MuonCombined.doCombinedFit
or \
613 flags.MuonCombined.doMuonSegmentTagger:
616 if flags.Tracking.doLargeD0:
621 if flags.MuonCombined.doStatisticalCombination
or flags.MuonCombined.doCombinedFit:
623 if flags.Tracking.doLargeD0:
627 if flags.MuonCombined.doCombinedFit:
629 if flags.Tracking.doLargeD0:
631 if flags.MuonCombined.doMuGirl:
634 InDetCandidateLocation=
"InDetCandidates"
635 if not flags.MuonCombined.doCombinedFit
else "InDetCandidatesSystemExtened"))
636 if flags.MuonCombined.doMuGirlLowBeta:
637 if flags.Tracking.doLargeD0:
642 if flags.Tracking.doLargeD0:
645 if flags.MuonCombined.doCaloTrkMuId:
647 if flags.Tracking.doLargeD0:
650 if flags.MuonCombined.doMuonSegmentTagger:
652 if flags.Tracking.doLargeD0:
656 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentCnvAlgCfg
657 result.merge(MuonSegmentCnvAlgCfg(flags,
"MuonSegmentCnvAlg",
658 SegmentContainerName=
"TrkMuonSegments",
659 xAODContainerName=
"MuonSegments"))
660 if flags.MuonCombined.writeUnAssocSegments:
661 result.merge(MuonSegmentCnvAlgCfg(flags,
"UnAssocMuonSegmentCnvAlg",
662 SegmentContainerName=
"UnAssocMuonTrkSegments",
663 xAODContainerName=
"UnAssocMuonSegments"))
664 if flags.MuonCombined.doMuGirlLowBeta:
665 result.merge(MuonSegmentCnvAlgCfg(flags,
"MuonStauSegmentCnvAlg",
666 SegmentContainerName=
"TrkStauSegments",
667 xAODContainerName=
"StauSegments"))
670 if flags.Tracking.doLargeD0:
673 if flags.MuonCombined.doMuGirlLowBeta:
679 from MuonConfig.MuonRecToolsConfig
import MuonTrackScoringToolCfg
680 result.addPublicTool(result.popToolsAndMerge(
681 MuonTrackScoringToolCfg(flags)))
682 from TrkConfig.TrkTrackSummaryToolConfig
import MuonCombinedTrackSummaryToolCfg
683 result.addPublicTool(result.popToolsAndMerge(
684 MuonCombinedTrackSummaryToolCfg(flags)))
687 from AthenaConfiguration.Enums
import Format
688 if flags.Input.isMC
and flags.Input.Format != Format.BS:
691 if not flags.Muon.usePhaseIIGeoSetup
and \
692 "MuonSegments" not in flags.Input.Collections:
694 from MuonConfig.MuonTruthAlgsConfig
import MuonSegmentTruthAssociationAlgCfg
695 result.merge(MuonSegmentTruthAssociationAlgCfg(flags))
697 result.addEventAlgo(CompFactory.ClusterMatching.CaloClusterMatchLinkAlg(
698 "MuonTCLinks", ClustersToDecorate=
"MuonClusterCollection"))
706if __name__ ==
"__main__":
710 from MuonConfig.MuonConfigUtils
import SetupMuonStandaloneCA
711 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
712 flags = initConfigFlags()
713 flags.Input.Files = [
714 '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MuonCombinedConfig/myESD_q454_unslimmedTracks.pool.root']
715 from MuonConfig.MuonConfigUtils
import configureCondTag
716 configureCondTag(flags)
719 flags.MuonCombined.doMuGirlLowBeta =
False
727 cfg = SetupMuonStandaloneCA(flags)
729 from MuonConfig.MuonPrepDataConvConfig
import MuonPrepDataConvCfg
730 cfg.merge(MuonPrepDataConvCfg(flags))
737 cfg.getEventAlgo(
"MuonInDetToMuonSystemExtensionAlg").UseOnlyHitSectors =
False
738 cfg.getEventAlgo(
"MuonInDetToMuonSystemExtensionAlg_LRT").UseOnlyHitSectors =
False
753 from SGComps.AddressRemappingConfig
import AddressRemappingCfg
755 rename_maps = [
'%s#%s->%s' % (
"xAOD::MuonContainer",
"Muons",
"old_Muons"),
756 '%s#%s->%s' % (
"xAOD::MuonAuxContainer",
757 "MuonsAux.",
"old_MuonsAux."),
758 '%s#%s->%s' % (
"xAOD::MuonContainer",
759 "Muons.rpcHitIdentifier",
"old_Muons.rpcHitIdentifier"),
760 '%s#%s->%s' % (
"xAOD::TruthParticleContainer",
761 "MuonTruthParticles.recoMuonLink",
"MuonTruthParticles.old_recoMuonLink")
763 cfg.merge(AddressRemappingCfg(rename_maps))
765 from MuonConfig.MuonConfigUtils
import executeTest
std::string find(const std::string &s)
return a remapped string
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)