ATLAS Offline Software
Loading...
Searching...
No Matches
SegmentFittingAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONR4_MUONPATTERNRECOGNTIONALGS_SEGMENTFITTINGALG__H
5#define MUONR4_MUONPATTERNRECOGNTIONALGS_SEGMENTFITTINGALG__H
6
7
11
12
16
20
23
25
26
27#include <set>
28
29
30namespace MuonR4 {
35 public:
36 using AthReentrantAlgorithm::AthReentrantAlgorithm;
38 virtual StatusCode initialize() override;
39 virtual StatusCode execute(const EventContext& ctx) const override;
40 private:
42
43 std::vector<std::unique_ptr<Segment>> fitSegmentSeed(const EventContext& ctx,
44 const ActsTrk::GeometryContext& gctx,
45 const SegmentSeed* seed) const;
46
48 std::vector<std::unique_ptr<Segment>>& segmentCandidates) const;
49
51 SG::ReadHandleKey<SegmentSeedContainer> m_seedKey{this, "ReadKey", "MuonHoughStationSegmentSeeds"};
52 // write handle key for the output segment seeds
53 SG::WriteHandleKey<SegmentContainer> m_outSegments{this, "OutSegmentContainer", "R4MuonSegments"};
54 // access to the ACTS geometry context
55 SG::ReadHandleKey<ActsTrk::GeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
57 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
59 ToolHandle<ISpacePointCalibrator> m_calibTool{this, "Calibrator", "" };
61 ToolHandle<MuonValR4::IPatternVisualizationTool> m_visionTool{this, "VisualizationTool", ""};
62
63 Gaudi::Property<bool> m_doT0Fit{this, "fitSegmentT0", true};
64 Gaudi::Property<bool> m_recalibInFit{this, "recalibInFit" , false};
66 Gaudi::Property<bool> m_tryPatternPars{this, "tryPatternPars", false};
68 Gaudi::Property<bool> m_hessianResidual{this, "useHessianResidual", false};
70 Gaudi::Property<bool> m_doBeamspotConstraint{this, "doBeamspotConstraint", false};
71 Gaudi::Property<double> m_beamSpotR{this, "BeamSpotRadius", 30.* Gaudi::Units::cm};
72 Gaudi::Property<double> m_beamSpotL{this, "BeamSpotLength", 2. * Gaudi::Units::m};
73
74
76 Gaudi::Property<double> m_seedHitChi2{this, "ResoSeedHitAssoc", 5. };
79 Gaudi::Property<bool> m_recalibSeed{this, "SeedRecalibrate", false};
81 Gaudi::Property<double> m_outlierRemovalCut{this, "OutlierRemoval", 5.};
82 Gaudi::Property<double> m_recoveryPull{this, "RecoveryPull", 5.};
84 Gaudi::Property<unsigned> m_precHitCut{this, "PrecHitCut" , 3};
86 Gaudi::Property<bool> m_useFastFitter{this, "useFastFitter", true};
88 Gaudi::Property<bool> m_fastPreFitter{this, "useFastPreFitter", false};
90 Gaudi::Property<unsigned> m_maxIter{this, "maxIterations", 50};
92 std::unique_ptr<SegmentFit::SegmentAmbiSolver> m_ambiSolver{};
94 std::unique_ptr<SegmentFit::SegmentLineFitter> m_fitter{};
95
96 };
97}
98
99
100#endif
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
Algorithm to handle segment fits.
std::unique_ptr< SegmentFit::SegmentAmbiSolver > m_ambiSolver
Pointer to the ambiguity reosolution.
Gaudi::Property< unsigned > m_precHitCut
Minimum number of precision hits to accept the segment.
Gaudi::Property< bool > m_hessianResidual
Use the expliciit Hessian in the residual calculation.
virtual StatusCode initialize() override
Gaudi::Property< bool > m_recalibSeed
Toggle seed recalibration.
Gaudi::Property< double > m_seedHitChi2
Two mdt seeds are the same if their defining parameters match wihin.
Gaudi::Property< bool > m_useFastFitter
Use the fast Mdt fitter where possible.
ToolHandle< MuonValR4::IPatternVisualizationTool > m_visionTool
Pattern visualization tool.
Gaudi::Property< double > m_beamSpotL
Gaudi::Property< bool > m_recalibInFit
SG::WriteHandleKey< SegmentContainer > m_outSegments
Gaudi::Property< bool > m_fastPreFitter
The fast fitter is treated as a pre fitter.
std::vector< std::unique_ptr< Segment > > fitSegmentSeed(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, const SegmentSeed *seed) const
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
IdHelperSvc.
Gaudi::Property< bool > m_doBeamspotConstraint
Add beamline constraint.
ToolHandle< ISpacePointCalibrator > m_calibTool
Handle to the space point calibrator.
std::unique_ptr< SegmentFit::SegmentLineFitter > m_fitter
Pointer to the actual segment fitter.
SegmentFit::Parameters Parameters
Gaudi::Property< bool > m_doT0Fit
SG::ReadHandleKey< SegmentSeedContainer > m_seedKey
ReadHandle of the seeds.
Gaudi::Property< double > m_recoveryPull
void resolveAmbiguities(const ActsTrk::GeometryContext &gctx, std::vector< std::unique_ptr< Segment > > &segmentCandidates) const
Gaudi::Property< double > m_beamSpotR
Gaudi::Property< unsigned > m_maxIter
Tune the number of iterations.
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
Gaudi::Property< double > m_outlierRemovalCut
Cut on the segment chi2 / nDoF to launch the outlier removal.
Gaudi::Property< bool > m_tryPatternPars
Try first to fit the pattern parameters. Then proceed with the straw line tangents.
Representation of a segment seed (a fully processed hough maximum) produced by the hough transform.
Definition SegmentSeed.h:14
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Acts::Experimental::CompositeSpacePointLineFitter::ParamVec_t Parameters
This header ties the generic definitions in this package.