New response functions for tracking updates
[u/mrichter/AliRoot.git] / TRD / AliTRDprobdist.h
1 #ifndef ALITRDPROBDIST_H
2 #define ALITRDPROBDIST_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5 /*-----------------------------------------------------------------
6    Class for dE/dx and Time Bin of Max. Cluster for Electrons and 
7    pions in TRD. 
8    It is instantiated in class AliTRDpidESD for particle identification
9    in TRD
10    Prashant Shukla <shukla@pi0.physi.uni-heidelberg.de>
11    -----------------------------------------------------------------*/
12
13 #include "TObject.h"
14
15 const Int_t kNo_Mom=7; 
16 const Int_t kNo_EnBins=250;
17 const Int_t kNo_TBins=20;
18
19 class AliTRDprobdist : public TObject {
20   public:
21     AliTRDprobdist(Int_t multiplicity=1);   // multiplicity can take 
22                          // values 1, 2000, 4000, 6000, 8000
23     //    ~AliTRDprobdist(); 
24     void FillData();      // Fills Data 
25     //    void FillData2000();  // Fills Data of multiplicity 2000
26     //    void FillData4000();  // Fills Data of multiplicity 4000
27     //    void FillData6000();  // Fills Data of multiplicity 6000
28     //    void FillData8000();  // Fills Data of multiplicity 8000
29     Double_t GetBM(Int_t ip) const { return fTrackMomentum[ip];}
30     Double_t GetMeanPI(Int_t ip) const;  // Gets mean of de/dx dist. of pi
31     Double_t GetMeanEL(Int_t ip) const;  // Gets mean of de/dx dist. of e
32     Double_t GetNormalizationPI(Int_t ip) const;  // Gets Norm. of de/dx dist. of pi
33     Double_t GetNormalizationEL(Int_t ip) const;  // Gets Norm. of de/dx dist. of e
34     Double_t GetProbability(Int_t k, Double_t mom, Double_t dedx) const;
35                           // Gets the Probability of having dedx
36     Double_t GetProbabilityT(Int_t k, Double_t mom, Int_t timbin) const;
37                         // Gets the Probability of having timbin
38     void GetData(Int_t ip, Double_t *ebin, Double_t *ppi, Double_t *pel) const { 
39       for(Int_t ie=0; ie<fNEbins; ie++){
40         ebin[ie]=fEnergyLoss[ip][ie];
41         ppi[ie]=fProbPI[ip][ie];
42         pel[ie]=fProbEL[ip][ie];
43       }
44     }
45     void GetDataT(Int_t ip, Int_t *tbin, Double_t *ppi, Double_t *pel) const { 
46       for(Int_t it=0; it<fNTbins; it++){
47         tbin[it]=fTimBin[ip][it];
48         ppi[it]=fProbPIT[ip][it];
49         pel[it]=fProbELT[ip][it];
50       }
51     }
52   protected:
53     Double_t fADCNorm;               // Ratio of de/dx from Det. to prob. dist.
54     Int_t fNMom;                     // Number of momenta  
55     Double_t fTrackMomentum[kNo_Mom];           // Track Momentum 
56     Int_t fNEbins;                              // Number of Energy bins
57     Double_t fEnBinSize;                        // Size of Energy bin
58     Double_t fEnergyLoss[kNo_Mom][kNo_EnBins];  // dE/dx 
59     Double_t fProbPI[kNo_Mom][kNo_EnBins];      // Prob. of dEdx  for pi
60     Double_t fProbEL[kNo_Mom][kNo_EnBins];      // Prob. of dEdx  for e
61
62     Int_t fNTbins;                             // Number of Tim bins=20      
63     Double_t fTBinSize;                        // Size of Time Bin =1 
64     Int_t fTimBin[kNo_Mom][kNo_TBins];      // Time Bin  
65     Double_t fProbPIT[kNo_Mom][kNo_TBins];      // Prob. of dEdx for pi
66     Double_t fProbELT[kNo_Mom][kNo_TBins];    // Prob. of dEdx for e
67     ClassDef(AliTRDprobdist,1)
68 };
69
70
71 #endif
72