Latest version
[u/mrichter/AliRoot.git] / TRD / AliTRDpidLQ.h
1 #ifndef ALITRDPIDLQ_H
2 #define ALITRDPIDLQ_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8
9 ///////////////////////////////////////////////////////////////////////////////
10 //                                                                           //
11 //   The TRD particle identification class                                   //
12 //                                                                           //
13 //   Its main purposes are:                                                  //
14 //      - Creation and bookkeeping of the propability distributions          //
15 //      - Assignment of a e/pi propability to a given track based on         //
16 //        the LQ method                                                      //
17 //                                                                           //
18 ///////////////////////////////////////////////////////////////////////////////
19
20 #include "AliTRDpid.h"
21
22 class AliTRDpidLQ : public AliTRDpid {
23
24  public:
25
26   AliTRDpidLQ();
27   AliTRDpidLQ(const char* name, const char* title);
28   AliTRDpidLQ(const AliTRDpidLQ &p);
29   virtual ~AliTRDpidLQ();
30   AliTRDpidLQ &operator=(const AliTRDpidLQ &p);
31
32   virtual void          Copy(TObject &p);
33   virtual Bool_t        Init();
34   virtual Bool_t        AssignLikelihood(AliTRDtrack *t);
35   virtual Bool_t        CreateHistograms(const Int_t   nmom
36                                        , const Float_t minmom
37                                        , const Float_t maxmom);
38   virtual Bool_t        FillSpectra(const AliTRDtrack *t);
39
40   Int_t         GetIndex(const AliTRDtrack *t);
41   Int_t         GetIndex(const Int_t imom, const Int_t ipid);
42   Int_t         GetIndex(const Float_t mom, const Int_t ipid);
43
44           TObjArray*    GetHist() const                     { return fHist;        };
45
46           Float_t       GetChargeMin() const                { return fChargeMin;   };
47           Int_t         GetNClusterMin() const              { return fNClusterMin; };
48
49           Int_t         GetNLh() const                      { return fNLh;         };
50           Float_t       GetMinLh() const                    { return fMinLh;       };
51           Float_t       GetMaxLh() const                    { return fMaxLh;       };
52
53           void          SetChargeMin(const Float_t min)     { fChargeMin   = min;  };
54           void          SetNClusterMin(const Int_t min)     { fNClusterMin = min;  };
55
56           void          SetNLh(const Int_t n)               { fNLh         = n;    };
57           void          SetMinLh(const Float_t min)         { fMinLh       = min;  };
58           void          SetMaxLh(const Float_t max)         { fMaxLh       = max;  };
59
60  protected:
61
62   Int_t           fNMom;             //  Number of momentum bins
63   Float_t         fMinMom;           //  Lower momentum
64   Float_t         fMaxMom;           //  Upper momentum
65   Float_t         fWidMom;           //  Width of the momentum bins
66   TObjArray      *fHist;             //  Array of histograms
67
68   Int_t           fNLh;              //  Number of bins of the likelihood spectra
69   Float_t         fMinLh;            //  Lower range of the likelihood spectra
70   Float_t         fMaxLh;            //  Upper range of the likelihood spectra
71
72   Float_t         fChargeMin;        //  Minimum charge required in one plane
73   Int_t           fNClusterMin;      //  Minimum number of clusters required in one plane
74
75   ClassDef(AliTRDpidLQ,1)            //  Assigns e/pi propability to the tracks based on LQ method 
76
77 };
78 #endif