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 */
6 /* $Id: AliTRDcheckESD.h 27496 2008-07-22 08:35:45Z cblume $ */
8 ////////////////////////////////////////////////////////////////////////////
10 // Reconstruction QA //
12 ////////////////////////////////////////////////////////////////////////////
14 #ifndef ALIANALYSISTASK_H
15 #include "AliAnalysisTask.h"
22 class AliTRDcheckESD : public AliAnalysisTask {
24 enum ETRDcheckESDstatus {
27 enum ETRDcheckESDhistos {
28 kNCl = 0 // number of clusters per track
29 ,kTRDstat // TRD tracks status
30 ,kResults // graphs as results
31 ,kNhistos = 3 // number of histograms
33 enum ETRDcheckESDbits {
34 kTPCout = 1 // track left TPC
35 ,kTRDin // track reach TRD fiducial volume
36 ,kTRDout // track reconstructed in TRD
37 ,kTRDpid // PID calculated in TRD
38 ,kTRDref // track refitted in TRD
39 ,kNbits = 5 // number of check bits
42 virtual ~AliTRDcheckESD();
44 void ConnectInputData(Option_t *);
45 void CreateOutputObjects();
46 TGraphErrors* GetGraph(Int_t id, Option_t *opt=0x0);
47 void Exec(Option_t *);
49 Bool_t HasMC() const { return TESTBIT(fStatus, kMC);}
51 Bool_t Load(const Char_t *fn, const Char_t *name=0x0);
52 void SetMC(Bool_t mc = kTRUE) { mc ? SETBIT(fStatus, kMC) : CLRBIT(fStatus, kMC);}
53 void Terminate(Option_t *);
55 static const Int_t fgkNgraphs;
56 static const Float_t fgkxTPC;
57 static const Float_t fgkxTOF;
60 AliTRDcheckESD(const AliTRDcheckESD&);
61 AliTRDcheckESD& operator=(const AliTRDcheckESD&);
62 void Process(TH1 **h, TGraphErrors *g);
63 void PrintStatus(ULong_t s);
65 Int_t fStatus; // bit mask for controlling the task
66 AliESDEvent *fESD; // ESD event
67 AliMCEvent *fMC; // MC event
68 TObjArray *fHistos; // QA histos
69 ClassDef(AliTRDcheckESD, 1) // user oriented TRD analysis based on ESD-MC data