]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliForwardMCFlowTaskQC.h
Merge branch 'feature-movesplit'
[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 /**
610fbb44 62 * Add flow to MC particles
2b556440 63 */
610fbb44 64 void SetUseFlowWeights(Bool_t use = kTRUE) { fUseFlowWeights = use; }
65
2b556440 66protected:
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: