ROOT logo
AliRoot » STEER » STEERBASE » AliPID

class AliPID: public TObject


particle id probability densities

The AliPID class stores the probability densities for the different
particle type hypotheses electron, muon, pion, kaon, proton, photon,
pi0, neutron, K0 and electron conversion. These probability densities
are determined from the detector response functions.
The * and *= operators are overloaded for AliPID to combine the PIDs
from different detectors.

The Bayesian probability to be a particle of a given type can be
calculated from the probability densities, if the a priori probabilities
(or abundences, concentrations) of particle species are known. These
priors can be given as argument to the GetProbability or GetMostProbable
method or they can be set globally by calling the static method
SetPriors().

The implementation of this class is based on the note ...
by Iouri Belikov and Karel Safarik.


Function Members (Methods)

public:
AliPID()
AliPID(const AliPID& pid)
AliPID(const Double_t* probDensity, Bool_t charged = kTRUE)
AliPID(const Float_t* probDensity, Bool_t charged = kTRUE)
~AliPID()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) 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 TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
AliPID::EParticleTypeGetMostProbable() const
AliPID::EParticleTypeGetMostProbable(const Double_t* prior) const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
voidGetProbabilities(Double_t* probabilities) const
voidGetProbabilities(Double_t* probabilities, const Double_t* prior) const
Double_tGetProbability(AliPID::EParticleType iType) const
Double_tGetProbability(AliPID::EParticleType iType, const Double_t* prior) const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::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_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::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)
AliPID&operator*=(const AliPID& pid)
AliPID&operator=(const AliPID& pid)
virtual voidTObject::Paint(Option_t* option = "")
static Int_tParticleCharge(Int_t iType)
static Int_tParticleCode(Int_t iType)
static const char*ParticleLatexName(Int_t iType)
static Float_tParticleMass(Int_t iType)
static Float_tParticleMassZ(Int_t iType)
static const char*ParticleName(Int_t iType)
static const char*ParticleShortName(Int_t iType)
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") 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)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
static voidSetPrior(AliPID::EParticleType iType, Double_t prior)
static voidSetPriors(const Double_t* prior, Bool_t charged = kTRUE)
voidSetProbabilities(const Double_t* probabilities, Bool_t charged = kTRUE)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
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
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
voidTObject::MakeZombie()
private:
static voidInit()

Data Members

public:
enum { kSPECIES
kSPECIESC
kSPECIESCN
};
enum EParticleType { kElectron
kMuon
kPion
kKaon
kProton
kDeuteron
kTriton
kHe3
kAlpha
kPhoton
kPi0
kNeutron
kKaon0
kEleCon
kUnknown
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
Bool_tfChargedflag for charged/neutral
Double_tfProbDensity[14]probability densities
static Double_tfgPrior[14]a priori probabilities
static Char_tfgkParticleCharge[15]particle charge (in e units!)
static const Int_tfgkParticleCode[15]particle codes
static const char*fgkParticleLatexName[15]particle names
static Float_tfgkParticleMass[15]particle masses
static Float_tfgkParticleMassZ[15]particle masses/charge
static const char*fgkParticleName[15]particle names
static const char*fgkParticleShortName[15]particle names

Class Charts

Inheritance Chart:
TObject
AliPID

Function documentation

AliPID()
 Default constructor

AliPID(const Double_t* probDensity, Bool_t charged = kTRUE)
 Standard constructor

AliPID(const Float_t* probDensity, Bool_t charged = kTRUE)
 Standard constructor

AliPID(const AliPID& pid)
 copy constructor

 We do not call init here, MUST already be done
void SetProbabilities(const Double_t* probabilities, Bool_t charged = kTRUE)
 Set the probability densities

void Init()
 Initialise the masses, charges

 Initialise only once...
Double_t GetProbability(AliPID::EParticleType iType, const Double_t* prior) const
 Get the probability to be a particle of type "iType"
 assuming the a priori probabilities "prior"

Double_t GetProbability(AliPID::EParticleType iType) const
 get the probability to be a particle of type "iType"
 assuming the globaly set a priori probabilities
void GetProbabilities(Double_t* probabilities, const Double_t* prior) const
 get the probabilities to be a particle of given type
 assuming the a priori probabilities "prior"
void GetProbabilities(Double_t* probabilities) const
 get the probabilities to be a particle of given type
 assuming the globaly set a priori probabilities
void SetPriors(const Double_t* prior, Bool_t charged = kTRUE)
 use the given priors as global a priori probabilities
void SetPrior(AliPID::EParticleType iType, Double_t prior)
 use the given prior as global a priori probability for particles
 of type "iType"
Int_t ParticleCharge(Int_t iType)
Float_t ParticleMass(Int_t iType)
Float_t ParticleMassZ(Int_t iType)
const char* ParticleName(Int_t iType)
{return fgkParticleName[iType];}
const char* ParticleShortName(Int_t iType)
{return fgkParticleShortName[iType];}
const char* ParticleLatexName(Int_t iType)
{return fgkParticleLatexName[iType];}
Int_t ParticleCode(Int_t iType)
{return fgkParticleCode[iType];}
EParticleType GetMostProbable(const Double_t* prior) const
EParticleType GetMostProbable() const