]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliForwardFlowTaskQC.h
Fixed references from PWG2 -> PWGLF - very efficiently done using ETags.
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliForwardFlowTaskQC.h
CommitLineData
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"
18class 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 */
39class AliForwardFlowTaskQC : public AliAnalysisTaskSE
40{
41public:
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 137protected:
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: