7logging.getLogger(
"onnxruntime").setLevel(logging.ERROR)
10os.environ[
"ORT_LOGGING_LEVEL"] =
"3"
12if __name__==
"__main__":
13 from MuonGeoModelTestR4.testGeoModel
import setupGeoR4TestCfg, SetupArgParser, MuonPhaseIITestDefaults
14 from MuonConfig.MuonConfigUtils
import executeTest, setupHistSvcCfg
15 parser = SetupArgParser()
16 parser.add_argument(
"--noMonitorPlots", default =
False, action=
'store_true', help=
"If set to true, there're no monitoring plots")
17 parser.add_argument(
"--writeSpacePoints", default=
False, action=
'store_true', help=
"If set to true, the spacepoints in the bucket are saved to disk")
18 parser.add_argument(
"--noPerfMon", default=
False, action=
'store_true', help=
"If set to true, disable performance monitoring")
19 parser.add_argument(
"--LegacyChain", default =
False, action =
'store_true', help=
"If set to true, the legacy chain is not scheduled",)
20 parser.add_argument(
"--use-cpu", default =
False, action =
'store_true', help=
"Use CPU for ONNX inference")
21 parser.add_argument(
"--skip-onnx", action=
"store_true", default=
False, help=
"Skip ONNX inference step")
22 from MuonInference.InferenceConfig
import (
23 DEFAULT_BUCKET_MODEL_PATH,
24 DEFAULT_BUCKET_SCORE_THRESHOLD,
25 DEFAULT_BUCKET_SINGLE_OUTPUT_MODE,
27 parser.add_argument(
"--bucket-model-path", dest=
"bucket_model_path", default=DEFAULT_BUCKET_MODEL_PATH)
28 parser.add_argument(
"--score-threshold", type=float, default=DEFAULT_BUCKET_SCORE_THRESHOLD, dest=
"score_threshold")
29 parser.add_argument(
"--output-name", default=
"logits", dest=
"output_name")
30 score_mode = parser.add_mutually_exclusive_group()
31 score_mode.add_argument(
"--single-output-mode", choices=(
"logit",
"prob"), default=DEFAULT_BUCKET_SINGLE_OUTPUT_MODE, dest=
"single_output_mode",
32 help=
"Scalar ONNX-output interpretation. 'logit' applies sigmoid before thresholding.")
33 score_mode.add_argument(
"--is-logit", action=
"store_const", const=
"logit", dest=
"single_output_mode", help=
"alias for --single-output-mode logit.")
34 score_mode.add_argument(
"--is-prob", action=
"store_const", const=
"prob", dest=
"single_output_mode", help=
"alias for --single-output-mode prob.")
35 parser.set_defaults(nEvents = -1)
37 parser.set_defaults(outRootFile=
"MsTrkTester.root")
38 parser.set_defaults(inputFile=MuonPhaseIITestDefaults.HITS_PG_R3)
40 args = parser.parse_args()
41 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
42 flags = initConfigFlags()
43 flags.PerfMon.doFullMonMT =
not args.noPerfMon
44 flags.PerfMon.OutputJSON =
"perfmonmt_MuonR4Reco.json"
45 flags.Trigger.Muon.useNewRegionSelector =
False
47 from AthOnnxComps.OnnxRuntimeFlags
import OnnxRuntimeType
49 flags.AthOnnx.ExecutionProvider = OnnxRuntimeType.CPU
51 flags.AthOnnx.ExecutionProvider = OnnxRuntimeType.CUDA
53 flags, cfg = setupGeoR4TestCfg(args,flags)
55 from MuonConfig.ReconstructionConfigR4
import MuonReconstructionConfig
58 if not args.skip_onnx:
59 from MuonInference.InferenceConfig
import GraphBucketFilterToolCfg, GraphInferenceAlgCfg
60 bucketTool = cfg.popToolsAndMerge(
61 GraphBucketFilterToolCfg(
63 ModelPath=args.bucket_model_path,
64 ScoreThreshold=args.score_threshold,
65 OutputName=args.output_name,
66 SingleOutputMode=args.single_output_mode,
72 InferenceTools=[bucketTool],
75 cfg.getEventAlgo(
"MuonEtaHoughTransformAlg").SpacePointContainer =
"FilteredMlBuckets"
78 from MuonPatternRecognitionTest.PatternTestConfig
import LegacyMuonRecoChainCfg
81 cfg.merge(LegacyMuonRecoChainCfg(flags))
83 from MuonTrackFindingTest.MsTrackFindingTester
import MsTrackTesterCfg
84 cfg.merge(MsTrackTesterCfg(flags, scheduleLegacy = args.LegacyChain, outFile = args.outRootFile))
86 cfg.merge(setupHistSvcCfg(flags,outFile=args.outRootFile,
87 outStream=
"MuonEtaHoughTransformTest"))
89 from MuonPatternRecognitionTest.PatternTestConfig
import MuonHoughTransformTesterCfg, PatternVisualizationToolCfg
92 cfg.merge(MuonHoughTransformTesterCfg(flags,
93 VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags, CanvasLimits =0))))
96 if not args.noMonitorPlots:
97 from MuonTrackFindingTest.MsTrackFindingTester
import MsTrackVisualizationToolCfg
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=
False))
103 cfg.getEventAlgo(
"MuonNswSegmentFinderAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
104 CanvasPreFix=
"NswSegmentFitPlotValid", outSubDir=
"SegmentValidPlots",
105 doPhiBucketViews =
False, saveSinglePDFs =
False,
106 saveSummaryPDF=
False,CanvasLimits=10000))
109 cfg.getService(
"MessageSvc").setVerbose = []