]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis2/AliForwardMultiplicityTask.h
Renamed
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliForwardMultiplicityTask.h
1 #ifndef ALIROOT_PWG2_FORWARD_ALIFORWARDMULTIPLICITY_H
2 #define ALIROOT_PWG2_FORWARD_ALIFORWARDMULTIPLICITY_H
3 #include <AliAnalysisTaskSE.h>
4 #include "AliForwardUtil.h"
5 #include "AliFMDEventInspector.h"
6 #include "AliFMDEnergyFitter.h"
7 #include "AliFMDSharingFilter.h"
8 #include "AliFMDDensityCalculator.h"
9 #include "AliFMDCorrections.h"
10 #include "AliFMDHistCollector.h"
11 #include "AliAODForwardMult.h"
12 #include "AliFMDEnergyFitter.h"
13 #include <AliESDFMD.h>
14 #include <TH1I.h>
15 class AliFMDAnaParameters;
16 class AliESDEvent;
17 class TH2D;
18 class TList;
19 class TTree;
20
21
22 /** 
23  * @mainpage ALICE PWG2 Forward Multiplcity Analysis 
24  */
25 /** 
26  * @defgroup pwg2_forward PWG2 Forward analysis
27  *
28  * Code to do the multiplicity analysis in the forward psuedo-rapidity
29  * regions
30  *
31  */
32 /** 
33  * @defgroup pwg2_forward_tasks Tasks
34  *
35  * Code to do the multiplicity analysis in the forward psuedo-rapidity
36  * regions
37  *
38  * @ingroup pwg2_forward 
39  */
40 /** 
41  * Calculate the multiplicity in the forward regions event-by-event 
42  * 
43  * @par Inputs: 
44  *   - AliESDEvent 
45  *
46  * @par Outputs: 
47  *   - AliAODForwardMult 
48  * 
49  * @par Histograms 
50  *   
51  * @par Corrections used 
52  * 
53  * @ingroup pwg2_forward_tasks
54  * 
55  */
56 class AliForwardMultiplicityTask : public AliAnalysisTaskSE
57 {
58 public:
59   /** 
60    * Constructor 
61    * 
62    * @param name Name of task 
63    */
64   AliForwardMultiplicityTask(const char* name);
65   /** 
66    * Constructor
67    */
68   AliForwardMultiplicityTask();
69   /** 
70    * Copy constructor 
71    * 
72    * @param o Object to copy from 
73    */
74   AliForwardMultiplicityTask(const AliForwardMultiplicityTask& o);
75   /** 
76    * Assignment operator 
77    * 
78    * @param o Object to assign from 
79    * 
80    * @return Reference to this object 
81    */
82   AliForwardMultiplicityTask& operator=(const AliForwardMultiplicityTask& o);
83   /** 
84    * @{ 
85    * @name Interface methods 
86    */
87   /** 
88    * Initialize the task 
89    * 
90    */
91   virtual void Init();
92   /** 
93    * Create output objects 
94    * 
95    */
96   virtual void UserCreateOutputObjects();
97   /** 
98    * Process each event 
99    *
100    * @param option Not used
101    */  
102   virtual void UserExec(Option_t* option);
103   /** 
104    * End of job
105    * 
106    * @param option Not used 
107    */
108   virtual void Terminate(Option_t* option);
109   /** 
110    * @} 
111    */
112   /** 
113    * Print information 
114    * 
115    * @param option Not used
116    */
117   void Print(Option_t* option="") const;
118   /** 
119    * Whether to enable low-flux code 
120    * 
121    * @param use IF true, enable low-flux code 
122    */
123   void SetEnableLowFlux(Bool_t use=true) { fEnableLowFlux = use; }
124   /** 
125    * @{ 
126    * @name Access to sub-algorithms 
127    */
128   /**
129    * Get reference to the EventInspector algorithm 
130    * 
131    * @return Reference to AliFMDEventInspector object 
132    */
133   AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
134   /**
135    * Get reference to the EnergyFitter algorithm 
136    * 
137    * @return Reference to AliFMDEnergyFitter object 
138    */
139   AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
140   /**
141    * Get reference to the SharingFilter algorithm 
142    * 
143    * @return Reference to AliFMDSharingFilter object 
144    */
145   AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
146   /**
147    * Get reference to the DensityCalculator algorithm 
148    * 
149    * @return Reference to AliFMDDensityCalculator object 
150    */
151   AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
152   /**
153    * Get reference to the Corrections algorithm 
154    * 
155    * @return Reference to AliFMDCorrections object 
156    */
157   AliFMDCorrections& GetCorrections() { return fCorrections; }
158   /**
159    * Get reference to the HistCollector algorithm 
160    * 
161    * @return Reference to AliFMDHistCollector object 
162    */
163   AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
164   /** 
165    * @} 
166    */
167   void SetDebug(Int_t dbg);
168 protected: 
169   /** 
170    * Initialise the sub objects and stuff.  Called on first event 
171    * 
172    */
173   virtual void   InitializeSubs();
174   /** 
175    * Mark this event as one to store in the AOD 
176    * 
177    */
178   virtual void MarkEventForStore() const;
179
180   Bool_t                 fEnableLowFlux;// Whether to use low-flux specific code
181   TH2D*                  fHData;        // Summed 1/Nd^2N_{ch}/dphideta
182   Bool_t                 fFirstEvent;   // Whether the event is the first seen 
183   AliESDFMD              fESDFMD;       // Sharing corrected ESD object
184   AliForwardUtil::Histos fHistos;       // Cache histograms 
185   AliAODForwardMult      fAODFMD;       // Output object
186
187   AliFMDEventInspector    fEventInspector;    // Algorithm
188   AliFMDEnergyFitter      fEnergyFitter;      // Algorithm
189   AliFMDSharingFilter     fSharingFilter;     // Algorithm
190   AliFMDDensityCalculator fDensityCalculator; // Algorithm
191   AliFMDCorrections       fCorrections;       // Algorithm
192   AliFMDHistCollector     fHistCollector;     // Algorithm
193
194   TList* fList; // Output list 
195
196   ClassDef(AliForwardMultiplicityTask,1) // Forward multiplicity class
197 };
198
199 #endif
200 // Local Variables:
201 //  mode: C++
202 // End:
203