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
13 * @ingroup pwglf_forward_flow
15 #include "AliForwardFlowTaskQC.h"
16 #include "AliForwardFlowWeights.h"
21 * Calculate the flow in the forward regions using the Q cumulants method
27 * - AnalysisResults.root
29 * @ingroup pwglf_forward_tasks_flow
30 * @ingroup pwglf_forward_flow
33 class AliForwardMCFlowTaskQC : public AliForwardFlowTaskQC
39 AliForwardMCFlowTaskQC();
43 * @param name Name of task
45 AliForwardMCFlowTaskQC(const char* name);
49 virtual ~AliForwardMCFlowTaskQC() {}
51 * Check trigger from AODForwardMult object
52 * returns true if B trigger is present
54 * @param aodfm AliAODForwardMultObject
58 virtual Bool_t CheckTrigger(const AliAODForwardMult* aodfm) const;
60 * Check for centrality in AliAODForwardMult object,
61 * if present return true - also sets fCent value
62 * can be used to get centrality from impact parameter
64 * @param aodfm AliAODForwardMultObject
68 virtual Bool_t GetCentrality(const AliAODForwardMult* aodfm);
70 * Set use parametrization from impact parameter for centrality
72 * @param use Use impact par
74 void SetUseImpactParameter(Bool_t use) { fUseImpactPar = use; }
76 * Set string to add flow to MC truth particles
80 void AddFlow(TString type = "") { fAddFlow = type; }
82 * Set which function fAddFlow should use
84 * @param number Type of AddFlow
86 void AddFlowType(Int_t number = 0) { fAddType = number; }
88 * Set which order of flow to add
90 * @param order Flow order
92 void AddFlowOrder(Int_t order = 2) { fAddOrder = order; }
98 * @param o Object to copy from
100 AliForwardMCFlowTaskQC(const AliForwardMCFlowTaskQC& o);
102 * Assignment operator
104 * @param o Object to assing from
106 * @return Reference to this object
108 AliForwardMCFlowTaskQC& operator=(const AliForwardMCFlowTaskQC& o);
110 * Initiate vertex bin objects
112 void InitVertexBins();
114 * Initiate diagnostics histograms
120 * @return true on success
128 * Loop over AliAODMCParticle branch object and fill d^2N/detadphi histograms
129 * add flow if arguments are set
131 * @return true on success
135 * Get centrality form MC impact parameter
139 Double_t GetCentFromB() const;
141 * Print the setup of the task
145 virtual void PrintFlowSetup() const;
147 TList fBinsFMDTR; // List with FMDTR VertexBin objects
148 TList fBinsSPDTR; // List with SPDTR VertexBin objects
149 TList fBinsMC; // List with MC VertexBin objects
150 TH2D fdNdedpMC; // d^2N/detadphi MC truth histogram
151 AliForwardFlowWeights fWeights; // Flow after burner
152 TGraph* fImpactParToCent; // Parametrization of b to centrality
153 Bool_t fUseImpactPar; // Flag to use impact parameter for cent
154 TString fAddFlow; // Add flow string
155 Int_t fAddType; // Add flow type #
156 Int_t fAddOrder; // Add flow order
158 ClassDef(AliForwardMCFlowTaskQC, 2); // FMD MC analysis task