#include <ConstantContentBinMaker.h>
|
| | ConstantContentBinMaker (const std::vector< DataPoint > &points, const double epsilon) |
| | Constructor.
|
| | ~ConstantContentBinMaker () |
| bool | binDataPoints (const unsigned int &bin_content, std::vector< unsigned int > &ref_coord) |
| | group the data points into bins of equal content "bin_content"; returns true in case of success, false otherwise; splitting is done along the coordinate axes stored in ref_coord successively; if ref_coord is of size 0, splitting will be done in all axes successively
|
| const std::vector< DataBin * > & | getBins () const |
| | get the bins determined by the method "binDataPoints"
|
Definition at line 37 of file ConstantContentBinMaker.h.
◆ ConstantContentBinMaker()
| ConstantContentBinMaker::ConstantContentBinMaker |
( |
const std::vector< DataPoint > & | points, |
|
|
const double | epsilon ) |
Constructor.
- Parameters
-
| points | Data points to be grouped into bins. |
| epsilon | The upper boundaries of the seed bin are shifted by epsilon to create a half-open intervall containing all data points. |
Definition at line 23 of file ConstantContentBinMaker.cxx.
28{
29}
std::vector< DataPoint > m_points
◆ ~ConstantContentBinMaker()
| ConstantContentBinMaker::~ConstantContentBinMaker |
( |
| ) |
|
◆ binDataPoints()
| bool ConstantContentBinMaker::binDataPoints |
( |
const unsigned int & | bin_content, |
|
|
std::vector< unsigned int > & | ref_coord ) |
group the data points into bins of equal content "bin_content"; returns true in case of success, false otherwise; splitting is done along the coordinate axes stored in ref_coord successively; if ref_coord is of size 0, splitting will be done in all axes successively
Definition at line 46 of file ConstantContentBinMaker.cxx.
47 {
48
50
52
53 unsigned int n_bins(static_cast<unsigned int>(
54 std::log(
m_points.size()/
static_cast<double>(bin_content))
55 /std::log(2.0)));
56 std::vector<unsigned int> splitting_axis(ref_coord);
57 unsigned int axis_counter(0);
58
60
62 for (DataBin* b :
m_bins) {
64 }
66
68
70
73 log<< MSG::WARNING <<
"Class ConstantContentBinMaker, method binDataPoints: Too few data points for binning!"<<
endmsg;
74 return false;
75 }
76
78
80
81 if (ref_coord.empty()) {
82 splitting_axis = std::vector<unsigned int>(
84 for (
unsigned int k=0;
k<splitting_axis.size();
k++) {
85 splitting_axis[
k] =
k;
86 }
87 }
88
90
91
93
94
96
98 unsigned int nb_bins_so_far(
m_bins.size());
99 for (
unsigned int k=0;
k<nb_bins_so_far;
k++) {
101
102 splitting_axis[axis_counter]));
103 axis_counter++;
104 if (axis_counter==splitting_axis.size()) {
105 axis_counter = 0;
106 }
107 }
108 }
109
110 return true;
111
112}
std::vector< std::string > split(const std::string &s, const std::string &t=":")
IMessageSvc * getMessageSvc(bool quiet=false)
◆ getBins()
| const std::vector< DataBin * > & ConstantContentBinMaker::getBins |
( |
| ) |
const |
◆ m_bins
| std::vector<DataBin *> MuonCalib::ConstantContentBinMaker::m_bins |
|
private |
◆ m_epsilon
| double MuonCalib::ConstantContentBinMaker::m_epsilon |
|
private |
◆ m_points
| std::vector<DataPoint> MuonCalib::ConstantContentBinMaker::m_points |
|
private |
The documentation for this class was generated from the following files: