ATLAS Offline Software
Loading...
Searching...
No Matches
MuonConfig/python/MuonTruthAlgsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6def MuonDetailedTrackTruthMakerCfg(flags, name="MuonDetailedTrackTruthMaker", **kwargs):
7 result = ComponentAccumulator()
8 if flags.Muon.usePhaseIIGeoSetup:
9 return result
10
11 PRD_TruthNames = []
12 if flags.Detector.EnableRPC:
13 PRD_TruthNames+=["RPC_TruthMap"]
14 if flags.Detector.EnableTGC:
15 PRD_TruthNames+=["TGC_TruthMap"]
16 if flags.Detector.EnableMDT:
17 PRD_TruthNames+=["MDT_TruthMap"]
18 if flags.Detector.EnableCSC:
19 PRD_TruthNames += ["CSC_TruthMap"]
20 if flags.Detector.EnableMM:
21 PRD_TruthNames += ["MM_TruthMap"]
22 if flags.Detector.EnablesTGC:
23 PRD_TruthNames += ["STGC_TruthMap"]
24
25 kwargs.setdefault("PRD_TruthNames", PRD_TruthNames)
26 result.addEventAlgo(CompFactory.MuonDetailedTrackTruthMaker(name, **kwargs))
27 return result
28
29# The following 4 configuration fragments replace the ld MuonTruthDecorationAlg config
30def TruthMuonMakerAlgCfg(flags, name="TruthMuonMakerAlg", **kwargs):
31 result = ComponentAccumulator()
32
33 from MCTruthClassifier.MCTruthClassifierConfig import MCTruthClassifierCfg
34 kwargs.setdefault("MCTruthClassifier", result.popToolsAndMerge(MCTruthClassifierCfg(flags)))
35
36 result.addEventAlgo(CompFactory.Muon.TruthMuonMakerAlg(name, **kwargs))
37 return result
38
39def MuonTruthAddTrackRecordsAlgCfg(flags, name="MuonTruthAddTrackRecordsAlg", **kwargs):
40 result = ComponentAccumulator()
41
42 from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
43 kwargs.setdefault("Extrapolator", result.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
44
45 trackRecords = [item for item in ["CaloEntryLayer", "MuonEntryLayer", "MuonExitLayer"] if item in flags.Input.Collections]
46 kwargs.setdefault("TrackRecordCollectionNames", trackRecords)
47
48 result.addEventAlgo(CompFactory.Muon.TruthTrackRecordsAlg(name, **kwargs))
49 return result
50
51def MuonTruthHitCountsAlgCfg(flags, name="MuonTruthHitSummaryAlg", **kwargs):
52 result = ComponentAccumulator()
53
54 PRD_TruthNames = []
55 if flags.Detector.EnableRPC:
56 PRD_TruthNames+=["RPC_TruthMap"]
57 if flags.Detector.EnableTGC:
58 PRD_TruthNames+=["TGC_TruthMap"]
59 if flags.Detector.EnableMDT:
60 PRD_TruthNames+=["MDT_TruthMap"]
61 if flags.Detector.EnableCSC:
62 PRD_TruthNames += ["CSC_TruthMap"]
63 if flags.Detector.EnableMM:
64 PRD_TruthNames += ["MM_TruthMap"]
65 if flags.Detector.EnablesTGC:
66 PRD_TruthNames += ["STGC_TruthMap"]
67
68 kwargs.setdefault("PRD_TruthMaps", PRD_TruthNames)
69
70 result.addEventAlgo(CompFactory.Muon.TruthHitSummaryAlg(name, **kwargs))
71 return result
72
73def MuonTruthSegmentCreationAlgCfg(flags, name="MuonTruthSegmentCreationAlg", **kwargs):
74 result = ComponentAccumulator()
75
76 SDOs = ["RPC_SDO","TGC_SDO","MDT_SDO"]
77 CSCSDOs = "CSC_SDO"
78
79 if flags.Detector.EnablesTGC and flags.Detector.EnableMM:
80 SDOs += ["MM_SDO","sTGC_SDO"]
81 if not flags.Detector.EnableCSC:
82 CSCSDOs = ""
83
84 kwargs.setdefault("SDOs", SDOs)
85 kwargs.setdefault("CSCSDOs", CSCSDOs)
86
87 result.addEventAlgo(CompFactory.Muon.MuonTruthSegmentCreationAlg(name, **kwargs))
88 return result
89
90
91def MuonTruthAssociationAlgCfg(flags, name="MuonTruthAssociationAlg", **kwargs):
92 result = ComponentAccumulator()
93 result.addEventAlgo(CompFactory.Muon.RecoToTruthAssociationAlg(name, **kwargs))
94 return result
95
96def MuonSegmentTruthAssociationAlgCfg(flags, name="MuonSegmentTruthAssociationAlg", **kwargs):
97 result = ComponentAccumulator()
98 result.addEventAlgo(CompFactory.Muon.MuonSegmentTruthAssociationAlg(name, **kwargs))
99 return result
100
102 result = ComponentAccumulator()
103 if not(flags.Input.isMC or flags.Overlay.DataOverlay) or flags.Muon.usePhaseIIGeoSetup:
104 return result
105 from MuonConfig.MuonRdoDecodeConfig import MuonPRD_MultiTruthMakerCfg
106 result.merge(MuonPRD_MultiTruthMakerCfg(flags))
107 from MuonConfig.MuonTruthAlgsConfig import TruthMuonMakerAlgCfg
108 result.merge(TruthMuonMakerAlgCfg(flags))
109 from MuonConfig.MuonTruthAlgsConfig import MuonTruthAddTrackRecordsAlgCfg
110 result.merge(MuonTruthAddTrackRecordsAlgCfg(flags))
111 from MuonConfig.MuonTruthAlgsConfig import MuonTruthHitCountsAlgCfg
112 result.merge(MuonTruthHitCountsAlgCfg(flags))
113 from MuonConfig.MuonTruthAlgsConfig import MuonTruthSegmentCreationAlgCfg
114 result.merge(MuonTruthSegmentCreationAlgCfg(flags))
115 return result
MuonTruthHitCountsAlgCfg(flags, name="MuonTruthHitSummaryAlg", **kwargs)
TruthMuonMakerAlgCfg(flags, name="TruthMuonMakerAlg", **kwargs)
MuonTruthSegmentCreationAlgCfg(flags, name="MuonTruthSegmentCreationAlg", **kwargs)
MuonDetailedTrackTruthMakerCfg(flags, name="MuonDetailedTrackTruthMaker", **kwargs)
MuonSegmentTruthAssociationAlgCfg(flags, name="MuonSegmentTruthAssociationAlg", **kwargs)
MuonTruthAssociationAlgCfg(flags, name="MuonTruthAssociationAlg", **kwargs)
MuonTruthAddTrackRecordsAlgCfg(flags, name="MuonTruthAddTrackRecordsAlg", **kwargs)