Added drawing capabilities
[u/mrichter/AliRoot.git] / FMD / flow / AliFMDFlowTrue.h
1 // -*- mode: C++ -*-
2 /** @file 
3     @brief Declaration and implementation of classes to deal with a
4     well-known event plane @f$ \Psi_R@f$. */
5 #ifndef FLOW_TRUE_H
6 #define FLOW_TRUE_H
7 #include <flow/AliFMDFlowStat.h>
8 #include <flow/AliFMDFlowBin.h>
9 #include <flow/AliFMDFlowBinned1D.h>
10
11
12 /** @defgroup x_true Classes for handling Flow when the event plane is
13     known. */
14 /** @class TrueBin flow/True.h <flow/True.h>
15     @brief A specialised Bin of flow in case the event plane is 
16     well-known. 
17     @ingroup x_true */
18 struct AliFMDFlowTrueBin : public AliFMDFlowBin
19 {
20   /** Constructor */ 
21   AliFMDFlowTrueBin(UShort_t order) : 
22     AliFMDFlowBin(order, 1), 
23     fPsiR(0), 
24     fResReal()
25   {}
26   /** Set the well-known event plane angle @f$ \Psi_R@f$ for this
27       event. 
28       @param psi @f$ \Psi_R@f$ */ 
29   void SetPsi(Double_t psi) { fPsiR = psi; } 
30   /** Should be called at the end of an event */ 
31   virtual void End();
32   /** Add a contribution @f$ \cos(n(\varphi-\Psi_R))@f$ where   
33       @f$ \Psi_R@f$ is the previously set, well-known event plane
34       angle. 
35       @param phi @f$ \varphi@f$ */ 
36   void AddToHarmonic(Double_t phi, Double_t) { fHarmonic.Add(phi, fPsiR); }
37   /** Get the value in this bin 
38       @param t  Which type of correction
39       @return the value of the harmonic */
40   virtual Double_t Value(CorType t=naive) const;
41   /** Get the value in this bin 
42       @param e2 On return, the square error. 
43       @param t  Which type of correction
44       @return the value of the harmonic */
45   Double_t Value(Double_t& e2, CorType t=naive) const;
46   /** Get the value in this bin 
47       @param e2 On return, the square error. 
48       @param t  Which type  of correction
49       @return the value of the harmonic */
50   Double_t Correction(Double_t& e2, CorType t=naive) const;
51   /** Print to standard out. */ 
52   void Print(Option_t* option="s") const;
53   /** The well-known event plane */ 
54   Double_t fPsiR; 
55   /** True resolution */ 
56   AliFMDFlowStat fResReal;
57   /** define for ROOT I/O */
58   ClassDef(AliFMDFlowTrueBin,1);
59   
60 }; 
61 /** @brief A "histogram" of objects of class TrueBin in case the
62     event plane angle @f$ \Psi_R@f$ is well known. 
63     @ingroup x_true */
64 struct AliFMDFlowTrue1D : public AliFMDFlowBinned1D
65 {
66   /** Constructor */ 
67   AliFMDFlowTrue1D(UShort_t order, const AliFMDFlowAxis& xaxis);
68   /** Set the well-known event plane angle @f$ \Psi_R@f$ for this
69       event. 
70       @param psi @f$ \Psi_R@f$ */ 
71   void SetPsi(Double_t psi);
72   /** Print to standard out */ 
73   virtual void Print(Option_t* option="") const;
74   /** define for ROOT I/O */
75   ClassDef(AliFMDFlowTrue1D,1);
76 };
77
78
79 #endif
80 //
81 // EOF
82 //