ROOT logo
AliRoot » STEER » ESD » AliMultiplicity

class AliMultiplicity: public AliVMultiplicity

Function Members (Methods)

public:
AliMultiplicity()
AliMultiplicity(const AliMultiplicity& m)
AliMultiplicity(Int_t ntr, Int_t ns, Short_t nfcL1, Short_t nfcL2, const TBits& fFastOr)
AliMultiplicity(Int_t ntr, Float_t* th, Float_t* ph, Float_t* dth, Float_t* dph, Int_t* labels, Int_t* labelsL2, Int_t ns, Float_t* ts, Float_t* ps, Int_t* labelss, Short_t nfcL1, Short_t nfcL2, const TBits& fFastOrFiredChips)
virtual~AliMultiplicity()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
Bool_tAreSPD2SinglesStored() const
voidAttachCluster2TrackRefs(AliRefArray* l1t1, AliRefArray* l1t2)
voidAttachTracklet2TrackRefs(AliRefArray* l1t1, AliRefArray* l1t2, AliRefArray* l2t1, AliRefArray* l2t2)
virtual voidTObject::Browse(TBrowser* b)
Double_tCalcDist(Int_t i) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* opt = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
voidCompactBits()
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidCopy(TObject& obj) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
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
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Bool_tFreeClustersTracklet(Int_t i, Int_t mode) const
Bool_tFreeSingleCluster(Int_t i, Int_t mode) const
virtual Double_tGetDeltaPhi(Int_t i) const
Double_tGetDeltaTheta(Int_t i) const
virtual Double_t*GetDeltPhi() const
Double_t*GetDeltTheta() const
Float_tGetDPhiShift() const
Float_tGetDPhiWindow2() const
virtual Option_t*TObject::GetDrawOption() const
Float_tGetDThetaWindow2() const
static Long_tTObject::GetDtorOnly()
Double_tAliVMultiplicity::GetEta(Int_t i) const
const TBits&GetFastOrFiredChips() const
const TBits&GetFiredChipMap() const
virtual const char*TObject::GetIconName() const
virtual Int_tGetLabel(Int_t i, Int_t layer) const
Int_tGetLabelAll(int icl, int lr) const
virtual Int_t*GetLabels() const
virtual Int_t*GetLabels2() const
Int_tGetLabelSingle(Int_t i) const
Int_tGetLabelSingleLr(Int_t i, Int_t layer) const
Int_t*GetLabelsSingle() const
Bool_tGetMultTrackRefs() const
virtual const char*TNamed::GetName() const
Float_tGetNStdDev() const
Short_tGetNumberOfFiredChips(Int_t layer) const
UInt_tGetNumberOfITSClusters(Int_t layer) const
UInt_tGetNumberOfITSClusters(Int_t layMin, Int_t layMax) const
Int_tGetNumberOfSingleClusters() const
Int_tGetNumberOfSingleClustersLr(Int_t lr) const
virtual Int_tGetNumberOfTracklets() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Double_t*GetPhi() const
virtual Double_tGetPhi(Int_t i) const
Float_tGetPhiAll(int icl, int lr) const
Double_t*GetPhiSingle() const
Double_tGetPhiSingle(Int_t i) const
Double_tGetPhiSingleLr(Int_t i, Int_t lr) const
Bool_tGetScaleDThetaBySin2T() const
Bool_tGetSingleClusterTrackID(Int_t i, Int_t mode, Int_t& tr) const
Int_tGetSingleClusterTrackIDs(Int_t i, Int_t mode, UInt_t* refs, UInt_t maxRef) const
virtual Double_t*GetTheta() const
virtual Double_tGetTheta(Int_t i) const
Float_tGetThetaAll(int icl, int lr) const
Double_t*GetThetaSingle() const
Double_tGetThetaSingle(Int_t i) const
Double_tGetThetaSingleLr(Int_t i, Int_t lr) const
virtual const char*TNamed::GetTitle() const
Bool_tGetTrackletTrackIDs(Int_t i, Int_t mode, Int_t& spd1, Int_t& spd2) const
Int_tGetTrackletTrackIDsLay(Int_t lr, Int_t i, Int_t mode, UInt_t* refs, UInt_t maxRef) const
virtual UInt_tTObject::GetUniqueID() 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_tTObject::IsFolder() 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
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)
AliMultiplicity&operator=(const AliMultiplicity& m)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
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)
voidSetDPhiShift(Float_t v = -1)
voidSetDPhiWindow2(Float_t v = -1)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
voidSetDThetaWindow2(Float_t v = -1)
static voidTObject::SetDtorOnly(void* obj)
voidSetFastOrFiredChips(UInt_t chipKey)
voidSetFiredChipMap(TBits& firedChips)
voidSetFiredChipMap(UInt_t chipKey)
voidSetFiredChips(Int_t layer, Short_t firedChips)
voidSetITSClusters(Int_t layer, UInt_t clusters)
virtual voidSetLabel(Int_t i, Int_t layer, Int_t label)
voidSetLabelSingle(Int_t i, Int_t label)
voidSetMultTrackRefs(Bool_t v)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNStdDev(Float_t v = 1)
Int_tSetNumberOfSingleClustersSPD2(Int_t n)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetScaleDThetaBySin2T(Bool_t v)
voidSetSingleClusterData(Int_t id, const Float_t* scl, UInt_t tr = 0)
voidSetSPD2SinglesStored(Bool_t v = kTRUE)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidSetTrackletData(Int_t id, const Float_t* tlet, UInt_t trSPD1 = 0, UInt_t trSPD2 = 0)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
Bool_tTestFastOrFiredChips(UInt_t chipKey) const
Bool_tTestFiredChipMap(UInt_t chipKey) 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:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidDuplicate(const AliMultiplicity& m)
voidTObject::MakeZombie()

Data Members

protected:
TBitsfClusterFiredChipsMap of fired chips (= at least one cluster)
Float_tfDPhiShiftbending shift used
Float_tfDPhiWindow2sigma^2 in dphi used in reco
Float_tfDThetaWindow2sigma^2 in dtheta used in reco
Double32_t*fDeltPhi[fNtracks] array with delta phi values
Double32_t*fDeltTh[fNtracks] array with delta theta values
TBitsfFastOrFiredChipsMap of FastOr fired chips
Short_tfFiredChips[2]Number of fired chips in the two SPD layers
UInt_tfITSClusters[6]Number of ITS cluster per layer
Int_t*fLabels[fNtracks] array with labels of cluster in L1 used for tracklet
Int_t*fLabelsL2[fNtracks] array with labels of cluster in L2 used for tracklet
Int_t*fLabelssingle[fNsingle] array with labels of clusters in L1 not used for tracklets
Float_tfNStdDevnumber of standard deviations kept
TStringTNamed::fNameobject identifier
Int_tfNsingleNumber of clusters on SPD layer 1 and 2 (if storage of spd2 singles requested), not associated with a tracklet on otherSPD
Int_tfNsingleSPD2Number of clusters on SPD layer 2 not associated (if stored)
Int_tfNtracksNumber of tracklets
Double32_t*fPhi[fNtracks] array with phi values
Double32_t*fPhisingle[fNsingle] array with phi values of L1 clusters
AliRefArray*fSCl2Tracks[2]container with multiple single_cluster->track references
AliRefArray*fTCl2Tracks[2][2]container with multiple tracklet_cluster->track references
Double32_t*fTh[fNtracks] array with theta values
Double32_t*fThsingle[fNsingle] array with theta values of L1 clusters
TStringTNamed::fTitleobject title
UInt_t*fUsedClusS[fNsingle] id+1 of the tracks using cluster, coded as (TPC/ITS+ITS_SA)+(ITS_SA_PURE<<16) !!! Outphased for multiple refs
ULong64_t*fUsedClusT[fNtracks] id+1 of the tracks using clusters, coded as (TPC/ITS+ITS_SA)+(ITS_SA_PURE<<16) for SPD1 and SPD2 in low and high parts

Class Charts

Inheritance Chart:
TNamed
AliVMultiplicity
AliMultiplicity

Function documentation

AliMultiplicity()

 Default Constructor
AliMultiplicity(Int_t ntr, Float_t* th, Float_t* ph, Float_t* dth, Float_t* dph, Int_t* labels, Int_t* labelsL2, Int_t ns, Float_t* ts, Float_t* ps, Int_t* labelss, Short_t nfcL1, Short_t nfcL2, const TBits& fFastOrFiredChips)

 Standard constructor
AliMultiplicity(Int_t ntr, Int_t ns, Short_t nfcL1, Short_t nfcL2, const TBits& fFastOr)

 Standard constructor to create the arrays w/o filling
AliMultiplicity(const AliMultiplicity& m)

 copy constructor
AliMultiplicity & operator=(const AliMultiplicity& m)
 assignment operator
void Copy(TObject& obj) const
void Duplicate(const AliMultiplicity& m)
 used by copy constructor and assignment operator
~AliMultiplicity()
 Destructor
void Clear(Option_t* opt = "")
 reset all
void SetLabel(Int_t i, Int_t layer, Int_t label)
void SetLabelSingle(Int_t i, Int_t label)
UInt_t GetNumberOfITSClusters(Int_t layMin, Int_t layMax) const
void SetTrackletData(Int_t id, const Float_t* tlet, UInt_t trSPD1 = 0, UInt_t trSPD2 = 0)
 fill tracklet data
void SetSingleClusterData(Int_t id, const Float_t* scl, UInt_t tr = 0)
 fill single cluster data
Bool_t FreeClustersTracklet(Int_t i, Int_t mode) const
 return kTRUE if the tracklet was not used by the track (on any of layers) of type mode: 0=TPC/ITS or ITS_SA, 1=ITS_SA_Pure
Bool_t GetTrackletTrackIDs(Int_t i, Int_t mode, Int_t& spd1, Int_t& spd2) const
 set spd1 and spd2 to ID's of the tracks using the clusters of the tracklet (-1 if not used)
 Mode: 0=TPC/ITS or ITS_SA, 1=ITS_SA_Pure tracks
 return false if the neither of clusters is used
 note: stored value:  [(idSAPureSPD2+1)<<16+(idTPCITS/SA_SPD2+1)]<<32 +  [(idSAPureSPD1+1)<<16+(idTPCITS/SA_SPD1+1)]
 Attention: new format allows references to multiple tracks, here only the 1st will be returned
Int_t GetTrackletTrackIDsLay(Int_t lr, Int_t i, Int_t mode, UInt_t* refs, UInt_t maxRef) const
 fill array refs with maximum maxRef references on tracks used by the cluster of layer lr of tracklet i.
 return number of filled references
 Mode: 0=TPC/ITS or ITS_SA, 1=ITS_SA_Pure tracks

Int_t GetSingleClusterTrackIDs(Int_t i, Int_t mode, UInt_t* refs, UInt_t maxRef) const
 fill array refs with maximum maxRef references on tracks used by the single cluster i of layer lr
 return number of filled references
 Mode: 0=TPC/ITS or ITS_SA, 1=ITS_SA_Pure tracks

Bool_t FreeSingleCluster(Int_t i, Int_t mode) const
 return kTRUE if the cluster was not used by the track of type mode: 0=TPC/ITS or ITS_SA, 1=ITS_SA_Pure
Bool_t GetSingleClusterTrackID(Int_t i, Int_t mode, Int_t& tr) const
 set tr to id of the track using the single clusters  (-1 if not used)
 Mode: 0=TPC/ITS or ITS_SA, 1=ITS_SA_Pure tracks
 return false if the cluster is not used

 Attention: new format allows references to multiple tracks, here only the 1st will be returned
void CompactBits()
 sqeeze bit contrainers to minimum
void Print(Option_t* opt = "") const
 print
Int_t GetLabelSingleLr(Int_t i, Int_t layer) const
Float_t GetPhiAll(int icl, int lr) const
 return phi of the cluster out of total tracklets + singles
Float_t GetThetaAll(int icl, int lr) const
 return theta of the cluster out of total tracklets + singles
Int_t GetLabelAll(int icl, int lr) const
 return label of the cluster out of total tracklets + singles
Int_t GetLabel(Int_t i, Int_t layer) const
Int_t GetLabelSingle(Int_t i) const
Double_t CalcDist(Int_t i) const
 calculate eliptical distance. theta is the angle of cl1, dtheta = tht(cl1)-tht(cl2)
Int_t GetNumberOfSingleClustersLr(Int_t lr) const
 return number of singles at given layer
Bool_t GetMultTrackRefs() const
 methods to access tracklet information
{return TestBit(kMultTrackRefs);}
void SetMultTrackRefs(Bool_t v)
{SetBit(kMultTrackRefs,v);}
Bool_t GetScaleDThetaBySin2T() const
{return TestBit(kScaleDThtbySin2);}
void SetScaleDThetaBySin2T(Bool_t v)
 methods supported on AliVMultiplicity level >>>

{SetBit(kScaleDThtbySin2,v);}
Int_t GetNumberOfTracklets() const
{return fNtracks;}
Double_t GetTheta(Int_t i) const
Double_t GetPhi(Int_t i) const
Double_t GetDeltaPhi(Int_t i) const
Double_t* GetTheta() const
 array getters
{return (Double_t*)fTh;}
Double_t* GetPhi() const
{return (Double_t*)fPhi;}
Double_t* GetDeltPhi() const
{return (Double_t*)fDeltPhi;}
Int_t* GetLabels() const
{return (Int_t*)fLabels;}
Int_t* GetLabels2() const
{return (Int_t*)fLabelsL2;}
Double_t GetDeltaTheta(Int_t i) const
 methods supported on AliVMultiplicity level <<<

Int_t SetNumberOfSingleClustersSPD2(Int_t n)
 methods to access single cluster information
{return fNsingleSPD2 = n;}
Int_t GetNumberOfSingleClusters() const
{return fNsingle;}
Bool_t AreSPD2SinglesStored() const
{return TestBit(kSPD2Sng);}
void SetSPD2SinglesStored(Bool_t v = kTRUE)
{return SetBit(kSPD2Sng,v);}
Double_t GetThetaSingle(Int_t i) const
Double_t GetThetaSingleLr(Int_t i, Int_t lr) const
Double_t GetPhiSingle(Int_t i) const
Double_t GetPhiSingleLr(Int_t i, Int_t lr) const
Short_t GetNumberOfFiredChips(Int_t layer) const
{ return fFiredChips[layer]; }
void SetFiredChips(Int_t layer, Short_t firedChips)
{ fFiredChips[layer] = firedChips; }
UInt_t GetNumberOfITSClusters(Int_t layer) const
{ return layer<6 ? fITSClusters[layer] : 0; }
void SetITSClusters(Int_t layer, UInt_t clusters)
{ fITSClusters[layer] = clusters; }
void SetFastOrFiredChips(UInt_t chipKey)
{fFastOrFiredChips.SetBitNumber(chipKey);}
const TBits & GetFastOrFiredChips() const
Bool_t TestFastOrFiredChips(UInt_t chipKey) const
{return fFastOrFiredChips.TestBitNumber(chipKey);}
void SetFiredChipMap(TBits& firedChips)
{fClusterFiredChips = firedChips;}
void SetFiredChipMap(UInt_t chipKey)
{fClusterFiredChips.SetBitNumber(chipKey);}
const TBits & GetFiredChipMap() const
Bool_t TestFiredChipMap(UInt_t chipKey) const
{return fClusterFiredChips.TestBitNumber(chipKey);}
Double_t* GetDeltTheta() const
 array getters
{return (Double_t*)fDeltTh;}
Double_t* GetThetaSingle() const
{return (Double_t*)fThsingle;}
Double_t* GetPhiSingle() const
{return (Double_t*)fPhisingle;}
Int_t* GetLabelsSingle() const
{return (Int_t*)fLabelssingle;}
void AttachTracklet2TrackRefs(AliRefArray* l1t1, AliRefArray* l1t2, AliRefArray* l2t1, AliRefArray* l2t2)
void AttachCluster2TrackRefs(AliRefArray* l1t1, AliRefArray* l1t2)
void SetDPhiWindow2(Float_t v = -1)
void SetDThetaWindow2(Float_t v = -1)
void SetDPhiShift(Float_t v = -1)
{fDPhiShift = v;}
void SetNStdDev(Float_t v = 1)
{fNStdDev = v;}
Float_t GetDPhiWindow2() const
{return fDPhiWindow2;}
Float_t GetDThetaWindow2() const
{return fDThetaWindow2;}
Float_t GetDPhiShift() const
{return fDPhiShift;}
Float_t GetNStdDev() const
{return fNStdDev;}