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 * Add flow to MC particles
64 void SetUseFlowWeights(Bool_t use = kTRUE) { fUseFlowWeights = use; }
70 * @param o Object to copy from
72 AliForwardMCFlowTaskQC(const AliForwardMCFlowTaskQC& o);
76 * @param o Object to assing from
78 * @return Reference to this object
80 AliForwardMCFlowTaskQC& operator=(const AliForwardMCFlowTaskQC& o);
82 * Initiate vertex bin objects
84 void InitVertexBins();
86 * Initiate diagnostics histograms
92 * @return true on success
100 * Check AODevent object for trigger, vertex and centrality
101 * uses aod header if object is null
102 * returns true if event is OK
104 * @param aodfm AliAODForwardMult object
108 virtual Bool_t CheckEvent(const AliAODForwardMult* aodfm);
110 * Check trigger from AODForwardMult object
111 * returns true if B trigger is present
113 * @param aodfm AliAODForwardMultObject
117 virtual Bool_t CheckTrigger(const AliAODForwardMult* aodfm) const;
119 * Check for centrality in AliAODForwardMult object,
120 * if present return true - also sets fCent value
121 * can be used to get centrality from impact parameter
123 * @param aodfm AliAODForwardMultObject
127 virtual Bool_t GetCentrality(const AliAODForwardMult* aodfm);
129 * Check for vertex in MCHeader
130 * returns true if in range of fVtxAXis, also sets fVtx value
132 * @param aodfm Not used
136 virtual Bool_t GetVertex(const AliAODForwardMult* aodfm);
138 * Loop over AliAODMCParticle branch object and fill d^2N/detadphi histograms
139 * add flow if arguments are set
141 * @return true on success
145 * Get centrality form MC impact parameter
149 Double_t GetCentFromB() const;
151 TList fBinsForwardTR; // List with FMDTR VertexBin objects
152 TList fBinsCentralTR; // List with SPDTR VertexBin objects
153 TList fBinsMC; // List with MC VertexBin objects
154 AliAODMCHeader* fAODMCHeader; // MC header object
155 TH2D fHistdNdedpMC; // d^2N/detadphi MC particles histogram
156 TH2D* fHistFMDMCCorr; // Diagnostics for mult. corr. between FMD and MC
157 TH2D* fHistSPDMCCorr; // Diagnostics for mult. corr. between SPD and MC
158 AliForwardFlowWeights* fWeights; // Flow after burner
159 TGraph* fImpactParToCent; // Parametrization of b to centrality
160 Bool_t fUseImpactPar; // Flag to use impact parameter for cent
161 Bool_t fUseMCVertex; // Get vertex from MC header
162 Bool_t fUseFlowWeights; // Add flow
164 ClassDef(AliForwardMCFlowTaskQC, 6); // FMD MC analysis task