ATLAS Offline Software
Loading...
Searching...
No Matches
IMuonSegmentTrackBuilder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUON_IMUONSEGMENTTRACKBUILDER_H
6#define MUON_IMUONSEGMENTTRACKBUILDER_H
7
8#include "GaudiKernel/IAlgTool.h"
11
12namespace Trk {
13 class Track;
14 class PrepRawData;
15} // namespace Trk
16
17namespace Muon {
18 class MuonSegment;
19}
20
21namespace Muon {
22
24 class IMuonSegmentTrackBuilder : virtual public IAlgTool {
25 public:
26 using PrepVec = std::vector<const Trk::PrepRawData*>;
27 typedef PrepVec::iterator PrepIt;
28 typedef PrepVec::const_iterator PrepCit;
29
30 public:
33
38 virtual std::unique_ptr<Trk::Track> refit(const EventContext& ctx, Trk::Track& track) const = 0;
39
46 virtual std::unique_ptr<Trk::Track> recalibrateHitsOnTrack(const EventContext& ctx, const Trk::Track& track, bool doMdts,
47 bool doCompetingClusters) const = 0;
48
55 virtual std::unique_ptr<MuonSegment> combineToSegment(const EventContext& ctx,
56 const MuonSegment& seg1,
57 const MuonSegment& seg2,
58 const PrepVec& patternPhiHits) const = 0;
59
66 virtual std::unique_ptr<Trk::Track> combine(const EventContext& ctx,
67 const MuonSegment& seg1,
68 const MuonSegment& seg2,
69 const PrepVec& patternPhiHits) const = 0;
70
77 virtual std::unique_ptr<Trk::Track> combine(const EventContext& ctx,
78 const Trk::Track& track,
79 const MuonSegment& seg,
80 const PrepVec& patternPhiHits) const = 0;
81
88 virtual std::unique_ptr<Trk::TrackParameters> findClosestParameters(const Trk::Track& track,
89 const Amg::Vector3D& pos) const = 0;
90
96 virtual std::unique_ptr<Trk::TrackParameters> getClosestParameters(const Trk::Track& track,
97 const Trk::Surface& surf) const = 0;
98
99 virtual ~IMuonSegmentTrackBuilder() = default;
100 };
101
102} // namespace Muon
103
104#endif
The IMuonSegmentMaker is a pure virtual interface for tools to find tracks starting from MuonSegmentC...
virtual std::unique_ptr< Trk::Track > combine(const EventContext &ctx, const Trk::Track &track, const MuonSegment &seg, const PrepVec &patternPhiHits) const =0
combine a track with a segment
virtual std::unique_ptr< Trk::Track > refit(const EventContext &ctx, Trk::Track &track) const =0
refit track
virtual std::unique_ptr< Trk::Track > combine(const EventContext &ctx, const MuonSegment &seg1, const MuonSegment &seg2, const PrepVec &patternPhiHits) const =0
combine two segments to a track
virtual std::unique_ptr< MuonSegment > combineToSegment(const EventContext &ctx, const MuonSegment &seg1, const MuonSegment &seg2, const PrepVec &patternPhiHits) const =0
combine two segments to a super segment
virtual std::unique_ptr< Trk::TrackParameters > getClosestParameters(const Trk::Track &track, const Trk::Surface &surf) const =0
find closest TrackParameters to the surface.
virtual std::unique_ptr< Trk::TrackParameters > findClosestParameters(const Trk::Track &track, const Amg::Vector3D &pos) const =0
find closest TrackParameters to the position.
virtual std::unique_ptr< Trk::Track > recalibrateHitsOnTrack(const EventContext &ctx, const Trk::Track &track, bool doMdts, bool doCompetingClusters) const =0
recalibrate hits on track, does not refit
DeclareInterfaceID(Muon::IMuonSegmentTrackBuilder, 1, 0)
access to tool interface
virtual ~IMuonSegmentTrackBuilder()=default
std::vector< const Trk::PrepRawData * > PrepVec
This is the common class for 3D segments used in the muon spectrometer.
Abstract Base Class for tracking surfaces.
Eigen::Matrix< double, 3, 1 > Vector3D
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.