]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/flow/AliFMDFlowHarmonic.h
Added code to do flow analysis.
[u/mrichter/AliRoot.git] / FMD / flow / AliFMDFlowHarmonic.h
1 // -*- mode: C++ -*-
2 /** @file 
3     @brief Declaration of a Harmonic class */
4 #ifndef FLOW_HARMONIC_H
5 #define FLOW_HARMONIC_H
6 #include <flow/AliFMDFlowStat.h>
7
8 /** @defgroup a_basic Basic classes for doing Flow analysis. 
9     @brief This group of class handles the low-level stuff to do
10     flow analysis. */
11 //______________________________________________________
12 /** @class AliFMDFlowHarmonic flow/AliFMDFlowHarmonic.h <flow/AliFMDFlowHarmonic.h>
13     @brief Calculate the @f$ n^{th}@f$ order harmonic
14     @ingroup a_basic 
15
16     Calculate the @f$ n^{th}@f$ order harmonic, given by 
17     @f{eqnarray*}
18     v_n       &=& \frac{v_n^{obs}}{R}\\
19     v_n^{obs} &=& \frac1M\sum_i^M\cos(n (\varphi_i - \Psi))
20     @f}
21     where @f$ R@f$ is the resolution, @f$ i@f$ runs over all @f$
22     M@f$ observations of @f$ \varphi_i@f$ in all events, and
23     @f$\Psi@f$ is the estimated event plane. 
24
25     The error on the corrected value is given by 
26     @f{eqnarray*} 
27     \delta^2v_n & = & \left(\frac{dv_n}{dv_n^{obs}}\right)^2\delta^2
28     v_n^{obs} + \left(\frac{dv_n}{dR}\right)^2\delta^2R \\ 
29     & = & \frac{\delta^2v_n^{obs} R^2 + \delta^2R (v_n^{obs})^2}
30     {R^4}
31     @f}
32 */    
33 class AliFMDFlowHarmonic : public AliFMDFlowStat
34 {
35 public:
36   /** Constructor 
37       @param n Order of the harmonic */
38   AliFMDFlowHarmonic(UShort_t n) : fOrder(n) {} 
39   /** Destructor */ 
40   virtual ~AliFMDFlowHarmonic() {}
41   /** Add a data point 
42       @param phi The absolute angle @f$ \varphi \in[0,2\pi]@f$ 
43       @param psi The event plane angle @f$ \Psi \in[0,2\pi] @f$ */
44   void Add(Double_t phi, Double_t psi);
45   /** Get the harmonic. 
46       @param r   Event plane resolution 
47       @param er2 Square error on event plane resolution 
48       @param e2  On return the square error 
49       @return The harmonic value */
50   Double_t Value(Double_t r, Double_t er2, Double_t& e2) const;
51   /** Get the order of the harmonic */
52   UShort_t Order() const { return fOrder; }
53 protected:
54   /** the order */ 
55   UShort_t fOrder;
56   /** Define for ROOT I/O */ 
57   ClassDef(AliFMDFlowHarmonic,1);
58 };
59
60
61 #endif
62 //
63 // EOF
64 //
65