7 result = ComponentAccumulator()
9 SpacePointContainers = [
"MuonSpacePoints"]
10 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
11 SpacePointContainers += [
"NswSpacePoints"]
12 kwargs.setdefault(
"InSpacePoints", SpacePointContainers)
14 from MuonSpacePointCalibrator.CalibrationConfig
import MuonSpacePointCalibratorCfg
15 kwargs.setdefault(
"Calibrator", result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
17 kwargs.setdefault(
"MinBendingTriggerLayers", 1)
18 kwargs.setdefault(
"MinBendingPrecisionLayers", 8)
19 kwargs.setdefault(
"MinPhiLayers", 1)
21 from MuonTrackFindingAlgs.TrackFindingConfig
import MsTrackSeedingToolCfg
22 kwargs.setdefault(
"SeedingTool", result.popToolsAndMerge(MsTrackSeedingToolCfg(flags)))
24 theAlg = CompFactory.MuonR4.FastReconstructionAlg(name, **kwargs)
25 result.addEventAlgo(theAlg, primary=
True)
29 result = ComponentAccumulator()
30 from ActsAlignmentAlgs.AlignmentAlgsConfig
import ActsGeometryContextAlgCfg
31 result.merge(ActsGeometryContextAlgCfg(flags))
33 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig
import MuonEtaHoughTransformAlgCfg, MuonNSWSegmentFinderAlgCfg, MuonPhiHoughTransformAlgCfg, MuonSegmentFittingAlgCfg
34 segmentContainers = []
35 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
36 segmentContainers+=[
"MuonNswSegments"]
37 result.merge(MuonEtaHoughTransformAlgCfg(flags, name=f
"MuonNswEtaHoughTransformAlg{suffix}",
38 EtaHoughMaxContainer =
"MuonHoughNswMaxima",
39 SpacePointContainer =
"NswSpacePointsFastReco"))
40 result.merge(MuonNSWSegmentFinderAlgCfg(flags, name=f
"MuonNswSegmentFinderAlg{suffix}",
41 MuonNswSegmentWriteKey = segmentContainers[-1],
42 MuonNswSegmentSeedWriteKey =
"MuonNswSegmentSeeds",
43 CombinatorialReadKey =
"MuonHoughNswMaxima"))
45 if flags.Detector.GeometryMDT
or flags.Detector.GeometryRPC
or flags.Detector.GeometryTGC:
46 result.merge(MuonEtaHoughTransformAlgCfg(flags, name = f
"MuonEtaHoughTransformAlg{suffix}",
47 SpacePointContainer =
"MuonSpacePointsFastReco"))
48 result.merge(MuonPhiHoughTransformAlgCfg(flags, name = f
"MuonPhiHoughTransformAlg{suffix}"))
49 segmentContainers+=[
"R4MuonSegments"]
51 result.merge(MuonSegmentFittingAlgCfg(flags,
52 name = f
"MuonSegmentFittingAlg{suffix}",
53 OutSegmentContainer=segmentContainers[-1]))
55 from MuonSegmentCnv.MuonSegmentCnvConfig
import xAODSegmentCnvAlgCfg
56 result.merge(xAODSegmentCnvAlgCfg(flags, name = f
"MuonR4xAODSegmentCnvAlg{suffix}", InSegmentKeys = segmentContainers))
57 if flags.Muon.setupTruthAlgorithms:
58 from MuonTruthAlgsR4.MuonTruthAlgsConfig
import RecoSegmentTruthAssocCfg
59 result.merge(RecoSegmentTruthAssocCfg(flags,
60 name=f
"MuonSegmentsFromR4TruthMatching{suffix}",
61 SegmentKey=
"MuonSegmentsFromR4"))
62 if flags.Muon.scheduleActsReco:
63 from MuonSegmentCnv.MuonSegmentCnvConfig
import MuonR4SegmentCnvAlgCfg
64 result.merge(MuonR4SegmentCnvAlgCfg(flags,
65 name=f
"MuonR4SegmentCnvAlg{suffix}",
66 ReadSegments = segmentContainers,
67 WriteKey=
"TrackMuonSegments"))