ATLAS Offline Software
Loading...
Searching...
No Matches
MsTrackFindingTester.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 MsTrackTesterCfg(flags, name = "MsTrackTester", scheduleLegacy = True,
7 outFile="MsTrkTester.root", **kwargs):
8 result = ComponentAccumulator()
9 kwargs.setdefault("isMC", flags.Input.isMC)
10 from MuonConfig.MuonConfigUtils import setupHistSvcCfg
11
12 result.merge(setupHistSvcCfg(flags, outFile=outFile,
13 outStream="MuonTrackTester"))
14
15 from MuonTrackFindingAlgs.TrackFindingConfig import SegmentSelectorCfg, TrackSummaryToolCfg, MsTrackSeedingToolCfg, MSExtrapolatorCfg
16 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(MSExtrapolatorCfg(flags)))
17 kwargs.setdefault("SegmentSelectionTool", result.popToolsAndMerge(SegmentSelectorCfg(flags)))
18 kwargs.setdefault("SummaryTool", result.popToolsAndMerge(TrackSummaryToolCfg(flags)))
19 kwargs.setdefault("SeedingTool", result.popToolsAndMerge(MsTrackSeedingToolCfg(flags)))
20 kwargs.setdefault("storeIdTrks", flags.Reco.EnableTracking)
21 if not scheduleLegacy:
22 kwargs.setdefault("LegacySegmentKey", "")
23 kwargs.setdefault("LegacyTrackKey", "")
24 kwargs.setdefault("LegacyMuonKey" , "")
25 the_alg = CompFactory.MuonValR4.MsTrackTester(name= name, **kwargs)
26 result.addEventAlgo(the_alg, primary = True)
27 return result
28
29def MsTrackVisualizationToolCfg(flags, name = "VisualizationTool", **kwargs):
30 result = ComponentAccumulator()
31 if not flags.Input.isMC:
32 from MuonPatternRecognitionTest.PatternTestConfig import LegacyMuonRecoChainCfg
33 result.merge(LegacyMuonRecoChainCfg(flags))
34 kwargs.setdefault("TruthSegkey", "MuonSegments")
35 from MuonTrackFindingAlgs.TrackFindingConfig import MSExtrapolatorCfg
36 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(MSExtrapolatorCfg(flags)))
37 from MuonTrackFindingAlgs.TrackFindingConfig import MsTrackSeedingToolCfg
38 kwargs.setdefault("SeedingTool", result.popToolsAndMerge(MsTrackSeedingToolCfg(flags)))
39
40 the_tool = CompFactory.MuonValR4.TrackVisualizationTool(name, **kwargs)
41 result.setPrivateTools(the_tool)
42 return result
43
44if __name__=="__main__":
45 from MuonGeoModelTestR4.testGeoModel import setupGeoR4TestCfg, SetupArgParser, MuonPhaseIITestDefaults
46 from MuonConfig.MuonConfigUtils import executeTest, setupHistSvcCfg
47 parser = SetupArgParser()
48 parser.add_argument("--noMonitorPlots", help="If set to true, there're no monitoring plots", default = False,
49 action='store_true')
50 parser.add_argument("--writeSpacePoints", help="If set to true, the spacepoints in the bucket are saved to disk",
51 default=False, action='store_true')
52 parser.add_argument("--noPerfMon", help="If set to true, disable performance monitoring.",
53 default=False, action='store_true')
54 parser.add_argument("--noLegacyChain", help="If set to true, the legacy chain is not scheduled",
55 default = False, action = 'store_true')
56 parser.set_defaults(nEvents = -1)
57
58 parser.set_defaults(outRootFile="MsTrkTester.root")
59 parser.set_defaults(inputFile=MuonPhaseIITestDefaults.RDO_R3)
60
61 args = parser.parse_args()
62 from AthenaConfiguration.AllConfigFlags import initConfigFlags
63 flags = initConfigFlags()
64 flags.PerfMon.doFullMonMT = not args.noPerfMon
65 flags.Trigger.Muon.useNewRegionSelector = False
66 flags.Muon.scheduleActsReco = True
67 flags.Muon.includePileUpTruth = True
68
69 from ActsConfig.ActsConfigFlags import TrackFitterType
70 if False: flags.Muon.TrackFitterType = TrackFitterType.KalmanFitter
71 if False: flags.Muon.trackGeometryMaterialMap = MuonPhaseIITestDefaults.TRKGEO_MATERIALMAP
72
73 flags, cfg = setupGeoR4TestCfg(args,flags)
74
75 cfg.getService("MessageSvc").setVerbose = ["MSTrackFinderAlg"]
76 cfg.getService("MessageSvc").setVerbose = []
77 from MuonConfig.ReconstructionConfigR4 import MuonReconstructionConfig
78 cfg.merge(MuonReconstructionConfig(flags))
79
80 if not args.noLegacyChain:
81 from MuonPatternRecognitionTest.PatternTestConfig import LegacyMuonRecoChainCfg
82 cfg.merge(LegacyMuonRecoChainCfg(flags))
83
84
85 cfg.merge(MsTrackTesterCfg(flags, outFile = args.outRootFile))
86
87 cfg.merge(setupHistSvcCfg(flags,outFile=args.outRootFile,
88 outStream="MuonEtaHoughTransformTest"))
89
90 from MuonPatternRecognitionTest.PatternTestConfig import MuonHoughTransformTesterCfg, PatternVisualizationToolCfg
91
92
93 cfg.merge(MuonHoughTransformTesterCfg(flags,
94 VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags, CanvasLimits =0))))
95
96
97 if not args.noMonitorPlots:
98 cfg.getEventAlgo("MSTrackFinderAlg").VisualizationTool = cfg.popToolsAndMerge(MsTrackVisualizationToolCfg(flags))
99 cfg.getEventAlgo("MuonSegmentFittingAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
100 CanvasPreFix="SegmentPlotValid", outSubDir="SegmentValidPlots",
101 displayTruthOnly = True, saveSinglePDFs = False, saveSummaryPDF= True))
102
103 cfg.getEventAlgo("MuonNswSegmentFinderAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
104 CanvasPreFix="NswSegmentFitPlotValid", outSubDir="SegmentValidPlots",
105 doPhiBucketViews = False, saveSinglePDFs = False,
106 saveSummaryPDF= True,CanvasLimits=10000))
107
108 cfg.getEventAlgo("MuonEtaHoughTransformAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
109 CanvasPreFix="EtaHoughPlotValid", doPhiBucketViews = False,
110 outSubDir="EtaHoughiDiPuffPlots", displayTruthOnly = True,
111 saveSinglePDFs = True, saveSummaryPDF= True))
112
113 cfg.getEventAlgo("MuonSegmentFittingAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
114 CanvasPreFix="SegmentPlotValid", outSubDir="SegmentValidPlots",
115 displayTruthOnly = True, saveSinglePDFs = True, saveSummaryPDF= True))
116
117
118
119#
120
121
122 executeTest(cfg)
MsTrackVisualizationToolCfg(flags, name="VisualizationTool", **kwargs)
MsTrackTesterCfg(flags, name="MsTrackTester", scheduleLegacy=True, outFile="MsTrkTester.root", **kwargs)