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;
45 std::vector<const xAOD::MdtDriftCircle*>& hits,
float m,
float b)
const;
50 const EventContext& ctx)
const;
54 ToolHandle<IMdtCalibrationTool>
m_calibrationTool{
this,
"CalibrationTool",
"MdtCalibrationTool"};
55 ToolHandle<IRegSelTool>
m_regionSelector{
this,
"RegSel_MDT",
"RegSelTool/RegSelTool_MDT"};
61 this,
"MdtDriftCircles",
"xMdtDriftCircles"
65 this,
"L0MuonRPCCandKey",
"L0MuonRPCCand"};
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.
virtual ~MDTSimulation()=default
virtual StatusCode initialize() override
float computeResidual(const Amg::Vector3D &gpos, float m, float b) const
virtual StatusCode execute(const EventContext &ctx) const override
ToolHandle< IRegSelTool > m_regionSelector
ToolHandle< IMdtCalibrationTool > m_calibrationTool
StatusCode collectMDTHits(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, float eta, float phi, std::vector< const xAOD::MdtDriftCircle * > &hits, float m, float b) const
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
SG::ReadHandleKey< xAOD::MdtDriftCircleContainer > m_mdtDriftCircleKey
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
StatusCode Calibration(const xAOD::MdtDriftCircle *mdt, const EventContext &ctx) const
Property holding a SG store/key/clid from which a ReadHandle is made.
Eigen::Matrix< double, 3, 1 > Vector3D
MdtDriftCircle_v1 MdtDriftCircle