ATLAS Offline Software
Loading...
Searching...
No Matches
IMode3dFinder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
6// IMode3dFinder.h, (c) ATLAS Detector software 2006
8
9#ifndef TRKSEEDFINDERUTILS_IMODE3DFINDER_H
10#define TRKSEEDFINDERUTILS_IMODE3DFINDER_H
11
12#include "GaudiKernel/IAlgTool.h"
14
15namespace Trk
16{
17
27
31 {
32 public:
33 virtual ~IMode3dInfo() = default;
34
35 virtual unsigned int Modes1d(std::vector<float> &,
36 std::vector<float> &,
37 std::vector<float> &,
38 std::vector<float> &) const = 0 ;
39
40 virtual const std::vector<int>& AcceptedCrossingPointsIndices() const = 0;
41
42 virtual void getCorrelationDistance( double &cXY, double &cZ ) const = 0 ;
43
44 virtual int perigeesAtSeed( std::vector<const Trk::TrackParameters*>& perigees ,
45 const std::vector<const Trk::TrackParameters*>& perigeeList ) const = 0;
46
47 virtual void setTrkidx (std::vector< std::pair <int, int> >&& trkidx) = 0;
48 };
49
50
51 class IMode3dFinder : virtual public IAlgTool
52 {
53 public:
55
63 virtual Amg::Vector3D
64 getMode (const double vx,
65 const double vy,
66 const std::vector<Trk::PositionAndWeight> &) const = 0;
67
68
79 virtual Amg::Vector3D
80 getMode (const double vx,
81 const double vy,
82 const std::vector<Trk::PositionAndWeight>& points,
83 std::unique_ptr<IMode3dInfo>& info) const = 0;
84
85
93 virtual Amg::Vector3D
94 getMode (const double vx,
95 const double vy,
96 const std::vector<Amg::Vector3D>& points) const = 0;
97
98
109 virtual Amg::Vector3D
110 getMode (const double vx,
111 const double vy,
112 const std::vector<Amg::Vector3D>& points,
113 std::unique_ptr<IMode3dInfo>& info) const = 0;
114 };
115}
116
117#endif
Interface class for the algotool which calculates the mode of a threedimensional distribution.
virtual Amg::Vector3D getMode(const double vx, const double vy, const std::vector< Amg::Vector3D > &points) const =0
Obtain the 3d-mode (position) from a list of positions (distribution in space)
virtual Amg::Vector3D getMode(const double vx, const double vy, const std::vector< Amg::Vector3D > &points, std::unique_ptr< IMode3dInfo > &info) const =0
Obtain the 3d-mode (position) from a list of positions (distribution in space)
DeclareInterfaceID(IMode3dFinder, 1, 0)
virtual Amg::Vector3D getMode(const double vx, const double vy, const std::vector< Trk::PositionAndWeight > &) const =0
Obtain the 3d-mode (position) from a list of positions (distribution in space)
virtual Amg::Vector3D getMode(const double vx, const double vy, const std::vector< Trk::PositionAndWeight > &points, std::unique_ptr< IMode3dInfo > &info) const =0
Obtain the 3d-mode (position) from a list of positions (distribution in space)
Auxillary interface for getting back additional data.
virtual void getCorrelationDistance(double &cXY, double &cZ) const =0
virtual const std::vector< int > & AcceptedCrossingPointsIndices() const =0
virtual ~IMode3dInfo()=default
virtual unsigned int Modes1d(std::vector< float > &, std::vector< float > &, std::vector< float > &, std::vector< float > &) const =0
virtual void setTrkidx(std::vector< std::pair< int, int > > &&trkidx)=0
virtual int perigeesAtSeed(std::vector< const Trk::TrackParameters * > &perigees, const std::vector< const Trk::TrackParameters * > &perigeeList) const =0
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.