]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliForwardMCFlowTaskQC.h
Improvements
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliForwardMCFlowTaskQC.h
CommitLineData
2b556440 1//
2// Calculate the flow in the forward regions using the Q cumulants method
3//
4#ifndef ALIFORWARDMCFLOWTASKQC_H
5#define ALIFORWARDMCFLOWTASKQC_H
6/**
7 * @file AliForwardMCFlowTaskQC.h
8 * @author Alexander Hansen alexander.hansen@cern.ch
2b556440 9 *
10 * @brief
11 *
2b556440 12 * @ingroup pwglf_forward_flow
13 */
14#include "AliForwardFlowTaskQC.h"
936b0a6c 15#include "AliForwardFlowWeights.h"
2b556440 16class TGraph;
67f453a9 17class AliAODMCHeader;
2b556440 18
2b556440 19/**
20 * Calculate the flow in the forward regions using the Q cumulants method
21 *
22 * @par Inputs:
23 * - AliAODEvent
24 *
25 * Outputs:
87f694ab 26 * - forward_flow.root
2b556440 27 *
d420e249 28 * @ingroup pwglf_forward_tasks_flow
29 * @ingroup pwglf_forward_flow
2b556440 30 *
2b556440 31 */
32class AliForwardMCFlowTaskQC : public AliForwardFlowTaskQC
33{
34public:
35 /**
36 * Constructor
37 */
38 AliForwardMCFlowTaskQC();
290052e7 39 /**
2b556440 40 * Constructor
41 *
42 * @param name Name of task
43 */
44 AliForwardMCFlowTaskQC(const char* name);
45 /**
46 * Destructor
47 */
48 virtual ~AliForwardMCFlowTaskQC() {}
d420e249 49 /**
87f694ab 50 * Set use parametrization from impact parameter for centrality
4b5b52b7 51 *
87f694ab 52 * @param use Use impact par
2b556440 53 */
87f694ab 54 void SetUseImpactParameter(Bool_t use = kTRUE) { fUseImpactPar = use; }
290052e7 55 /**
87f694ab 56 * Set to get vertex from MC header
4b5b52b7 57 *
87f694ab 58 * @param use Get from MC header
4b5b52b7 59 */
87f694ab 60 void SetUseMCHeaderVertex(Bool_t use = kTRUE) { fUseMCVertex = use; }
290052e7 61 /**
87f694ab 62 * Set string to add flow to MC particles particles
2b556440 63 *
64 * @param type String
65 */
66 void AddFlow(TString type = "") { fAddFlow = type; }
290052e7 67 /**
2b556440 68 * Set which function fAddFlow should use
69 *
290052e7 70 * @param number Type of AddFlow
2b556440 71 */
72 void AddFlowType(Int_t number = 0) { fAddType = number; }
290052e7 73 /**
2b556440 74 * Set which order of flow to add
75 *
76 * @param order Flow order
77 */
78 void AddFlowOrder(Int_t order = 2) { fAddOrder = order; }
79
80protected:
290052e7 81 /**
2b556440 82 * Copy constructor
83 *
84 * @param o Object to copy from
85 */
86 AliForwardMCFlowTaskQC(const AliForwardMCFlowTaskQC& o);
87 /**
88 * Assignment operator
89 *
290052e7 90 * @param o Object to assing from
91 *
2b556440 92 * @return Reference to this object
93 */
94 AliForwardMCFlowTaskQC& operator=(const AliForwardMCFlowTaskQC& o);
290052e7 95 /**
2b556440 96 * Initiate vertex bin objects
97 */
98 void InitVertexBins();
290052e7 99 /**
2b556440 100 * Initiate diagnostics histograms
101 */
102 void InitHists();
290052e7 103 /**
2b556440 104 * Analyze event
290052e7 105 *
106 * @return true on success
2b556440 107 */
108 Bool_t Analyze();
290052e7 109 /**
2b556440 110 * Finalize analysis
111 */
112 void Finalize();
67f453a9 113 /**
114 * Check AODevent object for trigger, vertex and centrality
115 * uses aod header if object is null
116 * returns true if event is OK
117 *
118 * @param aodfm AliAODForwardMult object
119 *
120 * @return Bool_t
121 */
122 virtual Bool_t CheckEvent(const AliAODForwardMult* aodfm);
008eda2b 123 /**
87f694ab
AH
124 * Check trigger from AODForwardMult object
125 * returns true if B trigger is present
126 *
127 * @param aodfm AliAODForwardMultObject
128 *
129 * @return Bool_t
130 */
131 virtual Bool_t CheckTrigger(const AliAODForwardMult* aodfm) const;
132 /**
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
136 *
137 * @param aodfm AliAODForwardMultObject
138 *
139 * @return Bool_t
008eda2b 140 */
87f694ab
AH
141 virtual Bool_t GetCentrality(const AliAODForwardMult* aodfm);
142 /**
143 * Check for vertex in MCHeader
144 * returns true if in range of fVtxAXis, also sets fVtx value
145 *
146 * @param aodfm Not used
147 *
148 * @return Bool_t
149 */
150 virtual Bool_t GetVertex(const AliAODForwardMult* aodfm);
4b5b52b7 151 /**
152 * Loop over AliAODMCParticle branch object and fill d^2N/detadphi histograms
153 * add flow if arguments are set
154 *
155 * @return true on success
156 */
87f694ab 157 Bool_t FillMCHist();
2b556440 158 /**
159 * Get centrality form MC impact parameter
290052e7 160 *
161 * @return Centrality
2b556440 162 */
163 Double_t GetCentFromB() const;
164
87f694ab
AH
165 TList fBinsForwardTR; // List with FMDTR VertexBin objects
166 TList fBinsCentralTR; // List with SPDTR VertexBin objects
167 TList fBinsMC; // List with MC VertexBin objects
67f453a9 168 AliAODMCHeader* fAODMCHeader; // MC header object
87f694ab
AH
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
2b556440 179
67f453a9 180 ClassDef(AliForwardMCFlowTaskQC, 5); // FMD MC analysis task
2b556440 181};
182
183#endif
184// Local Variables:
185// mode: C++
186// End: