]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis2/AliForwardMCMultiplicityTask.h
Added ROOT THtml docs to .cxx and top .h
[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 #include "AliForwardMultiplicityBase.h"
7 #include "AliForwardUtil.h"
8 #include "AliFMDEventInspector.h"
9 #include "AliFMDEnergyFitter.h"
10 #include "AliFMDMCSharingFilter.h"
11 #include "AliFMDMCDensityCalculator.h"
12 #include "AliFMDMCCorrections.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  *   - Kinematics
27  *   - Track references
28  *
29  * @par Outputs: 
30  *   - AliAODForwardMult 
31  * 
32  * @par Histograms 
33  *   
34  * @par Corrections used 
35  * 
36  * @ingroup pwg2_forward_tasks
37  * @ingroup pwg2_forward_mc
38  * 
39  */
40 class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
41 {
42 public:
43   /** 
44    * Constructor 
45    * 
46    * @param name Name of task 
47    */
48   AliForwardMCMultiplicityTask(const char* name);
49   /** 
50    * Constructor
51    */
52   AliForwardMCMultiplicityTask();
53   /** 
54    * Copy constructor 
55    * 
56    * @param o Object to copy from 
57    */
58   AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
59   /** 
60    * Assignment operator 
61    * 
62    * @param o Object to assign from 
63    * 
64    * @return Reference to this object 
65    */
66   AliForwardMCMultiplicityTask& 
67   operator=(const AliForwardMCMultiplicityTask& o);
68   /** 
69    * @{ 
70    * @name Interface methods 
71    */
72   /** 
73    * Create output objects 
74    * 
75    */
76   virtual void UserCreateOutputObjects();
77   /** 
78    * Process each event 
79    *
80    * @param option Not used
81    */  
82   virtual void UserExec(Option_t* option);
83   /** 
84    * End of job
85    * 
86    * @param option Not used 
87    */
88   virtual void Terminate(Option_t* option);
89   /** 
90    * @} 
91    */
92   /** 
93    * Print information 
94    * 
95    * @param option Not used
96    */
97   void Print(Option_t* option="") const;
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 EnergyFitter algorithm 
110    * 
111    * @return Reference to AliFMDEnergyFitter object 
112    */
113   AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
114   /**
115    * Get reference to the SharingFilter algorithm 
116    * 
117    * @return Reference to AliFMDSharingFilter object 
118    */
119   AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
120   /**
121    * Get reference to the DensityCalculator algorithm 
122    * 
123    * @return Reference to AliFMDDensityCalculator object 
124    */
125   AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
126   /**
127    * Get reference to the Corrections algorithm 
128    * 
129    * @return Reference to AliFMDCorrections object 
130    */
131   AliFMDCorrections& GetCorrections() { return fCorrections; }
132   /**
133    * Get reference to the HistCollector algorithm 
134    * 
135    * @return Reference to AliFMDHistCollector object 
136    */
137   AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
138   /** 
139    * @} 
140    */
141   /** 
142    * Set debug level 
143    * 
144    * @param dbg debug level
145    */
146   void SetDebug(Int_t dbg);
147 protected: 
148   /** 
149    * Initialise the sub objects and stuff.  Called on first event 
150    * 
151    */
152   virtual void   InitializeSubs();
153
154   TH2D*                  fHData;        // Summed 1/Nd^2N_{ch}/dphideta
155   AliESDFMD              fESDFMD;       // Sharing corrected ESD object
156   AliForwardUtil::Histos fHistos;       // Cache histograms 
157   AliAODForwardMult      fAODFMD;       // Output object
158   AliESDFMD              fMCESDFMD;     // MC 'Sharing corrected' ESD object
159   AliForwardUtil::Histos fMCHistos;     // MC Cache histograms 
160   AliAODForwardMult      fMCAODFMD;     // MC Output object
161
162   AliFMDEventInspector      fEventInspector;    // Algorithm
163   AliFMDEnergyFitter        fEnergyFitter;      // Algorithm
164   AliFMDMCSharingFilter     fSharingFilter;     // Algorithm
165   AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
166   AliFMDMCCorrections       fCorrections;       // Algorithm
167   AliFMDHistCollector       fHistCollector;     // Algorithm
168
169   TList* fList; // Output list 
170
171   ClassDef(AliForwardMCMultiplicityTask,1) // Forward multiplicity class
172 };
173
174 #endif
175 // Local Variables:
176 //  mode: C++
177 // End:
178