]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/TPC/AliPerformanceObject.h
guess the run number from the input file path
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliPerformanceObject.h
CommitLineData
7cc34f08 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
814d192f 9// Changes by M.Knichel 15/10/2010\r
7cc34f08 10//------------------------------------------------------------------------------\r
11\r
12#include "TNamed.h"\r
13#include "TFolder.h"\r
28bb9d1f 14#include "THnSparse.h"\r
7cc34f08 15\r
814d192f 16class TTree;\r
7cc34f08 17class AliMCEvent;\r
18class AliESDEvent;\r
19class AliRecInfoCuts;\r
20class AliMCInfoCuts;\r
21class AliESDfriend;\r
758320f7 22class AliESDVertex;\r
7cc34f08 23\r
24class AliPerformanceObject : public TNamed {\r
25public :\r
26 AliPerformanceObject(); \r
c11cd0fa 27 AliPerformanceObject(const char* name="AliPerformanceObject", const char* title="AliPerformanceObject", Int_t run=-1, Bool_t highMult=kFALSE); \r
7cc34f08 28 virtual ~AliPerformanceObject();\r
29\r
30 // Init data members\r
31 // call once before event loop\r
32 virtual void Init() = 0;\r
28bb9d1f 33 \r
34 // init for high multiplicity (PbPb) \r
35 // to be called instead of Init()\r
36 virtual void InitHighMult();\r
37 \r
7cc34f08 38 // Execute analysis\r
39 // call in the event loop \r
40 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
41\r
42 // Merge output objects (needed by PROOF) \r
43 virtual Long64_t Merge(TCollection* const list=0) = 0;\r
44\r
f69eb048 45 // project to 1d,2d,3d\r
46 // is called from FinishTaskOuput() in AliPerformanceTask\r
7cc34f08 47 virtual void Analyse() = 0;\r
48\r
49 // Get output folder for analysed histograms\r
50 virtual TFolder* GetAnalysisFolder() const = 0;\r
814d192f 51 \r
52 // create a summary stored in a ttree \r
53 // has to be implented\r
814d192f 54 virtual TTree* CreateSummary() { return 0; }\r
f69eb048 55 \r
56 // project to 1d,2d,3d\r
57 // is called from Terminate() in AliPerformanceTask\r
58 // final spectra calculation\r
59 virtual void AnalyseFinal() { ; }\r
7cc34f08 60\r
61 // \r
62 virtual void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) = 0;\r
63 virtual void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) = 0; \r
64\r
65 // set and get analysisMode\r
66 void SetAnalysisMode(const Int_t analysisMode=0) {fAnalysisMode = analysisMode;} \r
67 Int_t GetAnalysisMode() const {return fAnalysisMode;}\r
68\r
69 // set and get hpt generator \r
70 void SetHptGenerator(const Bool_t hptGenerator=kFALSE) {fHptGenerator = hptGenerator;}\r
71 Bool_t IsHptGenerator() const {return fHptGenerator;}\r
72\r
73 // draw all histograms from the folder\r
feda9561 74 void PrintHisto(Bool_t logz = kTRUE, const Char_t * outFileName = "PerformanceQAHisto.ps"); \r
7cc34f08 75\r
76 // create log axis \r
77 Double_t *CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax); \r
78\r
e6a60a90 79 // trigger class selection\r
80 void SetTriggerClass(const Char_t *triggerClass) { fTriggerClass = triggerClass; }\r
81 const Char_t* GetTriggerClass() const { return fTriggerClass; }\r
82\r
758320f7 83 // use track vertex\r
84 void SetUseTrackVertex(Bool_t trackVtx = kTRUE) { fUseTrackVertex = trackVtx; }\r
85 Bool_t IsUseTrackVertex() { return fUseTrackVertex; }\r
28bb9d1f 86 \r
87 Bool_t IsHighMultiplicity() { return fHighMultiplicity; } \r
814d192f 88 \r
56958768 89 // merging of thnsparse\r
90 Bool_t GetMergeTHnSparseObj() { return fMergeTHnSparseObj; }\r
91 void SetMergeTHnSparseObj(Bool_t merge) {fMergeTHnSparseObj = merge; } \r
92 \r
814d192f 93 void SetRunNumber(Int_t run) { fRunNumber = run; }\r
94 Int_t GetRunNumber() const { return fRunNumber; }\r
758320f7 95\r
c1b69b58 96 // use kink daughters\r
97 void SetUseKinkDaughters(Bool_t kinkDaughters = kTRUE) { fUseKinkDaughters = kinkDaughters; }\r
98 Bool_t IsUseKinkDaughters() { return fUseKinkDaughters; }\r
99\r
36ace53b 100 // Centrality bin to be used\r
101 void SetUseCentralityBin(Int_t bin) { fUseCentralityBin = bin; }\r
102 Int_t GetUseCentralityBin() { return fUseCentralityBin; }\r
1833a193 103\r
104 // use tof bunch crossing\r
105 void SetUseTOFBunchCrossing(Bool_t tofBunching = kTRUE) { fUseTOFBunchCrossing = tofBunching; }\r
106 Bool_t IsUseTOFBunchCrossing() { return fUseTOFBunchCrossing; }\r
107\r
7cc34f08 108protected: \r
109\r
28bb9d1f 110 void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, TString* selString = 0);\r
111 void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, Int_t yDim, TString* selString = 0);\r
112 void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, Int_t yDim, Int_t zDim, TString* selString = 0);\r
113\r
56958768 114 // merge THnSparse\r
115 Bool_t fMergeTHnSparseObj;\r
116 \r
758320f7 117 // analysis mode\r
118 Int_t fAnalysisMode; // 0-TPC, 1-TPCITS, 2-Constrained, 3-TPC inner wall, 4-TPC outer wall\r
119\r
814d192f 120 Int_t fRunNumber;\r
121\r
758320f7 122 // hpt generator\r
123 Bool_t fHptGenerator; // hpt event generator\r
7cc34f08 124\r
758320f7 125 // trigger class\r
126 const Char_t * fTriggerClass;\r
7cc34f08 127\r
758320f7 128 // use track vertex\r
129 Bool_t fUseTrackVertex; // use track vertex\r
28bb9d1f 130 \r
131 // PbPb mode?\r
132 Bool_t fHighMultiplicity; // flag to switch between pp and PbPb \r
e6a60a90 133\r
c1b69b58 134 Bool_t fUseKinkDaughters; // use kink daughthers, default is yes\r
135\r
36ace53b 136 Int_t fUseCentralityBin; // centrality bin to be used \r
137\r
1833a193 138 Bool_t fUseTOFBunchCrossing; // use TOFBunchCrossing, default is yes\r
139\r
e6a60a90 140 AliPerformanceObject(const AliPerformanceObject&); // not implemented\r
141 AliPerformanceObject& operator=(const AliPerformanceObject&); // not implemented\r
142\r
56958768 143 ClassDef(AliPerformanceObject,7);\r
7cc34f08 144};\r
145\r
146#endif\r