ROOT logo
ROOT » HIST » HIST » THnT<double>

class THnT<double>: public THn


 Templated implementation of the abstract base THn.
 All functionality and the interfaces to be used are in THn!

 THn does not know how to store any bin content itself. Instead, this
 is delegated to the derived, templated class: the template parameter decides
 what the format for the bin content is. The actual storage is delegated to
 TNDArrayT<T>.

 Typedefs exist for template parematers with ROOT's generic types:

   Templated name        Typedef       Bin content type
   THnT<Char_t>          THnC          Char_t
   THnT<Short_t>         THnS          Short_t
   THnT<Int_t>           THnI          Int_t
   THnT<Long_t>          THnL          Long_t
   THnT<Float_t>         THnF          Float_t
   THnT<Double_t>        THnD          Double_t

 We recommend to use THnC wherever possible, and to map its value space
 of 256 possible values to e.g. float values outside the class. This saves an
 enourmous amount of memory. Only if more than 256 values need to be
 distinguished should e.g. THnS or even THnF be chosen.

 Implementation detail: the derived, templated class is kept extremely small
 on purpose. That way the (templated thus inlined) uses of this class will
 only create a small amount of machine code, in contrast to e.g. STL.

This class is also known as (typedefs to this class)

THnD, THnT<Double_t>

Function Members (Methods)

public:
THnT<double>()
THnT<double>(const char* name, const char* title, Int_t dim, const Int_t* nbins, const Double_t* xmin, const Double_t* xmax)
~THnT<double>()
voidTObject::AbstractMethod(const char* method) const
voidTHnBase::Add(const THnBase* h, Double_t c = 1.)
voidTHnBase::Add(const TH1* hist, Double_t c = 1.)
voidTHn::AddBinContent(const Int_t* idx, Double_t v = 1.)
virtual voidTHn::AddBinContent(Long64_t bin, Double_t v = 1.)
virtual voidTHn::AddBinError2(Long64_t bin, Double_t e2)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTHnBase::Browse(TBrowser* b)
voidTHnBase::CalculateErrors(Bool_t calc = kTRUE)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
Double_tTHnBase::ComputeIntegral()
virtual voidTNamed::Copy(TObject& named) const
static THn*THn::CreateHn(const char* name, const char* title, const TH1* h1)
static THn*THn::CreateHn(const char* name, const char* title, const THnBase* hn)
virtual ROOT::THnBaseBinIter*THn::CreateIter(Bool_t respectAxisRange) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
voidTHnBase::Divide(const THnBase* h)
voidTHnBase::Divide(const THnBase* h1, const THnBase* h2, Double_t c1 = 1., Double_t c2 = 1., Option_t* option = "")
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
Long64_tTHnBase::Fill(const Double_t* x, Double_t w = 1.)
Long64_tTHnBase::Fill(const char** name, Double_t w = 1.)
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TFitResultPtrTHnBase::Fit(TF1* f1, Option_t* option = "", Option_t* goption = "")
virtual const TNDArray&GetArray() const
virtual TNDArray&GetArray()
TAxis*THnBase::GetAxis(Int_t dim) const
virtual Long64_tTHn::GetBin(const Int_t* idx) const
virtual Long64_tTHn::GetBin(const Double_t* x) const
virtual Long64_tTHn::GetBin(const char** name) const
virtual Long64_tTHn::GetBin(const Int_t* idx, Bool_t = kTRUE)
virtual Long64_tTHn::GetBin(const Double_t* x, Bool_t = kTRUE)
virtual Long64_tTHn::GetBin(const char** name, Bool_t = kTRUE)
Double_tTHn::GetBinContent(const Int_t* idx) const
virtual Double_tTHn::GetBinContent(Long64_t bin, Int_t* idx = 0) const
Double_tTHnBase::GetBinError(const Int_t* idx) const
Double_tTHnBase::GetBinError(Long64_t linidx) const
virtual Double_tTHn::GetBinError2(Long64_t linidx) const
Bool_tTHnBase::GetCalculateErrors() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Double_tTHnBase::GetEntries() const
virtual const char*TObject::GetIconName() const
TObjArray*THnBase::GetListOfAxes()
const TObjArray*THnBase::GetListOfAxes() const
TList*THnBase::GetListOfFunctions()
virtual const char*TNamed::GetName() const
virtual Long64_tTHn::GetNbins() const
Int_tTHnBase::GetNdimensions() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
voidTHnBase::GetRandom(Double_t* rand, Bool_t subBinRandom = kTRUE)
Double_tTHnBase::GetSumw() const
Double_tTHnBase::GetSumw2() const
Double_tTHnBase::GetSumwx(Int_t dim) const
Double_tTHnBase::GetSumwx2(Int_t dim) const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tTHnBase::GetWeightSum() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTHnBase::IsFolder() const
Bool_tTHnBase::IsInRange(Int_t* coord) const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
Long64_tTHnBase::Merge(TCollection* list)
voidTHnBase::Multiply(const THnBase* h)
voidTHnBase::Multiply(TF1* f, Double_t c = 1.)
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TNamed&TNamed::operator=(const TNamed& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTHnBase::Print(Option_t* option = "") const
voidTHnBase::PrintBin(Int_t* coord, Option_t* options) const
voidTHnBase::PrintBin(Long64_t idx, Option_t* options) const
voidTHnBase::PrintEntries(Long64_t from = 0, Long64_t howmany = -1, Option_t* options = 0) const
TH1D*THn::Projection(Int_t xDim, Option_t* option = "") const
TH2D*THn::Projection(Int_t yDim, Int_t xDim, Option_t* option = "") const
THn*THn::Projection(Int_t ndim, const Int_t* dim, Option_t* option = "") const
TH3D*THn::Projection(Int_t xDim, Int_t yDim, Int_t zDim, Option_t* option = "") const
THnBase*THnBase::ProjectionND(Int_t ndim, const Int_t* dim, Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
THn*THn::Rebin(Int_t group) const
THn*THn::Rebin(const Int_t* group) const
voidTHnBase::RebinnedAdd(const THnBase* h, Double_t c = 1.)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidTHn::Reset(Option_t* option = "")
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTHnBase::Scale(Double_t c)
voidTHn::SetBinContent(const Int_t* idx, Double_t v)
virtual voidTHn::SetBinContent(Long64_t bin, Double_t v)
voidTHnBase::SetBinEdges(Int_t idim, const Double_t* bins)
voidTHnBase::SetBinError(const Int_t* idx, Double_t e)
voidTHnBase::SetBinError(Long64_t bin, Double_t e)
virtual voidTHn::SetBinError2(Long64_t bin, Double_t e2)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidTHnBase::SetEntries(Double_t entries)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTHnBase::SetTitle(const char* title)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTHn::Sumw2()
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
voidTHnBase::AddInternal(const THnBase* h, Double_t c, Bool_t rebinned)
voidTHn::AllocCoordBuf() const
Bool_tTHnBase::CheckConsistency(const THnBase* h, const char* tag) const
THnBase*THnBase::CloneEmpty(const char* name, const char* title, const TObjArray* axes, Bool_t keepTargetAxis) const
TH1*THnBase::CreateHist(const char* name, const char* title, const TObjArray* axes, Bool_t keepTargetAxis) const
static THnBase*THnBase::CreateHnAny(const char* name, const char* title, const TH1* h1, Bool_t sparse, Int_t chunkSize = 1024*16)
static THnBase*THnBase::CreateHnAny(const char* name, const char* title, const THnBase* hn, Bool_t sparse, Int_t chunkSize = 1024*16)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
virtual voidTHn::FillBin(Long64_t bin, Double_t w)
voidTHnBase::FillBinBase(Double_t w)
voidTHnBase::Init(const char* name, const char* title, const TObjArray* axes, Bool_t keepTargetAxis, Int_t chunkSize = 1024*16)
virtual voidTHn::InitStorage(Int_t* nbins, Int_t chunkSize)
voidTObject::MakeZombie()
Bool_tTHnBase::PrintBin(Long64_t idx, Int_t* coord, Option_t* options) const
TObject*THnBase::ProjectionAny(Int_t ndim, const Int_t* dim, Bool_t wantNDim, Option_t* option = "") const
THnBase*THnBase::RebinBase(Int_t group) const
THnBase*THnBase::RebinBase(const Int_t* group) const
virtual voidTHnBase::Reserve(Long64_t)
voidTHnBase::ResetBase(Option_t* option = "")
virtual voidTHnBase::SetFilledBins(Long64_t)
voidTHnBase::UpdateXStat(const Double_t* x, Double_t w = 1.)

Data Members

protected:
TNDArrayT<double>fArraybin content
TObjArrayTHnBase::fAxesaxes of the histogram
TObjArrayTHnBase::fBrowsables! browser-helpers for each axis
Int_t*THn::fCoordBuf! Temporary buffer
Double_tTHnBase::fEntriesnumber of entries, spread over chunks
Double_t*THnBase::fIntegral! array with bin weight sums
enum THnBase::THnBase::fIntegralStatus! status of integral
TStringTNamed::fNameobject identifier
Int_tTHnBase::fNdimensionsnumber of dimensions
TNDArrayT<Double_t>THn::fSumw2bin error, lazy allocation happens in TNDArrayT
TStringTNamed::fTitleobject title
Double_tTHnBase::fTsumwtotal sum of weights
Double_tTHnBase::fTsumw2total sum of weights squared; -1 if no errors are calculated
TArrayDTHnBase::fTsumwxtotal sum of weight*X for each dimension
TArrayDTHnBase::fTsumwx2total sum of weight*X*X for each dimension

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

GetArray()
 Increment the bin content of "bin" by "w",
 return the bin index.
return GetArray()