ATLAS Offline Software
Loading...
Searching...
No Matches
muonEdgeRecoChain Namespace Reference

Functions

 main (args)

Variables

 parser = SetupArgParser()
 nEvents
 inputFile
 outRootFile
 help
 action
 default
 False
 type
 float
 dest
 int
 BooleanOptionalAction
 args = parser.parse_args()

Function Documentation

◆ main()

main ( args)

Definition at line 8 of file muonEdgeRecoChain.py.

8def main(args):
9 from MuonGeoModelTestR4.testGeoModel import setupGeoR4TestCfg
10 from MuonConfig.MuonConfigUtils import executeTest, setupHistSvcCfg
11 from AthenaConfiguration.AllConfigFlags import initConfigFlags
12 flags = initConfigFlags()
13 flags.PerfMon.doFullMonMT = not args.noPerfMon
14 flags.PerfMon.OutputJSON = "perfmonmt_MuonR4Reco.json"
15 flags.Trigger.Muon.useNewRegionSelector = False
16
17 run_edge_classifier = not args.skip_onnx
18 run_ml_seeder = args.useMlSeeder and run_edge_classifier
19 filter_segment_container = args.filterSegmentsWithoutMlConnections and run_edge_classifier
20 filtered_segment_key = "MsSegmentsMlConnected"
21
22 if args.skip_onnx and args.useMlSeeder:
23 print("INFO: --skip-onnx requested. Switching to the standard seeder for the non-ONNX baseline.")
24
25 if args.athenaDebug:
26 flags.Exec.DebugMessageComponents = [
27 "SegmentEdgeInferenceAlg",
28 "SegmentEdgeInferenceAlg.SegmentEdgeClassifierTool",
29 "SegmentEdgeInferenceAlg.SegmentEdgeClassifierTool.OnnxRuntimeSessionToolCPU",
30 "SegmentEdgeInferenceAlg.SegmentEdgeClassifierTool.OnnxRuntimeSessionToolCUDA",
31 "MSTrackFinderAlg.MlMsTrackSeeder",
32 ]
33
34 from AthOnnxComps.OnnxRuntimeFlags import OnnxRuntimeType
35 flags.AthOnnx.ExecutionProvider = OnnxRuntimeType.CUDA if run_edge_classifier else OnnxRuntimeType.CPU
36
37 flags, cfg = setupGeoR4TestCfg(args, flags)
38
39 if not args.skipTrackTester:
40 cfg.merge(setupHistSvcCfg(flags, outFile=args.outRootFile,
41 outStream="MuonTrackTester"))
42
43 output_level = 1 if args.athenaDebug else 3
44
45 from MuonConfig.ReconstructionConfigR4 import MuonReconstructionConfig
46 cfg.merge(MuonReconstructionConfig(flags))
47
48 if run_edge_classifier:
49 if args.truthDiagnostics and not flags.Input.isMC:
50 print("WARNING: --truthDiagnostics requested on non-MC input.")
51 from MuonInference.InferenceConfig import SegmentEdgeInferenceAlgCfg
52 edge_inference_kwargs = {
53 "EdgeClassifierTool": {
54 "ModelPath": args.edgeModel,
55 "ReadSpacePoints": "MuonSpacePoints",
56 # These cuts run before ONNX
57 "MaxSegmentsPerBucket": args.maxSegmentsPerBucket,
58 "MaxEdgesPerNodeBeforeInference": 6,
59 "MaxEdgesPerTargetChamberBeforeInference": args.maxEdgesPerTargetChamber,
60 "EnableTruthDiagnostics": args.truthDiagnostics,
61 },
62 "PairGateDecoration": "MsSegments.mlTrackComponent",
63 "PairGateThreshold": args.edgeThreshold,
64 "MaxEdgesPerNodePerLayer": args.maxEdgesPerLayer,
65 # One anchor per component: the innermost segment with the strongest cross-layer edge
66 "SeedAnchorsPerComponent": 1,
67 "AnchorInnermostLayer": True,
68 "KeepBestSegmentPerChamber": not args.keepAllSegmentsPerChamber,
69 "OutputLevel": output_level,
70 }
71 if filter_segment_container:
72 edge_inference_kwargs["FilteredSegmentKey"] = filtered_segment_key
73 cfg.merge(SegmentEdgeInferenceAlgCfg(flags, **edge_inference_kwargs))
74
75 ms_track_finder = cfg.getEventAlgo("MSTrackFinderAlg")
76 ms_track_finder.OutputLevel = 3
77 if run_ml_seeder:
78 from MuonTrackFindingAlgs.TrackFindingConfig import MsTrackSeedingToolCfg, SegmentSelectorCfg
79 from AthenaConfiguration.ComponentFactory import CompFactory
80 baseline_seeder = cfg.popToolsAndMerge(MsTrackSeedingToolCfg(flags))
81 ms_track_finder.SeedingTool = CompFactory.MuonR4.MlMsTrackSeeder(
82 "MlMsTrackSeeder",
83 BaselineSeeder=baseline_seeder,
84 SegmentContainer="MsSegments",
85 CandidateDecoration="mlTrackComponent",
86 SegmentSelectionTool=cfg.popToolsAndMerge(SegmentSelectorCfg(flags)),
87 TwoSegmentMinComponentScore=args.mlTwoSegMinScore,
88 ExtraClusterSeeds=args.mlExtraClusterSeeds,
89 ExtraClusterMinScore=args.mlExtraClusterMinScore,
90 InnerPointingMaxDeg=args.mlInnerPointingMaxDeg,
91 InnerRescueWindow=args.mlInnerRescueWindow,
92 InnerRescueMaxDeg=args.mlInnerRescueMaxDeg,
93 VariantSeeds=args.mlVariantSeeds,
94 VariantMinLayers=args.mlVariantMinLayers,
95 VariantMaxPointingDeg=args.mlVariantMaxPointingDeg,
96 VariantMinScore=args.mlVariantMinScore,
97 EnableTruthDiagnostics=args.truthDiagnostics and flags.Input.isMC,
98 OutputLevel=2 if args.athenaDebug else 3,
99 )
100 elif filter_segment_container:
101 ms_track_finder.SeedingTool.SegmentContainer = filtered_segment_key
102
103 if not args.skipTrackTester:
104 from MuonTrackFindingTest.MsTrackFindingTester import MsTrackTesterCfg
105 cfg.merge(MsTrackTesterCfg(flags, scheduleLegacy=False, outFile=args.outRootFile))
106
107 cfg.printConfig(withDetails=True, summariseProps=True)
108 executeTest(cfg)
109
110
void print(char *figname, TCanvas *c1)
int main()
Definition hello.cxx:18

Variable Documentation

◆ action

muonEdgeRecoChain.action

Definition at line 118 of file muonEdgeRecoChain.py.

◆ args

muonEdgeRecoChain.args = parser.parse_args()

Definition at line 182 of file muonEdgeRecoChain.py.

◆ BooleanOptionalAction

muonEdgeRecoChain.BooleanOptionalAction

Definition at line 151 of file muonEdgeRecoChain.py.

◆ default

muonEdgeRecoChain.default

Definition at line 120 of file muonEdgeRecoChain.py.

◆ dest

muonEdgeRecoChain.dest

Definition at line 130 of file muonEdgeRecoChain.py.

◆ False

muonEdgeRecoChain.False

Definition at line 122 of file muonEdgeRecoChain.py.

◆ float

muonEdgeRecoChain.float

Definition at line 124 of file muonEdgeRecoChain.py.

◆ help

muonEdgeRecoChain.help

Definition at line 117 of file muonEdgeRecoChain.py.

◆ inputFile

muonEdgeRecoChain.inputFile

Definition at line 115 of file muonEdgeRecoChain.py.

◆ int

muonEdgeRecoChain.int

Definition at line 137 of file muonEdgeRecoChain.py.

◆ nEvents

muonEdgeRecoChain.nEvents

Definition at line 114 of file muonEdgeRecoChain.py.

◆ outRootFile

muonEdgeRecoChain.outRootFile

Definition at line 116 of file muonEdgeRecoChain.py.

◆ parser

muonEdgeRecoChain.parser = SetupArgParser()

Definition at line 113 of file muonEdgeRecoChain.py.

◆ type

muonEdgeRecoChain.type

Definition at line 124 of file muonEdgeRecoChain.py.