]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis2/AliForwardMultiplicityTask.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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 "AliFMDESDFixer.h"
20 #include "AliFMDSharingFilter.h"
21 #include "AliFMDDensityCalculator.h"
22 #include "AliFMDCorrector.h"
23 #include "AliFMDHistCollector.h"
24 // #include "AliFMDEnergyFitter.h"
25 #include "AliFMDEventPlaneFinder.h"
26 #include <AliESDFMD.h>
27 class AliESDEvent;
28 class TH2D;
29 class TList;
30 class TH3D;     
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    * @{ 
64    * @name Interface methods 
65    */
66   /** 
67    * Called on first event _before_ reading corrections.  Here, the
68    * user class can do additional checking to see if the some (more or
69    * less) corrections are needed.
70    * 
71    * @param esd Event 
72    */
73   virtual void PreCorrections(const AliESDEvent* esd);
74   /** 
75    * Called before processing a single event - should not do anything
76    * but clear data, etc.
77    * 
78    * @return true on success
79    */
80   virtual Bool_t PreEvent();
81   /** 
82    * Process each event 
83    *
84    * @param esd Event
85    * 
86    * @return true on success
87    */  
88   virtual Bool_t Event(AliESDEvent& esd);
89   /** 
90    * @} 
91    */
92   /** 
93    * @{ 
94    * @name Access to sub-algorithms 
95    */
96   /**
97    * Get reference to the EventInspector algorithm 
98    * 
99    * @return Reference to AliFMDEventInspector object 
100    */
101   AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
102   /**
103    * Get reference to the ESDFixer algorithm 
104    * 
105    * @return Reference to AliFMDESDFixer object 
106    */
107   AliFMDESDFixer& GetESDFixer() { return fESDFixer; }
108   /**
109    * Get reference to the SharingFilter algorithm 
110    * 
111    * @return Reference to AliFMDSharingFilter object 
112    */
113   AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
114   /**
115    * Get reference to the DensityCalculator algorithm 
116    * 
117    * @return Reference to AliFMDDensityCalculator object 
118    */
119   AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
120   /**
121    * Get reference to the Corrections algorithm 
122    * 
123    * @return Reference to AliFMDCorrector object 
124    */
125   AliFMDCorrector& GetCorrections() { return fCorrections; }
126   /**
127    * Get reference to the HistCollector algorithm 
128    * 
129    * @return Reference to AliFMDHistCollector object 
130    */
131   AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
132   /**
133    * Get reference to the EventInspector algorithm 
134    * 
135    * @return Reference to AliFMDEventInspector object 
136    */
137   const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
138   /**
139    * Get reference to the ESDFixer algorithm 
140    * 
141    * @return Reference to AliFMDESDFixer object 
142    */
143   const AliFMDESDFixer& GetESDFixer() const { return fESDFixer; }
144   /**
145    * Get reference to the SharingFilter algorithm 
146    * 
147    * @return Reference to AliFMDSharingFilter object 
148    */
149   const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
150   /**
151    * Get reference to the DensityCalculator algorithm 
152    * 
153    * @return Reference to AliFMDDensityCalculator object 
154    */
155   const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
156   /**
157    * Get reference to the Corrections algorithm 
158    * 
159    * @return Reference to AliFMDCorrector object 
160    */
161   const AliFMDCorrector& GetCorrections() const { return fCorrections; }
162   /**
163    * Get reference to the HistCollector algorithm 
164    * 
165    * @return Reference to AliFMDHistCollector object 
166    */
167   const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
168  /**
169    * Get reference to the EventPlaneFinder algorithm 
170    * 
171    * @return Reference to AliFMDEventPlaneFinder object 
172    */
173   AliFMDEventPlaneFinder& GetEventPlaneFinder() { return fEventPlaneFinder; }
174   /**
175    * Get reference to the EventPlaneFinder algorithm 
176    * 
177    * @return Reference to AliFMDEventPlaneFinder object 
178    */
179   const AliFMDEventPlaneFinder& GetEventPlaneFinder() const { return fEventPlaneFinder; }
180   /** 
181    * @} 
182    */
183   /** 
184    * Set whether to make a timing histogram 
185    * 
186    * @param enable 
187    */
188   virtual void SetDoTiming(Bool_t enable=true);
189 protected: 
190   /** 
191    * Copy constructor 
192    * 
193    * @param o Object to copy from 
194    */
195   AliForwardMultiplicityTask(const AliForwardMultiplicityTask& o);
196   /** 
197    * Assignment operator 
198    * 
199    * @param o Object to assign from 
200    * 
201    * @return Reference to this object 
202    */
203   AliForwardMultiplicityTask& operator=(const AliForwardMultiplicityTask& o);
204
205   AliESDFMD               fESDFMD;            // Sharing corrected ESD object
206   AliFMDEventInspector    fEventInspector;    // Algorithm
207   AliFMDESDFixer          fESDFixer;          // Algorithm
208   AliFMDSharingFilter     fSharingFilter;     // Algorithm
209   AliFMDDensityCalculator fDensityCalculator; // Algorithm
210   AliFMDCorrector         fCorrections;       // Algorithm
211   AliFMDHistCollector     fHistCollector;     // Algorithm
212   AliFMDEventPlaneFinder  fEventPlaneFinder;  // Algorithm
213
214   ClassDef(AliForwardMultiplicityTask,6) // Forward multiplicity class
215 };
216
217 #endif
218 // Local Variables:
219 //  mode: C++
220 // End:
221