#ifndef ALITRDCHECKESD_H #define ALITRDCHECKESD_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /* $Id: AliTRDcheckESD.h 27496 2008-07-22 08:35:45Z cblume $ */ ///////////////////////////////////////////////////// // // Check basic detector results at ESD level // // Author // Alex Bercuci // ////////////////////////////////////////////////////// #ifndef ALIANALYSISTASK_H #include "AliAnalysisTaskSE.h" #endif class AliESDEvent; class AliMCEvent; class TH1; class TObjArray; class TGraph; class TGraphErrors; class AliTRDcheckESD : public AliAnalysisTaskSE { public: enum ETRDcheckESDstatus { kMC = BIT(0) // use MC info ,kLoad = BIT(1) // container from file }; enum ETRDcheckESDhistos { kNCl = 0 // number of clusters per track ,kTRDstat // TRD tracks status ,kTRDmom // TRD track momentum ,kPtRes // Pt resolution @ vertex for TRD ,kNhistos = 4 // number of histograms ,kNgraphs = 7 // number of graphs }; enum ETRDcheckESDbits { kTPCout = 1 // track left TPC ,kTRDin // track reach TRD fiducial volume ,kTRDout // track reconstructed in TRD ,kTRDpid // PID calculated in TRD ,kTRDref // track refitted in TRD }; AliTRDcheckESD(); AliTRDcheckESD(char* name); virtual ~AliTRDcheckESD(); void UserCreateOutputObjects(); TGraph* GetGraph(Int_t id, Option_t *opt="bc"); Bool_t GetRefFigure(Int_t ifig); void UserExec(Option_t *); Bool_t HasMC() const { return TESTBIT(fStatus, kMC);} Bool_t IsLoad() const { return TESTBIT(fStatus, kLoad);} TObjArray* Histos(); Bool_t Load(const Char_t *fn, const Char_t *name=0x0); void SetMC(Bool_t mc = kTRUE) { mc ? SETBIT(fStatus, kMC) : CLRBIT(fStatus, kMC);} Bool_t PutTrendValue(const Char_t *name, Double_t val); void Terminate(Option_t *); private: static const Float_t fgkxTPC; // end radial position of TPC static const Float_t fgkxTOF; // start radial position of TOF AliTRDcheckESD(const AliTRDcheckESD&); AliTRDcheckESD& operator=(const AliTRDcheckESD&); Int_t Pdg2Idx(Int_t pdg); void Process(TH1 **h, TGraphErrors *g); void PrintStatus(ULong_t s); Int_t fStatus; // bit mask for controlling the task AliESDEvent *fESD; //! ESD event AliMCEvent *fMC; //! MC event TObjArray *fHistos; //! QA histos TObjArray *fResults; // QA graphs static FILE *fgFile; //! trend file streamer ClassDef(AliTRDcheckESD, 3) // user oriented TRD analysis based on ESD-MC data }; #endif