]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis2/AliForwardMultiplicityTask.h
8e6ade5e4183389076638ec93cedf0d418a6e2e3
[u/mrichter/AliRoot.git] / PWG2 / 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 #include "AliForwardMultiplicityBase.h"
7 #include "AliForwardUtil.h"
8 #include "AliFMDEventInspector.h"
9 #include "AliFMDEnergyFitter.h"
10 #include "AliFMDSharingFilter.h"
11 #include "AliFMDDensityCalculator.h"
12 #include "AliFMDCorrections.h"
13 #include "AliFMDHistCollector.h"
14 #include "AliAODForwardMult.h"
15 #include "AliFMDEnergyFitter.h"
16 #include <AliESDFMD.h>
17 class AliESDEvent;
18 class TH2D;
19 class TList;
20
21 /** 
22  * Calculate the multiplicity in the forward regions event-by-event 
23  * 
24  * @par Inputs: 
25  *   - AliESDEvent 
26  *
27  * @par Outputs: 
28  *   - AliAODForwardMult 
29  * 
30  * @par Histograms 
31  *   
32  * @par Corrections used 
33  * 
34  * @ingroup pwg2_forward_tasks
35  * 
36  */
37 class AliForwardMultiplicityTask : public AliForwardMultiplicityBase
38 {
39 public:
40   /** 
41    * Constructor 
42    * 
43    * @param name Name of task 
44    */
45   AliForwardMultiplicityTask(const char* name);
46   /** 
47    * Constructor
48    */
49   AliForwardMultiplicityTask();
50   /** 
51    * Copy constructor 
52    * 
53    * @param o Object to copy from 
54    */
55   AliForwardMultiplicityTask(const AliForwardMultiplicityTask& o);
56   /** 
57    * Assignment operator 
58    * 
59    * @param o Object to assign from 
60    * 
61    * @return Reference to this object 
62    */
63   AliForwardMultiplicityTask& operator=(const AliForwardMultiplicityTask& o);
64   /** 
65    * @{ 
66    * @name Interface methods 
67    */
68   /** 
69    * Create output objects 
70    * 
71    */
72   virtual void UserCreateOutputObjects();
73   /** 
74    * Process each event 
75    *
76    * @param option Not used
77    */  
78   virtual void UserExec(Option_t* option);
79   /** 
80    * End of job
81    * 
82    * @param option Not used 
83    */
84   virtual void Terminate(Option_t* option);
85   /** 
86    * @} 
87    */
88   /** 
89    * @{ 
90    * @name Access to sub-algorithms 
91    */
92   /**
93    * Get reference to the EventInspector algorithm 
94    * 
95    * @return Reference to AliFMDEventInspector object 
96    */
97   AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
98   /**
99    * Get reference to the EnergyFitter algorithm 
100    * 
101    * @return Reference to AliFMDEnergyFitter object 
102    */
103   AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
104   /**
105    * Get reference to the SharingFilter algorithm 
106    * 
107    * @return Reference to AliFMDSharingFilter object 
108    */
109   AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
110   /**
111    * Get reference to the DensityCalculator algorithm 
112    * 
113    * @return Reference to AliFMDDensityCalculator object 
114    */
115   AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
116   /**
117    * Get reference to the Corrections algorithm 
118    * 
119    * @return Reference to AliFMDCorrections object 
120    */
121   AliFMDCorrections& GetCorrections() { return fCorrections; }
122   /**
123    * Get reference to the HistCollector algorithm 
124    * 
125    * @return Reference to AliFMDHistCollector object 
126    */
127   AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
128   /**
129    * Get reference to the EventInspector algorithm 
130    * 
131    * @return Reference to AliFMDEventInspector object 
132    */
133   const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
134   /**
135    * Get reference to the EnergyFitter algorithm 
136    * 
137    * @return Reference to AliFMDEnergyFitter object 
138    */
139   const AliFMDEnergyFitter& GetEnergyFitter() const { return fEnergyFitter; }
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 AliFMDCorrections object 
156    */
157   const AliFMDCorrections& 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    * @} 
166    */
167   /** 
168    * Set debug level 
169    * 
170    * @param dbg Debug level
171    */
172   void SetDebug(Int_t dbg);
173 protected: 
174   /** 
175    * Initialise the sub objects and stuff.  Called on first event 
176    * 
177    */
178   virtual void   InitializeSubs();
179
180   TH2D*                  fHData;        // Summed 1/Nd^2N_{ch}/dphideta
181   AliESDFMD              fESDFMD;       // Sharing corrected ESD object
182   AliForwardUtil::Histos fHistos;       // Cache histograms 
183   AliAODForwardMult      fAODFMD;       // Output object
184
185   AliFMDEventInspector    fEventInspector;    // Algorithm
186   AliFMDEnergyFitter      fEnergyFitter;      // Algorithm
187   AliFMDSharingFilter     fSharingFilter;     // Algorithm
188   AliFMDDensityCalculator fDensityCalculator; // Algorithm
189   AliFMDCorrections       fCorrections;       // Algorithm
190   AliFMDHistCollector     fHistCollector;     // Algorithm
191
192   TList* fList; // Output list 
193
194   ClassDef(AliForwardMultiplicityTask,1) // Forward multiplicity class
195 };
196
197 #endif
198 // Local Variables:
199 //  mode: C++
200 // End:
201