ATLAS Offline Software
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 
12 namespace Trk {
13  class Track;
14  class PrepRawData;
15 } // namespace Trk
16 
17 namespace Muon {
18  class MuonSegment;
19 }
20 
21 namespace Muon {
22 
24  class IMuonSegmentTrackBuilder : virtual public IAlgTool {
25  public:
26  using PrepVec = std::vector<const Trk::PrepRawData*>;
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
Muon::IMuonSegmentTrackBuilder::combine
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
Muon::IMuonSegmentTrackBuilder::recalibrateHitsOnTrack
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
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Muon::IMuonSegmentTrackBuilder::getClosestParameters
virtual std::unique_ptr< Trk::TrackParameters > getClosestParameters(const Trk::Track &track, const Trk::Surface &surf) const =0
find closest TrackParameters to the surface.
TrackParameters.h
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Muon::IMuonSegmentTrackBuilder::refit
virtual std::unique_ptr< Trk::Track > refit(const EventContext &ctx, Trk::Track &track) const =0
refit track
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::IMuonSegmentTrackBuilder::PrepIt
PrepVec::iterator PrepIt
Definition: IMuonSegmentTrackBuilder.h:27
xAOD::MuonSegment
MuonSegment_v1 MuonSegment
Reference the current persistent version:
Definition: Event/xAOD/xAODMuon/xAODMuon/MuonSegment.h:13
Muon::IMuonSegmentTrackBuilder::findClosestParameters
virtual std::unique_ptr< Trk::TrackParameters > findClosestParameters(const Trk::Track &track, const Amg::Vector3D &pos) const =0
find closest TrackParameters to the position.
GeoPrimitives.h
Muon::IMuonSegmentTrackBuilder::DeclareInterfaceID
DeclareInterfaceID(Muon::IMuonSegmentTrackBuilder, 1, 0)
access to tool interface
Muon::IMuonSegmentTrackBuilder::PrepCit
PrepVec::const_iterator PrepCit
Definition: IMuonSegmentTrackBuilder.h:28
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Muon::IMuonSegmentTrackBuilder::combine
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
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Muon::IMuonSegmentTrackBuilder::combineToSegment
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
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
Muon::IMuonSegmentTrackBuilder::~IMuonSegmentTrackBuilder
virtual ~IMuonSegmentTrackBuilder()=default
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Muon::MuonSegment
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:45
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Muon::IMuonSegmentTrackBuilder::PrepVec
std::vector< const Trk::PrepRawData * > PrepVec
Definition: IMuonSegmentTrackBuilder.h:26
Muon::IMuonSegmentTrackBuilder
The IMuonSegmentMaker is a pure virtual interface for tools to find tracks starting from MuonSegmentC...
Definition: IMuonSegmentTrackBuilder.h:24