ATLAS Offline Software
Loading...
Searching...
No Matches
MuonFastReconstructionAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONR4_MUONFASTRECOALGS_MUONFASTRECONSTRUCTIONALG__H
5#define MUONR4_MUONFASTRECOALGS_MUONFASTRECONSTRUCTIONALG__H
6
9
13
18
19namespace MuonR4{
20
33
35 public:
36 using AthReentrantAlgorithm::AthReentrantAlgorithm;
37 virtual ~FastReconstructionAlg() = default;
38
39 virtual StatusCode initialize() override;
40 virtual StatusCode execute(const EventContext& ctx) const override;
41
42 private:
47
49 SG::ReadHandleKeyArray<SpacePointContainer> m_inSpacePoints{this, "InSpacePoints", {"MuonSpacePoints"}, "List of space point containers to read"};
51 SG::WriteHandleKeyArray<SpacePointContainer> m_outSpacePoints{this, "OutSpacePoints", {}, "List of space point containers to write"};
53 StringProperty m_outSpacePointSuffix{this, "OutSpacePointSuffix", "FastReco", "Suffix to add to input space point container names to create the output ones, when not provided"};
55 SG::WriteHandleKey<GlobalPatternContainer> m_outPatterns{this, "OutPatternContainer", "R4MuonGlobalPatterns"};
57 SG::WriteHandleKey<xAOD::MuonContainer> m_outMuons{this, "OutMuons", "R4FastRecoSAMuons", "List of fast muon containers to write"};
59 ActsTrk::GeoContextReadKey_t m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
61 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
63 ToolHandle<ISpacePointCalibrator> m_calibTool{this, "Calibrator", "" };
65 ToolHandle<MuonValR4::IFastRecoVisualizationTool> m_patVisionTool{this, "VisualizationTool", ""};
67 ToolHandle<MuonValR4::IPatternVisualizationTool> m_segVisionTool{this, "SegmentVisualizationTool", ""};
69 ToolHandle<ITrackSeedingTool> m_seedingTool{this, "SeedingTool", ""};
70
73 BooleanProperty m_useMdtHits {this, "UseMdtHits", true, "Activate the utilization of MDT hits to build patterns"};
75 BooleanProperty m_seedFromMdt {this, "SeedFromMdt", false, "Activate the seeding from MDT hits"};
77 BooleanProperty m_seedFromInner {this, "SeedFromInner", false, "Activate the seeding from Inner station"};
79 DoubleProperty m_thetaSearchWindow {this, "ThetaWindowSearch", 0.06, "Size of the search window in theta to link hits to a pattern"};
81 DoubleProperty m_baseResidualSigma {this, "BaseResidualSigma", 35, "Effective isotropic position uncertainty [mm], including detector resolution and unmodelled effects"};
83 DoubleProperty m_phiTolerance {this, "PhiTolerance", 0.05, "Maximum allowed phi difference between two hits to be considered compatible"};
85 UnsignedIntegerProperty m_minTriggerLayers {this, "MinBendingTriggerLayers", 2, "Minimum number of trigger layers in the bending direction required to accept a pattern"};
87 UnsignedIntegerProperty m_minPrecisionLayers {this, "MinBendingPrecisionLayers", 8, "Minimum number of precision layers in the bending direction required to accept a pattern"};
89 UnsignedIntegerProperty m_minPhiLayers {this, "MinPhiLayers", 1, "Minimum number of phi layers required to accept a pattern"};
91 UnsignedIntegerProperty m_minStationLayers {this, "MinStationLayers", 5, "Minimum number of layers in a station to be considered a good station"};
93 DoubleProperty m_meanNormRes2Cut {this, "meanNormRes2Cut", 0.2, "Quality cut on pattern'mean squared normalized residual"};
95 UnsignedIntegerProperty m_maxSeedAttempts {this, "MaxSeedAttempts", 3, " Maximum number of attempts to build a pattern from hits already used in existing patterns"};
97 UnsignedIntegerProperty m_maxMissLayersInStation {this, "MaxMissedLayerHits", 3, "Maximum number of missed candidate hits in different measurement layers during pattern building allowed for a pattern branch before it is discarded"};
99 DoubleProperty m_minHitDistance4Line {this, "MinHitDistance4Line",40, "Minimum distance (in mm) between two hits for being used to compute a reliable pattern line. Use the beamspot otherwise."};
100
103 BooleanProperty m_recalibInFit{this, "recalibInFit" , false};
105 BooleanProperty m_hessianResidual{this, "useHessianResidual", false};
107 DoubleProperty m_seedHitChi2{this, "ResoSeedHitAssoc", 5. };
110 BooleanProperty m_recalibSeed{this, "SeedRecalibrate", false};
112 DoubleProperty m_goodSegmentCut{this, "GoodSegmentCut", 2.};
114 DoubleProperty m_outlierRemovalCut{this, "OutlierRemoval", 3.};
116 DoubleProperty m_recoveryPull{this, "RecoveryPull", 3.};
118 UnsignedIntegerProperty m_precHitCut{this, "PrecHitCut" , 3};
120 BooleanProperty m_useFastFitter{this, "useFastFitter", false};
122 BooleanProperty m_fastPreFitter{this, "useFastPreFitter", false};
124 BooleanProperty m_ignoreFailedPreFit{this, "ignoreFailedPreFit", false};
126 UnsignedIntegerProperty m_maxIter{this, "maxIterations", 50};
127
128
129
131 std::unique_ptr<FastReco::GlobalPatternFinder> m_globPatFinder{};
133 std::unique_ptr<FastReco::FastMuonSABuilder> m_saBuilder{};
134
135
136
137 };
138}
139
140
141#endif
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
std::vector< const SpacePointContainer * > SpacePointContainerVec
Abrivation for a vector of space-point containers.
std::vector< GlobalPattern > PatternVec
Abrivation for a vector of global patterns.
Algorithm executing Phase-2 fast reconstruction.
DoubleProperty m_phiTolerance
Maximum phi difference [rad] allowed between two hits belonging to the same pattern.
virtual StatusCode execute(const EventContext &ctx) const override
SG::WriteHandleKeyArray< SpacePointContainer > m_outSpacePoints
Write handle key for the output buckets.
DoubleProperty m_recoveryPull
Pull value for hit recovery.
ToolHandle< MuonValR4::IFastRecoVisualizationTool > m_patVisionTool
Handle to the visualization tool for global patterns.
virtual ~FastReconstructionAlg()=default
DoubleProperty m_outlierRemovalCut
Cut on the segment chi2 / nDoF to launch the outlier removal.
std::unique_ptr< FastReco::FastMuonSABuilder > m_saBuilder
Pointer to the FastMuonSABuilder.
BooleanProperty m_fastPreFitter
The fast fitter is treated as a pre fitter.
BooleanProperty m_recalibInFit
-----------------------— Configuration options for segment fitter ----------------------—
ActsTrk::GeoContextReadKey_t m_geoCtxKey
Geometry context key.
UnsignedIntegerProperty m_maxMissLayersInStation
Maximum number of missed candidate hits in different measurement layers during pattern building allow...
BooleanProperty m_seedFromMdt
Toggle the seeding from MDT hits.
ToolHandle< MuonValR4::IPatternVisualizationTool > m_segVisionTool
Handle to the visualization tool for segments.
UnsignedIntegerProperty m_minTriggerLayers
Requirement on trigger layers in the bending direction to accept a pattern.
SG::ReadHandleKeyArray< SpacePointContainer > m_inSpacePoints
Keys of SpacePoint containers to read.
DoubleProperty m_meanNormRes2Cut
Quality cut on pattern'mean squared normalized residual.
UnsignedIntegerProperty m_precHitCut
Minimum number of precision hits to accept the segment.
BooleanProperty m_useMdtHits
--------------— Configuration options for the global pattern finder --------------—
std::unique_ptr< FastReco::GlobalPatternFinder > m_globPatFinder
Pointer to the actual global pattern finder.
UnsignedIntegerProperty m_minStationLayers
Minimum number of layers in a station to be considered a good station.
StringProperty m_outSpacePointSuffix
Suffix to add to the input space point container names to create the output container names,...
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Handle to the MuonIdHelper service.
DoubleProperty m_goodSegmentCut
Reduced chi2 defining a good segment, stopping the fit of other segments in the same station.
BooleanProperty m_recalibSeed
Toggle seed recalibration.
ToolHandle< ISpacePointCalibrator > m_calibTool
Handle to the space point calibrator tool.
BooleanProperty m_seedFromInner
Activate the seeding from Inner station.
UnsignedIntegerProperty m_maxSeedAttempts
Maximum number of attempts to build a pattern from hits already used in existing patterns.
DoubleProperty m_minHitDistance4Line
Minimum distance [mm] between two hits for being used to compute a reliable pattern line.
DoubleProperty m_seedHitChi2
Two mdt seeds are the same if their defining parameters match wihin.
SG::WriteHandleKey< GlobalPatternContainer > m_outPatterns
Write handle key for the output global patterns.
DoubleProperty m_baseResidualSigma
Effective isotropic position uncertainty [mm], including detector resolution and unmodelled effects.
UnsignedIntegerProperty m_minPhiLayers
Minimum number of phi layers required to accept a pattern.
ToolHandle< ITrackSeedingTool > m_seedingTool
The track seeding tool to construct the seed candidates and to estimate the initial parameters.
UnsignedIntegerProperty m_minPrecisionLayers
Requirement on precision layers in the bending direction to accept a pattern.
FastReco::GlobalPatternFinder::SpacePointContainerVec SpacePointContainerVec
Abrivation for a vector of space-point containers.
SG::WriteHandleKey< xAOD::MuonContainer > m_outMuons
Write handle key for the output Fast Reco SA muons.
BooleanProperty m_ignoreFailedPreFit
Switch to try the full fit when the fast pre-fitter fails.
BooleanProperty m_hessianResidual
Use the expliciit Hessian in the residual calculation.
UnsignedIntegerProperty m_maxIter
Tune the number of iterations.
virtual StatusCode initialize() override
BooleanProperty m_useFastFitter
Use the fast Mdt fitter where possible.
FastReco::GlobalPatternFinder::PatternVec PatternVec
Abrivation for a vector of global patterns.
DoubleProperty m_thetaSearchWindow
Size of theta window [rad] to search for compatible hits with a seed, tailored to the target pt cutof...
Property holding a SG store/key/clid from which a WriteHandle is made.
SG::ReadHandleKey< GeometryContext > GeoContextReadKey_t
Abrivate the ReadHandleKey to declare the data dependency on the Geometry context.
This header ties the generic definitions in this package.
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray