]>
Commit | Line | Data |
---|---|---|
d2bea14e | 1 | // |
2 | // Calculate the flow in the forward regions using the Q cumulants method | |
3 | // | |
4 | #ifndef ALIFORWARDFLOWTASKQC_H | |
5 | #define ALIFORWARDFLOWTASKQC_H | |
ffca499d | 6 | /** |
7 | * @file AliForwardFlowTaskQC.h | |
2f9be372 | 8 | * @author Alexander Hansen alexander.hansen@cern.ch |
9 | * @date Fri Mar 25 13:53:00 2011 | |
ffca499d | 10 | * |
11 | * @brief | |
12 | * | |
13 | * | |
bd6f5206 | 14 | * @ingroup pwglf_forward_flow |
ffca499d | 15 | */ |
d2bea14e | 16 | #include "AliAnalysisTaskSE.h" |
58f5fae2 | 17 | #include "AliForwardFlowUtil.h" |
18 | class AliAODEvent; | |
d2bea14e | 19 | |
2f9be372 | 20 | /** |
bd6f5206 | 21 | * @defgroup pwglf_forward_tasks_flow Flow tasks |
22 | * @ingroup pwglf_forward_tasks | |
ffca499d | 23 | */ |
d2bea14e | 24 | /** |
25 | * Calculate the flow in the forward regions using the Q cumulants method | |
26 | * | |
27 | * @par Inputs: | |
28 | * - AliAODEvent | |
29 | * | |
30 | * Outputs: | |
31 | * - AnalysisResults.root | |
32 | * | |
bd6f5206 | 33 | * @ingroup pwglf_forward_tasks_flow |
34 | * @ingroup pwglf_forward_flow | |
d2bea14e | 35 | * |
9d05ffeb | 36 | * @todo Add centrality stuff |
37 | * | |
d2bea14e | 38 | */ |
39 | class AliForwardFlowTaskQC : public AliAnalysisTaskSE | |
40 | { | |
41 | public: | |
42 | /** | |
43 | * Constructor | |
44 | */ | |
9d05ffeb | 45 | AliForwardFlowTaskQC(); |
d2bea14e | 46 | /** |
47 | * Constructor | |
48 | * | |
49 | * @param name Name of task | |
50 | */ | |
9d05ffeb | 51 | AliForwardFlowTaskQC(const char* name); |
d2bea14e | 52 | /** |
53 | * Destructor | |
54 | */ | |
ffca499d | 55 | virtual ~AliForwardFlowTaskQC() {} |
9d05ffeb | 56 | /** |
d2bea14e | 57 | * @{ |
ffca499d | 58 | * @name Task interface methods |
d2bea14e | 59 | */ |
60 | /** | |
61 | * Create output objects | |
62 | * | |
63 | */ | |
9453b19e | 64 | virtual void UserCreateOutputObjects(); |
d2bea14e | 65 | /** |
66 | * Initialize the task | |
67 | * | |
68 | */ | |
9d05ffeb | 69 | virtual void Init() {} |
d2bea14e | 70 | /** |
71 | * Process each event | |
72 | * | |
73 | * @param option Not used | |
74 | */ | |
9d05ffeb | 75 | virtual void UserExec(Option_t *option); |
d2bea14e | 76 | /** |
77 | * End of job | |
78 | * | |
79 | * @param option Not used | |
80 | */ | |
9d05ffeb | 81 | virtual void Terminate(Option_t *option); |
ffca499d | 82 | /* @} */ |
d2bea14e | 83 | /* |
84 | * Returns the outputlist | |
85 | * | |
86 | */ | |
9d05ffeb | 87 | TList* GetOutputList() { return fOutputList; } |
d2bea14e | 88 | /* |
ffca499d | 89 | * Set Number of @f$ \eta@f$ bins to be used in flow analysis |
d2bea14e | 90 | * |
91 | */ | |
9d05ffeb | 92 | void SetUseNEtaBins(Int_t nbins) { fEtaBins = nbins; } |
2f9be372 | 93 | /* |
ffca499d | 94 | * Set which harmonics to calculate. @f$ v_{1}@f$ to @f$ v_{4}@f$ is |
95 | * available and calculated as default | |
d2bea14e | 96 | * |
ffca499d | 97 | * @param v1 Do @f$ v_{1}@f$ |
98 | * @param v2 Do @f$ v_{2}@f$ | |
99 | * @param v3 Do @f$ v_{3}@f$ | |
100 | * @param v4 Do @f$ v_{4}@f$ | |
d2bea14e | 101 | */ |
9d05ffeb | 102 | void SetDoHarmonics(Bool_t v1 = kTRUE, Bool_t v2 = kTRUE, |
d226802c | 103 | Bool_t v3 = kTRUE, Bool_t v4 = kTRUE, |
104 | Bool_t v5 = kTRUE, Bool_t v6 = kTRUE) { | |
105 | fv[1] = v1; fv[2] = v2; fv[3] = v3; fv[4] = v4; fv[5] = v5; fv[6] = v6;} | |
58f5fae2 | 106 | /* |
107 | * Set string to add flow to MC truth particles | |
2f9be372 | 108 | * |
109 | * @param type String | |
58f5fae2 | 110 | */ |
111 | void AddFlow(TString type = "") { fAddFlow = type; } | |
112 | /* | |
113 | * Set which function fAddFlow should use | |
2f9be372 | 114 | * |
115 | * @param type of AddFlow | |
58f5fae2 | 116 | */ |
117 | void AddFlowType(Int_t number = 0) { fAddType = number; } | |
118 | /* | |
119 | * Set which order of flow to add | |
ffca499d | 120 | * |
121 | * @param order Flow order | |
58f5fae2 | 122 | */ |
123 | void AddFlowOrder(Int_t order = 2) { fAddOrder = order; } | |
d226802c | 124 | /* |
125 | * | |
126 | * Set MC input flag | |
127 | * | |
128 | * @param mc MC input | |
129 | */ | |
130 | void SetMCinput(Bool_t mc = kTRUE) { fMC = mc; } | |
131 | /* | |
132 | * Set number of eta bins to be used in reference flow | |
133 | * | |
134 | * @param bins Ref Eta Bins | |
135 | */ | |
136 | void SetRefEtaBins(Int_t bins) { fEtaRef = bins; } | |
ffca499d | 137 | protected: |
d2bea14e | 138 | /** |
ffca499d | 139 | * Copy constructor |
140 | * | |
141 | * @param o Object to copy from | |
d2bea14e | 142 | */ |
ffca499d | 143 | AliForwardFlowTaskQC(const AliForwardFlowTaskQC& o); |
144 | /** | |
145 | * Assignment operator | |
146 | * | |
147 | * @return Reference to this object | |
148 | */ | |
149 | AliForwardFlowTaskQC& operator=(const AliForwardFlowTaskQC&) { return *this; } | |
d2bea14e | 150 | /* |
9d05ffeb | 151 | * if MC information is available do analysis on Monte Carlo truth |
152 | * and track references | |
d2bea14e | 153 | * |
154 | */ | |
9d05ffeb | 155 | void ProcessPrimary(); |
156 | /** | |
157 | * Calculate Q cumulant | |
ffca499d | 158 | * |
159 | * @param type Determines which histograms should be used | |
2f9be372 | 160 | * - "FMD" = FMD data histograms |
161 | * - "SPD" = SPD data histograms | |
d226802c | 162 | * - "TR" = track reference histograms |
ffca499d | 163 | * - "MC" = MC truth histograms |
164 | * @param harmonic Which harmonic to calculate | |
9d05ffeb | 165 | */ |
166 | void CumulantsMethod(TString type, Int_t harmonic); | |
d2bea14e | 167 | |
9d05ffeb | 168 | TList* fOutputList; // Output list |
58f5fae2 | 169 | AliForwardFlowUtil* fFlowUtil;// AliForwardFlowUtil |
9d05ffeb | 170 | AliAODEvent* fAOD; // AOD event |
171 | Bool_t fMC; // Is MC flags | |
172 | Int_t fEtaBins; // Number of eta bins in histograms | |
d226802c | 173 | Int_t fEtaRef; // Number of eta bins for reference flow |
174 | Bool_t fv[7]; // Calculate v_{n} flag | |
58f5fae2 | 175 | TString fAddFlow; // Add flow string |
176 | Int_t fAddType; // Add flow type # | |
177 | Int_t fAddOrder; // Add flow order | |
2f9be372 | 178 | Float_t fZvertex; // Z vertex bin |
58f5fae2 | 179 | Double_t fCent; // Centrality |
180 | ||
181 | ||
2f9be372 | 182 | ClassDef(AliForwardFlowTaskQC, 2); // Analysis task for FMD analysis |
d2bea14e | 183 | }; |
184 | ||
185 | #endif | |
186 | // Local Variables: | |
187 | // mode: C++ | |
188 | // End: |