Fix some documentation issues
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliForwarddNdetaTask.h
1 //
2 // Task to analyse the AOD for for dN/deta in the forward regions 
3 //
4 #ifndef ALIFORWARDDNDETATASK_H
5 #define ALIFORWARDDNDETATASK_H
6 /**
7  * @file   AliForwarddNdetaTask.h
8  * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9  * @date   Wed Mar 23 14:04:54 2011
10  * 
11  * @brief  
12  * 
13  * 
14  * @ingroup pwglf_forward_dndeta
15  */
16 #include "AliBasedNdetaTask.h"
17 class TList;
18 class TH2D;
19 class TH1D;
20
21 /**
22  * Tasks to determine @f$ dN/d\eta@f$ in the forward regions
23  *
24  * @image html alice-int-2012-040-performance_spdfmdvzero.png "dN/deta in PbPb"
25  * 
26  * @ingroup pwglf_forward_tasks_dndeta
27  * @ingroup pwglf_forward_dndeta
28  */
29 class AliForwarddNdetaTask : public AliBasedNdetaTask
30 {
31 public:
32   /** 
33    * Constructor 
34    * 
35    */
36   AliForwarddNdetaTask();
37   /** 
38    * Constructor
39    * 
40    * @param name    Name of task 
41    */
42   AliForwarddNdetaTask(const char* name);
43   /**
44    * Destructor
45    * 
46    */
47   virtual ~AliForwarddNdetaTask() {}
48 protected:
49   /** 
50    * Copy constructor 
51    *
52    * @param o object to copy from 
53    */
54   AliForwarddNdetaTask(const AliForwarddNdetaTask& o);
55   /** 
56    * Assigmement operator
57    * 
58    * @return Reference to this
59    */
60   AliForwarddNdetaTask& operator=(const AliForwarddNdetaTask&);
61
62   /** 
63    * Retrieve the histogram 
64    * 
65    * @param aod AOD event 
66    * @param mc  Whether to get the MC histogram or not
67    * 
68    * @return Retrieved histogram or null
69    */
70   TH2D* GetHistogram(const AliAODEvent& aod, Bool_t mc);
71   /** 
72    * Get the colour to use for markers (only pp - in PbPb we use a rainbow)
73    * 
74    * @return Marker colour 
75    */
76   virtual Int_t GetColor() const { return kRed+2; }
77   /** 
78    * Massage data histograms for certain vertices in the satellite analysis 
79    * 
80    * @param vtx 
81    * @param data 
82    * @param mcData 
83    */
84   virtual void CheckEventData(Double_t vtx, 
85                               TH2*     data, 
86                               TH2*     mcData);
87   /** 
88    * Make a new centrality bin
89    * 
90    * @param name   Histogram names
91    * @param l      Lower cut
92    * @param h      Upper cut
93    * 
94    * @return Newly allocated object (of our type)
95    */
96   AliBasedNdetaTask::CentralityBin* 
97   MakeCentralityBin(const char* name, Short_t l, Short_t h) const;
98
99   /**
100    * A structure holding the per-centrality bin information 
101    * 
102    */
103   class CentralityBin : public AliBasedNdetaTask::CentralityBin 
104   {
105   public:
106     /** 
107      * Constructor 
108      */
109     CentralityBin() : AliBasedNdetaTask::CentralityBin() {}
110     /** 
111      * Constructor 
112      * 
113      * @param name Name used for histograms (e.g., Forward)
114      * @param low  Lower centrality cut in percent 
115      * @param high Upper centrality cut in percent 
116      */
117     CentralityBin(const char* name, Short_t low, Short_t high)
118       : AliBasedNdetaTask::CentralityBin(name, low, high)
119     {}
120     /** 
121      * Copy constructor 
122      * 
123      * @param other Object to copy from 
124      */
125     CentralityBin(const CentralityBin& other);
126     /** 
127      * Destructor 
128      */
129     virtual ~CentralityBin() {}
130     /** 
131      * Assignement operator 
132      * 
133      * 
134      * @return 
135      */
136     CentralityBin& operator=(const CentralityBin&);
137     /** 
138      * End of processing 
139      * 
140      * @param sums        List of sums
141      * @param results     Output list of results
142      * @param scheme      Normalisation scheme options
143      * @param shapeCorr   Shape correction or nil
144      * @param trigEff     Trigger efficiency 
145      * @param trigEff0    0-bin trigger efficiency 
146      * @param symmetrice  Whether to symmetrice the results
147      * @param rebin       Whether to rebin the results
148      * @param rootProj    If true, use TH2::ProjectionX
149      * @param corrEmpty   Whether to correct for empty bins
150      * @param cutEdges    Whether to cut edges when rebinning
151      * @param triggerMask Trigger mask 
152      * @param color       Marker colour 
153      * @param marker      Marker style 
154      * @param mclist      List of MC results 
155      * @param truthlist   List of MC truth results 
156      */
157     virtual void End(TList*      sums, 
158                      TList*      results,
159                      UShort_t    scheme,
160                      const TH2F* shapeCorr, 
161                      Double_t    trigEff,
162                      Double_t    trigEff0,
163                      Bool_t      symmetrice,
164                      Int_t       rebin, 
165                      Bool_t      rootProj,
166                      Bool_t      corrEmpty, 
167                      Bool_t      cutEdges, 
168                      Int_t       triggerMask,
169                      Int_t       marker,
170                      Int_t       color,
171                      TList*      mclist,
172                      TList*      truthlist);
173   protected: 
174     ClassDef(CentralityBin,3); // A centrality bin     
175   };
176
177   ClassDef(AliForwarddNdetaTask,3); // Determine multiplicity in forward region
178 };
179
180 #endif
181 //
182 // Local Variables:
183 //  mode: C++
184 // End:
185 //