2 // Class used to handle the input from AODs and put it into histograms
3 // the Forward Flow tasks can run on
5 #ifndef ALIFORWARDFLOWUTIL_H
6 #define ALIFORWARDFLOWUTIL_H
8 * @file AliForwardFlowUtil.h
9 * @author Alexander Hansen alexander.hansen@cern.ch
10 * @date Fri Mar 25 13:15:40 2011
15 * @ingroup pwglf_forward_flow
18 class AliAODForwardMult;
25 * Class used to handle the input from AODs and put it into histograms
26 * the Forward Flow tasks can run on.
28 * @ingroup pwglf_forward_tasks_flow
29 * @ingroup pwglf_forward_flow
31 class AliForwardFlowUtil : public TNamed
41 * @param l list of histograms for flow analysis
43 AliForwardFlowUtil(TList* l);
45 * Check that AOD event meet trigger requirements
47 * @param aodfm Forward multplicity AOD event structure
49 * @return true on success
51 Bool_t AODCheck(const AliAODForwardMult* aodfm);
53 * Loop over AliAODForwardMult object and fill flow histograms
55 * @param AODevent AOD event structure
57 * @return true on success
59 Bool_t LoopAODFMD(const AliAODEvent* AODevent);
61 * Loop over AliAODCentralMult object and fill flow histograms
63 * @param AODevent AOD event structure
65 * @return true on success
67 Bool_t LoopAODSPD(const AliAODEvent* AODevent) const;
69 * Loop over AliAODForwardMult object and fill flow histograms from
72 * @param AODevent AOD event structure
74 * @return true on success
76 Bool_t LoopAODFMDtrrefHits(const AliAODEvent* AODevent) const;
78 * Loop over AliAODCentralMult object and fill flow histograms from
81 * @param AODevent AOD event structure
83 * @return true on success
85 Bool_t LoopAODSPDtrrefHits(const AliAODEvent* AODevent) const;
87 * Loop over AliAODMCParticle branch object and fill flow histograms
88 * add flow if arguments are set
90 * @param AODevent AOD event structure
91 * @param addFlow What to add flow to
92 * @param type Type of flow
93 * @param order Order of added flow
95 * @return true on success
97 Bool_t LoopAODmc(const AliAODEvent* AODevent, TString addFlow,
98 Int_t type, Int_t order) const;
100 * Get centrality from newest processed event
102 Double_t GetCentrality() const { return fCent; }
104 * Get z vertex coordinate from newest processed event
106 Float_t GetVertex() const { return fVertex; }
108 * Parametrize ALICE data points
115 * @param o Object to copy from
117 AliForwardFlowUtil(const AliForwardFlowUtil& o) : TNamed(),
121 fAliceCent4th(o.fAliceCent4th),
122 fAlicePt2nd4050(o.fAlicePt2nd4050),
123 fAlicePt4th3040(o.fAlicePt4th3040),
124 fAlicePt4th4050(o.fAlicePt4th4050),
125 fImpactParToCent(o.fImpactParToCent)
128 * Assignment operator
130 * @return Reference to this object
132 AliForwardFlowUtil& operator=(const AliForwardFlowUtil&) { return *this; }
134 * Add pt dependent flow factor
136 * @param Pt @f$ p_T@f$
137 * @param type Type of flow
139 Double_t AddptFlow(Double_t Pt, Int_t type) const;
141 * Add pid dependent flow factor
143 * @param ID Particle ID
144 * @param type Type of flow
146 Double_t AddpidFlow(Int_t ID, Int_t type) const;
148 * Add eta dependent flow factor
150 * @param Eta @f$\eta@f$
151 * @param type Type of flow
153 Double_t AddetaFlow(Double_t Eta, Int_t type) const;
155 * Get centrality form MC impact parameter
157 * @param AODevent AOD event structure
159 Double_t GetCentFromMC(const AliAODEvent* AODevent) const;
161 TList* fList; // List of flow histograms
162 Double_t fCent; // centrality
163 Float_t fVertex; // z vertex coordinate
164 TGraph* fAliceCent4th;
165 TGraph* fAlicePt2nd4050;
166 TGraph* fAlicePt4th3040;
167 TGraph* fAlicePt4th4050;
168 TGraph* fImpactParToCent;
170 ClassDef(AliForwardFlowUtil, 1);