]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis2/AliFMDCorrections.h
Doc fixes
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliFMDCorrections.h
1 #ifndef ALIROOT_PWG2_FORWARD_ANALYSIS2_ALIFMDCORRECTIONS_H
2 #define ALIROOT_PWG2_FORWARD_ANALYSIS2_ALIFMDCORRECTIONS_H
3 #include <TNamed.h>
4 #include <TList.h>
5 #include "AliForwardUtil.h"
6 class TH2D;
7
8 /** 
9  * @defgroup pwg2_forward_algo Algorithms 
10  *
11  * @ingroup pwg2_forward 
12  */
13 /** 
14  * This class calculates the exclusive charged particle density
15  * in each for the 5 FMD rings. 
16  *
17  * @par Input:
18  *   - 5 RingHistos objects - each with a number of vertex dependent 
19  *     2D histograms of the inclusive charge particle density 
20  *
21  * @par Output:
22  *   - 5 RingHistos objects - each with a number of vertex dependent 
23  *     2D histograms of the exclusive charge particle density 
24  * 
25  * @par Corrections used: 
26  *   - AliFMDCorrSecondaryMap;
27  *   - AliFMDCorrVertexBias
28  *   - AliFMDCorrMergingEfficiency
29  *
30  * @ingroup pwg2_forward_algo 
31  */
32 class AliFMDCorrections : public TNamed
33 {
34 public:
35   /** 
36    * Constructor 
37    */
38   AliFMDCorrections();
39   /** 
40    * Constructor 
41    * 
42    * @param name Name of object
43    */
44   AliFMDCorrections(const char* name);
45   /** 
46    * Copy constructor 
47    * 
48    * @param o Object to copy from 
49    */
50   AliFMDCorrections(const AliFMDCorrections& o);
51   /** 
52    * Destructor 
53    */
54   virtual ~AliFMDCorrections();
55   /** 
56    * Assignement operator
57    * 
58    * @param o Object to assign from 
59    * 
60    * @return Reference to this object
61    */
62   AliFMDCorrections& operator=(const AliFMDCorrections&);
63   /** 
64    * Do the calculations 
65    * 
66    * @param hists    Cache of histograms 
67    * @param vtxBin   Vertex bin 
68    * 
69    * @return true on successs 
70    */
71   virtual Bool_t Correct(AliForwardUtil::Histos& hists, UShort_t vtxBin);
72   /** 
73    * Scale the histograms to the total number of events 
74    * 
75    * @param dir     Where the output is stored
76    * @param nEvents Number of events 
77    */
78   virtual void ScaleHistograms(TList* dir, Int_t nEvents);
79   /** 
80    * Output diagnostic histograms to directory 
81    * 
82    * @param dir List to write in
83    */  
84   virtual void DefineOutput(TList* dir);
85   /** 
86    * Set the debug level.  The higher the value the more output 
87    * 
88    * @param dbg Debug level 
89    */
90   void SetDebug(Int_t dbg=1) { fDebug = dbg; }
91   /** 
92    * Print information
93    * 
94    * @param option Not used 
95    */
96   void Print(Option_t* option="") const;
97 protected:
98   /** 
99    * Internal data structure to keep track of the histograms
100    */
101   struct RingHistos : public AliForwardUtil::RingHistos 
102   { 
103     /** 
104      * Default CTOR
105      */
106     RingHistos();
107     /** 
108      * Constructor
109      * 
110      * @param d detector
111      * @param r ring 
112      */
113     RingHistos(UShort_t d, Char_t r);
114     /** 
115      * Copy constructor 
116      * 
117      * @param o Object to copy from 
118      */
119     RingHistos(const RingHistos& o);
120     /** 
121      * Assignment operator 
122      * 
123      * @param o Object to assign from 
124      * 
125      * @return Reference to this 
126      */
127     RingHistos& operator=(const RingHistos& o);
128     /** 
129      * Destructor 
130      */
131     ~RingHistos();
132     /** 
133      * Make output 
134      * 
135      * @param dir Where to put it 
136      */
137     void Output(TList* dir);
138     /** 
139      * Scale the histograms to the total number of events 
140      * 
141      * @param dir     where the output is stored
142      * @param nEvents Number of events 
143      */
144     void ScaleHistograms(TList* dir, Int_t nEvents);
145     TH2D*     fDensity;      // Distribution primary Nch
146     ClassDef(RingHistos,1);
147   };
148   /** 
149    * Get the ring histogram container 
150    * 
151    * @param d Detector
152    * @param r Ring 
153    * 
154    * @return Ring histogram container 
155    */
156   RingHistos* GetRingHistos(UShort_t d, Char_t r) const;
157
158   TList    fRingHistos;    // List of histogram containers
159   Int_t    fDebug;         //  Debug level 
160
161   ClassDef(AliFMDCorrections,1); // Calculate Nch density 
162 };
163
164 #endif
165 // Local Variables:
166 //   mode: C++
167 // End:
168