]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis2/AliFMDCorrDoubleHit.h
Multiple fixes:
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliFMDCorrDoubleHit.h
1 //
2 // This class contains the secondary correction and the double hit
3 // correction used in low-flux events.
4 //
5 #ifndef ALIFMDCORRDOUBLEHIT_H
6 #define ALIFMDCORRDOUBLEHIT_H
7 /**
8  * @file   AliFMDCorrDoubleHit.h
9  * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
10  * @date   Wed Mar 23 14:00:50 2011
11  * 
12  * @brief  
13  * 
14  * @ingroup pwglf_forward_corr
15  * 
16  */
17 #include <TObject.h>
18 #include <TObjArray.h>
19 class TH1D;
20
21 /**
22  * This class contains double hit correction used in low-flux events.
23  *
24  *
25  * The double hit correction is given by 
26  * @f[
27  *   h_{r}(\eta) = \frac{\sum_i N_{i,strips hit}(\eta)}{
28  *                       \sum_i N_{i,total hits}(\eta)}
29  * @f]
30  *
31  * where @f$ N_{i,strips hit}(\eta)@f$ is the number of strips in the
32  * @f$\eta@f$ bin that had one or more hits in event @f$i@f$, and
33  * @f$N_{i,total hits}(\eta)@f$ is the total number hits in the
34  * @f$\eta@f$ bin. 
35  *
36  * These are generated from Monte-Carlo truth information. 
37  *
38  * @ingroup pwglf_forward_corr
39  * 
40  */
41 class AliFMDCorrDoubleHit : public TObject 
42 {
43 public:
44   /** 
45    * Default constructor 
46    */
47   AliFMDCorrDoubleHit();
48   /** 
49    * Copy constructor 
50    * 
51    * @param o Object to copy from 
52    */
53   AliFMDCorrDoubleHit(const AliFMDCorrDoubleHit& o);
54   /**
55    * Destructor 
56    * 
57    */
58   virtual ~AliFMDCorrDoubleHit();
59   /** 
60    * Assignment operator 
61    * 
62    * @param o Object to assign from 
63    * 
64    * @return Reference to this object 
65    */
66   AliFMDCorrDoubleHit& operator=(const AliFMDCorrDoubleHit& o);
67   /** 
68    * @{ 
69    * @name Get corrections and parameters 
70    */
71   /** 
72    * Get the double hit correction @f$ h_{r}(\eta)@f$ 
73    * 
74    * @param d Detector number 
75    * @param r Ring identifier 
76    * 
77    * @return @f$ h_{r}(\eta)@f$ 
78    */
79   TH1D* GetCorrection(UShort_t d, Char_t r) const;
80   /* @} */
81
82   /** 
83    * @{ 
84    * @name Set corrections and parameters 
85    */
86   /** 
87    * Set the double hit correction @f$ h_{r}(\eta)@f$. Note, that the
88    * object takes ownership of the passed pointer.
89    * 
90    * @param d  Detector number (1-3)
91    * @param r  Ring identifier (I or O)
92    * @param h  @f$ h_{r}(\eta)@f$ 
93    * 
94    * @return true if operation succeeded 
95    */
96   Bool_t SetCorrection(UShort_t d, Char_t r, TH1D* h);
97   /* @} */
98
99   /** 
100    * @{ 
101    * @name Auxiliary member functions 
102    */
103   /** 
104    * Declare this as a folder
105    * 
106    * @return Always true 
107    */
108   Bool_t IsFolder() const { return true; }
109   /** 
110    * Browse this object in the browser
111    * 
112    * @param b 
113    */
114   void Browse(TBrowser* b);
115   /** 
116    * Print this object 
117    * 
118    * @param option 
119    */  
120   void Print(Option_t* option="R") const; //*MENU*
121   /* @} */
122 protected:
123   /** 
124    * Get the index corresponding to the given ring 
125    * 
126    * @param d Detector
127    * @param r Ring 
128    * 
129    * @return Index (0 based) or negative in case of errors
130    */
131   Int_t GetRingIndex(UShort_t d, Char_t r) const;
132
133   TObjArray fCorrections; // Array of per-ring double hit corr. 
134   ClassDef(AliFMDCorrDoubleHit,1); // 
135 };
136 #endif
137 // Local Variables:
138 //  mode: C++
139 // End: