]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/qaRec/AliTRDpidChecker.h
added track covariance matrix (yz plane) to the tracklet
[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 #ifndef ALITRDRECOTASK_H
13 #include "AliTRDrecoTask.h"
14 #endif
15
16 class AliTRDReconstructor;
17 class AliTRDpidUtil;
18 class AliTRDpidChecker : public AliTRDrecoTask 
19 {
20   // Plots registered for this task
21   enum{
22      kEfficiency     =  0     // pi Efficiency plot
23     ,kdEdx           =  1     // dE/dx spectra
24     ,kdEdxSlice      =  2     // dE/dx spectra
25     ,kPH             =  3     // pulse height spectra
26     ,kNClus          =  4     //  number of clusters per track
27     ,kMomentum       =  5     // momentum distribution
28     ,kMomentumBin    =  6     // momentum distribution
29     ,kThresh         =  7     // threshold in efficiency
30   };
31   // PID methods
32   enum {
33      kLQ   = 0 // 2D likelihood method
34     ,kNN   = 1 // Neural network method
35     ,kESD  = 2 // ESD results - check offline
36   };
37 public:
38   AliTRDpidChecker();
39   virtual ~AliTRDpidChecker();
40   
41   virtual void    CreateOutputObjects();
42   virtual void    GetRefFigure(Int_t ifig);
43   virtual Bool_t  PostProcess();
44   virtual void    Terminate(Option_t *);
45
46   TH1 *PlotLQ(const AliTRDtrackV1 *track = 0x0);
47   TH1 *PlotNN(const AliTRDtrackV1 *track = 0x0);
48   TH1 *PlotESD(const AliTRDtrackV1 *track = 0x0);
49   TH1 *PlotdEdx(const AliTRDtrackV1 *track = 0x0);
50   TH1 *PlotdEdxSlice(const AliTRDtrackV1 *track = 0x0);
51   TH1 *PlotPH(const AliTRDtrackV1 *track = 0x0);
52   TH1 *PlotNClus(const AliTRDtrackV1 *track = 0x0);
53   TH1 *PlotMom(const AliTRDtrackV1 *track = 0x0);
54   TH1 *PlotMomBin(const AliTRDtrackV1 *track = 0x0);
55
56
57   virtual TObjArray *Histos();
58
59 private:
60   AliTRDpidChecker(const AliTRDpidChecker&);               // not implemented
61   AliTRDpidChecker& operator=(const AliTRDpidChecker&);    // not implemented
62
63   Int_t  CalcPDG(AliTRDtrackV1* track = 0x0);
64   Bool_t CheckTrackQuality(const AliTRDtrackV1* track = 0x0);
65   
66   AliTRDReconstructor *fReconstructor;     //! reconstructor needed for recalculation the PID
67   AliTRDpidUtil       *fUtil;              //! utility class for PID calculations
68   TObjArray           *fGraph;             //! array of graphs filled in PostProcess
69   TObjArray           *fEfficiency;        //! array of histograms with efficiency
70
71   ClassDef(AliTRDpidChecker, 1); // TRD PID checker
72 };
73
74 #endif