Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Anp::Hist1d< T > Class Template Reference

#include <Hist1d.h>

List of all members.

Public Types

typedef std::vector< Anp::Bin<
T > >::const_iterator 
BinIter
typedef std::vector< Anp::Bin<
T > >::iterator 
BinIterator
typedef std::vector< T
>::const_iterator 
Iter
typedef std::vector< T
>::iterator 
Iterator

Public Member Functions

 Hist1d ()
 Hist1d (unsigned int nbin, const T low, const T high)
 Hist1d (const std::vector< T > &vec)
 Hist1d (const TH1 &h)
 ~Hist1d ()
unsigned int Fill (const T value)
unsigned int Fill (const T value, const T weight)
unsigned int Fill (const T value, const T weight, const T width)
unsigned int Fill (const TH1 &h)
unsigned int Merge (const T minvalue)
unsigned int Rebin (unsigned int ngroup)
Bin< T > & operator[] (unsigned int bin)
Bin< T > & GetBin (const T value)
const Bin< T > & operator[] (unsigned int bin) const
const Bin< T > & GetBin (const T value) const
GetIntegral (const std::string &option="") const
unsigned int GetEntries (const std::string &option="") const
unsigned int GetNbins () const
const std::vector< Anp::Bin<
T > > & 
GetBins () const
void Reset ()
void Print (std::ostream &o=std::cout) const

Private Member Functions

const Bin< T > & get_bin_const (const T value) const
Bin< T > & get_bin (const T value)
void init_bins ()
void init_bins (std::vector< T > vec)
void init_trivial ()

Private Attributes

std::vector< Anp::Bin< T > > fData
unsigned int fNBin
fLowEdge
fHighEdge
bool fSearchBin

template<typename T>
class Anp::Hist1d< T >


Member Typedef Documentation

template<typename T>
typedef std::vector<Anp::Bin<T> >::const_iterator Anp::Hist1d< T >::BinIter
 

Definition at line 86 of file Hist1d.h.

Referenced by Anp::Hist1d< T >::get_bin_const(), Anp::Hist1d< T >::GetEntries(), Anp::Hist1d< T >::GetIntegral(), and Anp::Hist1d< T >::Print().

template<typename T>
typedef std::vector<Anp::Bin<T> >::iterator Anp::Hist1d< T >::BinIterator
 

Definition at line 87 of file Hist1d.h.

Referenced by Anp::Hist1d< T >::Fill(), Anp::Hist1d< T >::Merge(), and Anp::Hist1d< T >::Reset().

template<typename T>
typedef std::vector<T>::const_iterator Anp::Hist1d< T >::Iter
 

Definition at line 89 of file Hist1d.h.

template<typename T>
typedef std::vector<T>::iterator Anp::Hist1d< T >::Iterator
 

Definition at line 90 of file Hist1d.h.


Constructor & Destructor Documentation

template<typename T>
Anp::Hist1d< T >::Hist1d  ) 
 

Definition at line 345 of file Hist1d.h.

References Anp::Hist1d< T >::init_trivial().

00346       : fData(), fNBin(0), fLowEdge(), fHighEdge(), fSearchBin(false)
00347    {    
00348       init_trivial();
00349    }

template<typename T>
Anp::Hist1d< T >::Hist1d unsigned int  nbin,
const T  low,
const T  high
 

Definition at line 353 of file Hist1d.h.

References Anp::Hist1d< T >::fNBin, Anp::Hist1d< T >::init_bins(), and Anp::Hist1d< T >::init_trivial().

00354       : fData(), fNBin(nbin), fLowEdge(low), fHighEdge(high), fSearchBin(false)
00355    {
00356       if(fNBin > 0)
00357       {
00358          init_bins();
00359       }
00360       else
00361       {
00362          init_trivial();
00363       }
00364    }

template<typename T>
Anp::Hist1d< T >::Hist1d const std::vector< T > &  vec  )  [explicit]
 

Definition at line 368 of file Hist1d.h.

References Anp::Hist1d< T >::init_bins(), and Anp::Hist1d< T >::init_trivial().

00369       : fData(), fNBin(0), fLowEdge(), fHighEdge(), fSearchBin(true)
00370    {
00371       if(vec.size() > 1)
00372       {
00373          init_bins(vec);
00374       }
00375       else
00376       {
00377          init_trivial();
00378       }
00379    }

template<typename T>
Anp::Hist1d< T >::Hist1d const TH1 &  h  )  [explicit]
 

Definition at line 383 of file Hist1d.h.

References Anp::Bin< T >::add(), Anp::Hist1d< T >::fData, and NR::sort().

00384      :fData(),
00385       fNBin(h.GetNbinsX()),
00386       fLowEdge(h.GetXaxis() -> GetXmin()),
00387       fHighEdge(h.GetXaxis() -> GetXmax()),
00388       fSearchBin(true)
00389    {
00390       const int nbin = h.GetNbinsX();
00391       
00392       if(nbin < 2)
00393       { 
00394          std::cerr << "Hist1d<T>::Hist1d encountered TH1 without bins" << std::endl;
00395          return;
00396       }
00397 
00398       for(int ibin = 1; ibin <= nbin + 1; ++ibin)
00399       {
00400          const double value = h.GetBinContent(ibin);
00401          const double edge  = h.GetBinLowEdge(ibin);
00402          
00403          if(ibin == 1)
00404          {
00405             fData.push_back(Bin<T>(0, edge));
00406          }
00407 
00408          Bin<T> bin(ibin, edge);
00409          bin.add(value);
00410 
00411          fData.push_back(bin);
00412       }      
00413 
00414       std::sort(fData.begin(), fData.end());
00415    }

template<typename T>
Anp::Hist1d< T >::~Hist1d  ) 
 

Definition at line 419 of file Hist1d.h.

00419 {}


Member Function Documentation

template<typename T>
unsigned int Anp::Hist1d< T >::Fill const TH1 &  h  ) 
 

Definition at line 541 of file Hist1d.h.

References Anp::Bin< T >::add(), Anp::Hist1d< T >::fData, and Anp::Hist1d< T >::Fill().

00542    {      
00543       const int nbin = h.GetNbinsX();
00544       
00545       assert(nbin > 1 && "Hist1d<T>::Fill encountered TH1 without bins");
00546 
00547       for(int ibin = 0; ibin <= nbin + 1; ++ibin)
00548       {
00549          const double value  = h.GetBinContent(ibin);
00550          const double center = h.GetBinCenter(ibin);
00551          
00552          if(ibin == 0)
00553          {
00554             fData.front().add(value);
00555          }
00556          else if(ibin == nbin + 1)
00557          {
00558             fData.back().add(value);
00559          }
00560          else
00561          {
00562             Fill(center, value);
00563          }
00564       }
00565 
00566       return 0;
00567    }

template<typename T>
unsigned int Anp::Hist1d< T >::Fill const T  value,
const T  weight,
const T  width
 

Definition at line 441 of file Hist1d.h.

References Anp::Bin< T >::add(), Anp::Bin< T >::bin(), Anp::Hist1d< T >::BinIterator, Anp::Hist1d< T >::fData, Anp::Hist1d< T >::Fill(), and Anp::Hist1d< T >::fNBin.

00442    {
00443       if(!(width > 0.0) || fNBin < 1 || fData.empty())
00444       {
00445          return Fill(value, weight);
00446       }
00447 
00448       // compute boundaries for non zero kernel coontributions
00449       const T lpos = value - width;
00450       const T rpos = value + width;
00451 
00452       // Only overlap with underflow or overflow bins
00453       if(rpos < fData.front())
00454       {
00455          // rpos < underflow bin edge - no contribution to other bins
00456          Bin<T> &bin = fData.front();
00457          bin.add(weight);
00458          return bin.bin();
00459       }
00460       else if(!(lpos < fData.back()))
00461       {
00462          // lpos >= last overflow edge - no contribution to other bins
00463          Bin<T> &bin = fData.back();
00464          bin.add(weight);
00465          return bin.bin();
00466       }
00467 
00468       BinIterator lit = std::lower_bound(fData.begin(), fData.end(), lpos);
00469       if(lit == fData.end())
00470       {
00471          std::cerr << "Hist1d<T>::Fill - lower_bound has failed to find correct bin" << std::endl;
00472          return 0;
00473       }       
00474 
00475       // make copy of beg and end iterators
00476       BinIterator ibeg = fData.begin();
00477       BinIterator iend = fData.end();
00478 
00479       //
00480       // special case: compute overlap with underflow bin
00481       //
00482       if(lit == ibeg)
00483       {
00484          if(lpos < ibeg -> edge())
00485          {
00486             ibeg -> add(weight*GetKernelOverlap<T>(lpos, ibeg -> edge(), value, width));
00487          }
00488 
00489          lit++;
00490       }
00491       else
00492       {
00493          lit--;
00494          assert(lit != ibeg && "logic error finding underflow bin");
00495       }
00496 
00497       for(; lit != iend; ++lit)
00498       {  
00499          //
00500          // No more non overlapping bins
00501          //
00502          if(!(lit -> edge() < rpos))
00503          {
00504             break;
00505          }
00506 
00507          //
00508          // Overlap with this bin
00509          //
00510          T overlap = 0;
00511          
00512          const BinIterator nit = lit + 1;
00513          if(nit == iend)
00514          {
00515             overlap = Anp::GetKernelOverlap<T>(lit -> edge(), rpos, value, width);
00516          }
00517          else
00518          {
00519             //
00520             // kernel is entirely contain in a single bin
00521             //
00522             if(lit -> edge() < lpos && rpos < nit -> edge())
00523             {
00524                lit -> add(weight);
00525                break;
00526             }
00527             
00528             overlap = Anp::GetKernelOverlap<T>(std::max<T>(lit -> edge(), lpos),
00529                                                std::min<T>(nit -> edge(), rpos),
00530                                                value, width);
00531          }
00532 
00533          lit -> add(weight*overlap); // compute overlap fraction with this bin
00534       }
00535       
00536       return 0;
00537    }

template<typename T>
unsigned int Anp::Hist1d< T >::Fill const T  value,
const T  weight
 

Definition at line 432 of file Hist1d.h.

References Anp::Bin< T >::add(), Anp::Bin< T >::bin(), and Anp::Hist1d< T >::get_bin().

00433    {
00434       Bin<T> &bin = get_bin(value);
00435       bin.add(weight);
00436       return bin.bin();
00437    }

template<typename T>
unsigned int Anp::Hist1d< T >::Fill const T  value  ) 
 

Definition at line 423 of file Hist1d.h.

References Anp::Bin< T >::add(), Anp::Bin< T >::bin(), and Anp::Hist1d< T >::get_bin().

Referenced by Plot::Hist::CreateRatio(), Anp::Hist1d< T >::Fill(), Plot::Hist::GetRatio(), Anp::CountHist::Refill(), and Plot::TestHist().

00424    {
00425       Bin<T> &bin = get_bin(value);
00426       bin.add();
00427       return bin.bin();
00428    }

template<typename T>
Bin< T > & Anp::Hist1d< T >::get_bin const T  value  )  [private]
 

Definition at line 896 of file Hist1d.h.

References Anp::Hist1d< T >::get_bin_const().

Referenced by Anp::Hist1d< T >::Fill(), and Anp::Hist1d< T >::GetBin().

00897    {
00898       return const_cast<Bin<T> &>(get_bin_const(value));
00899    }

template<typename T>
const Bin< T > & Anp::Hist1d< T >::get_bin_const const T  value  )  const [private]
 

Definition at line 839 of file Hist1d.h.

References Anp::Hist1d< T >::BinIter, Anp::Hist1d< T >::fData, Anp::Hist1d< T >::fHighEdge, and Anp::Hist1d< T >::fNBin.

Referenced by Anp::Hist1d< T >::get_bin(), and Anp::Hist1d< T >::GetBin().

00840    {
00841       assert(!fData.empty() && "Hist1d<T>::get_bin_const() - vector is empty");
00842          
00843       if(fData.size() == 1)
00844       {
00845          return fData.front();
00846       }
00847       else if(value < fData.front())
00848       {
00849          // value < underflow bin edge so return underflow bin
00850          return fData.front();
00851       }
00852       else if(!(value < fData.back()))
00853       {
00854          // value >= last overflow edge so return overflow bin
00855          return fData.back();
00856       }
00857 
00858       // this point is reached if value >= low edge AND value < high edge
00859       // use stl binary_search to find proper bin, exclude underflow bin
00860       
00861       if(fSearchBin)
00862       {
00863          BinIter bit = std::lower_bound(fData.begin() + 1, fData.end(), value);
00864          if(bit == fData.end())
00865          {
00866             std::cerr << "Hist1d<T>::get_bin_const() - lower_bound has failed to find bin" << std::endl;
00867             return fData.back();
00868          }
00869          else if(!(value < *bit) && !(*bit < value))
00870          {
00871             return *bit;
00872          }
00873          
00874          return *(bit - 1);
00875       }
00876       else
00877       {
00878          const unsigned int bin = 
00879             1 + static_cast<unsigned int>((fNBin*(value - fLowEdge))/(fHighEdge - fLowEdge));
00880 
00881          if(bin > fNBin)
00882          {
00883             std::cerr << "Hist1d<T>::get_bin_const() - logic error #1" << std::endl;
00884             return fData.back();
00885          }
00886 
00887          return fData[bin];
00888       }      
00889       
00890       std::cerr << "Hist1d<T>::get_bin_const() - logic error #2" << std::endl;
00891       return fData.front();
00892    }

template<typename T>
const Bin< T > & Anp::Hist1d< T >::GetBin const T  value  )  const
 

Definition at line 752 of file Hist1d.h.

References Anp::Hist1d< T >::get_bin_const().

00753    {
00754       return get_bin_const(value);
00755    }

template<typename T>
Bin< T > & Anp::Hist1d< T >::GetBin const T  value  ) 
 

Definition at line 730 of file Hist1d.h.

References Anp::Hist1d< T >::get_bin().

00731    {
00732       return get_bin(value);
00733    }

template<typename T>
const std::vector< Anp::Bin< T > > & Anp::Hist1d< T >::GetBins  )  const [inline]
 

Definition at line 825 of file Hist1d.h.

Referenced by Anp::CreateTH1().

00825 { return fData; }

template<typename T>
unsigned int Anp::Hist1d< T >::GetEntries const std::string &  option = ""  )  const [inline]
 

Definition at line 759 of file Hist1d.h.

References Anp::Hist1d< T >::BinIter, Anp::Hist1d< T >::fData, and option.

00760    {
00761       if(fData.size() < 2)
00762       {
00763          return 0;
00764       }
00765 
00766       unsigned int entries = 0;
00767       
00768       BinIter beg = fData.begin();
00769       BinIter end = fData.end();
00770       
00771       if(option.find("U") == std::string::npos)
00772       {
00773          beg++;
00774       }
00775       if(option.find("O") == std::string::npos)
00776       {
00777          end--;
00778       }
00779       
00780       for(BinIter cit = beg; cit != end; ++cit)
00781       {  
00782          entries += cit -> entries();
00783       }
00784       
00785       return entries;
00786    }

template<typename T>
T Anp::Hist1d< T >::GetIntegral const std::string &  option = ""  )  const [inline]
 

Definition at line 790 of file Hist1d.h.

References Anp::Hist1d< T >::BinIter, Anp::Hist1d< T >::fData, and option.

Referenced by Anp::CreateTH1().

00791    {
00792       if(fData.size() < 2)
00793       {
00794          return 0;
00795       }
00796 
00797       T integral = 0;
00798 
00799       BinIter beg = fData.begin();
00800       BinIter end = fData.end();
00801       
00802       if(option.find("U") == std::string::npos)
00803       {
00804          beg++;
00805       }
00806       if(option.find("O") == std::string::npos)
00807       {
00808          end--;
00809       }
00810 
00811       for(BinIter cit = beg; cit != end; ++cit)
00812       {  
00813          integral += cit -> sum();
00814       }
00815       
00816       return integral;
00817    }

template<typename T>
unsigned int Anp::Hist1d< T >::GetNbins  )  const [inline]
 

Definition at line 821 of file Hist1d.h.

00821 { return fNBin; }

template<typename T>
void Anp::Hist1d< T >::init_bins std::vector< T >  vec  )  [private]
 

Definition at line 934 of file Hist1d.h.

References Anp::Hist1d< T >::fData, Anp::Hist1d< T >::fNBin, and NR::sort().

00935    {
00936       assert(vec.size() > 1 && "Hist1d<T>::init_bins() encountered small vector");
00937 
00938       // sort bin edges
00939       std::sort(vec.begin(), vec.end());
00940       
00941       fNBin = vec.size() - 1;
00942       fData.push_back(Bin<T>(0, vec.front()));
00943 
00944       for(unsigned int ibin = 0; ibin < vec.size(); ++ibin)
00945       {
00946          fData.push_back(Bin<T>(ibin + 1, vec[ibin]));
00947       }
00948 
00949       // sort all but first overflow bin
00950       std::sort(fData.begin() + 1, fData.end());
00951    }

template<typename T>
void Anp::Hist1d< T >::init_bins  )  [private]
 

Definition at line 911 of file Hist1d.h.

References Anp::Hist1d< T >::fData, Anp::Hist1d< T >::fHighEdge, Anp::Hist1d< T >::fLowEdge, Anp::Hist1d< T >::fNBin, Anp::Hist1d< T >::init_trivial(), and NR::sort().

Referenced by Anp::Hist1d< T >::Hist1d().

00912    {
00913       if(!(fLowEdge < fHighEdge))
00914       {
00915          std::cerr << "Hist1d<T>::init_bins() - minimum is not larger than maximum" << std::endl;
00916          init_trivial();
00917          return;
00918       }
00919 
00920       fData.push_back(Bin<T>(0, fLowEdge));
00921 
00922       for(unsigned int ibin = 0; ibin < fNBin + 1; ++ibin)
00923       {
00924          const T edge = fLowEdge + static_cast<T>(((fHighEdge - fLowEdge)*ibin)/fNBin);
00925          fData.push_back(Bin<T>(ibin + 1, edge));
00926       }
00927 
00928       // sort all but first overflow bin
00929       std::sort(fData.begin() + 1, fData.end());
00930    }

template<typename T>
void Anp::Hist1d< T >::init_trivial  )  [private]
 

Definition at line 903 of file Hist1d.h.

References Anp::Hist1d< T >::fData, and Anp::Hist1d< T >::fNBin.

Referenced by Anp::Hist1d< T >::Hist1d(), and Anp::Hist1d< T >::init_bins().

00904    {
00905       fNBin = 0;
00906       fData.push_back(Bin<T>(0, T()));
00907    }

template<typename T>
unsigned int Anp::Hist1d< T >::Merge const T  minvalue  ) 
 

Definition at line 571 of file Hist1d.h.

References Anp::Hist1d< T >::BinIterator, Anp::Hist1d< T >::fData, and Anp::Hist1d< T >::fNBin.

Referenced by Anp::CountHist::ComputeRatio(), Plot::Hist::CreateRatio(), and Plot::TestHist().

00572    {
00573       unsigned int nmerge = 0;
00574     
00575       typename std::vector<Bin<T> >::iterator bit = fData.begin();
00576       while(bit != fData.end())
00577       {
00578          if(bit -> sum() > minvalue)
00579          {
00580             ++bit;
00581             continue;
00582          }
00583 
00584          if(bit == fData.begin() || bit - 1 == fData.begin())
00585          {
00586             ++bit;
00587             continue;
00588          }
00589 
00590          if(bit + 1 == fData.end() || bit + 2 == fData.end())
00591          {
00592             ++bit;
00593             continue;
00594          }
00595          
00596          typename std::vector<Bin<T> >::iterator lit = bit - 1;
00597          typename std::vector<Bin<T> >::iterator hit = bit + 1;
00598         
00599          if(lit -> sum() < hit -> sum())
00600          {
00601             const Bin<T> newbin(*lit, *bit);
00602 
00603             typename std::vector<Bin<T> >::iterator pit = fData.erase(lit, bit + 1);
00604 
00605             fData.insert(pit, newbin);
00606          }
00607          else
00608          {
00609             const Bin<T> newbin(*bit, *hit);
00610 
00611             typename std::vector<Bin<T> >::iterator pit = fData.erase(bit, hit + 1);
00612 
00613             fData.insert(pit, newbin);
00614          }
00615          
00616          bit = fData.begin();
00617 
00618          ++nmerge;
00619       }
00620 
00621       BinIterator pit = fData.begin();
00622       for(BinIterator cit = fData.begin(); cit != fData.end(); ++cit)
00623       {  
00624          if(cit == fData.begin() || cit - 1 == fData.begin())
00625          {
00626             pit = cit;
00627             continue;
00628          }
00629 
00630          if(!(pit -> edge() < cit -> edge()) || !(pit -> bin() < cit -> bin()))
00631          {
00632             std::cerr << "Hist1d<T>::Merge - logic error for bin " << cit -> bin() << std::endl;
00633          }
00634 
00635          pit = cit;
00636 
00637          cit -> set_bin(std::distance(fData.begin(), cit));
00638          
00639       }
00640 
00641       fNBin = fData.size() - 2;
00642 
00643       return nmerge;
00644    }

template<typename T>
const Bin< T > & Anp::Hist1d< T >::operator[] unsigned int  bin  )  const
 

Definition at line 737 of file Hist1d.h.

References Anp::Hist1d< T >::fData.

00738    {
00739       assert(!fData.empty() && "empty bin vector in Hist1d<T>::operator[]");
00740 
00741       if(bin >= fData.size())
00742       {
00743          std::cerr << "Hist1d<T>::operator[" << bin << "] is out of range" << std::endl;
00744          return fData.back();
00745       }
00746       
00747       return fData[bin];
00748    }

template<typename T>
Bin< T > & Anp::Hist1d< T >::operator[] unsigned int  bin  ) 
 

Definition at line 715 of file Hist1d.h.

References Anp::Hist1d< T >::fData.

00716    {
00717       assert(!fData.empty() && "empty bin vector in Hist1d<T>::operator[]");
00718 
00719       if(bin >= fData.size())
00720       {
00721          std::cerr << "Hist1d<T>::operator[" << bin << "] is out of range" << std::endl;
00722          return fData.back();
00723       }
00724       
00725       return fData[bin];
00726    }

template<typename T>
void Anp::Hist1d< T >::Print std::ostream &  o = std::cout  )  const
 

Definition at line 955 of file Hist1d.h.

References Anp::Hist1d< T >::BinIter, Anp::Hist1d< T >::fData, Anp::Hist1d< T >::fNBin, and print().

Referenced by Anp::operator<<(), and Plot::TestHist().

00956    {
00957       o << "Printing 1d histogram containing " << fNBin << " bins" << std::endl;
00958 
00959       short width = 1;      
00960       for(short i = 1; i < 10; ++i)
00961       {
00962          if(fNBin < 10^(i))
00963          {
00964             width = i;
00965             break;
00966          }
00967       }
00968       if(width < 4)
00969       {
00970          width = 4;
00971       }
00972 
00973       for(BinIter it = fData.begin(); it != fData.end(); ++it)
00974       {
00975          it -> print(o, width, width);
00976       }
00977    }

template<typename T>
unsigned int Anp::Hist1d< T >::Rebin unsigned int  ngroup  ) 
 

Definition at line 648 of file Hist1d.h.

References Anp::Hist1d< T >::fData, Anp::Hist1d< T >::fNBin, Anp::Hist1d< T >::fSearchBin, Anp::Bin< T >::set_bin(), and NR::sort().

Referenced by Plot::Hist::Rebin().

00649    {
00650       //
00651       // rebin histogram by adding ngroup bins together
00652       //
00653 
00654       if(ngroup < 1 || ngroup >= fNBin || fData.size() < 3)
00655       {
00656          return 0;
00657       }
00658 
00659       std::vector<Anp::Bin<T> > data;
00660       bool newbin = true;
00661       Bin<T> bin;
00662 
00663       assert(int(fNBin) == int(fData.size()) - 2 && "logic error counting bins");
00664 
00665       for(unsigned int ibin = 1; ibin <= fNBin; ++ibin)
00666       {
00667          assert(ibin < fData.size() && "out of bounds access");
00668 
00669          if(newbin)
00670          {
00671             bin = fData[ibin];
00672             newbin = false;
00673             continue;
00674          }
00675 
00676          bin = Anp::Merge<T>(bin, fData[ibin]);
00677 
00678          if(ibin % ngroup == 0)
00679          {
00680             data.push_back(bin);
00681             newbin = true;
00682          }
00683       }
00684 
00685       //
00686       // Add last bin
00687       //
00688       if(!newbin) data.push_back(bin);
00689 
00690       //
00691       // sort bins
00692       //
00693       std::sort(data.begin(), data.end());
00694       
00695       //
00696       // Add overflow and underflow bins
00697       //
00698       data.insert(data.begin(), fData.front());
00699       data.insert(data.end(),   fData.back());
00700       
00701       for(unsigned int ibin = 0; ibin < data.size(); ibin++)
00702       {
00703          data[ibin].set_bin(ibin);
00704       }
00705       
00706       fData = data;
00707       fNBin = data.size() - 2;
00708       fSearchBin = true;
00709 
00710       return fNBin;
00711    }

template<typename T>
void Anp::Hist1d< T >::Reset  )  [inline]
 

Definition at line 829 of file Hist1d.h.

References Anp::Hist1d< T >::BinIterator, and Anp::Hist1d< T >::fData.

Referenced by Plot::Hist::CreateRatio(), Plot::Hist::GetRatio(), Anp::CountHist::Refill(), and Plot::TestHist().

00830    {
00831       for(BinIterator cit = fData.begin(); cit != fData.end(); ++cit)
00832       {  
00833          cit -> reset();
00834       }
00835    }


Member Data Documentation

template<typename T>
std::vector<Anp::Bin<T> > Anp::Hist1d< T >::fData [private]
 

Definition at line 136 of file Hist1d.h.

Referenced by Anp::Hist1d< T >::Fill(), Anp::Hist1d< T >::get_bin_const(), Anp::Hist1d< T >::GetEntries(), Anp::Hist1d< T >::GetIntegral(), Anp::Hist1d< T >::Hist1d(), Anp::Hist1d< T >::init_bins(), Anp::Hist1d< T >::init_trivial(), Anp::Hist1d< T >::Merge(), Anp::Hist1d< T >::operator[](), Anp::Hist1d< T >::Print(), Anp::Hist1d< T >::Rebin(), and Anp::Hist1d< T >::Reset().

template<typename T>
T Anp::Hist1d< T >::fHighEdge [private]
 

Definition at line 141 of file Hist1d.h.

Referenced by Anp::Hist1d< T >::get_bin_const(), and Anp::Hist1d< T >::init_bins().

template<typename T>
T Anp::Hist1d< T >::fLowEdge [private]
 

Definition at line 140 of file Hist1d.h.

Referenced by Anp::Hist1d< T >::init_bins().

template<typename T>
unsigned int Anp::Hist1d< T >::fNBin [private]
 

Definition at line 138 of file Hist1d.h.

Referenced by Anp::Hist1d< T >::Fill(), Anp::Hist1d< T >::get_bin_const(), Anp::Hist1d< T >::Hist1d(), Anp::Hist1d< T >::init_bins(), Anp::Hist1d< T >::init_trivial(), Anp::Hist1d< T >::Merge(), Anp::Hist1d< T >::Print(), and Anp::Hist1d< T >::Rebin().

template<typename T>
bool Anp::Hist1d< T >::fSearchBin [private]
 

Definition at line 143 of file Hist1d.h.

Referenced by Anp::Hist1d< T >::Rebin().


The documentation for this class was generated from the following file:
Generated on Fri Mar 28 16:15:25 2008 for loon by  doxygen 1.3.9.1