2 // Calculate the flow in the forward regions using the Q cumulants method
4 #ifndef ALIFORWARDMCFLOWTASKQC_H
5 #define ALIFORWARDMCFLOWTASKQC_H
7 * @file AliForwardMCFlowTaskQC.h
8 * @author Alexander Hansen alexander.hansen@cern.ch
9 * @date Tue Feb 14 2012
14 * @ingroup pwglf_forward_flow
16 #include "AliForwardFlowTaskQC.h"
21 * @defgroup pwg2_forward_tasks_flow Flow tasks
22 * @ingroup pwg2_forward_tasks
25 * Calculate the flow in the forward regions using the Q cumulants method
31 * - AnalysisResults.root
33 * @ingroup pwg2_forward_tasks_flow
34 * @ingroup pwg2_forward_flow
38 class AliForwardMCFlowTaskQC : public AliForwardFlowTaskQC
44 AliForwardMCFlowTaskQC();
48 * @param name Name of task
50 AliForwardMCFlowTaskQC(const char* name);
54 virtual ~AliForwardMCFlowTaskQC() {}
56 * Check for centrality in AliAODForwardMult object,
57 * if present return true - also sets fCent value
58 * can be used to get centrality from impact parameter
60 * @param aodfm AliAODForwardMultObject
64 virtual Bool_t GetCentrality(const AliAODForwardMult* aodfm);
66 * Set use parametrization from impact parameter for centrality
68 * @param use Use impact par
70 void SetUseImpactParameter(Bool_t use) { fUseImpactPar = use; }
72 * Set string to add flow to MC truth particles
76 void AddFlow(TString type = "") { fAddFlow = type; }
78 * Set which function fAddFlow should use
80 * @param type of AddFlow
82 void AddFlowType(Int_t number = 0) { fAddType = number; }
84 * Set which order of flow to add
86 * @param order Flow order
88 void AddFlowOrder(Int_t order = 2) { fAddOrder = order; }
94 * @param o Object to copy from
96 AliForwardMCFlowTaskQC(const AliForwardMCFlowTaskQC& o);
100 * @return Reference to this object
102 AliForwardMCFlowTaskQC& operator=(const AliForwardMCFlowTaskQC& o);
104 * Initiate vertex bin objects
106 void InitVertexBins();
108 * Initiate diagnostics histograms
120 * Loop over AliAODMCParticle branch object and fill d^2N/detadphi histograms
121 * add flow if arguments are set
123 * @return true on success
127 * Add pt dependent flow factor
129 * @param Pt @f$ p_T@f$
130 * @param type Type of flow
132 Double_t AddptFlow(Double_t pt) const;
134 * Add pid dependent flow factor
136 * @param ID Particle ID
137 * @param type Type of flow
139 Double_t AddpidFlow(Int_t id) const;
141 * Add eta dependent flow factor
143 * @param Eta @f$\eta@f$
144 * @param type Type of flow
146 Double_t AddetaFlow(Double_t eta) const;
148 * Get centrality form MC impact parameter
150 Double_t GetCentFromB() const;
152 TList fBinsFMDTR; // List with FMDTR VertexBin objects
153 TList fBinsSPDTR; // List with SPDTR VertexBin objects
154 TList fBinsMC; // List with MC VertexBin objects
155 TH2D fdNdedpMC; // d^2N/detadphi MC truth histogram
156 TGraph* fAliceCent4th; // Parametrization of ALICE QC4 vs. cent. data
157 TGraph* fAlicePt2nd4050; // Parametrization of ALICE QC2 vs. pT data
158 TGraph* fAlicePt4th3040; // Parametrization of ALICE QC4 vs. pT data
159 TGraph* fAlicePt4th4050; // Parametrization of ALICE QC4 vs. pT data
160 TGraph* fImpactParToCent; // Parametrization of b to centrality datapoints
161 Bool_t fUseImpactPar; // Flag to use impact parameter for cent
162 TString fAddFlow; // Add flow string
163 Int_t fAddType; // Add flow type #
164 Int_t fAddOrder; // Add flow order
166 ClassDef(AliForwardMCFlowTaskQC, 1); // FMD MC analysis task