ATLAS Offline Software
Loading...
Searching...
No Matches
MuonTrackToSegmentTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUON_MUONTRACKTOSEGMENTTOOL_H
6#define MUON_MUONTRACKTOSEGMENTTOOL_H
7
8#include <vector>
9
11#include "GaudiKernel/ServiceHandle.h"
12#include "GaudiKernel/ToolHandle.h"
21
22namespace Trk {
23 class Track;
24 class MeasurementBase;
25} // namespace Trk
26
27namespace Muon {
28 class MuonSegment;
29}
30
31namespace Muon {
32
42 public:
43 using MeasVec = std::vector<const Trk::MeasurementBase*>;
44
46 MuonTrackToSegmentTool(const std::string&, const std::string&, const IInterface*);
47
50
52 StatusCode initialize();
53
55 MuonSegment* convert(const EventContext& ctx, const Trk::Track& track) const;
56
57 private:
59 std::vector<Identifier> calculateHoles(const EventContext& ctx, const Identifier& chid, const Trk::TrackParameters& pars,
60 const MeasVec& measurements) const;
61
62
63 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
65 this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
66 "Handle to the service providing the IMuonEDMHelperSvc interface"}; //<! multipurpose helper tool
67
68 PublicToolHandle<MuonEDMPrinterTool> m_printer{this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
69 "helper to nicely print out tracks"};
70 ToolHandle<Trk::IPropagator> m_propagator{this, "Propagator", "Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator"};
71
72 SG::ReadCondHandleKey<Muon::MuonIntersectGeoData> m_chamberGeoKey{this, "ChamberGeoKey", "MuonStationIntersects", "Pointer to hole search service"};
73
74 SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_DetectorManagerKey{this, "DetectorManagerKey", "MuonDetectorManager",
75 "Key of input MuonDetectorManager condition data"};
76 };
77
78} // namespace Muon
79
80#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
The IMuonSegmentMaker is a pure virtual interface for tools to find tracks starting from MuonSegmentC...
This is the common class for 3D segments used in the muon spectrometer.
~MuonTrackToSegmentTool()=default
destructor
StatusCode initialize()
initialize method, method taken from bass-class AlgTool
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_DetectorManagerKey
std::vector< const Trk::MeasurementBase * > MeasVec
MuonTrackToSegmentTool(const std::string &, const std::string &, const IInterface *)
default AlgTool constructor
std::vector< Identifier > calculateHoles(const EventContext &ctx, const Identifier &chid, const Trk::TrackParameters &pars, const MeasVec &measurements) const
calculate holes
MuonSegment * convert(const EventContext &ctx, const Trk::Track &track) const
convert track to segment
SG::ReadCondHandleKey< Muon::MuonIntersectGeoData > m_chamberGeoKey
PublicToolHandle< MuonEDMPrinterTool > m_printer
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
ToolHandle< Trk::IPropagator > m_propagator
This class is the pure abstract base class for all fittable tracking measurements.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters