|
inlib
1.2.0
|

Public Types | |
| enum | { UNDERFLOW_BIN = -2, OVERFLOW_BIN = -1 } |
| typedef unsigned int | bn_t |
Public Member Functions | |
| bool | is_fixed_binning () const |
| TC | lower_edge () const |
| TC | upper_edge () const |
| bn_t | bins () const |
| const std::vector< TC > & | edges () const |
| TC | bin_width (int aBin) const |
| TC | bin_lower_edge (int aBin) const |
| TC | bin_upper_edge (int aBin) const |
| TC | bin_center (int aBin) const |
| int | coord_to_index (TC aValue) const |
| bool | coord_to_absolute_index (TC aValue, bn_t &a_index) const |
| bool | in_range_to_absolute_index (int a_in, bn_t &a_out) const |
| bool | configure (const std::vector< TC > &aEdges) |
| bool | configure (bn_t aNumber, TC aMin, TC aMax) |
| bool | is_compatible (const axis &a_axis) const |
| axis () | |
| virtual | ~axis () |
| axis (const axis &a_axis) | |
| axis & | operator= (const axis &a_axis) |
Public Attributes | |
| bn_t | m_offset |
| bn_t | m_number_of_bins |
| TC | m_minimum_value |
| TC | m_maximum_value |
| bool | m_fixed |
| TC | m_bin_width |
| std::vector< TC > | m_edges |
| typedef unsigned int inlib::histo::axis< TC >::bn_t |
| anonymous enum |
Definition at line 20 of file axis.
{ UNDERFLOW_BIN = -2, OVERFLOW_BIN = -1 }; //AIDA casing.
| inlib::histo::axis< TC >::axis | ( | ) | [inline] |
Definition at line 212 of file axis.
:m_offset(0) ,m_number_of_bins(0) ,m_minimum_value(0) ,m_maximum_value(0) ,m_fixed(true) ,m_bin_width(0) {}
| virtual inlib::histo::axis< TC >::~axis | ( | ) | [inline, virtual] |
| inlib::histo::axis< TC >::axis | ( | const axis< TC > & | a_axis | ) | [inline] |
Definition at line 223 of file axis.
:m_offset(a_axis.m_offset) ,m_number_of_bins(a_axis.m_number_of_bins) ,m_minimum_value(a_axis.m_minimum_value) ,m_maximum_value(a_axis.m_maximum_value) ,m_fixed(a_axis.m_fixed) ,m_bin_width(a_axis.m_bin_width) ,m_edges(a_axis.m_edges) {}
| TC inlib::histo::axis< TC >::bin_center | ( | int | aBin | ) | const [inline] |
Definition at line 76 of file axis.
{
if(aBin==UNDERFLOW_BIN) {
return 0; //FIXME : -INF
} else if(aBin==OVERFLOW_BIN) {
return 0; //FIXME : +INF
} else if(aBin<0) {
return 0; //FIXME : -INF
} else if(aBin>=(int)m_number_of_bins) {
return 0; //FIXME : +INF
} else {
if(m_fixed) {
return (m_minimum_value + (aBin + 0.5) * m_bin_width);
} else {
return (m_edges[aBin] + m_edges[aBin+1])/2.;
}
}
}
| TC inlib::histo::axis< TC >::bin_lower_edge | ( | int | aBin | ) | const [inline] |
Definition at line 44 of file axis.
{
if(aBin==UNDERFLOW_BIN) {
return 0; //FIXME return -DBL_MAX;
} else if(aBin==OVERFLOW_BIN) {
return 0; //FIXME return bin_upper_edge(m_number_of_bins-1);
} else if((aBin<0) ||(aBin>=(int)m_number_of_bins)) {
return 0;
} else {
if(m_fixed) {
return (m_minimum_value + aBin * m_bin_width);
} else {
return m_edges[aBin];
}
}
}
| TC inlib::histo::axis< TC >::bin_upper_edge | ( | int | aBin | ) | const [inline] |
Definition at line 60 of file axis.
{
if(aBin==UNDERFLOW_BIN) {
return 0; //FIXME bin_lower_edge(0)
} else if(aBin==OVERFLOW_BIN) {
return 0; //FIXME return DBL_MAX;
} else if((aBin<0) ||(aBin>=(int)m_number_of_bins)) {
return 0;
} else {
if(m_fixed) {
return (m_minimum_value + (aBin + 1) * m_bin_width);
} else {
return m_edges[aBin+1];
}
}
}
| TC inlib::histo::axis< TC >::bin_width | ( | int | aBin | ) | const [inline] |
Definition at line 28 of file axis.
{
if(aBin==UNDERFLOW_BIN) {
return 0; //FIXME return DBL_MAX;
} else if(aBin==OVERFLOW_BIN) {
return 0; //FIXME return DBL_MAX;
} else if((aBin<0) ||(aBin>=(int)m_number_of_bins)) {
return 0;
} else {
if(m_fixed) {
return m_bin_width;
} else {
return (m_edges[aBin+1]-m_edges[aBin]);
}
}
}
| bn_t inlib::histo::axis< TC >::bins | ( | ) | const [inline] |
Definition at line 25 of file axis.
{return m_number_of_bins;}
| bool inlib::histo::axis< TC >::configure | ( | const std::vector< TC > & | aEdges | ) | [inline] |
Definition at line 161 of file axis.
{
// init :
m_number_of_bins = 0;
m_minimum_value = 0;
m_maximum_value = 0;
m_fixed = true;
m_bin_width = 0;
m_edges.clear();
// setup :
if(aEdges.size()<=1) return false;
bn_t number = aEdges.size()-1;
for(bn_t index=0;index<number;index++) {
if((aEdges[index]>=aEdges[index+1])) {
return false;
}
}
m_edges = aEdges;
m_number_of_bins = number;
m_minimum_value = aEdges[0];
m_maximum_value = aEdges[m_number_of_bins];
m_fixed = false;
return true;
}
| bool inlib::histo::axis< TC >::configure | ( | bn_t | aNumber, |
| TC | aMin, | ||
| TC | aMax | ||
| ) | [inline] |
Definition at line 185 of file axis.
{
// init :
m_number_of_bins = 0;
m_minimum_value = 0;
m_maximum_value = 0;
m_fixed = true;
m_bin_width = 0;
m_edges.clear();
// setup :
if(aNumber<=0) return false;
if(aMax<=aMin) return false;
m_number_of_bins = aNumber;
m_minimum_value = aMin;
m_maximum_value = aMax;
m_bin_width = (aMax - aMin)/ aNumber;
m_fixed = true;
return true;
}
| bool inlib::histo::axis< TC >::coord_to_absolute_index | ( | TC | aValue, |
| bn_t & | a_index | ||
| ) | const [inline] |
Definition at line 114 of file axis.
{
if( aValue < m_minimum_value) {
a_index = 0;
return true;
} else if( aValue >= m_maximum_value) {
a_index = m_number_of_bins+1;
return true;
} else {
if(m_fixed) {
a_index = (bn_t)((aValue - m_minimum_value)/m_bin_width)+1;
return true;
} else {
for(bn_t index=0;index<m_number_of_bins;index++) {
if((m_edges[index]<=aValue)&&(aValue<m_edges[index+1])) {
a_index = index+1;
return true;
}
}
// Should never pass here...
a_index = 0;
return false;
}
}
}
| int inlib::histo::axis< TC >::coord_to_index | ( | TC | aValue | ) | const [inline] |
Definition at line 94 of file axis.
{
if( aValue < m_minimum_value) {
return UNDERFLOW_BIN;
} else if( aValue >= m_maximum_value) {
return OVERFLOW_BIN;
} else {
if(m_fixed) {
return (int)((aValue - m_minimum_value)/m_bin_width);
} else {
for(bn_t index=0;index<m_number_of_bins;index++) {
if((m_edges[index]<=aValue)&&(aValue<m_edges[index+1])) {
return index;
}
}
// Should never pass here...
return UNDERFLOW_BIN;
}
}
}
| const std::vector<TC>& inlib::histo::axis< TC >::edges | ( | ) | const [inline] |
| bool inlib::histo::axis< TC >::in_range_to_absolute_index | ( | int | a_in, |
| bn_t & | a_out | ||
| ) | const [inline] |
Definition at line 139 of file axis.
{
// a_in is given in in-range indexing :
// - [0,n-1] for in-range bins
// - UNDERFLOW_BIN for the iaxis underflow bin
// - OVERFLOW_BIN for the iaxis overflow bin
// Return the absolute indexing in [0,n+1].
if(a_in==UNDERFLOW_BIN) {
a_out = 0;
return true;
} else if(a_in==OVERFLOW_BIN) {
a_out = m_number_of_bins+1;
return true;
} else if((a_in>=0)&&(a_in<(int)m_number_of_bins)){
a_out = a_in + 1;
return true;
} else {
return false;
}
}
| bool inlib::histo::axis< TC >::is_compatible | ( | const axis< TC > & | a_axis | ) | const [inline] |
Definition at line 204 of file axis.
{
if(m_number_of_bins!=a_axis.m_number_of_bins) return false;
if(m_minimum_value!=a_axis.m_minimum_value) return false;
if(m_maximum_value!=a_axis.m_maximum_value) return false;
return true;
}
| bool inlib::histo::axis< TC >::is_fixed_binning | ( | ) | const [inline] |
| TC inlib::histo::axis< TC >::lower_edge | ( | ) | const [inline] |
Definition at line 23 of file axis.
{return m_minimum_value;}
| axis& inlib::histo::axis< TC >::operator= | ( | const axis< TC > & | a_axis | ) | [inline] |
Definition at line 233 of file axis.
{
m_offset = a_axis.m_offset;
m_number_of_bins = a_axis.m_number_of_bins;
m_minimum_value = a_axis.m_minimum_value;
m_maximum_value = a_axis.m_maximum_value;
m_fixed = a_axis.m_fixed;
m_bin_width = a_axis.m_bin_width;
m_edges = a_axis.m_edges;
return *this;
}
| TC inlib::histo::axis< TC >::upper_edge | ( | ) | const [inline] |
Definition at line 24 of file axis.
{return m_maximum_value;}
| TC inlib::histo::axis< TC >::m_bin_width |
| std::vector<TC> inlib::histo::axis< TC >::m_edges |
| bool inlib::histo::axis< TC >::m_fixed |
| TC inlib::histo::axis< TC >::m_maximum_value |
| TC inlib::histo::axis< TC >::m_minimum_value |
| bn_t inlib::histo::axis< TC >::m_number_of_bins |
| bn_t inlib::histo::axis< TC >::m_offset |
1.7.5.1