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
12 * @ingroup pwglf_forward_flow
14 #include "AliForwardFlowTaskQC.h"
15 #include "AliForwardFlowWeights.h"
20 * Calculate the flow in the forward regions using the Q cumulants method
28 * @ingroup pwglf_forward_tasks_flow
29 * @ingroup pwglf_forward_flow
32 class AliForwardMCFlowTaskQC : public AliForwardFlowTaskQC
38 AliForwardMCFlowTaskQC();
42 * @param name Name of task
44 AliForwardMCFlowTaskQC(const char* name);
48 virtual ~AliForwardMCFlowTaskQC() {}
50 * Set use parametrization from impact parameter for centrality
52 * @param use Use impact par
54 void SetUseImpactParameter(Bool_t use = kTRUE) { fUseImpactPar = use; }
56 * Set to get vertex from MC header
58 * @param use Get from MC header
60 void SetUseMCHeaderVertex(Bool_t use = kTRUE) { fUseMCVertex = use; }
62 * Set string to add flow to MC particles particles
66 void AddFlow(TString type = "") { fAddFlow = type; }
68 * Set which function fAddFlow should use
70 * @param number Type of AddFlow
72 void AddFlowType(Int_t number = 0) { fAddType = number; }
74 * Set which order of flow to add
76 * @param order Flow order
78 void AddFlowOrder(Int_t order = 2) { fAddOrder = order; }
84 * @param o Object to copy from
86 AliForwardMCFlowTaskQC(const AliForwardMCFlowTaskQC& o);
90 * @param o Object to assing from
92 * @return Reference to this object
94 AliForwardMCFlowTaskQC& operator=(const AliForwardMCFlowTaskQC& o);
96 * Initiate vertex bin objects
98 void InitVertexBins();
100 * Initiate diagnostics histograms
106 * @return true on success
114 * Check AODevent object for trigger, vertex and centrality
115 * uses aod header if object is null
116 * returns true if event is OK
118 * @param aodfm AliAODForwardMult object
122 virtual Bool_t CheckEvent(const AliAODForwardMult* aodfm);
124 * Check trigger from AODForwardMult object
125 * returns true if B trigger is present
127 * @param aodfm AliAODForwardMultObject
131 virtual Bool_t CheckTrigger(const AliAODForwardMult* aodfm) const;
133 * Check for centrality in AliAODForwardMult object,
134 * if present return true - also sets fCent value
135 * can be used to get centrality from impact parameter
137 * @param aodfm AliAODForwardMultObject
141 virtual Bool_t GetCentrality(const AliAODForwardMult* aodfm);
143 * Check for vertex in MCHeader
144 * returns true if in range of fVtxAXis, also sets fVtx value
146 * @param aodfm Not used
150 virtual Bool_t GetVertex(const AliAODForwardMult* aodfm);
152 * Loop over AliAODMCParticle branch object and fill d^2N/detadphi histograms
153 * add flow if arguments are set
155 * @return true on success
159 * Get centrality form MC impact parameter
163 Double_t GetCentFromB() const;
165 TList fBinsForwardTR; // List with FMDTR VertexBin objects
166 TList fBinsCentralTR; // List with SPDTR VertexBin objects
167 TList fBinsMC; // List with MC VertexBin objects
168 AliAODMCHeader* fAODMCHeader; // MC header object
169 TH2D fHistdNdedpMC; // d^2N/detadphi MC particles histogram
170 TH2D* fHistFMDMCCorr; // Diagnostics for mult. corr. between FMD and MC
171 TH2D* fHistSPDMCCorr; // Diagnostics for mult. corr. between SPD and MC
172 AliForwardFlowWeights fWeights; // Flow after burner
173 TGraph* fImpactParToCent; // Parametrization of b to centrality
174 Bool_t fUseImpactPar; // Flag to use impact parameter for cent
175 Bool_t fUseMCVertex; // Get vertex from MC header
176 TString fAddFlow; // Add flow string
177 Int_t fAddType; // Add flow type #
178 Int_t fAddOrder; // Add flow order
180 ClassDef(AliForwardMCFlowTaskQC, 5); // FMD MC analysis task