3from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory
import CompFactory
7 outFile="MsTrkTester.root", **kwargs):
8 result = ComponentAccumulator()
9 kwargs.setdefault(
"isMC", flags.Input.isMC)
10 from MuonConfig.MuonConfigUtils
import setupHistSvcCfg
12 result.merge(setupHistSvcCfg(flags, outFile=outFile,
13 outStream=
"MuonTrackTester"))
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)
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)))
40 the_tool = CompFactory.MuonValR4.TrackVisualizationTool(name, **kwargs)
41 result.setPrivateTools(the_tool)
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,
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)
58 parser.set_defaults(outRootFile=
"MsTrkTester.root")
59 parser.set_defaults(inputFile=MuonPhaseIITestDefaults.RDO_R3)
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
69 from ActsConfig.ActsConfigFlags
import TrackFitterType
70 if False: flags.Muon.TrackFitterType = TrackFitterType.KalmanFitter
71 if False: flags.Muon.trackGeometryMaterialMap = MuonPhaseIITestDefaults.TRKGEO_MATERIALMAP
73 flags, cfg = setupGeoR4TestCfg(args,flags)
75 cfg.getService(
"MessageSvc").setVerbose = [
"MSTrackFinderAlg"]
76 cfg.getService(
"MessageSvc").setVerbose = []
77 from MuonConfig.ReconstructionConfigR4
import MuonReconstructionConfig
80 if not args.noLegacyChain:
81 from MuonPatternRecognitionTest.PatternTestConfig
import LegacyMuonRecoChainCfg
82 cfg.merge(LegacyMuonRecoChainCfg(flags))
87 cfg.merge(setupHistSvcCfg(flags,outFile=args.outRootFile,
88 outStream=
"MuonEtaHoughTransformTest"))
90 from MuonPatternRecognitionTest.PatternTestConfig
import MuonHoughTransformTesterCfg, PatternVisualizationToolCfg
93 cfg.merge(MuonHoughTransformTesterCfg(flags,
94 VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags, CanvasLimits =0))))
97 if not args.noMonitorPlots:
99 cfg.getEventAlgo(
"MuonSegmentFittingAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
100 CanvasPreFix=
"SegmentPlotValid", outSubDir=
"SegmentValidPlots",
101 displayTruthOnly =
True, saveSinglePDFs =
False, saveSummaryPDF=
True))
103 cfg.getEventAlgo(
"MuonNswSegmentFinderAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
104 CanvasPreFix=
"NswSegmentFitPlotValid", outSubDir=
"SegmentValidPlots",
105 doPhiBucketViews =
False, saveSinglePDFs =
False,
106 saveSummaryPDF=
True,CanvasLimits=10000))
108 cfg.getEventAlgo(
"MuonEtaHoughTransformAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
109 CanvasPreFix=
"EtaHoughPlotValid", doPhiBucketViews =
False,
110 outSubDir=
"EtaHoughiDiPuffPlots", displayTruthOnly =
True,
111 saveSinglePDFs =
True, saveSummaryPDF=
True))
113 cfg.getEventAlgo(
"MuonSegmentFittingAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
114 CanvasPreFix=
"SegmentPlotValid", outSubDir=
"SegmentValidPlots",
115 displayTruthOnly =
True, saveSinglePDFs =
True, saveSummaryPDF=
True))
MsTrackVisualizationToolCfg(flags, name="VisualizationTool", **kwargs)
MsTrackTesterCfg(flags, name="MsTrackTester", scheduleLegacy=True, outFile="MsTrkTester.root", **kwargs)