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