]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliPerformanceObject.h
SVN keyword Id is set
[u/mrichter/AliRoot.git] / PWG1 / AliPerformanceObject.h
1 #ifndef ALIPERFORMANCEOBJECT_H\r
2 #define ALIPERFORMANCEOBJECT_H\r
3 \r
4 //------------------------------------------------------------------------------\r
5 // Base class to keep information from comparison of \r
6 // reconstructed and MC particle tracks.   \r
7 // \r
8 // Author: J.Otwinowski 04/14/2008 \r
9 //------------------------------------------------------------------------------\r
10 \r
11 #include "TNamed.h"\r
12 #include "TFolder.h"\r
13 \r
14 class AliMCEvent;\r
15 class AliESDEvent;\r
16 class AliRecInfoCuts;\r
17 class AliMCInfoCuts;\r
18 class AliESDfriend;\r
19 \r
20 class AliPerformanceObject : public TNamed {\r
21 public :\r
22   AliPerformanceObject(); \r
23   AliPerformanceObject(const char* name="AliPerformanceObject", const char* title="AliPerformanceObject"); \r
24   virtual ~AliPerformanceObject();\r
25 \r
26   // Init data members\r
27   // call once before event loop\r
28   virtual void Init() = 0;\r
29 \r
30   // Execute analysis\r
31   // call in the event loop \r
32   virtual void Exec(AliMCEvent* const infoMC=0, AliESDEvent* const infoRC=0, AliESDfriend* const infoFriend=0, const Bool_t bUseMC=kFALSE, const Bool_t bUseESDfriend=kFALSE) = 0;\r
33 \r
34   // Merge output objects (needed by PROOF) \r
35   virtual Long64_t Merge(TCollection* const list=0) = 0;\r
36 \r
37   // Analyse output histograms\r
38   virtual void Analyse() = 0;\r
39 \r
40   // Get output folder for analysed histograms\r
41   virtual TFolder* GetAnalysisFolder() const = 0;\r
42 \r
43   // \r
44   virtual void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) = 0;\r
45   virtual void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) = 0; \r
46 \r
47   // set and get analysisMode\r
48   void SetAnalysisMode(const Int_t analysisMode=0) {fAnalysisMode = analysisMode;} \r
49   Int_t GetAnalysisMode() const {return fAnalysisMode;}\r
50 \r
51   // set and get hpt generator \r
52   void SetHptGenerator(const Bool_t hptGenerator=kFALSE) {fHptGenerator = hptGenerator;}\r
53   Bool_t IsHptGenerator() const {return fHptGenerator;}\r
54 \r
55   // draw all histograms from the folder\r
56   void PrintHisto(Bool_t logz = kTRUE, Char_t * outFileName = "PerformanceQAHisto.ps"); \r
57 \r
58   // create log axis \r
59   Double_t *CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax); \r
60 \r
61 protected: \r
62 \r
63  // analysis mode\r
64  Int_t fAnalysisMode;  // 0-TPC, 1-TPCITS, 2-Constrained, 3-TPC inner wall, 4-TPC outer wall\r
65 \r
66  // hpt generator\r
67  Bool_t fHptGenerator; // hpt event generator\r
68 \r
69   ClassDef(AliPerformanceObject,1);\r
70 };\r
71 \r
72 #endif\r