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