]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/FORWARD/analysis2/AliForwardMultiplicityTask.h
Transition PWG2/FORWARD -> PWGLF
[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 pwg2_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 "AliFMDEnergyFitter.h"
25 #include <AliESDFMD.h>
26 class AliESDEvent;
27 class TH2D;
28 class TList;
29
30 /** 
31  * Calculate the multiplicity in the forward regions event-by-event 
32  * 
33  * @par Inputs: 
34  *   - AliESDEvent 
35  *
36  * @par Outputs: 
37  *   - AliAODForwardMult 
38  * 
39  * @par Histograms 
40  *   
41  * @par Corrections used 
42  * 
43  * @ingroup pwg2_forward_tasks
44  * @ingroup pwg2_forward_aod
45  * 
46  */
47 class AliForwardMultiplicityTask : public AliForwardMultiplicityBase
48 {
49 public:
50   /** 
51    * Constructor 
52    * 
53    * @param name Name of task 
54    */
55   AliForwardMultiplicityTask(const char* name);
56   /** 
57    * Constructor
58    */
59   AliForwardMultiplicityTask();
60   /** 
61    * Copy constructor 
62    * 
63    * @param o Object to copy from 
64    */
65   AliForwardMultiplicityTask(const AliForwardMultiplicityTask& o);
66   /** 
67    * Assignment operator 
68    * 
69    * @param o Object to assign from 
70    * 
71    * @return Reference to this object 
72    */
73   AliForwardMultiplicityTask& operator=(const AliForwardMultiplicityTask& o);
74   /** 
75    * @{ 
76    * @name Interface methods 
77    */
78   /** 
79    * Create output objects 
80    * 
81    */
82   virtual void UserCreateOutputObjects();
83   /** 
84    * Process each event 
85    *
86    * @param option Not used
87    */  
88   virtual void UserExec(Option_t* option);
89   /** 
90    * End of job
91    * 
92    * @param option Not used 
93    */
94   virtual void Terminate(Option_t* option);
95   /** 
96    * @} 
97    */
98   /** 
99    * @{ 
100    * @name Access to sub-algorithms 
101    */
102   /**
103    * Get reference to the EventInspector algorithm 
104    * 
105    * @return Reference to AliFMDEventInspector object 
106    */
107   AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
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 SharingFilter algorithm 
140    * 
141    * @return Reference to AliFMDSharingFilter object 
142    */
143   const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
144   /**
145    * Get reference to the DensityCalculator algorithm 
146    * 
147    * @return Reference to AliFMDDensityCalculator object 
148    */
149   const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
150   /**
151    * Get reference to the Corrections algorithm 
152    * 
153    * @return Reference to AliFMDCorrector object 
154    */
155   const AliFMDCorrector& GetCorrections() const { return fCorrections; }
156   /**
157    * Get reference to the HistCollector algorithm 
158    * 
159    * @return Reference to AliFMDHistCollector object 
160    */
161   const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
162   /** 
163    * @} 
164    */
165   /** 
166    * Set debug level 
167    * 
168    * @param dbg Debug level
169    */
170   void SetDebug(Int_t dbg);
171 protected: 
172   /** 
173    * Initialise the sub objects and stuff.  Called on first event 
174    * 
175    */
176   virtual void   InitializeSubs();
177
178   TH2D*                  fHData;        // Summed 1/Nd^2N_{ch}/dphideta
179   AliESDFMD              fESDFMD;       // Sharing corrected ESD object
180   AliForwardUtil::Histos fHistos;       // Cache histograms 
181   AliAODForwardMult      fAODFMD;       // Output object
182   AliForwardUtil::Histos fRingSums;     // Cache histograms 
183
184   AliFMDEventInspector    fEventInspector;    // Algorithm
185   AliFMDSharingFilter     fSharingFilter;     // Algorithm
186   AliFMDDensityCalculator fDensityCalculator; // Algorithm
187   AliFMDCorrector         fCorrections;       // Algorithm
188   AliFMDHistCollector     fHistCollector;     // Algorithm
189
190   TList* fList; // Output list 
191
192   ClassDef(AliForwardMultiplicityTask,1) // Forward multiplicity class
193 };
194
195 #endif
196 // Local Variables:
197 //  mode: C++
198 // End:
199