]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis2/AliForwardMultiplicityTask.h
Mega-commit by Alexander - added Event plane to analysis task, and other flow updates...
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliForwardMultiplicityTask.h
1 // 
2 // Calculate the multiplicity in the forward regions event-by-event 
3 // 
4 #ifndef ALIFORWARDMULTIPLICITYTASK_H
5 #define ALIFORWARDMULTIPLICITYTASK_H
6 /**
7  * @file   AliForwardMultiplicityTask.h
8  * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9  * @date   Wed Mar 23 14:06:42 2011
10  * 
11  * @brief  
12  * 
13  * 
14  * @ingroup pwglf_forward_aod
15  */
16 #include "AliForwardMultiplicityBase.h"
17 #include "AliForwardUtil.h"
18 #include "AliFMDEventInspector.h"
19 #include "AliFMDSharingFilter.h"
20 #include "AliFMDDensityCalculator.h"
21 #include "AliFMDCorrector.h"
22 #include "AliFMDHistCollector.h"
23 #include "AliAODForwardMult.h"
24 #include "AliAODForwardEP.h"
25 #include "AliFMDEnergyFitter.h"
26 #include "AliFMDEventPlaneFinder.h"
27 #include <AliESDFMD.h>
28 class AliESDEvent;
29 class TH2D;
30 class TList;
31
32 /** 
33  * Calculate the multiplicity in the forward regions event-by-event 
34  * 
35  * @par Inputs: 
36  *   - AliESDEvent 
37  *
38  * @par Outputs: 
39  *   - AliAODForwardMult 
40  * 
41  * @par Histograms 
42  *   
43  * @par Corrections used 
44  * 
45  * @ingroup pwglf_forward_tasks
46  * @ingroup pwglf_forward_aod
47  * 
48  */
49 class AliForwardMultiplicityTask : public AliForwardMultiplicityBase
50 {
51 public:
52   /** 
53    * Constructor 
54    * 
55    * @param name Name of task 
56    */
57   AliForwardMultiplicityTask(const char* name);
58   /** 
59    * Constructor
60    */
61   AliForwardMultiplicityTask();
62   /** 
63    * Copy constructor 
64    * 
65    * @param o Object to copy from 
66    */
67   AliForwardMultiplicityTask(const AliForwardMultiplicityTask& o);
68   /** 
69    * Assignment operator 
70    * 
71    * @param o Object to assign from 
72    * 
73    * @return Reference to this object 
74    */
75   AliForwardMultiplicityTask& operator=(const AliForwardMultiplicityTask& o);
76   /** 
77    * @{ 
78    * @name Interface methods 
79    */
80   /** 
81    * Create output objects 
82    * 
83    */
84   virtual void UserCreateOutputObjects();
85   /** 
86    * Process each event 
87    *
88    * @param option Not used
89    */  
90   virtual void UserExec(Option_t* option);
91   /** 
92    * End of job
93    * 
94    * @param option Not used 
95    */
96   virtual void Terminate(Option_t* option);
97   /** 
98    * @} 
99    */
100   /** 
101    * @{ 
102    * @name Access to sub-algorithms 
103    */
104   /**
105    * Get reference to the EventInspector algorithm 
106    * 
107    * @return Reference to AliFMDEventInspector object 
108    */
109   AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
110   /**
111    * Get reference to the SharingFilter algorithm 
112    * 
113    * @return Reference to AliFMDSharingFilter object 
114    */
115   AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
116   /**
117    * Get reference to the DensityCalculator algorithm 
118    * 
119    * @return Reference to AliFMDDensityCalculator object 
120    */
121   AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
122   /**
123    * Get reference to the Corrections algorithm 
124    * 
125    * @return Reference to AliFMDCorrector object 
126    */
127   AliFMDCorrector& GetCorrections() { return fCorrections; }
128   /**
129    * Get reference to the HistCollector algorithm 
130    * 
131    * @return Reference to AliFMDHistCollector object 
132    */
133   AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
134   /**
135    * Get reference to the EventInspector algorithm 
136    * 
137    * @return Reference to AliFMDEventInspector object 
138    */
139   const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
140   /**
141    * Get reference to the SharingFilter algorithm 
142    * 
143    * @return Reference to AliFMDSharingFilter object 
144    */
145   const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
146   /**
147    * Get reference to the DensityCalculator algorithm 
148    * 
149    * @return Reference to AliFMDDensityCalculator object 
150    */
151   const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
152   /**
153    * Get reference to the Corrections algorithm 
154    * 
155    * @return Reference to AliFMDCorrector object 
156    */
157   const AliFMDCorrector& GetCorrections() const { return fCorrections; }
158   /**
159    * Get reference to the HistCollector algorithm 
160    * 
161    * @return Reference to AliFMDHistCollector object 
162    */
163   const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
164  /**
165    * Get reference to the EventPlaneFinder algorithm 
166    * 
167    * @return Reference to AliFMDEventPlaneFinder object 
168    */
169   AliFMDEventPlaneFinder& GetEventPlaneFinder() { return fEventPlaneFinder; }
170   /**
171    * Get reference to the EventPlaneFinder algorithm 
172    * 
173    * @return Reference to AliFMDEventPlaneFinder object 
174    */
175   const AliFMDEventPlaneFinder& GetEventPlaneFinder() const { return fEventPlaneFinder; }
176   /** 
177    * @} 
178    */
179
180   /** 
181    * Set debug level 
182    * 
183    * @param dbg Debug level
184    */
185   void SetDebug(Int_t dbg);
186 protected: 
187   /** 
188    * Initialise the sub objects and stuff.  Called on first event 
189    * 
190    */
191   virtual void   InitializeSubs();
192
193   TH2D*                  fHData;        // Summed 1/Nd^2N_{ch}/dphideta
194   AliESDFMD              fESDFMD;       // Sharing corrected ESD object
195   AliForwardUtil::Histos fHistos;       // Cache histograms 
196   AliAODForwardMult      fAODFMD;       // Output object
197   AliAODForwardEP        fAODEP;        // Output object
198   AliForwardUtil::Histos fRingSums;     // Cache histograms 
199
200   AliFMDEventInspector    fEventInspector;    // Algorithm
201   AliFMDSharingFilter     fSharingFilter;     // Algorithm
202   AliFMDDensityCalculator fDensityCalculator; // Algorithm
203   AliFMDCorrector         fCorrections;       // Algorithm
204   AliFMDHistCollector     fHistCollector;     // Algorithm
205   AliFMDEventPlaneFinder  fEventPlaneFinder;  // Algorithm
206
207   TList* fList; // Output list 
208
209   ClassDef(AliForwardMultiplicityTask,1) // Forward multiplicity class
210 };
211
212 #endif
213 // Local Variables:
214 //  mode: C++
215 // End:
216