d000465b157c38b5b9df13cabe6132ed151447ba
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliFMDMultCuts.h
1 #ifndef ALIFMDMULTCUTS_H
2 #define ALIFMDMULTCUTS_H
3 #include <TObject.h>
4
5 /**
6  * Cuts used when calculating the multiplicity 
7  * 
8  */
9 class AliFMDMultCuts : public TObject 
10 {
11 public:
12   /** 
13    * CTOR
14    */
15   AliFMDMultCuts();
16   /** 
17    * Copy CTOR
18    * 
19    * @param o Oject to copy from
20    */
21   AliFMDMultCuts(const AliFMDMultCuts& o);
22   /** 
23    * Assignment operator 
24    * 
25    * @param o Object to asing from 
26    * 
27    * @return Reference to this object 
28    */
29   AliFMDMultCuts& operator=(const AliFMDMultCuts& o);
30   /** 
31    * Get the multiplicity cuts for a specific ring and pseudo-rapidity 
32    * 
33    * @param d      Detector 
34    * @param r      Ring  
35    * @param eta    pseudo-rapidity 
36    * @param errors Get error on cut
37    * 
38    * @return Cut value 
39    */
40   Double_t GetMultCut(UShort_t d, Char_t r, Double_t eta, Bool_t errors) const;
41   /** 
42    * Get the multiplicity cuts for a specific ring and pseudo-rapidity 
43    * 
44    * @param d      Detector 
45    * @param r      Ring  
46    * @param etabin pseudo-rapidity bin
47    * @param errors Get error on cut
48    * 
49    * @return Cut value 
50    */
51   Double_t GetMultCut(UShort_t d, Char_t r, Int_t etabin, Bool_t errors) const;
52   /** 
53    * Clear the cuts 
54    * 
55    */
56   void UnsetMultCuts() { SetMultCuts(-1); }
57   /** 
58    * Set the cuts
59    * 
60    * @param fmd1i  Value for FMD1i 
61    * @param fmd2i  Value for FMD2i 
62    * @param fmd2o  Value for FMD2o 
63    * @param fmd3i  Value for FMD3i 
64    * @param fmd3o  Value for FMD3o 
65    */
66   void SetMultCuts(Double_t fmd1i, 
67                    Double_t fmd2i=-1, 
68                    Double_t fmd2o=-1, 
69                    Double_t fmd3i=-1, 
70                    Double_t fmd3o=-1);
71   /** 
72    * Set the faction of most probable value 
73    * 
74    * @param frac Fraction
75    */
76   void SetMPVFraction(Double_t frac=0) { fMPVFraction = frac; }
77   /** 
78    * Set the number times the Landau width
79    * 
80    * @param nXi Number of widths 
81    */
82   void SetNXi(Double_t nXi) { fNXi = nXi; }
83   /** 
84    * Set wether to includle the Gaussian sigma in cut calculation
85    * 
86    * @param in If true, use Gaussian variance 
87    */
88   void SetIncludeSigma(Bool_t in) { fIncludeSigma = in; }
89   /** 
90    * Print information
91    * 
92    * @param option Not used
93    */
94   void Print(Option_t* option="") const;
95   /** 
96    * Define outputs 
97    * 
98    * @param l      List to add to 
99    * @param name   Name 
100    */
101   void Output(TList* l, const char* name=0) const;
102   /** 
103    * Read in cuts stored in file 
104    * 
105    * @param l      List to read from 
106    * @param name   Name of possible sub-list
107    * 
108    * @return true on success
109    */
110   Bool_t Input(TList* l, const char* name);
111   /** 
112    * Get a fixed cut value 
113    * 
114    * @param d Detector
115    * @param r Ring 
116    * 
117    * @return Fixed cut value 
118    */
119   Double_t GetFixedCut(UShort_t d, Char_t r) const;
120 protected:
121   Double_t fMultCuts[5];   // Fixed cuts
122   Double_t fMPVFraction;   // Most probably value fraction
123   Double_t fNXi;           // Times of Landau width
124   Bool_t   fIncludeSigma;  // Include Gaussian variance 
125    
126   ClassDef(AliFMDMultCuts,1); // Cuts on ESD Mult 
127 };
128
129 #endif
130 // Local Variables: 
131 //  mode: C++
132 // End: