5#ifndef L0MuonMDT_MDTSIMULATION_H
6#define L0MuonMDT_MDTSIMULATION_H
19#include "GaudiKernel/ServiceHandle.h"
28 using AthReentrantAlgorithm::AthReentrantAlgorithm;
31 virtual StatusCode
execute(
const EventContext& ctx)
const override;
41 std::vector<float>& z_positions,
42 std::vector<float>& r_positions)
const;
60 std::vector<const xAOD::MdtDriftCircle*>& hits,
71 ToolHandle<IRegSelTool>
m_regionSelector{
this,
"RegSel_MDT",
"RegSelTool/RegSelTool_MDT"};
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"};
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