10#include <tracking/trackFindingCDC/hough/axes/StandardAxes.h>
11#include <tracking/trackFindingCDC/utilities/Functional.h>
20 namespace TrackFindingCDC {
37 CurvBinsSpec(
double lowerBound,
double upperBound,
long nBins,
int nOverlap,
int nWidth);
93 template <class AHoughBox, class SFINAE = std::enable_if_t<AHoughBox::template HasType<DiscreteCurv>::value > >
96 return static_cast<float>(houghBox.template getLowerBound<DiscreteCurv>());
100 template <class AHoughBox, class SFINAE = std::enable_if_t<AHoughBox::template HasType<ContinuousCurv>::value > >
103 return static_cast<float>(houghBox.template getLowerBound<ContinuousCurv>());
110 template <class AHoughBox, class SFINAE = std::enable_if_t<AHoughBox::template HasType<DiscreteCurv>::value> >
113 return static_cast<float>(houghBox.template getUpperBound<DiscreteCurv>());
117 template <class AHoughBox, class SFINAE = std::enable_if_t<AHoughBox::template HasType<ContinuousCurv>::value> >
120 return static_cast<float>(houghBox.template getUpperBound<ContinuousCurv>());
128 template <
class AHoughBox>
129 float getLowerCurv(
const AHoughBox& houghBox)
131 return getIfApplicable<float>(GetLowerCurv(), houghBox, 0.0);
138 template <
class AHoughBox>
139 float getUpperCurv(
const AHoughBox& houghBox)
141 return getIfApplicable<float>(GetUpperCurv(), houghBox, 0.0);
Strategy to construct discrete curve points from discrete overlap specifications.
long getNPositions() const
Getter for the number of bounds.
DiscreteCurv::Array constructArray() const
Construct the array of discrete curve positions.
int m_nOverlap
Overlap of the leaves in curve counted in number of discrete values.
double m_lowerBound
Lower bound of the binning range.
DiscreteCurv::Array constructInvLinearArray() const
Construct the array of discrete curve positions such that the inverse curvatures are distributed equa...
int m_nWidth
Width of the leaves at the maximal level in curve counted in number of discrete values.
DiscreteCurv::Array constructLinearArray() const
Construct the array of discrete curve positions such that the curvatures are distributed equally.
DiscreteCurvWithArcLength2DCache::Array constructCacheArray() const
Construct the array of discrete curve positions including cache for the two dimensional arc length.
double getBinWidth() const
Getter for the bin width in real curve to investigate the value that results from the discrete overla...
double m_upperBound
Upper bound of the binning range.
long m_nBins
Number of accessible bins.
int getNOverlap() const
Getter for the overlap in discrete number of positions.
double getOverlap() const
Getter for the overlap in real curve to investigate the value that results from the discrete overlap ...
std::vector< T > Array
The type of the array which contains the underlying values.
Abstract base class for different kinds of events.
Functor to get the lower curvature bound of a hough box.
double operator()(const AHoughBox &houghBox) const
Getter function for the lower curvature bound of a hough box - continuous version.
float operator()(const AHoughBox &houghBox) const
Getter function for the lower curvature bound of a hough box - discrete version.
Functor to get the upper curvature bound of a hough box.
double operator()(const AHoughBox &houghBox) const
Getter function for the upper curvature bound of a hough box - continuous version.
float operator()(const AHoughBox &houghBox) const
Getter function for the upper curvature bound of a hough box - discrete version.