]>
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 | /** |
610fbb44 | 62 | * Add flow to MC particles |
2b556440 | 63 | */ |
610fbb44 | 64 | void SetUseFlowWeights(Bool_t use = kTRUE) { fUseFlowWeights = use; } |
65 | ||
2b556440 | 66 | protected: |
290052e7 | 67 | /** |
2b556440 | 68 | * Copy constructor |
69 | * | |
70 | * @param o Object to copy from | |
71 | */ | |
72 | AliForwardMCFlowTaskQC(const AliForwardMCFlowTaskQC& o); | |
73 | /** | |
74 | * Assignment operator | |
75 | * | |
290052e7 | 76 | * @param o Object to assing from |
77 | * | |
2b556440 | 78 | * @return Reference to this object |
79 | */ | |
80 | AliForwardMCFlowTaskQC& operator=(const AliForwardMCFlowTaskQC& o); | |
290052e7 | 81 | /** |
2b556440 | 82 | * Initiate vertex bin objects |
83 | */ | |
84 | void InitVertexBins(); | |
290052e7 | 85 | /** |
2b556440 | 86 | * Initiate diagnostics histograms |
87 | */ | |
88 | void InitHists(); | |
290052e7 | 89 | /** |
2b556440 | 90 | * Analyze event |
290052e7 | 91 | * |
92 | * @return true on success | |
2b556440 | 93 | */ |
94 | Bool_t Analyze(); | |
290052e7 | 95 | /** |
2b556440 | 96 | * Finalize analysis |
97 | */ | |
98 | void Finalize(); | |
67f453a9 | 99 | /** |
100 | * Check AODevent object for trigger, vertex and centrality | |
101 | * uses aod header if object is null | |
102 | * returns true if event is OK | |
103 | * | |
104 | * @param aodfm AliAODForwardMult object | |
105 | * | |
106 | * @return Bool_t | |
107 | */ | |
108 | virtual Bool_t CheckEvent(const AliAODForwardMult* aodfm); | |
008eda2b | 109 | /** |
87f694ab AH |
110 | * Check trigger from AODForwardMult object |
111 | * returns true if B trigger is present | |
112 | * | |
113 | * @param aodfm AliAODForwardMultObject | |
114 | * | |
115 | * @return Bool_t | |
116 | */ | |
117 | virtual Bool_t CheckTrigger(const AliAODForwardMult* aodfm) const; | |
118 | /** | |
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 | |
122 | * | |
123 | * @param aodfm AliAODForwardMultObject | |
124 | * | |
125 | * @return Bool_t | |
008eda2b | 126 | */ |
87f694ab AH |
127 | virtual Bool_t GetCentrality(const AliAODForwardMult* aodfm); |
128 | /** | |
129 | * Check for vertex in MCHeader | |
130 | * returns true if in range of fVtxAXis, also sets fVtx value | |
131 | * | |
132 | * @param aodfm Not used | |
133 | * | |
134 | * @return Bool_t | |
135 | */ | |
136 | virtual Bool_t GetVertex(const AliAODForwardMult* aodfm); | |
4b5b52b7 | 137 | /** |
138 | * Loop over AliAODMCParticle branch object and fill d^2N/detadphi histograms | |
139 | * add flow if arguments are set | |
140 | * | |
141 | * @return true on success | |
142 | */ | |
87f694ab | 143 | Bool_t FillMCHist(); |
2b556440 | 144 | /** |
145 | * Get centrality form MC impact parameter | |
290052e7 | 146 | * |
147 | * @return Centrality | |
2b556440 | 148 | */ |
149 | Double_t GetCentFromB() const; | |
150 | ||
87f694ab AH |
151 | TList fBinsForwardTR; // List with FMDTR VertexBin objects |
152 | TList fBinsCentralTR; // List with SPDTR VertexBin objects | |
153 | TList fBinsMC; // List with MC VertexBin objects | |
67f453a9 | 154 | AliAODMCHeader* fAODMCHeader; // MC header object |
87f694ab AH |
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 | |
610fbb44 | 158 | AliForwardFlowWeights* fWeights; // Flow after burner |
87f694ab AH |
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 | |
610fbb44 | 162 | Bool_t fUseFlowWeights; // Add flow |
2b556440 | 163 | |
610fbb44 | 164 | ClassDef(AliForwardMCFlowTaskQC, 6); // FMD MC analysis task |
2b556440 | 165 | }; |
166 | ||
167 | #endif | |
168 | // Local Variables: | |
169 | // mode: C++ | |
170 | // End: |