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
29def TruthMuonMakerAlgCfg(flags, name="TruthMuonMakerAlg", **kwargs):
30 result = ComponentAccumulator()
31
32 from MCTruthClassifier.MCTruthClassifierConfig import MCTruthClassifierCfg
33 kwargs.setdefault("MCTruthClassifier", result.popToolsAndMerge(MCTruthClassifierCfg(flags)))
34 inCollections = ["TruthParticles"]
35 if flags.Muon.includePileUpTruth and ("TruthPileupParticles" in flags.Input.Collections):
36 inCollections+=["TruthPileupParticles"]
37 kwargs.setdefault("InContainers", inCollections)
38 result.addEventAlgo(CompFactory.Muon.TruthMuonMakerAlg(name, **kwargs))
39 return result
40
41def MuonTruthAddTrackRecordsAlgCfg(flags, name="MuonTruthAddTrackRecordsAlg", **kwargs):
42 result = ComponentAccumulator()
43
44 from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
45 kwargs.setdefault("Extrapolator", result.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
46
47 trackRecords = [item for item in ["CaloEntryLayer", "MuonEntryLayer", "MuonExitLayer"] if item in flags.Input.Collections]
48 kwargs.setdefault("TrackRecordCollectionNames", trackRecords)
49
50 result.addEventAlgo(CompFactory.Muon.TruthTrackRecordsAlg(name, **kwargs))
51 return result
52
53def MuonTruthHitCountsAlgCfg(flags, name="MuonTruthHitSummaryAlg", **kwargs):
54 result = ComponentAccumulator()
55
56 PRD_TruthNames = []
57 if flags.Detector.EnableRPC:
58 PRD_TruthNames+=["RPC_TruthMap"]
59 if flags.Detector.EnableTGC:
60 PRD_TruthNames+=["TGC_TruthMap"]
61 if flags.Detector.EnableMDT:
62 PRD_TruthNames+=["MDT_TruthMap"]
63 if flags.Detector.EnableCSC:
64 PRD_TruthNames += ["CSC_TruthMap"]
65 if flags.Detector.EnableMM:
66 PRD_TruthNames += ["MM_TruthMap"]
67 if flags.Detector.EnablesTGC:
68 PRD_TruthNames += ["STGC_TruthMap"]
69
70 kwargs.setdefault("PRD_TruthMaps", PRD_TruthNames)
71
72 result.addEventAlgo(CompFactory.Muon.TruthHitSummaryAlg(name, **kwargs))
73 return result
74
75def MuonTruthSegmentCreationAlgCfg(flags, name="MuonTruthSegmentCreationAlg", **kwargs):
76 result = ComponentAccumulator()
77
78 SDOs = ["RPC_SDO","TGC_SDO","MDT_SDO"]
79 CSCSDOs = "CSC_SDO"
80
81 if flags.Detector.EnablesTGC and flags.Detector.EnableMM:
82 SDOs += ["MM_SDO","sTGC_SDO"]
83 if not flags.Detector.EnableCSC:
84 CSCSDOs = ""
85
86 kwargs.setdefault("SDOs", SDOs)
87 kwargs.setdefault("CSCSDOs", CSCSDOs)
88
89 result.addEventAlgo(CompFactory.Muon.MuonTruthSegmentCreationAlg(name, **kwargs))
90 return result
91
92
93def MuonTruthAssociationAlgCfg(flags, name="MuonTruthAssociationAlg", **kwargs):
94 result = ComponentAccumulator()
95 result.addEventAlgo(CompFactory.Muon.RecoToTruthAssociationAlg(name, **kwargs))
96 return result
97
98def MuonSegmentTruthAssociationAlgCfg(flags, name="MuonSegmentTruthAssociationAlg", **kwargs):
99 result = ComponentAccumulator()
100 result.addEventAlgo(CompFactory.Muon.MuonSegmentTruthAssociationAlg(name, **kwargs))
101 return result
102
104 result = ComponentAccumulator()
105 if not(flags.Input.isMC or flags.Overlay.DataOverlay) or flags.Muon.usePhaseIIGeoSetup:
106 return result
107 from MuonConfig.MuonRdoDecodeConfig import MuonPRD_MultiTruthMakerCfg
108 result.merge(MuonPRD_MultiTruthMakerCfg(flags))
109 from MuonConfig.MuonTruthAlgsConfig import TruthMuonMakerAlgCfg
110 result.merge(TruthMuonMakerAlgCfg(flags))
111 from MuonConfig.MuonTruthAlgsConfig import MuonTruthAddTrackRecordsAlgCfg
112 result.merge(MuonTruthAddTrackRecordsAlgCfg(flags))
113 from MuonConfig.MuonTruthAlgsConfig import MuonTruthHitCountsAlgCfg
114 result.merge(MuonTruthHitCountsAlgCfg(flags))
115 from MuonConfig.MuonTruthAlgsConfig import MuonTruthSegmentCreationAlgCfg
116 result.merge(MuonTruthSegmentCreationAlgCfg(flags))
117 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)