]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/AliForwardMCMultiplicityTask.h
Moved vertex cuts outside the track loop (A.Palaha)
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliForwardMCMultiplicityTask.h
CommitLineData
7984e5f7 1//
2// Calculate the multiplicity in the forward regions event-by-event
3//
285e7b27 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>
17class AliESDEvent;
18class TH2D;
19class TList;
20
21/**
22 * Calculate the multiplicity in the forward regions event-by-event
23 *
24 * @par Inputs:
25 * - AliESDEvent
7984e5f7 26 * - Kinematics
27 * - Track references
285e7b27 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 */
40class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
41{
42public:
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 */
7984e5f7 141 /**
142 * Set debug level
143 *
144 * @param dbg debug level
145 */
285e7b27 146 void SetDebug(Int_t dbg);
147protected:
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