2 /* Copyright (C) 2007 Christian Holm Christensen <cholm@nbi.dk>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public License
6 * as published by the Free Software Foundation; either version 2.1 of
7 * the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 @brief Declaration and implementation of classes to deal with a
21 well-known event plane @f$ \Psi_R@f$. */
22 //____________________________________________________________________
25 // A specialised AliFMDFlowBin of flow in case the event plane is
28 // A specialised AliFMDFlowBinned1D histogram in case the event
29 // plane is well-known.
31 #ifndef ALIFMDFLOWTRUE_H
32 #define ALIFMDFLOWTRUE_H
33 #include <flow/AliFMDFlowStat.h>
34 #include <flow/AliFMDFlowBin.h>
35 #include <flow/AliFMDFlowBinned1D.h>
38 /** @defgroup x_true Classes for handling Flow when the event plane is
42 /** @class TrueBin flow/True.h <flow/True.h>
43 @brief A specialised Bin of flow in case the event plane is
46 class AliFMDFlowTrueBin : public AliFMDFlowBin
49 /** Default constructor - do not use */
50 AliFMDFlowTrueBin() : AliFMDFlowBin(), fPsiR(), fResReal() {}
52 AliFMDFlowTrueBin(UShort_t order) :
53 AliFMDFlowBin(order, 1),
57 /** Set the well-known event plane angle @f$ \Psi_R@f$ for this
59 @param psi @f$ \Psi_R@f$ */
60 void SetPsi(Double_t psi) { fPsiR = psi; }
61 /** Should be called at the end of an event */
63 /** Add a contribution @f$ \cos(n(\varphi-\Psi_R))@f$ where
64 @f$ \Psi_R@f$ is the previously set, well-known event plane
66 @param wp Weight of @a phi (only used in the calculation of
68 @param wh Weight if the @f$ \varphi@f$ observation
69 @param phi @f$ \varphi@f$ */
70 void AddToHarmonic(Double_t phi, Double_t wp, Double_t wh=1);
71 /** Get the value in this bin
72 @param t Which type of correction
73 @return the value of the harmonic */
74 virtual Double_t Value(CorType t=kNone) const;
75 /** Get the value in this bin
76 @param e2 On return, the square error.
77 @param t Which type of correction
78 @return the value of the harmonic */
79 Double_t Value(Double_t& e2, CorType t=kNone) const;
80 /** Get the value in this bin
81 @param e2 On return, the square error.
82 @param t Which type of correction
83 @return the value of the harmonic */
84 Double_t Correction(Double_t& e2, CorType t=kNone) const;
85 /** Print to standard out. */
86 void Print(Option_t* option="s") const;
87 /** get the event plane */
88 Double_t Psi() const { return fPsiR; }
90 /** The well-known event plane */
91 Double_t fPsiR; // The well-known event plane
92 /** True resolution */
93 AliFMDFlowStat fResReal; // True resolution
94 /** define for ROOT I/O */
95 ClassDef(AliFMDFlowTrueBin,1);
98 /** @brief A "histogram" of objects of class TrueBin in case the
99 event plane angle @f$ \Psi_R@f$ is well known.
101 struct AliFMDFlowTrue1D : public AliFMDFlowBinned1D
104 /** Default constructor - do not use */
105 AliFMDFlowTrue1D() {}
107 AliFMDFlowTrue1D(const char* name, const char* title,
108 UShort_t order, const AliFMDFlowAxis& xaxis);
109 /** Set the well-known event plane angle @f$ \Psi_R@f$ for this
111 @param psi @f$ \Psi_R@f$ */
112 void SetPsi(Double_t psi);
113 /** Print to standard out */
114 virtual void Print(Option_t* option="") const;
115 /** define for ROOT I/O */
116 ClassDef(AliFMDFlowTrue1D,1);