4f5a67b087f44edf76b4dc05a707293f785c7410
[u/mrichter/AliRoot.git] / TRD / qaRec / AliTRDcheckESD.h
1 #ifndef AliTRDcheckESD_H
2 #define AliTRDcheckESD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliTRDcheckESD.h 27496 2008-07-22 08:35:45Z cblume $ */
7
8 ////////////////////////////////////////////////////////////////////////////
9 //                                                                        //
10 //  Reconstruction QA                                                     //
11 //                                                                        //
12 ////////////////////////////////////////////////////////////////////////////
13
14 #ifndef ALIANALYSISTASK_H
15 #include "AliAnalysisTask.h"
16 #endif
17
18 class AliESDEvent;
19 class AliMCEvent;
20 class TH1;
21 class TObjArray;
22 class TGraphErrors;
23 class AliTRDcheckESD : public AliAnalysisTask {
24 public:
25   enum ETRDcheckESDstatus {
26     kMC = BIT(0)
27   };
28   enum ETRDcheckESDhistos {
29     kNCl  = 0 // number of clusters per track
30    ,kTRDstat  // TRD tracks status
31    ,kResults  // graphs as results
32    ,kNhistos = 3 // number of histograms
33   };
34   enum ETRDcheckESDbits {
35     kTPCout = 1 // track left TPC
36    ,kTRDin      // track reach TRD fiducial volume
37    ,kTRDout     // track reconstructed in TRD
38    ,kTRDpid     // PID calculated in TRD
39    ,kTRDref     // track refitted in TRD
40    ,kNbits  = 5 // number of check bits
41   };
42   AliTRDcheckESD();
43   virtual ~AliTRDcheckESD();
44   
45   void          ConnectInputData(Option_t *);
46   void          CreateOutputObjects();
47   TGraphErrors* GetGraph(Int_t id, Option_t *opt="bc");
48   void          Exec(Option_t *);
49
50   Bool_t        HasMC() const { return TESTBIT(fStatus, kMC);}
51   TObjArray*    Histos();
52   Bool_t        Load(const Char_t *fn, const Char_t *name=0x0);
53   void          SetMC(Bool_t mc = kTRUE) { mc ? SETBIT(fStatus, kMC) : CLRBIT(fStatus, kMC);}
54   void          Terminate(Option_t *);
55
56   static const Int_t   fgkNgraphs;
57   static const Float_t fgkxTPC;
58   static const Float_t fgkxTOF;
59
60 private:
61   AliTRDcheckESD(const AliTRDcheckESD&);
62   AliTRDcheckESD& operator=(const AliTRDcheckESD&);
63   void          Process(TH1 **h, TGraphErrors *g);
64   void          PrintStatus(ULong_t s);
65
66   Int_t            fStatus;            // bit mask for controlling the task
67   AliESDEvent      *fESD;              // ESD event
68   AliMCEvent       *fMC;               // MC event
69   TObjArray        *fHistos;           // QA histos
70   ClassDef(AliTRDcheckESD, 1)          // user oriented TRD analysis based on ESD-MC data
71 };
72 #endif