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