3b4a5b35a549bb769e6c8f65924019b239cbe5f0
[u/mrichter/AliRoot.git] / TRD / qaRec / AliTRDpidChecker.h
1 #ifndef ALITRDPIDCHECKER_H
2 #define ALITRDPIDCHECKER_H
3
4 //////////////////////////////////////////////////////
5 //
6 // Task to check PID performance of the TRD
7 //
8 // Author : Alex Wilk <wilka@uni-muenster.de>
9 //
10 ///////////////////////////////////////////////////////
11
12 #include "AliPID.h"
13 #include "../Cal/AliTRDCalPID.h"
14
15 #ifndef ALITRDRECOTASK_H
16 #include "AliTRDrecoTask.h"
17 #endif
18
19 class TObjArray;
20 class TList;
21 class TClonesArray;
22 class TTreeSRedirector;
23 class AliTRDReconstructor;
24 class AliTRDpidChecker : public AliTRDrecoTask 
25 {
26
27   enum{
28       kLQlikelihood    = 0                                           // place for 2-dim LQ electron likelihood distributions
29         ,kNNlikelihood = 1 * AliTRDCalPID::kNMom * AliPID::kSPECIES  // place for NN electron likelihood distributions
30         ,kdEdx         = 2 * AliTRDCalPID::kNMom * AliPID::kSPECIES  // place for the dE/dx spectra
31         ,kPH           = 3 * AliTRDCalPID::kNMom * AliPID::kSPECIES  // place for pulse height spectra
32         ,kMomentum     = 4 * AliTRDCalPID::kNMom * AliPID::kSPECIES  // place for the momentum distribution
33         ,kMomentumBin  = kMomentum +1                                // place for the momentum distribution
34         ,kGraphLQ      = kMomentumBin +1                             // place for the 2-dim LQ pion efficiencies
35         ,kGraphLQerr   = kGraphLQ +1                                 // place for the 2-dim LQ pion efficiency errors
36         ,kGraphNN      = kGraphLQerr +1                              // place for the NN pion efficiencies
37         ,kGraphNNerr   = kGraphNN +1                                 // place for the NN pion efficiency errors
38   };
39
40   enum{
41     kGraphStart = kGraphLQ
42       };
43
44 public:
45   AliTRDpidChecker();
46   virtual ~AliTRDpidChecker();
47   
48   void    CreateOutputObjects();
49   void    Exec(Option_t *option);
50   void    GetRefFigure(Int_t ifig, Int_t &first, Int_t &last);  
51   Bool_t  PostProcess();
52   void    Terminate(Option_t *);
53
54
55 private:
56   AliTRDpidChecker(const AliTRDpidChecker&);               // not implemented
57   AliTRDpidChecker& operator=(const AliTRDpidChecker&);    // not implemented
58
59   Double_t GetPionEfficiency(Int_t Index1, Int_t Index2);  // calculates the pion efficiency
60   Double_t GetError(Int_t Index1, Int_t Index2);           // calculates the error
61   
62
63   AliTRDReconstructor *fReconstructor;     //! reconstructor needed for recalculation the PID
64
65   enum{
66     kBins = 12001                // binning of the likelihood histograms
67   };
68
69   ClassDef(AliTRDpidChecker, 1); // TRD PID checker
70 };
71
72 #endif