|
inlib
1.2.0
|


Public Types | |
| typedef base_histo< TC, TN, TW, TH >::bn_t | bn_t |
Public Member Functions | |
| virtual TH | bin_error (int, int) const =0 |
| void | update_fast_getters () |
| TC | mean_x () const |
| TC | mean_y () const |
| TC | rms_x () const |
| TC | rms_y () const |
| int | coord_to_index_x (TC aCoord) const |
| int | coord_to_index_y (TC aCoord) const |
| TN | bin_entries (int aI, int aJ) const |
| TW | bin_Sw (int aI, int aJ) const |
| TW | bin_Sw2 (int aI, int aJ) const |
| TC | bin_Sxw (int aI, int aJ) const |
| TC | bin_Sx2w (int aI, int aJ) const |
| TC | bin_Syw (int aI, int aJ) const |
| TC | bin_Sy2w (int aI, int aJ) const |
| TH | bin_height (int aI, int aJ) const |
| TC | bin_center_x (int aI) const |
| TC | bin_center_y (int aJ) const |
| TC | bin_mean_x (int aI, int aJ) const |
| TC | bin_mean_y (int aI, int aJ) const |
| TC | bin_rms_x (int aI, int aJ) const |
| TC | bin_rms_y (int aI, int aJ) const |
| const axis< TC > & | axis_x () const |
| const axis< TC > & | axis_y () const |
| axis< TC > & | axis_x () |
| axis< TC > & | axis_y () |
| TN | bin_entries_x (int aI) const |
| TW | bin_height_x (int aI) const |
| TN | bin_entries_y (int aJ) const |
| TW | bin_height_y (int aJ) const |
| void | hprint (std::ostream &a_out) |
Protected Types | |
| enum | { AxisX = 0, AxisY = 1 } |
Protected Member Functions | |
| b2 (const std::string &a_title, bn_t aXnumber, TC aXmin, TC aXmax, bn_t aYnumber, TC aYmin, TC aYmax) | |
| b2 (const std::string &a_title, const std::vector< TC > &aEdgesX, const std::vector< TC > &aEdgesY) | |
| virtual | ~b2 () |
| b2 (const b2 &a_from) | |
| b2 & | operator= (const b2 &a_from) |
Protected Attributes | |
| TN | m_in_range_entries |
| TW | m_in_range_Sw |
| TC | m_in_range_Sxw |
| TC | m_in_range_Syw |
| TC | m_in_range_Sx2w |
| TC | m_in_range_Sy2w |
| typedef base_histo<TC,TN,TW,TH>::bn_t inlib::histo::b2< TC, TN, TW, TH >::bn_t |
Reimplemented from inlib::histo::base_histo< TC, TN, TW, TH >.
Reimplemented in inlib::histo::h2< TC, TN, TW, TH >, and inlib::histo::h2< double, unsigned int, double, double >.
anonymous enum [protected] |
| inlib::histo::b2< TC, TN, TW, TH >::b2 | ( | const std::string & | a_title, |
| bn_t | aXnumber, | ||
| TC | aXmin, | ||
| TC | aXmax, | ||
| bn_t | aYnumber, | ||
| TC | aYmin, | ||
| TC | aYmax | ||
| ) | [inline, protected] |
Definition at line 354 of file b2.
:m_in_range_entries(0) ,m_in_range_Sw(0) ,m_in_range_Sxw(0) ,m_in_range_Syw(0) ,m_in_range_Sx2w(0) ,m_in_range_Sy2w(0) { parent::m_title = a_title; std::vector<bn_t> ns; ns.push_back(aXnumber); ns.push_back(aYnumber); std::vector<TC> mins; mins.push_back(aXmin); mins.push_back(aYmin); std::vector<TC> maxs; maxs.push_back(aXmax); maxs.push_back(aYmax); parent::configure(2,ns,mins,maxs); }
| inlib::histo::b2< TC, TN, TW, TH >::b2 | ( | const std::string & | a_title, |
| const std::vector< TC > & | aEdgesX, | ||
| const std::vector< TC > & | aEdgesY | ||
| ) | [inline, protected] |
Definition at line 377 of file b2.
:m_in_range_entries(0) ,m_in_range_Sw(0) ,m_in_range_Sxw(0) ,m_in_range_Syw(0) ,m_in_range_Sx2w(0) ,m_in_range_Sy2w(0) { parent::m_title = a_title; std::vector< std::vector<TC> > edges(2); edges[0] = aEdgesX; edges[1] = aEdgesY; parent::configure(2,edges); }
| virtual inlib::histo::b2< TC, TN, TW, TH >::~b2 | ( | ) | [inline, protected, virtual] |
| inlib::histo::b2< TC, TN, TW, TH >::b2 | ( | const b2< TC, TN, TW, TH > & | a_from | ) | [inline, protected] |
Definition at line 396 of file b2.
: parent(a_from) ,m_in_range_entries(a_from.m_in_range_entries) ,m_in_range_Sw(a_from.m_in_range_Sw) ,m_in_range_Sxw(a_from.m_in_range_Sxw) ,m_in_range_Syw(a_from.m_in_range_Syw) ,m_in_range_Sx2w(a_from.m_in_range_Sx2w) ,m_in_range_Sy2w(a_from.m_in_range_Sy2w) { update_fast_getters(); }
| const axis<TC>& inlib::histo::b2< TC, TN, TW, TH >::axis_x | ( | ) | const [inline] |
Definition at line 210 of file b2.
{return parent::m_axes[0];}
| axis<TC>& inlib::histo::b2< TC, TN, TW, TH >::axis_x | ( | ) | [inline] |
Definition at line 212 of file b2.
{return parent::m_axes[0];} //touchy
| const axis<TC>& inlib::histo::b2< TC, TN, TW, TH >::axis_y | ( | ) | const [inline] |
Definition at line 211 of file b2.
{return parent::m_axes[1];}
| axis<TC>& inlib::histo::b2< TC, TN, TW, TH >::axis_y | ( | ) | [inline] |
Definition at line 213 of file b2.
{return parent::m_axes[1];} //touchy
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_center_x | ( | int | aI | ) | const [inline] |
Definition at line 152 of file b2.
{
return parent::m_axes[0].bin_center(aI);
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_center_y | ( | int | aJ | ) | const [inline] |
Definition at line 155 of file b2.
{
return parent::m_axes[1].bin_center(aJ);
}
| TN inlib::histo::b2< TC, TN, TW, TH >::bin_entries | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 84 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
return parent::m_bin_entries[offset];
}
| TN inlib::histo::b2< TC, TN, TW, TH >::bin_entries_x | ( | int | aI | ) | const [inline] |
Definition at line 216 of file b2.
{
if(!parent::m_dimension) return 0;
bn_t ibin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
bn_t ybins = parent::m_axes[1].bins()+2;
bn_t offset;
TN entries = 0;
for(bn_t jbin=0;jbin<ybins;jbin++) {
offset = ibin + jbin * parent::m_axes[1].m_offset;
entries += parent::m_bin_entries[offset];
}
return entries;
}
| TN inlib::histo::b2< TC, TN, TW, TH >::bin_entries_y | ( | int | aJ | ) | const [inline] |
Definition at line 244 of file b2.
{
if(!parent::m_dimension) return 0;
bn_t jbin;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t xbins = parent::m_axes[0].bins()+2;
bn_t offset;
TN entries = 0;
for(bn_t ibin=0;ibin<xbins;ibin++) {
offset = ibin + jbin * parent::m_axes[1].m_offset;
entries += parent::m_bin_entries[offset];
}
return entries;
}
| virtual TH inlib::histo::b2< TC, TN, TW, TH >::bin_error | ( | int | , |
| int | |||
| ) | const [pure virtual] |
| TH inlib::histo::b2< TC, TN, TW, TH >::bin_height | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 143 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
return this->get_bin_height(offset);
}
| TW inlib::histo::b2< TC, TN, TW, TH >::bin_height_x | ( | int | aI | ) | const [inline] |
Definition at line 230 of file b2.
{
if(!parent::m_dimension) return 0;
bn_t ibin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
bn_t ybins = parent::m_axes[1].bins()+2;
bn_t offset;
TW sw = 0;
for(bn_t jbin=0;jbin<ybins;jbin++) {
offset = ibin + jbin * parent::m_axes[1].m_offset;
sw += this->get_bin_height(offset);
}
return sw;
}
| TW inlib::histo::b2< TC, TN, TW, TH >::bin_height_y | ( | int | aJ | ) | const [inline] |
Definition at line 258 of file b2.
{
if(!parent::m_dimension) return 0;
bn_t jbin;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t xbins = parent::m_axes[0].bins()+2;
bn_t offset;
TW sw = 0;
for(bn_t ibin=0;ibin<xbins;ibin++) {
offset = ibin + jbin * parent::m_axes[1].m_offset;
sw += this->get_bin_height(offset);
}
return sw;
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_mean_x | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 159 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
TW sw = parent::m_bin_Sw[offset];
if(sw==0) return 0;
return parent::m_bin_Sxw[offset][AxisX]/sw;
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_mean_y | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 170 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
TW sw = parent::m_bin_Sw[offset];
if(sw==0) return 0;
return parent::m_bin_Sxw[offset][AxisY]/sw;
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_rms_x | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 181 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
TW sw = parent::m_bin_Sw[offset];
if(sw==0) return 0;
TC sxw = parent::m_bin_Sxw[offset][AxisX];
TC sx2w = parent::m_bin_Sx2w[offset][AxisX];
TC mean = sxw/sw;
return ::sqrt(::fabs((sx2w / sw) - mean * mean));
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_rms_y | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 195 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
TW sw = parent::m_bin_Sw[offset];
if(sw==0) return 0;
TC sxw = parent::m_bin_Sxw[offset][AxisY];
TC sx2w = parent::m_bin_Sx2w[offset][AxisY];
TC mean = sxw/sw;
return ::sqrt(::fabs((sx2w / sw) - mean * mean));
}
| TW inlib::histo::b2< TC, TN, TW, TH >::bin_Sw | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 93 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
return parent::m_bin_Sw(offset);
}
| TW inlib::histo::b2< TC, TN, TW, TH >::bin_Sw2 | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 102 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
return parent::m_bin_Sw2(offset);
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_Sx2w | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 118 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
return parent::m_bin_Sx2w[offset][AxisX];
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_Sxw | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 110 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
return parent::m_bin_Sxw[offset][AxisX];
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_Sy2w | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 134 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
return parent::m_bin_Sx2w[offset][AxisY];
}
| TC inlib::histo::b2< TC, TN, TW, TH >::bin_Syw | ( | int | aI, |
| int | aJ | ||
| ) | const [inline] |
Definition at line 126 of file b2.
{
if(parent::m_bin_number==0) return 0;
bn_t ibin,jbin;
if(!parent::m_axes[0].in_range_to_absolute_index(aI,ibin)) return 0;
if(!parent::m_axes[1].in_range_to_absolute_index(aJ,jbin)) return 0;
bn_t offset = ibin + jbin * parent::m_axes[1].m_offset;
return parent::m_bin_Sxw[offset][AxisY];
}
| int inlib::histo::b2< TC, TN, TW, TH >::coord_to_index_x | ( | TC | aCoord | ) | const [inline] |
| int inlib::histo::b2< TC, TN, TW, TH >::coord_to_index_y | ( | TC | aCoord | ) | const [inline] |
| void inlib::histo::b2< TC, TN, TW, TH >::hprint | ( | std::ostream & | a_out | ) | [inline] |
Definition at line 274 of file b2.
{
// A la HPRINT.
a_out << parent::dimension() << parent::title() << std::endl;
a_out
<< " * ENTRIES = " << parent::all_entries() << std::endl;
// 6 | 7 | 8
// -----------
// 3 | 4 | 5
// -----------
// 0 | 1 | 2
TW height_0 = bin_height(axis_t::UNDERFLOW_BIN,
axis_t::UNDERFLOW_BIN);
TW height_2 = bin_height(axis_t::OVERFLOW_BIN,
axis_t::UNDERFLOW_BIN);
TW height_6 = bin_height(axis_t::UNDERFLOW_BIN,
axis_t::OVERFLOW_BIN);
TW height_8 = bin_height(axis_t::OVERFLOW_BIN,
axis_t::OVERFLOW_BIN);
bn_t i,j;
TW height_1 = 0;
TW height_7 = 0;
for(i=0;i<axis_x().bins();i++){
height_1 += bin_height(i,axis_t::UNDERFLOW_BIN);
height_7 += bin_height(i,axis_t::OVERFLOW_BIN);
}
TW height_3 = 0;
TW height_5 = 0;
for(j=0;j<axis_y().bins();j++){
height_3 += bin_height(axis_t::UNDERFLOW_BIN,j);
height_5 += bin_height(axis_t::OVERFLOW_BIN,j);
}
TW height_4 = 0;
for(i=0;i<axis_x().bins();i++){
for(j=0;j<axis_y().bins();j++){
height_4 += bin_height(i,j);
}
}
a_out
<< " " << height_6 << " " << height_7 << " " << height_8 << std::endl;
a_out
<< " " << height_3 << " " << height_4 << " " << height_5 << std::endl;
a_out
<< " " << height_0 << " " << height_1 << " " << height_2 << std::endl;
// Some bins :
bn_t xbins = axis_x().bins();
bn_t ybins = axis_y().bins();
a_out
<< " * ENTRIES[0,0] = "
<< bin_entries(0,0)
<< " * HEIGHT[0,0] = "
<< bin_height(0,0)
<< " * ERROR[0,0] = "
<< bin_error(0,0)
<< std::endl;
a_out
<< " * ENTRIES[N/2,N/2] = "
<< bin_entries(xbins/2,ybins/2)
<< " * HEIGHT[N/2,N/2] = "
<< bin_height(xbins/2,ybins/2)
<< " * ERROR[N/2,N/2] = "
<< bin_error(xbins/2,ybins/2)
<< std::endl;
a_out
<< " * ENTRIES[N-1,N-1] = "
<< bin_entries(xbins-1,ybins-1)
<< " * HEIGHT[N-1,N-1] = "
<< bin_height(xbins-1,ybins-1)
<< " * ERROR[N-1,N-1] = "
<< bin_error(xbins-1,ybins-1)
<< std::endl;
}
| TC inlib::histo::b2< TC, TN, TW, TH >::mean_x | ( | ) | const [inline] |
Definition at line 54 of file b2.
{
if(m_in_range_Sw==0) return 0;
return m_in_range_Sxw/m_in_range_Sw;
}
| TC inlib::histo::b2< TC, TN, TW, TH >::mean_y | ( | ) | const [inline] |
Definition at line 59 of file b2.
{
if(m_in_range_Sw==0) return 0;
return m_in_range_Syw/m_in_range_Sw;
}
| b2& inlib::histo::b2< TC, TN, TW, TH >::operator= | ( | const b2< TC, TN, TW, TH > & | a_from | ) | [inline, protected] |
Definition at line 408 of file b2.
{
parent::operator=(a_from);
m_in_range_entries = a_from.m_in_range_entries;
m_in_range_Sw = a_from.m_in_range_Sw;
m_in_range_Sxw = a_from.m_in_range_Sxw;
m_in_range_Syw = a_from.m_in_range_Syw;
m_in_range_Sx2w = a_from.m_in_range_Sx2w;
m_in_range_Sy2w = a_from.m_in_range_Sy2w;
update_fast_getters();
return *this;
}
| TC inlib::histo::b2< TC, TN, TW, TH >::rms_x | ( | ) | const [inline] |
Definition at line 64 of file b2.
{
if(m_in_range_Sw==0) return 0;
TC mean = m_in_range_Sxw/m_in_range_Sw;
return ::sqrt(::fabs((m_in_range_Sx2w / m_in_range_Sw) - mean * mean));
}
| TC inlib::histo::b2< TC, TN, TW, TH >::rms_y | ( | ) | const [inline] |
Definition at line 70 of file b2.
{
if(m_in_range_Sw==0) return 0;
TC mean = m_in_range_Syw/m_in_range_Sw;
return ::sqrt(::fabs((m_in_range_Sy2w / m_in_range_Sw) - mean * mean));
}
| void inlib::histo::b2< TC, TN, TW, TH >::update_fast_getters | ( | ) | [inline] |
Definition at line 25 of file b2.
{
m_in_range_entries = 0;
m_in_range_Sw = 0;
m_in_range_Sxw = 0;
m_in_range_Syw = 0;
m_in_range_Sx2w = 0;
m_in_range_Sy2w = 0;
bn_t ibin,jbin,offset;
bn_t xbins = parent::m_axes[0].bins();
bn_t ybins = parent::m_axes[1].bins();
bn_t yoffset = parent::m_axes[1].m_offset;
for(ibin=1;ibin<=xbins;ibin++) {
offset = ibin + yoffset;
for(jbin=1;jbin<=ybins;jbin++) {
//offset = ibin + jbin * m_axes[1].m_offset;
m_in_range_entries += parent::m_bin_entries[offset];
m_in_range_Sw += parent::m_bin_Sw[offset];
m_in_range_Sxw += parent::m_bin_Sxw[offset][0];
m_in_range_Syw += parent::m_bin_Sxw[offset][1];
m_in_range_Sx2w += parent::m_bin_Sx2w[offset][0];
m_in_range_Sy2w += parent::m_bin_Sx2w[offset][1];
offset += yoffset;
}
}
}
TN inlib::histo::b2< TC, TN, TW, TH >::m_in_range_entries [protected] |
TW inlib::histo::b2< TC, TN, TW, TH >::m_in_range_Sw [protected] |
TC inlib::histo::b2< TC, TN, TW, TH >::m_in_range_Sx2w [protected] |
TC inlib::histo::b2< TC, TN, TW, TH >::m_in_range_Sxw [protected] |
TC inlib::histo::b2< TC, TN, TW, TH >::m_in_range_Sy2w [protected] |
TC inlib::histo::b2< TC, TN, TW, TH >::m_in_range_Syw [protected] |
1.7.5.1