|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef OBJECT_MATCHING_H
6 #define OBJECT_MATCHING_H
31 template <
typename T,
typename U>
39 template <
typename T,
typename U>
49 template <
typename T,
typename U>
52 const std::vector<const T*> &targetObjects,
58 template <
typename T,
typename U>
61 const std::vector<const T*> &targetObjects,
62 float maxDistance = 0.1)
const;
65 template <
typename T,
typename U>
72 template <
typename T,
typename U>
76 float maxDistance = 0.1)
const;
78 template <
typename T,
typename U>
81 const std::vector<const T*> &targetObjects,
85 template <
typename T,
typename U>
88 const std::vector<const T*> &targetObjects,
89 float maxDistance)
const;
98 template <
typename T,
typename U>
100 const U *matchObject,
101 const std::vector<const T*> &targetObjects,
107 template <
typename T,
typename U>
109 const U *matchObject,
110 const std::vector<const T*> &targetObjects,
111 float maxDistance = 0.1)
const;
114 template <
typename T,
typename U>
116 const U *matchObject,
121 template <
typename T,
typename U>
123 const U *matchObject,
125 float maxDistance = 0.1)
const;
130 template <
typename T,
typename U>
137 template <
typename T,
typename U>
std::vector< const T * > matchToObjects(const U *matchObject, const DataVector< T > &targetObjects, float maxDistance=0.1) const
float distance(const T *t, const U *u, const DistanceFunctor< T, U > *metric) const
distance returns the distance between the two supplied objects using metric, if available,...
const T * matchToObject(const U *matchObject, const DataVector< T > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
DistanceCompare(const U *baseObject, const DistanceFunctor< T, U > *m)
virtual bool operator()(const T *x, const T *y)
const DistanceFunctor< T, U > * m_metric
@ u
Enums for curvilinear frames.
ObjectMatching is a base class that performs generic matching of objects using the distance functor f...
const T * matchToObject(const U *matchObject, const DataVector< T > &targetObjects, float maxDistance=0.1) const
Workaround x86 precision issues for FP inequality comparisons.
bool anyMatch(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
const T * matchToObject(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance=0.1) const
std::vector< const T * > matchToObjects(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
matchToObjects returns the objects of type T from the supplied vector that match to matchObject,...
const T * matchToObject(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
matchToObject returns the object of type T from the suppled vector that best matches matchObject acco...
bool less(double a, double b)
Compare two FP numbers, working around x87 precision issues.
An STL vector of pointers that by default owns its pointed-to elements.
virtual ~ObjectMatching()
std::vector< const T * > matchToObjects(const U *matchObject, const DataVector< T > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
bool anyMatch(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance) const
std::vector< const T * > matchToObjects(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance=0.1) const
float distance(const T *t, const U *u) const
const DistanceFunctor< T, U > * prepareMetric() const