 |
Belle II Software
release-05-02-19
|
12 #include <tracking/trackFindingCDC/hough/axes/StandardAxes.h>
13 #include <tracking/trackFindingCDC/utilities/Functional.h>
15 #include <type_traits>
22 namespace TrackFindingCDC {
39 CurvBinsSpec(
double lowerBound,
double upperBound,
long nBins,
int nOverlap,
int nWidth);
95 template <class AHoughBox, class SFINAE = std::enable_if_t<AHoughBox::template HasType<DiscreteCurv>::value > >
96 float operator()(
const AHoughBox& houghBox)
const
98 return static_cast<float>(houghBox.template getLowerBound<DiscreteCurv>());
102 template <class AHoughBox, class SFINAE = std::enable_if_t<AHoughBox::template HasType<ContinuousCurv>::value > >
103 double operator()(
const AHoughBox& houghBox)
const
105 return static_cast<float>(houghBox.template getLowerBound<ContinuousCurv>());
110 struct GetUpperCurv {
112 template <class AHoughBox, class SFINAE = std::enable_if_t<AHoughBox::template HasType<DiscreteCurv>::value> >
113 float operator()(
const AHoughBox& houghBox)
const
115 return static_cast<float>(houghBox.template getUpperBound<DiscreteCurv>());
119 template <class AHoughBox, class SFINAE = std::enable_if_t<AHoughBox::template HasType<ContinuousCurv>::value> >
120 double operator()(
const AHoughBox& houghBox)
const
122 return static_cast<float>(houghBox.template getUpperBound<ContinuousCurv>());
130 template <
class AHoughBox>
131 float getLowerCurv(
const AHoughBox& houghBox)
133 return getIfApplicable<float>(GetLowerCurv(), houghBox, 0.0);
140 template <
class AHoughBox>
141 float getUpperCurv(
const AHoughBox& houghBox)
143 return getIfApplicable<float>(GetUpperCurv(), houghBox, 0.0);
int m_nOverlap
Overlap of the leaves in curv counted in number of discrete values.
DiscreteCurvWithArcLength2DCache::Array constructCacheArray() const
Constuct the array of discrete curv positions including cache for the two dimensional arc length.
int getNOverlap() const
Getter for the overlap in discrete number of positions.
float operator()(const AHoughBox &houghBox) const
Getter function for the upper curvature bound of a hough box - discrete version.
int m_nWidth
Width of the leaves at the maximal level in curv counted in number of discrete values.
Functor to get the lower curvature bound of a hough box.
DiscreteCurv::Array constructInvLinearArray() const
Constuct the array of discrete curv positions such that the inverse curvatures are distributed equall...
double m_lowerBound
Lower bound of the binning range.
CurvBinsSpec(double lowerBound, double upperBound, long nBins, int nOverlap, int nWidth)
Constructs a specification for equally spaced discrete curvature values with discrete overlap specifi...
DiscreteCurv::Array constructArray() const
Constuct the array of discrete curv positions.
Abstract base class for different kinds of events.
double m_upperBound
Upper bound of the binning range.
float operator()(const AHoughBox &houghBox) const
Getter function for the lower curvature bound of a hough box - discrete version.
DiscreteCurv::Array constructLinearArray() const
Constuct the array of discrete curv positions such that the curvatures are distributed equally.
long getNPositions() const
Getter for the number of bounds.
long m_nBins
Number of accessable bins.
double getOverlap() const
Getter for the overlap in real curv to investigate the value that results from the discrete overlap s...
double getBinWidth() const
Getter for the bin width in real curv to investigate the value that results from the discrete overlap...
std::vector< T > Array
The type of the array which contains the underlying values.