//$Id$ // Author: Anders Vestbo //*-- Copyright © ASV #include "AliL3StandardIncludes.h" #include "AliL3Logging.h" #include "AliL3Histogram1D.h" #if GCCVERSION == 3 using namespace std; #endif //_____________________________________________________________ // AliL3Histogram1D // // 1D histogram class. ClassImp(AliL3Histogram1D) AliL3Histogram1D::AliL3Histogram1D() { fNbins = 0; fNcells = 0; fEntries = 0; fXmin = 0; fXmax = 0; #ifdef use_root fRootHisto = 0; #endif fThreshold = 0; fContent = 0; } AliL3Histogram1D::AliL3Histogram1D(Char_t *name,Char_t *id,Int_t nxbin,Double_t xmin,Double_t xmax) { strcpy(fName,name); fNbins = nxbin; fNcells = fNbins + 2; fEntries = 0; fXmin = xmin; fXmax = xmax; #ifdef use_root fRootHisto = 0; #endif fThreshold = 0; fContent = new Double_t[fNcells]; Reset(); } AliL3Histogram1D::~AliL3Histogram1D() { //Destructor if(fContent) delete [] fContent; #ifdef use_root if(fRootHisto) delete fRootHisto; #endif } void AliL3Histogram1D::Reset() { bzero(fContent,fNcells*sizeof(Double_t)); fEntries=0; } void AliL3Histogram1D::Fill(Double_t x,Int_t weight) { Int_t bin = FindBin(x); AddBinContent(bin,weight); } Int_t AliL3Histogram1D::FindBin(Double_t x) { if(x < fXmin || x > fXmax) return 0; return 1 + (Int_t)(fNbins*(x-fXmin)/(fXmax-fXmin)); } Int_t AliL3Histogram1D::GetMaximumBin() { Double_t max_value=0; Int_t max_bin=0; for(Int_t i=0; i max_value) { max_value=fContent[i]; max_bin = i; } } return max_bin; } Double_t AliL3Histogram1D::GetBinContent(Int_t bin) { if(bin >= fNcells) { LOG(AliL3Log::kError,"AliL3Histogram::GetBinContent","array")<= fNcells) { LOG(AliL3Log::kError,"AliL3Histogram::SetBinContent","array")< fNcells) { LOG(AliL3Log::kError,"AliL3Histogram::AddBinContent","array")<AddBinContent(bin,GetBinContent(bin)); fRootHisto->Draw(option); } #endif