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 pwg2_forward_flow
18 class AliAODForwardMult;
24 * Class used to handle the input from AODs and put it into histograms
25 * the Forward Flow tasks can run on.
27 * @ingroup pwg2_forward_tasks_flow
28 * @ingroup pwg2_forward_flow
30 class AliForwardFlowUtil : public TNamed
40 * @param l list of histograms for flow analysis
42 AliForwardFlowUtil(TList* l);
44 * Check that AOD event meet trigger requirements
46 * @param aodfm Forward multplicity AOD event structure
48 * @return true on success
50 Bool_t AODCheck(const AliAODForwardMult* aodfm) const;
52 * Loop over AliAODForwardMult object and fill flow histograms
54 * @param AODevent AOD event structure
56 * @return true on success
58 Bool_t LoopAODFMD(const AliAODEvent* AODevent);
60 * Loop over AliAODCentralMult object and fill flow histograms
62 * @param AODevent AOD event structure
64 * @return true on success
66 Bool_t LoopAODSPD(const AliAODEvent* AODevent) const;
68 * Loop over AliAODForwardMult object and fill flow histograms from
71 * @param AODevent AOD event structure
73 * @return true on success
75 Bool_t LoopAODFMDtrrefHits(const AliAODEvent* AODevent) const;
77 * Loop over AliAODCentralMult object and fill flow histograms from
80 * @param AODevent AOD event structure
82 * @return true on success
84 Bool_t LoopAODSPDtrrefHits(const AliAODEvent* AODevent) const;
86 * Loop over AliAODMCParticle branch object and fill flow histograms
87 * add flow if arguments are set
89 * @param AODevent AOD event structure
90 * @param addFlow What to add flow to
91 * @param type Type of flow
92 * @param order Order of added flow
94 * @return true on success
96 Bool_t LoopAODmc(const AliAODEvent* AODevent, TString addFlow,
97 Int_t type, Int_t order) const;
99 * Get centrality from newest processed event
101 Double_t GetCentrality() const { return fCent; }
103 * Get z vertex coordinate from newest processed event
105 Float_t GetVertex() const { return fVertex; }
111 * @param o Object to copy from
113 AliForwardFlowUtil(const AliForwardFlowUtil& o) : TNamed(),
116 fVertex(o.fVertex) {}
118 * Assignment operator
120 * @return Reference to this object
122 AliForwardFlowUtil& operator=(const AliForwardFlowUtil&) { return *this; }
124 * Add pt dependent flow factor
126 * @param Pt @f$ p_T@f$
127 * @param type Type of flow
129 Double_t AddptFlow(Double_t Pt, Int_t type) const;
131 * Add pid dependent flow factor
133 * @param ID Particle ID
134 * @param type Type of flow
136 Double_t AddpidFlow(Int_t ID, Int_t type) const;
138 * Add eta dependent flow factor
140 * @param Eta @f$\eta@f$
141 * @param type Type of flow
143 Double_t AddetaFlow(Double_t Eta, Int_t type) const;
145 * Get centrality form MC impact parameter
147 * @param AODevent AOD event structure
149 Double_t GetCentFromMC(const AliAODEvent* AODevent) const;
151 TList* fList; // List of flow histograms
152 Double_t fCent; // centrality
153 Float_t fVertex; // z vertex coordinate
155 ClassDef(AliForwardFlowUtil, 1);