-
MuonRecoChainTester - Pointer based truth matching
MuonRecoChainTester - Pointer based truth matching
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
MuonRecoChainTesterConfig.py 4.93 KiB
# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaborationation
if __name__=="__main__":
from MuonGeoModelTestR4.testGeoModel import setupGeoR4TestCfg, SetupArgParser, executeTest,setupHistSvcCfg
parser = SetupArgParser()
parser.set_defaults(nEvents = -1)
parser.set_defaults(noMM=True)
parser.set_defaults(noSTGC=True)
parser.set_defaults(outRootFile="RecoChainTester.root")
# parser.set_defaults(condTag="CONDBR2-BLKPA-2023-03")
parser.set_defaults(inputFile=[
"/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MuonGeomRTT/R3SimHits.pool.root"
# "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/TCT_Run3/data22_13p6TeV.00431493.physics_Main.daq.RAW._lb0525._SFO-16._0001.data"
])
parser.set_defaults(eventPrintoutLevel = 500)
parser.add_argument("--monitorPlots", action='store_true', default=False,
help="Setup monitoring plots of the pattern recognition")
parser.add_argument("--runVtune",
help="runs VTune profiler service for the muon hough alg", action='store_true', default = False)
args = parser.parse_args()
from AthenaConfiguration.AllConfigFlags import initConfigFlags
flags = initConfigFlags()
# flags.PerfMon.doFullMonMT = True
flags, cfg = setupGeoR4TestCfg(args,flags)
cfg.merge(setupHistSvcCfg(flags,outFile=args.outRootFile,
outStream="MuonEtaHoughTransformTest"))
from MuonConfig.MuonDataPrepConfig import xAODUncalibMeasPrepCfg
cfg.merge(xAODUncalibMeasPrepCfg(flags))
from MuonSpacePointFormation.SpacePointFormationConfig import MuonSpacePointFormationCfg
cfg.merge(MuonSpacePointFormationCfg(flags))
### Build segments from the leagcy chain
from MuonPatternRecognitionTest.PatternTestConfig import LegacyMuonRecoChainCfg
cfg.merge(LegacyMuonRecoChainCfg(flags))
### Setup the new chain
from MuonPatternRecognitionAlgs.MuonHoughTransformAlgConfig import MuonPatternRecognitionCfg, MuonSegmentFittingAlgCfg
cfg.merge(MuonPatternRecognitionCfg(flags))
cfg.merge(MuonSegmentFittingAlgCfg(flags))
from MuonPatternRecognitionTest.PatternTestConfig import MuonR4PatternRecoChainCfg, MuonR4SegmentRecoChainCfg
cfg.merge(MuonR4PatternRecoChainCfg(flags))
### What happens if you parse the R4 patterns to the legacy chain?
cfg.merge(MuonR4SegmentRecoChainCfg(flags))
from MuonPatternRecognitionTest.PatternTestConfig import TrackTruthMatchCfg
cfg.merge(TrackTruthMatchCfg(flags))
from MuonPatternRecognitionTest.PatternTestConfig import MuonRecoChainTesterCfg
cfg.merge(MuonRecoChainTesterCfg(flags))
if args.runVtune:
from PerfMonVTune.PerfMonVTuneConfig import VTuneProfilerServiceCfg
cfg.merge(VTuneProfilerServiceCfg(flags, ProfiledAlgs=["MuonHoughTransformAlg"]))
## cfg.getService("MessageSvc").setVerbose = ["TrackBuildingFromR4Segments", "TrackBuildingFromHoughR4", "MuonR4SegmentCnvAlg" ]
if args.monitorPlots:
from MuonPatternRecognitionTest.PatternTestConfig import PatternVisualizationToolCfg
cfg.getEventAlgo("MuonEtaHoughTransformAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
CanvasPreFix="EtaHoughPlotValid",
AllCanvasName="AllEtaHoughiDiPuffPlots", doPhiBucketViews = False,
displayTruthOnly = True, saveSinglePDFs = False, saveSummaryPDF= False))
cfg.getEventAlgo("MuonPhiHoughTransformAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
CanvasPreFix="PhiHoughPlotValid",
AllCanvasName="AllPhiHoughiDiPuffPlots",doEtaBucketViews = False,
displayTruthOnly = True, saveSinglePDFs = False, saveSummaryPDF= False))
cfg.getEventAlgo("MuonSegmentFittingAlg").VisualizationTool = cfg.popToolsAndMerge(PatternVisualizationToolCfg(flags,
CanvasPreFix="SegmentPlotValid",
AllCanvasName="AllSegmentFitPlots", doPhiBucketViews = False,
displayTruthOnly = True, saveSinglePDFs = True, saveSummaryPDF= False))
executeTest(cfg)