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