]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALPID.h
bdf81d4099d29fa197cd6d64c211975da4df7799
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALPID.h
1 #ifndef AliEMCALPID_H
2 #define AliEMCALPID_H
3
4 /* $Id$ */
5 /* History of cvs commits:
6  *
7  * $Log$
8  * Revision 1.11  2006/12/19 08:49:35  gustavo
9  * New PID class for EMCAL, bayesian analysis done with ESD data, PID information filled when calling AliEMCALPID in AliEMCALReconstructor::FillESD()
10  *
11  *
12  */
13
14 ///////////////////////////////////////////////////////////////////////////////
15 // Class AliEMCALPID
16 ///////////////////////////////////////////////////////////////////////////////
17
18 #include "TTask.h"
19 #include "TArrayD.h"
20 #include "AliESD.h"
21 #include "AliPID.h" 
22
23 class AliEMCALPID : public TTask {
24
25 public:
26   
27   AliEMCALPID();
28   virtual ~AliEMCALPID() { }
29   
30   void     RunPID(AliESD *esd);
31   void     ComputePID(Double_t energy, Double_t lambda0); // give the PID of a cluster
32   TArrayD  DistLambda0(Double_t energy, Int_t nature); // compute lambda0 distributions
33   
34   Double_t GetPID(Int_t idx) const {if (idx>=0&&idx<3) return fPID[idx]; else return 0.;}
35   Double_t GetPIDFinal(Int_t idx) const {if (idx>=0&&idx<AliPID::kSPECIESN) return fPIDFinal[idx]; else return 0.;}
36   Double_t GetPIDWeight(Int_t idx) const {if (idx>=0&&idx<3) return fPIDWeight[idx]; else return 0.;}
37   
38   void     SetPID(Double_t val, Int_t idx) {if (idx>=0&&idx<3) fPID[idx] = val;}
39   void     SetPIDFinal(Double_t val, Int_t idx) {if (idx>=0&&idx<AliPID::kSPECIESN) fPIDFinal[idx] = val;}
40   void     SetPIDWeight(Double_t val, Int_t idx) {if (idx>=0&&idx<3) fPIDWeight[idx] = val;}
41   void     SetPrintInfo(Bool_t yesno) {fPrintInfo = yesno;}
42    void     SetReconstructor(Bool_t yesno) {fReconstructor = yesno;}
43  private:
44   
45   Double_t Polynomial(Double_t x, Double_t *params);
46   
47   Bool_t   fPrintInfo;          // flag to decide if details about PID must be printed
48   
49   Double_t fGamma[6][6];        // Parameter to Compute PID
50   Double_t fHadron[6][6];                 // Parameter to Compute PID
51   Double_t fPiZero5to10[6][6];  // Parameter to Compute PID
52   Double_t fPiZero10to60[6][6]; // Parameter to Compute PID
53   
54   Float_t fPID[3];
55   
56   Float_t fPIDFinal[AliPID::kSPECIESN+1];  // final PID format
57   Float_t fPIDWeight[3];                 // order: gamma, pi0, hadrons,
58   Double_t fProbGamma;                  // probility to be a Gamma
59   Double_t fProbPiZero;                 // probility to be a PiO
60   Double_t fProbHadron;                 // probility to be a Hadron
61   Bool_t    fReconstructor;               //Fill esdcalocluster when called from EMCALReconstructor
62   
63   ClassDef(AliEMCALPID, 0)
64 };
65
66 #endif // ALIEMCALPID_H