ATLAS Offline Software
Loading...
Searching...
No Matches
MDTSimulation.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef L0MuonMDT_MDTSIMULATION_H
6#define L0MuonMDT_MDTSIMULATION_H
7
19#include "GaudiKernel/ServiceHandle.h"
21
22
23
24namespace L0Muon {
25
27public:
28 using AthReentrantAlgorithm::AthReentrantAlgorithm;
29 virtual ~MDTSimulation() = default;
30 virtual StatusCode initialize() override;
31 virtual StatusCode execute(const EventContext& ctx) const override;
32
33
34private:
35
36
37
38// helper functions
39 bool fitRPC(const L0Muon::RPCCandData& cand,
40 float& m, float& b,
41 std::vector<float>& z_positions,
42 std::vector<float>& r_positions) const;
43
44
45
56 StatusCode collectMDTHits(const EventContext& ctx,
57 const ActsTrk::GeometryContext& gctx,
58 float eta,
59 float phi,
60 std::vector<const xAOD::MdtDriftCircle*>& hits,
61 float m,
62 float b) const;
63
68 float computeResidual(const Amg::Vector3D& gpos,float m, float b) const;
69
70 // Tools
71 ToolHandle<IRegSelTool> m_regionSelector{this, "RegSel_MDT", "RegSelTool/RegSelTool_MDT"};
72 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
73
74 ToolHandle<L0MDT::IL0MDTSegmentFinderTool> m_csfSegmentFinder{this, "CSFSegmentFinder", "L0MDT::CompactSegmentFinderTool"};
75 ToolHandle<L0MDT::IL0MDTSegmentFinderTool> m_legendreSegmentFinder{this, "LegendreSegmentFinder", "L0MDT::LegendreSegmentFinderTool"};
76 ToolHandle<L0MDT::IPtEstimationTool> m_ptEstimationTool{this,"PtEstimationTool","L0MDT::PtEstimationTool/PtEstimationTool","Tool to estimate pT from CSF segments"};
77
78 SG::ReadHandleKey<ActsTrk::GeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
79 SG::ReadHandleKey<xAOD::MdtDriftCircleContainer> m_mdtDriftCircleKey{this, "MdtDriftCircles", "xMdtDriftCircles"};
81
82
83 };
84} // namespace L0Muon
85
86#endif
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Property holding a SG store/key/clid from which a ReadHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
ToolHandle< L0MDT::IL0MDTSegmentFinderTool > m_legendreSegmentFinder
virtual ~MDTSimulation()=default
virtual StatusCode initialize() override
float computeResidual(const Amg::Vector3D &gpos, float m, float b) const
Compute the residual between a MDT hit global position and the fit line.
virtual StatusCode execute(const EventContext &ctx) const override
ToolHandle< IRegSelTool > m_regionSelector
StatusCode collectMDTHits(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, float eta, float phi, std::vector< const xAOD::MdtDriftCircle * > &hits, float m, float b) const
Collect MDT hits within a RoI around (eta, phi), keeping only those whose residual from the RPC fit l...
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
ToolHandle< L0MDT::IL0MDTSegmentFinderTool > m_csfSegmentFinder
SG::ReadHandleKey< xAOD::MdtDriftCircleContainer > m_mdtDriftCircleKey
ToolHandle< L0MDT::IPtEstimationTool > m_ptEstimationTool
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
bool fitRPC(const L0Muon::RPCCandData &cand, float &m, float &b, std::vector< float > &z_positions, std::vector< float > &r_positions) const
SG::ReadHandleKey< L0Muon::RPCCandDataContainer > m_barrelCandidateKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Eigen::Matrix< double, 3, 1 > Vector3D