]>
Commit | Line | Data |
---|---|---|
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 | 16 | class TGraph; |
67f453a9 | 17 | class 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 | */ |
32 | class AliForwardMCFlowTaskQC : public AliForwardFlowTaskQC | |
33 | { | |
34 | public: | |
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 | ||
80 | protected: | |
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: |