]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/AliTRDcheckESD.h
copy TRD performance train to PWG1
[u/mrichter/AliRoot.git] / PWG1 / TRD / 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 // Check basic detector results at ESD level
11 //
12 // Author
13 //   Alex Bercuci <A.Bercuci@gsi.de>
14 //
15 //////////////////////////////////////////////////////
16
17 #ifndef ALIANALYSISTASK_H
18 #include "AliAnalysisTask.h"
19 #endif
20
21 class AliESDEvent;
22 class AliMCEvent;
23 class TH1;
24 class TObjArray;
25 class TGraph;
26 class TGraphErrors;
27 class AliTRDcheckESD : public AliAnalysisTask {
28 public:
29   enum ETRDcheckESDstatus {
30     kMC = BIT(0)
31   };
32   enum ETRDcheckESDhistos {
33     kNCl  = 0    // number of clusters per track
34    ,kTRDstat     // TRD tracks status
35    ,kTRDmom      // TRD track momentum
36    ,kNhistos = 3 // number of histograms
37    ,kNgraphs = 6 // number of graphs
38   };
39   enum ETRDcheckESDbits {
40     kTPCout = 1 // track left TPC
41    ,kTRDin      // track reach TRD fiducial volume
42    ,kTRDout     // track reconstructed in TRD
43    ,kTRDpid     // PID calculated in TRD
44    ,kTRDref     // track refitted in TRD
45    ,kNbits  = 5 // number of check bits
46   };
47   AliTRDcheckESD();
48   virtual ~AliTRDcheckESD();
49   
50   void          ConnectInputData(Option_t *);
51   void          CreateOutputObjects();
52   TGraph*       GetGraph(Int_t id, Option_t *opt="bc");
53   void          Exec(Option_t *);
54
55   Bool_t        HasMC() const { return TESTBIT(fStatus, kMC);}
56   TObjArray*    Histos();
57   Bool_t        Load(const Char_t *fn, const Char_t *name=0x0);
58   void          SetMC(Bool_t mc = kTRUE) { mc ? SETBIT(fStatus, kMC) : CLRBIT(fStatus, kMC);}
59   Bool_t        PutTrendValue(const Char_t *name, Double_t val);
60   void          Terminate(Option_t *);
61
62 private:
63   static const Float_t fgkxTPC; // end radial position of TPC
64   static const Float_t fgkxTOF; // start radial position of TOF
65
66   AliTRDcheckESD(const AliTRDcheckESD&);
67   AliTRDcheckESD& operator=(const AliTRDcheckESD&);
68   void          Process(TH1 **h, TGraphErrors *g);
69   void          PrintStatus(ULong_t s);
70
71   Int_t            fStatus;            // bit mask for controlling the task
72   AliESDEvent      *fESD;              // ESD event
73   AliMCEvent       *fMC;               // MC event
74   TObjArray        *fHistos;           // QA histos
75   TObjArray        *fResults;          // QA graphs
76   static FILE *fgFile;                 //! trend file streamer
77   ClassDef(AliTRDcheckESD, 3)          // user oriented TRD analysis based on ESD-MC data
78 };
79 #endif