inlib  1.2.0
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
inlib::histo::b3< TC, TN, TW, TH > Class Template Reference
Inheritance diagram for inlib::histo::b3< TC, TN, TW, TH >:
Inheritance graph
[legend]
Collaboration diagram for inlib::histo::b3< TC, TN, TW, TH >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef base_histo< TC, TN, TW,
TH >::bn_t 
bn_t

Public Member Functions

virtual TH bin_error (int, int, int) const =0
void update_fast_getters ()
int coord_to_index_x (TC aCoord) const
int coord_to_index_y (TC aCoord) const
int coord_to_index_z (TC aCoord) const
TC mean_x () const
TC mean_y () const
TC mean_z () const
TC rms_x () const
TC rms_y () const
TC rms_z () const
TN bin_entries (int aI, int aJ, int aK) const
TH bin_height (int aI, int aJ, int aK) const
TC bin_center_x (int aI) const
TC bin_center_y (int aJ) const
TC bin_center_z (int aK) const
TC bin_mean_x (int aI, int aJ, int aK) const
TC bin_mean_y (int aI, int aJ, int aK) const
TC bin_mean_z (int aI, int aJ, int aK) const
TC bin_rms_x (int aI, int aJ, int aK) const
TC bin_rms_y (int aI, int aJ, int aK) const
TC bin_rms_z (int aI, int aJ, int aK) const
const axis_taxis_x () const
const axis_taxis_y () const
const axis_taxis_z () const
axis_taxis_x ()
axis_taxis_y ()
axis_taxis_z ()
TN bin_entries_x (int aI) const
TN bin_entries_y (int aJ) const
TN bin_entries_z (int aK) const
TW bin_height_x (int aI) const
TW bin_height_y (int aJ) const
TW bin_height_z (int aK) const
 b3 (const std::string &a_title, bn_t aXnumber, TC aXmin, TC aXmax, bn_t aYnumber, TC aYmin, TC aYmax, bn_t aZnumber, TC aZmin, TC aZmax)
 b3 (const std::string &a_title, const std::vector< TC > &aEdgesX, const std::vector< TC > &aEdgesY, const std::vector< TC > &aEdgesZ)
virtual ~b3 ()

Protected Types

enum  { AxisX = 0, AxisY = 1, AxisZ = 2 }

Protected Member Functions

 b3 (const b3 &a_from)
b3operator= (const b3 &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_Szw
TC m_in_range_Sx2w
TC m_in_range_Sy2w
TC m_in_range_Sz2w

Detailed Description

template<class TC, class TN, class TW, class TH>
class inlib::histo::b3< TC, TN, TW, TH >

Definition at line 15 of file b3.


Member Typedef Documentation

template<class TC, class TN, class TW, class TH>
typedef base_histo<TC,TN,TW,TH>::bn_t inlib::histo::b3< TC, TN, TW, TH >::bn_t

Member Enumeration Documentation

template<class TC, class TN, class TW, class TH>
anonymous enum [protected]
Enumerator:
AxisX 
AxisY 
AxisZ 

Definition at line 21 of file b3.

{AxisX=0,AxisY=1,AxisZ=2};

Constructor & Destructor Documentation

template<class TC, class TN, class TW, class TH>
inlib::histo::b3< TC, TN, TW, TH >::b3 ( const std::string &  a_title,
bn_t  aXnumber,
TC  aXmin,
TC  aXmax,
bn_t  aYnumber,
TC  aYmin,
TC  aYmax,
bn_t  aZnumber,
TC  aZmin,
TC  aZmax 
) [inline]

Definition at line 365 of file b3.

  :m_in_range_entries(0)
  ,m_in_range_Sw(0)
  ,m_in_range_Sxw(0)
  ,m_in_range_Syw(0)
  ,m_in_range_Szw(0)
  ,m_in_range_Sx2w(0)
  ,m_in_range_Sy2w(0)
  ,m_in_range_Sz2w(0)
  {
    parent::m_title = a_title;
    std::vector<bn_t> ns;
    ns.push_back(aXnumber);
    ns.push_back(aYnumber);
    ns.push_back(aZnumber);
    std::vector<TC> mins;
    mins.push_back(aXmin);
    mins.push_back(aYmin);
    mins.push_back(aZmin);
    std::vector<TC> maxs;
    maxs.push_back(aXmax);
    maxs.push_back(aYmax);
    maxs.push_back(aZmax);
    parent::configure(3,ns,mins,maxs);
  }
template<class TC, class TN, class TW, class TH>
inlib::histo::b3< TC, TN, TW, TH >::b3 ( const std::string &  a_title,
const std::vector< TC > &  aEdgesX,
const std::vector< TC > &  aEdgesY,
const std::vector< TC > &  aEdgesZ 
) [inline]

Definition at line 394 of file b3.

  :m_in_range_entries(0)
  ,m_in_range_Sw(0)
  ,m_in_range_Sxw(0)
  ,m_in_range_Syw(0)
  ,m_in_range_Szw(0)
  ,m_in_range_Sx2w(0)
  ,m_in_range_Sy2w(0)
  ,m_in_range_Sz2w(0)
  {
    parent::m_title = a_title;
    std::vector< std::vector<TC> > edges(3);
    edges[0] = aEdgesX;
    edges[1] = aEdgesY;
    edges[2] = aEdgesZ;
    parent::configure(3,edges);
  }
template<class TC, class TN, class TW, class TH>
virtual inlib::histo::b3< TC, TN, TW, TH >::~b3 ( ) [inline, virtual]

Definition at line 415 of file b3.

{}
template<class TC, class TN, class TW, class TH>
inlib::histo::b3< TC, TN, TW, TH >::b3 ( const b3< TC, TN, TW, TH > &  a_from) [inline, protected]

Definition at line 417 of file b3.

  : 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_Szw(a_from.m_in_range_Szw)
  ,m_in_range_Sx2w(a_from.m_in_range_Sx2w)
  ,m_in_range_Sy2w(a_from.m_in_range_Sy2w)
  ,m_in_range_Sz2w(a_from.m_in_range_Sz2w)
  {
    update_fast_getters();
  }

Member Function Documentation

template<class TC, class TN, class TW, class TH>
const axis_t& inlib::histo::b3< TC, TN, TW, TH >::axis_x ( ) const [inline]

Definition at line 215 of file b3.

{return parent::m_axes[0];}
template<class TC, class TN, class TW, class TH>
axis_t& inlib::histo::b3< TC, TN, TW, TH >::axis_x ( ) [inline]

Definition at line 218 of file b3.

{return parent::m_axes[0];} //touchy
template<class TC, class TN, class TW, class TH>
const axis_t& inlib::histo::b3< TC, TN, TW, TH >::axis_y ( ) const [inline]

Definition at line 216 of file b3.

{return parent::m_axes[1];}
template<class TC, class TN, class TW, class TH>
axis_t& inlib::histo::b3< TC, TN, TW, TH >::axis_y ( ) [inline]

Definition at line 219 of file b3.

{return parent::m_axes[1];} //touchy
template<class TC, class TN, class TW, class TH>
const axis_t& inlib::histo::b3< TC, TN, TW, TH >::axis_z ( ) const [inline]

Definition at line 217 of file b3.

{return parent::m_axes[2];}
template<class TC, class TN, class TW, class TH>
axis_t& inlib::histo::b3< TC, TN, TW, TH >::axis_z ( ) [inline]

Definition at line 220 of file b3.

{return parent::m_axes[2];} //touchy
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_center_x ( int  aI) const [inline]

Definition at line 129 of file b3.

{return parent::m_axes[0].bin_center(aI);}
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_center_y ( int  aJ) const [inline]

Definition at line 130 of file b3.

{return parent::m_axes[1].bin_center(aJ);}
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_center_z ( int  aK) const [inline]

Definition at line 131 of file b3.

{return parent::m_axes[2].bin_center(aK);}
template<class TC, class TN, class TW, class TH>
TN inlib::histo::b3< TC, TN, TW, TH >::bin_entries ( int  aI,
int  aJ,
int  aK 
) const [inline]

Definition at line 109 of file b3.

                                             {
    if(parent::m_bin_number==0) return 0;
    bn_t ibin,jbin,kbin;
    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;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t offset = ibin + jbin * parent::m_axes[1].m_offset + kbin * parent::m_axes[2].m_offset;
    return parent::m_bin_entries[offset];
  }
template<class TC, class TN, class TW, class TH>
TN inlib::histo::b3< TC, TN, TW, TH >::bin_entries_x ( int  aI) const [inline]

Definition at line 223 of file b3.

                                 {
    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 jbin,kbin,offset;     
    bn_t ybins = parent::m_axes[1].bins()+2;
    bn_t zbins = parent::m_axes[2].bins()+2;
    bn_t yoffset = parent::m_axes[1].m_offset;
    bn_t zoffset = parent::m_axes[2].m_offset;
    bn_t joffset = ibin;
    TN entries = 0;
    for(jbin=0;jbin<ybins;jbin++) {
      //joffset = ibin + jbin * parent::m_axes[1].m_offset;
      offset = joffset;
      for(kbin=0;kbin<zbins;kbin++) {
        //offset = joffset + kbin * parent::m_axes[2].m_offset;
        entries += parent::m_bin_entries[offset];
        offset += zoffset;
      }
      joffset += yoffset;
    }
    return entries;
  }
template<class TC, class TN, class TW, class TH>
TN inlib::histo::b3< TC, TN, TW, TH >::bin_entries_y ( int  aJ) const [inline]

Definition at line 247 of file b3.

                                 {
    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 ibin,kbin,offset;     
    bn_t xbins = parent::m_axes[0].bins()+2;
    bn_t zbins = parent::m_axes[2].bins()+2;
    bn_t yoffset = parent::m_axes[1].m_offset;
    bn_t zoffset = parent::m_axes[2].m_offset;
    bn_t joffset = jbin * yoffset;
    TN entries = 0;
    for(ibin=0;ibin<xbins;ibin++) {
      //joffset = ibin + jbin * parent::m_axes[1].m_offset;
      offset = joffset;
      for(kbin=0;kbin<zbins;kbin++) {
        //offset = joffset + kbin * parent::m_axes[2].m_offset;
        entries += parent::m_bin_entries[offset];
        offset += zoffset;
      }
      joffset++;
    }
    return entries;
  }
template<class TC, class TN, class TW, class TH>
TN inlib::histo::b3< TC, TN, TW, TH >::bin_entries_z ( int  aK) const [inline]

Definition at line 271 of file b3.

                                 {
    if(!parent::m_dimension) return 0;
    bn_t kbin;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t ibin,jbin,offset;     
    bn_t xbins = parent::m_axes[0].bins()+2;
    bn_t ybins = parent::m_axes[1].bins()+2;
    bn_t yoffset = parent::m_axes[1].m_offset;
    bn_t zoffset = parent::m_axes[2].m_offset;
    bn_t koffset = kbin * zoffset;
    TN entries = 0;
    for(ibin=0;ibin<xbins;ibin++) {
      //koffset = ibin + kbin * parent::m_axes[2].m_offset;
      offset = koffset;
      for(jbin=0;jbin<ybins;jbin++) {
        //offset = koffset + jbin * parent::m_axes[1].m_offset;
        entries += parent::m_bin_entries[offset];
        offset += yoffset;
      }
      koffset++;
    }
    return entries;
  }
template<class TC, class TN, class TW, class TH>
virtual TH inlib::histo::b3< TC, TN, TW, TH >::bin_error ( int  ,
int  ,
int   
) const [pure virtual]
template<class TC, class TN, class TW, class TH>
TH inlib::histo::b3< TC, TN, TW, TH >::bin_height ( int  aI,
int  aJ,
int  aK 
) const [inline]

Definition at line 119 of file b3.

                                            {
    if(parent::m_bin_number==0) return 0;
    bn_t ibin,jbin,kbin;
    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;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t offset = ibin + jbin * parent::m_axes[1].m_offset + kbin * parent::m_axes[2].m_offset;
    return this->get_bin_height(offset);
  }
template<class TC, class TN, class TW, class TH>
TW inlib::histo::b3< TC, TN, TW, TH >::bin_height_x ( int  aI) const [inline]

Definition at line 295 of file b3.

                                {
    //to slow : return get_ith_axis_bin_height(0,aI);
    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 zbins = parent::m_axes[2].bins()+2;
    bn_t yoffset = parent::m_axes[1].m_offset;
    bn_t zoffset = parent::m_axes[2].m_offset;
    bn_t joffset = ibin;
    TW sw = 0;
    for(bn_t jbin=0;jbin<ybins;jbin++) {
      //joffset = ibin + jbin * parent::m_axes[1].m_offset;
      bn_t offset = joffset;
      for(bn_t kbin=0;kbin<zbins;kbin++) {
        //offset = joffset + kbin * parent::m_axes[2].m_offset;
        sw += this->get_bin_height(offset);
        offset += zoffset;
      }
      joffset += yoffset;
    }
    return sw;
  }
template<class TC, class TN, class TW, class TH>
TW inlib::histo::b3< TC, TN, TW, TH >::bin_height_y ( int  aJ) const [inline]

Definition at line 319 of file b3.

                                {
    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 zbins = parent::m_axes[2].bins()+2;
    bn_t yoffset = parent::m_axes[1].m_offset;
    bn_t zoffset = parent::m_axes[2].m_offset;
    bn_t joffset = jbin * yoffset;
    TW sw = 0;
    for(bn_t ibin=0;ibin<xbins;ibin++) {
      //joffset = ibin + jbin * parent::m_axes[1].m_offset;
      bn_t offset = joffset;
      for(bn_t kbin=0;kbin<zbins;kbin++) {
        //offset = joffset + kbin * parent::m_axes[2].m_offset;
        sw += this->get_bin_height(offset);
        offset += zoffset;
      }
      joffset++;
    }
    return sw;
  }
template<class TC, class TN, class TW, class TH>
TW inlib::histo::b3< TC, TN, TW, TH >::bin_height_z ( int  aK) const [inline]

Definition at line 342 of file b3.

                                {
    if(!parent::m_dimension) return 0;
    bn_t kbin;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t xbins = parent::m_axes[0].bins()+2;
    bn_t ybins = parent::m_axes[1].bins()+2;
    bn_t yoffset = parent::m_axes[1].m_offset;
    bn_t zoffset = parent::m_axes[2].m_offset;
    bn_t koffset = kbin * zoffset;
    TW sw = 0;
    for(bn_t ibin=0;ibin<xbins;ibin++) {
      //koffset = ibin + kbin * parent::m_axes[2].m_offset;
      bn_t offset = koffset;
      for(bn_t jbin=0;jbin<ybins;jbin++) {
        //offset = koffset + jbin * parent::m_axes[1].m_offset;
        sw += this->get_bin_height(offset);
        offset += yoffset;
      }
      koffset++;
    }
    return sw;
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_mean_x ( int  aI,
int  aJ,
int  aK 
) const [inline]

Definition at line 133 of file b3.

                                            {
    if(parent::m_bin_number==0) return 0;
    bn_t ibin,jbin,kbin;
    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;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t offset = ibin + jbin * parent::m_axes[1].m_offset + kbin * parent::m_axes[2].m_offset;
    TW sw = parent::m_bin_Sw[offset];
    if(sw==0) return 0;
    return parent::m_bin_Sxw[offset][AxisX]/sw;
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_mean_y ( int  aI,
int  aJ,
int  aK 
) const [inline]

Definition at line 145 of file b3.

                                            {
    if(parent::m_bin_number==0) return 0;
    bn_t ibin,jbin,kbin;
    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;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t offset = ibin + jbin * parent::m_axes[1].m_offset + kbin * parent::m_axes[2].m_offset;
    TW sw = parent::m_bin_Sw[offset];
    if(sw==0) return 0;
    return parent::m_bin_Sxw[offset][AxisY]/sw;
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_mean_z ( int  aI,
int  aJ,
int  aK 
) const [inline]

Definition at line 157 of file b3.

                                            {
    if(parent::m_bin_number==0) return 0;
    bn_t ibin,jbin,kbin;
    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;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t offset = ibin + jbin * parent::m_axes[1].m_offset + kbin * parent::m_axes[2].m_offset;
    TW sw = parent::m_bin_Sw[offset];
    if(sw==0) return 0;
    return parent::m_bin_Sxw[offset][AxisZ]/sw;
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_rms_x ( int  aI,
int  aJ,
int  aK 
) const [inline]

Definition at line 169 of file b3.

                                           {
    if(parent::m_bin_number==0) return 0;
    bn_t ibin,jbin,kbin;
    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;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t offset = ibin + jbin * parent::m_axes[1].m_offset + kbin * parent::m_axes[2].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));
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_rms_y ( int  aI,
int  aJ,
int  aK 
) const [inline]

Definition at line 184 of file b3.

                                           {
    if(parent::m_bin_number==0) return 0;
    bn_t ibin,jbin,kbin;
    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;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t offset = ibin + jbin * parent::m_axes[1].m_offset + kbin * parent::m_axes[2].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));
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::bin_rms_z ( int  aI,
int  aJ,
int  aK 
) const [inline]

Definition at line 199 of file b3.

                                           {
    if(parent::m_bin_number==0) return 0;
    bn_t ibin,jbin,kbin;
    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;
    if(!parent::m_axes[2].in_range_to_absolute_index(aK,kbin)) return 0;
    bn_t offset = ibin + jbin * parent::m_axes[1].m_offset + kbin * parent::m_axes[2].m_offset;
    TW sw = parent::m_bin_Sw[offset];
    if(sw==0) return 0;
    TC sxw = parent::m_bin_Sxw[offset][AxisZ];
    TC sx2w = parent::m_bin_Sx2w[offset][AxisZ];
    TC mean = sxw/sw;
    return ::sqrt(::fabs((sx2w / sw) - mean * mean));
  }
template<class TC, class TN, class TW, class TH>
int inlib::histo::b3< TC, TN, TW, TH >::coord_to_index_x ( TC  aCoord) const [inline]

Definition at line 65 of file b3.

                                        {
    return axis_x().coord_to_index(aCoord);
  }
template<class TC, class TN, class TW, class TH>
int inlib::histo::b3< TC, TN, TW, TH >::coord_to_index_y ( TC  aCoord) const [inline]

Definition at line 68 of file b3.

                                        {
    return axis_y().coord_to_index(aCoord);
  }
template<class TC, class TN, class TW, class TH>
int inlib::histo::b3< TC, TN, TW, TH >::coord_to_index_z ( TC  aCoord) const [inline]

Definition at line 71 of file b3.

                                        {
    return axis_z().coord_to_index(aCoord);
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::mean_x ( ) const [inline]

Definition at line 75 of file b3.

                    {
    if(m_in_range_Sw==0) return 0;
    return m_in_range_Sxw/m_in_range_Sw;
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::mean_y ( ) const [inline]

Definition at line 80 of file b3.

                    {
    if(m_in_range_Sw==0) return 0;
    return m_in_range_Syw/m_in_range_Sw;
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::mean_z ( ) const [inline]

Definition at line 85 of file b3.

                    {
    if(m_in_range_Sw==0) return 0;
    return m_in_range_Szw/m_in_range_Sw;
  }
template<class TC, class TN, class TW, class TH>
b3& inlib::histo::b3< TC, TN, TW, TH >::operator= ( const b3< TC, TN, TW, TH > &  a_from) [inline, protected]

Definition at line 430 of file b3.

                                 {
    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_Szw = a_from.m_in_range_Szw;
    m_in_range_Sx2w = a_from.m_in_range_Sx2w;
    m_in_range_Sy2w = a_from.m_in_range_Sy2w;
    m_in_range_Sz2w = a_from.m_in_range_Sz2w;
    update_fast_getters();
    return *this;
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::rms_x ( ) const [inline]

Definition at line 90 of file b3.

                   {
    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));
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::rms_y ( ) const [inline]

Definition at line 96 of file b3.

                   {
    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));
  }
template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::rms_z ( ) const [inline]

Definition at line 102 of file b3.

                   {
    if(m_in_range_Sw==0) return 0;
    TC mean = m_in_range_Szw/m_in_range_Sw;
    return ::sqrt(::fabs((m_in_range_Sz2w / m_in_range_Sw) - mean * mean));
  }
template<class TC, class TN, class TW, class TH>
void inlib::histo::b3< TC, TN, TW, TH >::update_fast_getters ( ) [inline]

Definition at line 25 of file b3.

                             {
    m_in_range_entries = 0;
    m_in_range_Sw = 0;
    m_in_range_Sxw = 0;
    m_in_range_Syw = 0;
    m_in_range_Szw = 0;
    m_in_range_Sx2w = 0;
    m_in_range_Sy2w = 0;
    m_in_range_Sz2w = 0;
    bn_t ibin,jbin,kbin,joffset,offset;     
    bn_t xbins = parent::m_axes[0].bins();
    bn_t ybins = parent::m_axes[1].bins();
    bn_t zbins = parent::m_axes[2].bins();
    bn_t yoffset = parent::m_axes[1].m_offset;
    bn_t zoffset = parent::m_axes[2].m_offset;
    for(ibin=1;ibin<=xbins;ibin++) {
      joffset = ibin + yoffset;
      for(jbin=1;jbin<=ybins;jbin++) {
        //joffset = ibin + jbin * parent::m_axes[1].m_offset;
        offset = joffset + zoffset;
        for(kbin=1;kbin<=zbins;kbin++) {
          //offset = joffset + kbin * parent::m_axes[2].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_Szw += parent::m_bin_Sxw[offset][2];
          m_in_range_Sx2w += parent::m_bin_Sx2w[offset][0];
          m_in_range_Sy2w += parent::m_bin_Sx2w[offset][1];
          m_in_range_Sz2w += parent::m_bin_Sx2w[offset][2];
  
          offset += zoffset;
        }
        joffset += yoffset;
      }
    }
  }

Member Data Documentation

template<class TC, class TN, class TW, class TH>
TN inlib::histo::b3< TC, TN, TW, TH >::m_in_range_entries [protected]

Definition at line 444 of file b3.

template<class TC, class TN, class TW, class TH>
TW inlib::histo::b3< TC, TN, TW, TH >::m_in_range_Sw [protected]

Definition at line 445 of file b3.

template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::m_in_range_Sx2w [protected]

Definition at line 449 of file b3.

template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::m_in_range_Sxw [protected]

Definition at line 446 of file b3.

template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::m_in_range_Sy2w [protected]

Definition at line 450 of file b3.

template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::m_in_range_Syw [protected]

Definition at line 447 of file b3.

template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::m_in_range_Sz2w [protected]

Definition at line 451 of file b3.

template<class TC, class TN, class TW, class TH>
TC inlib::histo::b3< TC, TN, TW, TH >::m_in_range_Szw [protected]

Definition at line 448 of file b3.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines