ATLAS Offline Software
Loading...
Searching...
No Matches
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
20namespace Trk {
21 class Track;
23}
24
25namespace InDet{
26 class BeamSpotData;
27}
28
29class EventContext;
30
31namespace Reco {
32
33 static const InterfaceID IID_ITrackToVertex("ITrackToVertex", 1, 0);
34
44
45
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
Interface class for the TrackToVertex AlgTool, for more detailed information, take a look at the head...
virtual std::unique_ptr< Trk::StraightLineSurface > GetBeamLine(const InDet::BeamSpotData *) const =0
Use this for MT Coding.
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.
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.
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.
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.
static const InterfaceID & interfaceID()
AlgTool interface methods.
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.
virtual ~ITrackToVertex()=default
Virtual destructor.
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.
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.
Class for a StraightLineSurface in the ATLAS detector to describe dirft tube and straw like detectors...
Eigen::Matrix< double, 3, 1 > Vector3D
Primary Vertex Finder.
static const InterfaceID IID_ITrackToVertex("ITrackToVertex", 1, 0)
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters
TrackParticle_v1 TrackParticle
Reference the current persistent version: