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"
20
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 StatusCode collectMDTHits(const EventContext& ctx, const ActsTrk::GeometryContext& gctx,float eta, float phi,
45 std::vector<const xAOD::MdtDriftCircle*>& hits, float m, float b) const;
46
47 float computeResidual(const Amg::Vector3D& gpos,float m, float b) const;
48
49 StatusCode Calibration(const xAOD::MdtDriftCircle* mdt,
50 const EventContext& ctx) const;
51
52
53 // Tools
54 ToolHandle<IMdtCalibrationTool> m_calibrationTool{this, "CalibrationTool", "MdtCalibrationTool"};
55 ToolHandle<IRegSelTool> m_regionSelector{this, "RegSel_MDT", "RegSelTool/RegSelTool_MDT"};
56 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
57 SG::ReadHandleKey<ActsTrk::GeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
58 // Input
59
61 this, "MdtDriftCircles", "xMdtDriftCircles"
62 };
63
65 this, "L0MuonRPCCandKey", "L0MuonRPCCand"};
66};
67
68} // namespace L0Muon
69
70#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.
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