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", **kwargs):
7 result = ComponentAccumulator()
8 kwargs.setdefault("isMC", flags.Input.isMC)
9 from MuonTrackFindingAlgs.TrackFindingConfig import SegmentSelectorCfg, TrackSummaryToolCfg
10 kwargs.setdefault("SegmentSelectionTool", result.popToolsAndMerge(SegmentSelectorCfg(flags)))
11 kwargs.setdefault("SummaryTool", result.popToolsAndMerge(TrackSummaryToolCfg(flags)))
12 the_alg = CompFactory.MuonValR4.MsTrackTester(name= name, **kwargs)
13 result.addEventAlgo(the_alg, primary = True)
14 return result
15
16def MsTrackVisualizationToolCfg(flags, name = "VisualizationTool", **kwargs):
17 result = ComponentAccumulator()
18 if not flags.Input.isMC:
19 from MuonPatternRecognitionTest.PatternTestConfig import LegacyMuonRecoChainCfg
20 result.merge(LegacyMuonRecoChainCfg(flags))
21 kwargs.setdefault("TruthSegkey", "MuonSegments")
22 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
23 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)))
24 the_tool = CompFactory.MuonValR4.TrackVisualizationTool(name, **kwargs)
25 result.setPrivateTools(the_tool)
26 return result
27
28if __name__=="__main__":
29 from MuonGeoModelTestR4.testGeoModel import setupGeoR4TestCfg, SetupArgParser, MuonPhaseIITestDefaults
30 from MuonConfig.MuonConfigUtils import executeTest, setupHistSvcCfg
31 parser = SetupArgParser()
32 parser.add_argument("--noMonitorPlots", help="If set to true, there're no monitoring plots", default = False,
33 action='store_true')
34 parser.add_argument("--writeSpacePoints", help="If set to true, the spacepoints in the bucket are saved to disk",
35 default=False, action='store_true')
36 parser.add_argument("--noPerfMon", help="If set to true, disable performance monitoring.",
37 default=False, action='store_true')
38 parser.set_defaults(nEvents = -1)
39
40 parser.set_defaults(outRootFile="MsTrkTester.root")
41 parser.set_defaults(inputFile=MuonPhaseIITestDefaults.HITS_PG_R3)
42
43 args = parser.parse_args()
44 from AthenaConfiguration.AllConfigFlags import initConfigFlags
45 flags = initConfigFlags()
46 flags.PerfMon.doFullMonMT = not args.noPerfMon
47 flags.Muon.doFastMMDigitization = True
48 flags, cfg = setupGeoR4TestCfg(args,flags)
49
50 cfg.merge(setupHistSvcCfg(flags,outFile=args.outRootFile,
51 outStream="MuonTrackTester"))
52
53 # cfg.getService("MessageSvc").setVerbose = ["MsTrackTester", "MSTrackFinderAlg", "MuonSegmentFittingAlg"]
54 from MuonConfig.MuonDataPrepConfig import xAODUncalibMeasPrepCfg
55 cfg.merge(xAODUncalibMeasPrepCfg(flags))
56
57 from MuonSpacePointFormation.SpacePointFormationConfig import MuonSpacePointFormationCfg
58 cfg.merge(MuonSpacePointFormationCfg(flags))
59
60 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig import MuonPatternRecognitionCfg
61 cfg.merge(MuonPatternRecognitionCfg(flags))
62
63 from MuonTrackFindingAlgs.TrackFindingConfig import MSTrackFinderAlgCfg
64 cfg.merge(MSTrackFinderAlgCfg(flags))
65
66
67 from MuonPatternRecognitionTest.PatternTestConfig import LegacyMuonRecoChainCfg
68 cfg.merge(LegacyMuonRecoChainCfg(flags))
69
70 cfg.merge(MsTrackTesterCfg(flags))
71
72 cfg.merge(setupHistSvcCfg(flags,outFile=args.outRootFile,
73 outStream="MuonEtaHoughTransformTest"))
74
75 from MuonPatternRecognitionTest.PatternTestConfig import MuonHoughTransformTesterCfg, PatternVisualizationToolCfg
76
77
78 cfg.merge(MuonHoughTransformTesterCfg(flags,
79 VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags, CanvasLimits =0))))
80
81
82 if not args.noMonitorPlots:
83 cfg.getEventAlgo("MSTrackFinderAlg").VisualizationTool = cfg.popToolsAndMerge(MsTrackVisualizationToolCfg(flags))
84 cfg.getEventAlgo("MuonSegmentFittingAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
85 CanvasPreFix="SegmentPlotValid", outSubDir="SegmentValidPlots",
86 displayTruthOnly = True, saveSinglePDFs = False, saveSummaryPDF= True))
87
88 cfg.getEventAlgo("MuonNswSegmentFinderAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
89 CanvasPreFix="NswSegmentFitPlotValid", outSubDir="SegmentValidPlots",
90 doPhiBucketViews = False, saveSinglePDFs = False,
91 saveSummaryPDF= True,CanvasLimits=10000))
92
93
94
95#
96
97
98 executeTest(cfg)
MsTrackTesterCfg(flags, name="MsTrackTester", **kwargs)
MsTrackVisualizationToolCfg(flags, name="VisualizationTool", **kwargs)