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