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