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