last modification of the task before going into production
[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 TObjArray;
21 class AliTRDcheckESD : public AliAnalysisTask {
22 public:
23   enum ETRDcheckESDstatus {
24     kMC = BIT(0)
25   };
26   enum ETRDcheckESDhistos {
27     kNCl  = 0 // number of clusters per track
28    ,kTRDstat  // TRD tracks status
29    ,kResults  // graphs as results
30   };
31   enum ETRDcheckESDbits {
32     kTPCout = 1 // track left TPC
33    ,kTRDin      // track reach TRD fiducial volume
34    ,kTRDout     // track reconstructed in TRD
35    ,kTRDpid     // PID calculated in TRD
36    ,kTRDref     // track refitted in TRD
37    ,kNbits  = 5 // number of check bits
38   };
39   AliTRDcheckESD();
40   virtual ~AliTRDcheckESD();
41   
42   void    ConnectInputData(Option_t *);
43   void    CreateOutputObjects();
44   void    Exec(Option_t *);
45
46   Bool_t  HasMC() const { return TESTBIT(fStatus, kMC);}
47   Bool_t  Load(const Char_t *fn);
48   void    SetMC(Bool_t mc = kTRUE) { mc ? SETBIT(fStatus, kMC) : CLRBIT(fStatus, kMC);}
49   void    Terminate(Option_t *);
50
51   static const Float_t xTPC;
52   static const Float_t xTOF;
53
54 private:
55   AliTRDcheckESD(const AliTRDcheckESD&);
56   AliTRDcheckESD& operator=(const AliTRDcheckESD&);
57   Int_t            fStatus;            // bit mask for controlling the task
58   AliESDEvent      *fESD;              // ESD event
59   AliMCEvent       *fMC;               // MC event
60   TObjArray        *fHistos;           // QA histos
61   ClassDef(AliTRDcheckESD, 1)          // user oriented TRD analysis based on ESD-MC data
62 };
63 #endif