ROOT logo
AliRoot » PWGHF » VERTEXINGHF » AliMultiDimVector

class AliMultiDimVector: public TNamed


Implementation of the class to store the number of signal
and background events in bins of the cut values
Origin:       Elena Bruna (bruna@to.infn.it)
Updated:      Sergey Senyukov (senyukov@to.infn.it)
Francesco Prino (prino@to.infn.it)
Last Updated: Giacomo Ortona (ortona@to.infn.it)


Function Members (Methods)

public:
AliMultiDimVector()
AliMultiDimVector(const AliMultiDimVector& mv)
AliMultiDimVector(const char* name, const char* title, const Int_t nptbins, const Float_t* ptlimits, const Int_t npars, const Int_t* nofcells, const Float_t* loosecuts, const Float_t* tightcuts, const TString* axisTitles)
virtual~AliMultiDimVector()
voidTObject::AbstractMethod(const char* method) const
voidAdd(const AliMultiDimVector* mv)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
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
virtual voidTNamed::Copy(TObject& named) const
voidCopyStructure(const AliMultiDimVector* mv)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
voidDivide(const AliMultiDimVector* mv1, const AliMultiDimVector* mv2)
voidDivideBy(const AliMultiDimVector* mv)
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
voidFill(Float_t* values, Int_t ptbin)
voidFillAndIntegrate(Float_t* values, Int_t ptbin)
virtual voidTNamed::FillBuffer(char*& buffer)
Int_t*FindLocalMaximum(Float_t& maxValue, Int_t* numFixed, Int_t* indFixed, Int_t nfixed, Int_t ptbin)
voidFindMaximum(Float_t& max_value, Int_t* ind, Int_t ptbin)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TStringGetAxisTitle(Int_t iVar) const
Float_tGetCutStep(Int_t iVar) const
Float_tGetCutValue(Int_t iVar, Int_t iCell) const
Bool_tGetCutValuesFromGlobalAddress(ULong64_t globadd, Float_t* cuts, Int_t& ptbin) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tGetElement(ULong64_t globadd) const
Float_tGetElement(const Int_t* ind, Int_t ptbin) const
voidGetEntireMultiDimVector(Float_t* vett) const
ULong64_t*GetGlobalAddressesAboveCuts(const Float_t* values, Float_t pt, Int_t& nVals) const
ULong64_t*GetGlobalAddressesAboveCuts(const Float_t* values, Int_t ptbin, Int_t& nVals) const
ULong64_tGetGlobalAddressFromIndices(const Int_t* ind, Int_t ptbin) const
ULong64_tGetGlobalAddressFromValues(const Float_t* values, Int_t ptbin) const
Bool_tGetGreaterThan(Int_t iVar) const
virtual const char*TObject::GetIconName() const
Bool_tGetIndicesFromGlobalAddress(ULong64_t globadd, Int_t* ind, Int_t& ptbin) const
Bool_tGetIndicesFromValues(const Float_t* values, Int_t* ind) const
Float_tGetMaxLimit(Int_t iVar) const
Float_tGetMinLimit(Int_t iVar) const
virtual const char*TNamed::GetName() const
Int_tGetNCutSteps(Int_t iVar) const
Int_tGetNPtBins() const
ULong64_tGetNTotCells() const
Int_tGetNVariables() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tGetPtBin(const Float_t pt) const
Float_tGetPtLimit(Int_t i) const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
voidIncrementElement(ULong64_t globadd)
voidIncrementElement(Int_t* ind, Int_t ptbin)
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
voidIntegrate()
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tIsIntegrated() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
voidLinearComb(const AliMultiDimVector* mv1, Float_t norm1, const AliMultiDimVector* mv2, Float_t norm2)
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
voidMultiply(const AliMultiDimVector* mv, Float_t factor)
voidMultiply(const AliMultiDimVector* mv1, const AliMultiDimVector* mv2)
voidMultiplyBy(Float_t factor)
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)
AliMultiDimVector&operator=(const AliMultiDimVector& mv)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidPrintStatus()
TH2F*Project(Int_t firstVar, Int_t secondVar, const Int_t* fixedVars, Int_t ptbin, Float_t norm = 1.)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidReset()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
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)
voidSetElement(ULong64_t globadd, Float_t val)
voidSetElement(Int_t* ind, Int_t ptbin, Float_t val)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNewLimits(Float_t* loose, Float_t* tight)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
AliMultiDimVector*ShrinkPtBins(Int_t firstBin, Int_t lastBin)
virtual Int_tTNamed::Sizeof() const
voidSqrt()
voidSqrt(const AliMultiDimVector* mv)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
voidSum(const AliMultiDimVector* mv1, const AliMultiDimVector* mv2)
voidSuppressZeroBKGEffect(const AliMultiDimVector* BKG)
voidSwapLimits(Int_t ilim)
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:
Float_tCountsAboveCell(ULong64_t globadd) const
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidGetFillRange(Int_t iVar, Int_t iCell, Int_t& minbin, Int_t& maxbin) const
voidGetIntegrationLimits(Int_t iVar, Int_t iCell, Int_t& minbin, Int_t& maxbin) const
voidTObject::MakeZombie()

Data Members

protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
TStringfAxisTitles[10]titles for variables
Bool_tfGreaterThan[10]sign of the cut (> or <)
Bool_tfIsIntegratedflag for integrated matrix
Float_tfMaxLimits[10]higher cut value for each variable
Float_tfMinLimits[10]lower cut value for each variable
Int_tfNCutSteps[10]n. of cut step for each variable
Int_tfNPtBinsn. of pt bins
ULong64_tfNTotCellstotal number of matrix elements
Int_tfNVariablesn. of selection variables
Float_tfPtLimits[11]limits of pt bins
TArrayFfVettarray with n. of candidates vs. cuts
static const Int_tfgkMaxNPtBinsmax. n. of Pt bins
static const Int_tfgkMaxNVariablesmax. n. of selection variables

Class Charts

Inheritance Chart:
TNamed
AliMultiDimVector

Function documentation

AliMultiDimVector()
 default constructor
AliMultiDimVector(const char* name, const char* title, const Int_t nptbins, const Float_t* ptlimits, const Int_t npars, const Int_t* nofcells, const Float_t* loosecuts, const Float_t* tightcuts, const TString* axisTitles)
 standard constructor
AliMultiDimVector(const AliMultiDimVector& mv)
 copy constructor
AliMultiDimVector & operator=(const AliMultiDimVector& mv)
 assignment operator
void CopyStructure(const AliMultiDimVector* mv)
 Sets dimensions and limit from mv
Bool_t GetIndicesFromGlobalAddress(ULong64_t globadd, Int_t* ind, Int_t& ptbin) const
 returns matrix element indices and Pt bin from global index
Bool_t GetCutValuesFromGlobalAddress(ULong64_t globadd, Float_t* cuts, Int_t& ptbin) const
ULong64_t GetGlobalAddressFromIndices(const Int_t* ind, Int_t ptbin) const
 Returns the global index of the cell in the matrix
Bool_t GetIndicesFromValues(const Float_t* values, Int_t* ind) const
 Fills the array of matrix indices strating from variable values
ULong64_t GetGlobalAddressFromValues(const Float_t* values, Int_t ptbin) const
 Returns the global index of the cell in the matrix
void MultiplyBy(Float_t factor)
 multiply the AliMultiDimVector by a constant factor
void Multiply(const AliMultiDimVector* mv, Float_t factor)
  Sets AliMultiDimVector=mv*constant factor
void Multiply(const AliMultiDimVector* mv1, const AliMultiDimVector* mv2)
  Sets AliMultiDimVector=mv1*mv2
void Add(const AliMultiDimVector* mv)
 Sums contents of mv to AliMultiDimVector
void Sum(const AliMultiDimVector* mv1, const AliMultiDimVector* mv2)
 Sets AliMultiDimVector=mv1+mv2
void LinearComb(const AliMultiDimVector* mv1, Float_t norm1, const AliMultiDimVector* mv2, Float_t norm2)
 Sets AliMultiDimVector=n1*mv1+n2*mv2
void DivideBy(const AliMultiDimVector* mv)
 Divide AliMulivector by mv
void Divide(const AliMultiDimVector* mv1, const AliMultiDimVector* mv2)
 Sets AliMultiDimVector=mv1/mv2
void Sqrt()
 Sqrt of elements of AliMultiDimVector
void Sqrt(const AliMultiDimVector* mv)
 Sets AliMultiDimVector=sqrt(mv)
void FindMaximum(Float_t& max_value, Int_t* ind, Int_t ptbin)
 finds the element with maximum contents
Int_t* FindLocalMaximum(Float_t& maxValue, Int_t* numFixed, Int_t* indFixed, Int_t nfixed, Int_t ptbin)
return the elements with maximum content (maxValue) given fixed step for not free variables
numFixed[nfixed] is the indices of the fixed variables in the cuts array [fNVariables]={kTRUE,kTRUE,...,kFALSE,...,kFALSE,...,kTRUE}
indFixed[nfixed]={1,2} //nfixed is the number of false in isFree; indFixed contains the step for the i-th variable
take care of deleting the array of index returned
TH2F* Project(Int_t firstVar, Int_t secondVar, const Int_t* fixedVars, Int_t ptbin, Float_t norm = 1.)
 Project the AliMultiDimVector on a 2D histogram
void GetIntegrationLimits(Int_t iVar, Int_t iCell, Int_t& minbin, Int_t& maxbin) const
 computes bin limits for integrating the AliMultiDimVector
void GetFillRange(Int_t iVar, Int_t iCell, Int_t& minbin, Int_t& maxbin) const
 computes range of cells passing the cuts for FillAndIntegrate
void Integrate()
 integrates the matrix
ULong64_t* GetGlobalAddressesAboveCuts(const Float_t* values, Int_t ptbin, Int_t& nVals) const
 fills an array with global addresses of cells passing the cuts
Float_t CountsAboveCell(ULong64_t globadd) const
 integrates the counts of cells above cell with address globadd
void Fill(Float_t* values, Int_t ptbin)
 fills the cells of AliMultiDimVector corresponding to values
void FillAndIntegrate(Float_t* values, Int_t ptbin)
 fills the cells of AliMultiDimVector passing the cuts
 The number of nested loops must match fgkMaxNVariables!!!!
void SuppressZeroBKGEffect(const AliMultiDimVector* BKG)
 Sets to zero elements for which mvBKG=0
void SetNewLimits(Float_t* loose, Float_t* tight)
void SwapLimits(Int_t ilim)
void PrintStatus()
virtual ~AliMultiDimVector()
{}
ULong64_t GetNTotCells() const
{return fNTotCells;}
Int_t GetNVariables() const
{return fNVariables;}
Int_t GetNPtBins() const
{return fNPtBins;}
Int_t GetNCutSteps(Int_t iVar) const
{return fNCutSteps[iVar];}
Float_t GetMinLimit(Int_t iVar) const
{return fMinLimits[iVar];}
Float_t GetMaxLimit(Int_t iVar) const
{return fMaxLimits[iVar];}
Float_t GetCutStep(Int_t iVar) const
{return (fMaxLimits[iVar]-fMinLimits[iVar])/(Float_t)fNCutSteps[iVar];}
TString GetAxisTitle(Int_t iVar) const
{return fAxisTitles[iVar];}
Bool_t IsIntegrated() const
{return fIsIntegrated;}
Float_t GetCutValue(Int_t iVar, Int_t iCell) const
Float_t GetElement(ULong64_t globadd) const
{return fVett[globadd];}
Float_t GetElement(const Int_t* ind, Int_t ptbin) const
Float_t GetPtLimit(Int_t i) const
{return fPtLimits[i];}
Int_t GetPtBin(const Float_t pt) const
void GetEntireMultiDimVector(Float_t* vett) const
ULong64_t* GetGlobalAddressesAboveCuts(const Float_t* values, Float_t pt, Int_t& nVals) const
Bool_t GetGreaterThan(Int_t iVar) const
{return fGreaterThan[iVar];}
void SetElement(ULong64_t globadd, Float_t val)
{fVett[globadd]=val;}
void SetElement(Int_t* ind, Int_t ptbin, Float_t val)
void IncrementElement(Int_t* ind, Int_t ptbin)
void IncrementElement(ULong64_t globadd)
void Reset()
AliMultiDimVector* ShrinkPtBins(Int_t firstBin, Int_t lastBin)