FairRoot/PandaRoot
PndPidProbability.h
Go to the documentation of this file.
1 #ifndef PNDPIDPROBABILITY_H
2 #define PNDPIDPROBABILITY_H
3 // //
5 // PndPidProbability //
6 // //
7 // Definition of the Panda pid probabilities . //
8 // //
9 // Author: Ralf Kliemt, Dresden/Turin/Bonn, 01.09.09 //
10 // //
12 
13 #include <iostream>
14 #include "TObject.h"
15 
16 class PndPidProbability : public TObject
17 {
18 
19  public:
20 
24 
25  Double_t GetElectronPdf() const { return fElectronPdf; }
26  Double_t GetMuonPdf() const { return fMuonPdf; }
27  Double_t GetPionPdf() const { return fPionPdf; }
28  Double_t GetKaonPdf() const { return fKaonPdf; }
29  Double_t GetProtonPdf() const { return fProtonPdf; }
30  Int_t GetIndex() const { return fIndex;}
31 
32  Double_t GetElectronPidProb(PndPidProbability* flux = NULL) const { if(flux==NULL) return fElectronPdf/GetSumProb(flux); else return fElectronPdf * flux->GetElectronPdf() / GetSumProb(flux); }
33  Double_t GetMuonPidProb (PndPidProbability* flux = NULL) const { if(flux==NULL) return fMuonPdf/GetSumProb(flux); else return fMuonPdf * flux->GetMuonPdf() / GetSumProb(flux); }
34  Double_t GetPionPidProb (PndPidProbability* flux = NULL) const { if(flux==NULL) return fPionPdf/GetSumProb(flux); else return fPionPdf * flux->GetPionPdf() / GetSumProb(flux); }
35  Double_t GetKaonPidProb (PndPidProbability* flux = NULL) const { if(flux==NULL) return fKaonPdf/GetSumProb(flux); else return fKaonPdf * flux->GetKaonPdf() / GetSumProb(flux); }
36  Double_t GetProtonPidProb (PndPidProbability* flux = NULL) const { if(flux==NULL) return fProtonPdf/GetSumProb(flux); else return fProtonPdf * flux->GetProtonPdf() / GetSumProb(flux); }
37 
38  Double_t GetSumProb (PndPidProbability* flux = NULL) const
39  {
40  if(flux==NULL)
42  else return
43  fElectronPdf * flux->GetElectronPdf() +
44  fMuonPdf * flux->GetMuonPdf() +
45  fPionPdf * flux->GetPionPdf() +
46  fKaonPdf * flux->GetKaonPdf() +
47  fProtonPdf * flux->GetProtonPdf();
48  }
49 
50  void NormalizeTo(Double_t N=1.);
51 
57  void SetIndex(Int_t idx) { fIndex = idx; }
58 
61 
62  void Print();
63  void Reset();
64  protected:
65 
66  Double_t fElectronPdf; // e Probability density function
67  Double_t fMuonPdf; // mu Probability density function
68  Double_t fPionPdf; // pi Probability density function
69  Double_t fKaonPdf; // k Probability density function
70  Double_t fProtonPdf; // p Probability density function
71  Int_t fIndex; // Candidate Index
72  ClassDef(PndPidProbability,3) //
73 
74  };
75 
76 
77 
78 #endif
79 
80 
Double_t p
Definition: anasim.C:58
Double_t GetProtonPidProb(PndPidProbability *flux=NULL) const
Double_t GetKaonPidProb(PndPidProbability *flux=NULL) const
void SetPionPdf(Double_t val)
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
PndPidProbability operator*(const PndPidProbability &a)
void SetKaonPdf(Double_t val)
#define pi
Definition: createSTT.C:60
Double_t GetKaonPdf() const
void SetElectronPdf(Double_t val)
Int_t GetIndex() const
void SetMuonPdf(Double_t val)
int idx[MAX]
Definition: autocutx.C:38
Double_t GetElectronPdf() const
Int_t a
Definition: anaLmdDigi.C:126
Double_t
Double_t GetSumProb(PndPidProbability *flux=NULL) const
Double_t GetMuonPidProb(PndPidProbability *flux=NULL) const
PndPidProbability & operator*=(const PndPidProbability &a)
void SetProtonPdf(Double_t val)
Double_t GetMuonPdf() const
void NormalizeTo(Double_t N=1.)
Double_t GetProtonPdf() const
Double_t GetElectronPidProb(PndPidProbability *flux=NULL) const
Double_t GetPionPdf() const
Double_t GetPionPidProb(PndPidProbability *flux=NULL) const
void SetIndex(Int_t idx)