4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ///////////////////////////////////////////////////////////////////////////////
9 /// particle id probability densities //
11 ///////////////////////////////////////////////////////////////////////////////
19 class AliPID : public TObject {
22 kSPECIES = 5, // Number of particle species recognized by the PID
23 kSPECIESN = 10 // Number of charged+neutral particle species recognized by the PHOS/EMCAL PID
38 static Float_t ParticleMass(Int_t iType)
39 {return fgkParticleMass[iType];};
40 static const char* ParticleName(Int_t iType)
41 {return fgkParticleName[iType];};
42 static const char* ParticleShortName(Int_t iType)
43 {return fgkParticleShortName[iType];};
44 static const char* ParticleLatexName(Int_t iType)
45 {return fgkParticleLatexName[iType];};
46 static Int_t ParticleCode(Int_t iType)
47 {return fgkParticleCode[iType];};
50 AliPID(const Double_t* probDensity, Bool_t charged = kTRUE);
51 AliPID(const Float_t* probDensity, Bool_t charged = kTRUE);
52 AliPID(const AliPID& pid);
53 AliPID& operator = (const AliPID& pid);
55 Double_t GetProbability(EParticleType iType,
56 const Double_t* prior) const;
57 Double_t GetProbability(EParticleType iType) const;
58 void GetProbabilities(Double_t* probabilities,
59 const Double_t* prior) const;
60 void GetProbabilities(Double_t* probabilities) const;
61 EParticleType GetMostProbable(const Double_t* prior) const;
62 EParticleType GetMostProbable() const;
64 void SetProbabilities(const Double_t* probabilities,
65 Bool_t charged = kTRUE);
67 static void SetPriors(const Double_t* prior,
68 Bool_t charged = kTRUE);
69 static void SetPrior(EParticleType iType, Double_t prior);
71 AliPID& operator *= (const AliPID& pid);
77 Bool_t fCharged; // flag for charged/neutral
78 Double_t fProbDensity[kSPECIESN]; // probability densities
79 static Double_t fgPrior[kSPECIESN]; // a priori probabilities
81 static /*const*/ Float_t fgkParticleMass[kSPECIESN+1]; // particle masses
82 static const char* fgkParticleName[kSPECIESN+1]; // particle names
83 static const char* fgkParticleShortName[kSPECIESN+1]; // particle names
84 static const char* fgkParticleLatexName[kSPECIESN+1]; // particle names
85 static const Int_t fgkParticleCode[kSPECIESN+1]; // particle codes
87 ClassDef(AliPID, 2) // particle id probability densities
91 AliPID operator * (const AliPID& pid1, const AliPID& pid2);