7 """Configure the shared ONNX Runtime service used by MuonLearning tools."""
8 result = ComponentAccumulator()
9 kwargs.setdefault(
"LogLevel", 3)
10 svc = CompFactory.AthOnnx.OnnxRuntimeSvc(name, **kwargs)
11 result.addService(svc, primary=
False, create=
True)
15 result = ComponentAccumulator()
16 the_alg = CompFactory.MuonML.InferenceAlg(name, **kwargs)
17 result.addEventAlgo(the_alg, primary =
True)
22 from AthOnnxComps.OnnxRuntimeSessionConfig
import OnnxRuntimeSessionToolCfg
24 result = ComponentAccumulator()
25 kwargs.setdefault(
"ModelSession", result.popToolsAndMerge(OnnxRuntimeSessionToolCfg(flags, model_fname=
"/eos/atlas/atlascerngroupdisk/data-art/grid-input/MuonRecRTT/TestModel.onnx")))
26 kwargs.setdefault(
"MLFilterCut", -3.6)
28 the_tool = CompFactory.MuonML.GraphSPFilterTool(name, **kwargs)
29 result.setPrivateTools(the_tool)
34 from AthOnnxComps.OnnxRuntimeSessionConfig
import OnnxRuntimeSessionToolCfg
36 result = ComponentAccumulator()
37 model_path = kwargs.pop(
"ModelPath",
"dev/MuonRecRTT/edgecnn_multi_bucket_sparse_meta.onnx")
39 if not model_path.startswith(
'/'):
45 kwargs.setdefault(
"ModelSession", result.popToolsAndMerge(
46 OnnxRuntimeSessionToolCfg(flags, model_fname=model_path,
47 OnnxRuntimeSvc=result.getService(
"OnnxRuntimeSvc"))))
50 kwargs.setdefault(
"BiasClass0", 1.0)
51 kwargs.setdefault(
"OutputLevel", 3)
53 the_tool = CompFactory.MuonML.GraphBucketFilterTool(name, **kwargs)
54 result.setPrivateTools(the_tool)
59 from AthOnnxComps.OnnxRuntimeSessionConfig
import OnnxRuntimeSessionToolCfg
61 result = ComponentAccumulator()
62 model_path = kwargs.pop(
"ModelPath",
"MuonInference/models/edge_gnn_refit_top01_from_t0020.onnx")
64 kwargs.setdefault(
"ModelSession", result.popToolsAndMerge(
65 OnnxRuntimeSessionToolCfg(flags, model_fname=model_path,
66 OnnxRuntimeSvc=result.getService(
"OnnxRuntimeSvc"))))
68 kwargs.setdefault(
"InputNodeName",
"x")
69 kwargs.setdefault(
"InputEdgeIndexName",
"edge_index")
70 kwargs.setdefault(
"InputEdgeAttrName",
"edge_attr")
71 kwargs.setdefault(
"OutputName",
"logits")
72 kwargs.setdefault(
"MaxDeltaThetaDeg", 35.0)
73 kwargs.setdefault(
"MaxDeltaSector", 1)
74 kwargs.setdefault(
"SectorModulo", 16)
75 tool = CompFactory.MuonML.SegmentEdgeClassifierTool(name, **kwargs)
76 result.setPrivateTools(tool)
81 result = ComponentAccumulator()
85 kwargs.setdefault(
"EdgeThreshold", 0.25)
86 kwargs.setdefault(
"OverlapThreshold", 0.8)
87 kwargs.setdefault(
"UseRecoveryComponents",
True)
88 kwargs.setdefault(
"SymmetrizeDirectedEdges",
True)
89 kwargs.setdefault(
"AddAllSegmentsRecoveryCandidate",
False)
90 kwargs.setdefault(
"KeepIsolatedSegments",
False)
91 kwargs.setdefault(
"MinCandidateSize", 2)
92 tool = CompFactory.MuonML.SegmentTrackCandidateBuilderTool(name, **kwargs)
93 result.setPrivateTools(tool)
98 result = ComponentAccumulator()
102 edge_tool_kwargs = {}
103 if "EdgeModelPath" in kwargs:
104 edge_tool_kwargs[
"ModelPath"] = kwargs.pop(
"EdgeModelPath")
106 if isinstance(kwargs.get(
"EdgeClassifierTool"), dict):
107 edge_tool_kwargs.update(kwargs.pop(
"EdgeClassifierTool"))
109 candidate_builder_kwargs = {}
110 for key
in (
"EdgeThreshold",
112 "UseRecoveryComponents",
113 "SymmetrizeDirectedEdges",
114 "AddAllSegmentsRecoveryCandidate",
115 "KeepIsolatedSegments",
118 candidate_builder_kwargs[key] = kwargs.pop(key)
120 if isinstance(kwargs.get(
"CandidateBuilderTool"), dict):
121 candidate_builder_kwargs.update(kwargs.pop(
"CandidateBuilderTool"))
123 if "EdgeClassifierTool" not in kwargs:
124 kwargs[
"EdgeClassifierTool"] = result.popToolsAndMerge(
126 kwargs.setdefault(
"CandidateBuilderTool", result.popToolsAndMerge(
128 kwargs.setdefault(
"SegmentKey",
"MuonSegmentsFromR4")
129 kwargs.setdefault(
"CandidateDecoration",
"MuonSegmentsFromR4.trackCandidateIds")
130 alg = CompFactory.MuonML.SegmentEdgeInferenceAlg(name=name, **kwargs)
131 result.addEventAlgo(alg, primary=
True)