ATLAS Offline Software
ITrackToVertex.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // ITrackToVertex.h, (c) ATLAS Detector software 2005
8 
9 #ifndef TRACKTOVERTEX_ITRACKTOVERTEX_H
10 #define TRACKTOVERTEX_ITRACKTOVERTEX_H
11 
12 // Gaudi
13 #include "GaudiKernel/IAlgTool.h"
14 // Trk
16 // xAOD
18 
19 
20 namespace Trk {
21  class Track;
22  class StraightLineSurface;
23 }
24 
25 namespace InDet{
26  class BeamSpotData;
27 }
28 
29 class EventContext;
30 
31 namespace Reco {
32 
33  static const InterfaceID IID_ITrackToVertex("ITrackToVertex", 1, 0);
34 
46  class ITrackToVertex : virtual public IAlgTool {
47 
48  public:
50  virtual ~ITrackToVertex()=default;
51 
53  static const InterfaceID& interfaceID() { return IID_ITrackToVertex; };
54 
56  virtual std::unique_ptr<Trk::StraightLineSurface> GetBeamLine(
57  const InDet::BeamSpotData*) const = 0;
58 
61  virtual std::unique_ptr<Trk::Perigee> perigeeAtVertex(
62  const EventContext& ctx,
63  const xAOD::TrackParticle& tp,
64  const Amg::Vector3D& gp) const = 0;
65 
68  virtual std::unique_ptr<Trk::Perigee> perigeeAtVertex(
69  const EventContext& ctx,
70  const xAOD::TrackParticle& tp) const = 0;
71 
73  virtual std::unique_ptr<Trk::Perigee> perigeeAtVertex(
74  const EventContext& ctx,
75  const Trk::Track& trk,
76  const Amg::Vector3D& gp) const = 0;
77 
79  virtual std::unique_ptr<Trk::Perigee> perigeeAtBeamline(
80  const EventContext& ctx,
81  const Trk::Track& trk,
82  const InDet::BeamSpotData* beamSpotData) const = 0;
83 
85  virtual std::unique_ptr<Trk::TrackParameters> trackAtBeamline(
86  const EventContext& ctx,
87  const xAOD::TrackParticle& tp,
88  const InDet::BeamSpotData*) const = 0;
89 
91  virtual std::unique_ptr<Trk::TrackParameters> trackAtBeamline(
92  const EventContext& ctx,
93  const Trk::Track& trk,
94  const Trk::StraightLineSurface*) const = 0;
95 
98  virtual std::unique_ptr<Trk::TrackParameters> trackAtBeamline(
99  const EventContext& ctx,
100  const Trk::TrackParameters& tpars,
101  const Trk::StraightLineSurface*) const = 0;
102  };
103 }
104 
105 #endif // TRACKTOVERTEX_ITRACKTOVERTEX_H
106 
Reco::ITrackToVertex::perigeeAtVertex
virtual std::unique_ptr< Trk::Perigee > perigeeAtVertex(const EventContext &ctx, const xAOD::TrackParticle &tp) const =0
Interface method for use with TrackParticle and default primary vertex from TrackParticle.
Reco::ITrackToVertex::trackAtBeamline
virtual std::unique_ptr< Trk::TrackParameters > trackAtBeamline(const EventContext &ctx, const xAOD::TrackParticle &tp, const InDet::BeamSpotData *) const =0
Interface method for use with TrackParticle and the beamline.
TrackParameters.h
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Reco::ITrackToVertex::trackAtBeamline
virtual std::unique_ptr< Trk::TrackParameters > trackAtBeamline(const EventContext &ctx, const Trk::TrackParameters &tpars, const Trk::StraightLineSurface *) const =0
Interface method for use with Track and the beamline from the BeamSpotSvc - TrackParameters
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
ParticleTest.tp
tp
Definition: ParticleTest.py:25
Reco::ITrackToVertex::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition: ITrackToVertex.h:53
Reco::ITrackToVertex::perigeeAtVertex
virtual std::unique_ptr< Trk::Perigee > perigeeAtVertex(const EventContext &ctx, const Trk::Track &trk, const Amg::Vector3D &gp) const =0
Interface method for use with Track and given vertex position.
Reco::ITrackToVertex::perigeeAtVertex
virtual std::unique_ptr< Trk::Perigee > perigeeAtVertex(const EventContext &ctx, const xAOD::TrackParticle &tp, const Amg::Vector3D &gp) const =0
Interface method for use with xAOD::Trackparticle and given vertex position.
Trk::ParametersBase
Definition: ParametersBase.h:55
Reco::ITrackToVertex::~ITrackToVertex
virtual ~ITrackToVertex()=default
Virtual destructor.
Reco::ITrackToVertex::GetBeamLine
virtual std::unique_ptr< Trk::StraightLineSurface > GetBeamLine(const InDet::BeamSpotData *) const =0
Use this for MT Coding.
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Reco
Definition: TrackCounting.h:24
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Reco::ITrackToVertex::perigeeAtBeamline
virtual std::unique_ptr< Trk::Perigee > perigeeAtBeamline(const EventContext &ctx, const Trk::Track &trk, const InDet::BeamSpotData *beamSpotData) const =0
Interface method for use with Track and the beamline.
Reco::ITrackToVertex
Definition: ITrackToVertex.h:46
InDet::BeamSpotData
Definition: BeamSpotData.h:21
TrackParticleFwd.h
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Reco::ITrackToVertex::trackAtBeamline
virtual std::unique_ptr< Trk::TrackParameters > trackAtBeamline(const EventContext &ctx, const Trk::Track &trk, const Trk::StraightLineSurface *) const =0
Interface method for use with Track and the beamline.
Trk::StraightLineSurface
Definition: StraightLineSurface.h:51