5a8af3e30e0f32e6386899d432aeebb13f86965d
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliEMCALPIDResponse.h
1 #ifndef AliEMCALPIDResponse_h\r
2 #define AliEMCALPIDResponse_h\r
3 \r
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
5  * See cxx source for full Copyright notice                               */\r
6 \r
7 //////////////////////////////////////////////////////////////////////////\r
8 //                                                                      //\r
9 // AliEMCALPIDResponse                                                  //\r
10 //                                                                      //\r
11 // EMCAL class to perfom PID                                            //\r
12 // This is a prototype and still under development                      //\r
13 //                                                                      //\r
14 //                                                                      //\r
15 //////////////////////////////////////////////////////////////////////////\r
16 \r
17 #include "AliPID.h"\r
18 class TF1;\r
19 \r
20 class AliEMCALPIDResponse: public TObject \r
21 {\r
22 public : \r
23     AliEMCALPIDResponse();    //ctor\r
24     AliEMCALPIDResponse( const AliEMCALPIDResponse& other);                //copy ructor\r
25     AliEMCALPIDResponse &operator=( const AliEMCALPIDResponse& other);     //assignment operator\r
26 \r
27     virtual ~AliEMCALPIDResponse();     //dtor\r
28   \r
29 \r
30     // Getters\r
31     Int_t     GetPtBin(Float_t pt) const;\r
32     Int_t     GetNPtBins() const {return fNptBins;};\r
33 \r
34     Float_t   GetLowEoP() const {return fLowEoP;};\r
35     Float_t   GetHighEoP() const {return fHighEoP;};\r
36 \r
37     Double_t  GetExpectedSignal( Float_t pt, AliPID::EParticleType n,  Int_t charge) const;\r
38     Double_t  GetExpectedSigma ( Float_t pt, AliPID::EParticleType n,  Int_t charge) const;\r
39     Double_t  GetNumberOfSigmas( Float_t pt,  Float_t eop, AliPID::EParticleType n,  Int_t charge) const;\r
40     Double_t  GetExpectedNorm  ( Float_t pt, AliPID::EParticleType n,  Int_t charge) const;\r
41     Double_t  GetLowProb       ( Float_t pt, AliPID::EParticleType n,  Int_t charge) const;\r
42     Double_t  GetHighProb      ( Float_t pt, AliPID::EParticleType n,  Int_t charge) const;\r
43 \r
44     //Setters\r
45     void   SetPtBoundary();\r
46     void   SetParametrizations();\r
47 \r
48     // EMCAL probability -> should go to another place?\r
49     Double_t ComputeEMCALProbability( Float_t pt, Float_t eop, Int_t charge, Double_t *pEMCAL) const;\r
50 \r
51 protected:\r
52   \r
53 private:\r
54 \r
55   TF1 *fNorm;                            // Gauss function for normalizing NON electron probabilities \r
56 \r
57   static const Int_t fNptBins   = 6;     // number of momentum bins\r
58   static const Float_t fLowEoP;   // lower E/p threshold for NON electrons\r
59   static const Float_t fHighEoP;   // upper E/p threshold for NON electrons\r
60 \r
61   Float_t fPtCutMin[fNptBins+1];                       // min values for pt bins\r
62   Float_t fMeanEoP[2*AliPID::kSPECIES][fNptBins];      // mean value of E/p distribution (charge dependent)\r
63   Float_t fSigmaEoP[2*AliPID::kSPECIES][fNptBins];     // mean value of E/p distribution (charge dependent)\r
64   Float_t fProbLow[2*AliPID::kSPECIES][fNptBins];      // probability below E/p threshold for NON electrons (charge dependent)\r
65   Float_t fProbHigh[2*AliPID::kSPECIES][fNptBins];     // probability above E/p threshold for NON electrons (charge dependent)\r
66 \r
67 \r
68   ClassDef(AliEMCALPIDResponse, 1)\r
69 };\r
70 \r
71 #endif // #ifdef AliEMCALPIDResponse_cxx\r
72 \r