Various fixes, and possibility to set trigger efficiency
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliMCTruthdNdetaTask.h
CommitLineData
9ecab72f 1//
2// Task to analyse the AOD for for dN/deta in the forward regions
3//
4#ifndef ALIMCTRUTHDNDETATASK_H
5#define ALIMCTRUTHDNDETATASK_H
6/**
7 * @file AliMCTruthdNdetaTask.h
8 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9 * @date Wed Mar 23 14:04:54 2011
10 *
11 * @brief
12 *
13 *
bd6f5206 14 * @ingroup pwglf_forward_dndeta
9ecab72f 15 */
16#include "AliBasedNdetaTask.h"
17class TList;
18class TH2D;
19class TH1D;
20
21/**
22 * Tasks to determine @f$ dN/d\eta@f$ in the forward regions
23 *
bd6f5206 24 * @ingroup pwglf_forward_tasks_dndeta
25 * @ingroup pwglf_forward_dndeta
9ecab72f 26 */
27class AliMCTruthdNdetaTask : public AliBasedNdetaTask
28{
29public:
30 /**
31 * Constructor
32 *
33 */
34 AliMCTruthdNdetaTask();
35 /**
36 * Constructor
37 *
38 * @param name Name of task
39 */
40 AliMCTruthdNdetaTask(const char* name);
41 /**
42 * Destructor
43 *
44 */
45 virtual ~AliMCTruthdNdetaTask() {}
46 /**
47 * Called at end of event processing.
48 *
49 * This is called once in the master
50 *
51 * @param option Not used
52 */
53 virtual void Terminate(Option_t* option);
54protected:
55 /**
56 * Copy constructor
290052e7 57 *
58 * @param o Object to copy from
9ecab72f 59 */
60 AliMCTruthdNdetaTask(const AliMCTruthdNdetaTask& o);
61 /**
62 * Assigmement operator
63 *
64 * @return Reference to this
65 */
66 AliMCTruthdNdetaTask& operator=(const AliMCTruthdNdetaTask&) { return *this; }
67
68 /**
69 * Retrieve the histogram
70 *
71 * @param aod AOD event
72 * @param mc Whether to get the MC histogram or not
73 *
74 * @return Retrieved histogram or null
75 */
76 TH2D* GetHistogram(const AliAODEvent* aod, Bool_t mc);
77 /**
78 * Get the marker style
79 *
80 * @return Marker style
81 */
82 virtual Int_t GetMarker() const { return GetMarkerStyle(kStar); }
83 /**
84 * Get the colour to use for markers (only pp - in PbPb we use a rainbow)
85 *
86 * @return Marker colour
87 */
88 virtual Int_t GetColor() const { return kGray+2; }
89 /**
90 * Make a new centrality bin
91 *
92 * @param name Histogram names
93 * @param l Lower cut
94 * @param h Upper cut
95 *
96 * @return Newly allocated object (of our type)
97 */
98 AliBasedNdetaTask::CentralityBin*
99 MakeCentralityBin(const char* name, Short_t l, Short_t h) const;
100
101 /**
102 * Class that holds data for a single centrality bin
103 *
104 */
badf1074 105 class CentralityBin : public AliBasedNdetaTask::CentralityBin
9ecab72f 106 {
badf1074 107 public:
9ecab72f 108 /**
109 * Constructor
110 */
111 CentralityBin() : AliBasedNdetaTask::CentralityBin(), fSumTruth(0) {}
112 /**
113 * Constructor
114 *
115 * @param name Name used for histograms (e.g., Forward)
116 * @param low Lower centrality cut in percent
117 * @param high Upper centrality cut in percent
118 */
119 CentralityBin(const char* name, Short_t low, Short_t high)
120 : AliBasedNdetaTask::CentralityBin(name, low, high),
121 fSumTruth(0)
122 {}
123 /**
124 * Copy constructor
125 *
126 * @param other Object to copy from
127 */
128 CentralityBin(const CentralityBin& other)
129 : AliBasedNdetaTask::CentralityBin(other),
130 fSumTruth(other.fSumTruth)
131 {}
132 /**
133 * Destructor
134 */
135 virtual ~CentralityBin() {}
136 /**
137 * Assignement operator
138 *
139 *
140 * @return
141 */
142 CentralityBin& operator=(const CentralityBin&) { return *this; }
143 /**
144 * Process an event
145 *
146 * @param forward Forward data (for trigger, vertex, & centrality)
147 * @param triggerMask Trigger mask
148 * @param isZero True if this is a zero bin event
149 * @param vzMin Minimum IP z coordinate
150 * @param vzMax Maximum IP z coordinate
151 * @param data Data histogram
152 * @param mc MC histogram
153 */
154 virtual void ProcessEvent(const AliAODForwardMult* forward,
155 Int_t triggerMask,
156 Bool_t isZero,
157 Double_t vzMin,
158 Double_t vzMax,
159 const TH2D* data,
160 const TH2D* mc);
161 /**
162 * End of processing
163 *
164 * @param sums List of sums
165 * @param results Output list of results
166 * @param scheme Normalisation scheme options
167 * @param shapeCorr Shape correction or nil
168 * @param trigEff Trigger efficiency
66cf95f2 169 * @param trigEff0 0-bin trigger efficiency
9ecab72f 170 * @param symmetrice Whether to symmetrice the results
171 * @param rebin Whether to rebin the results
172 * @param rootProj If true, use TH2::ProjectionX
173 * @param corrEmpty Whether to correct for empty bins
174 * @param cutEdges Whether to cut edges when rebinning
175 * @param triggerMask Trigger mask
176 * @param color Marker colour
177 * @param marker Marker style
c6115ede 178 * @param mclist List of MC results
179 * @param truthlist List of MC truth results
9ecab72f 180 */
181 virtual void End(TList* sums,
182 TList* results,
183 UShort_t scheme,
f67d699c 184 const TH2F* shapeCorr,
9ecab72f 185 Double_t trigEff,
66cf95f2 186 Double_t trigEff0,
9ecab72f 187 Bool_t symmetrice,
188 Int_t rebin,
189 Bool_t rootProj,
190 Bool_t corrEmpty,
191 Bool_t cutEdges,
192 Int_t triggerMask,
193 Int_t marker,
c89b9ac1 194 Int_t color,
195 TList* mclist,
196 TList* truthlist);
9ecab72f 197 protected:
198 TH2D* fSumTruth; // Sum of primary histograms
199 ClassDef(CentralityBin,1); // A centrality bin
200 };
201
202 ClassDef(AliMCTruthdNdetaTask,1); // Determine multiplicity in forward region
203};
204
205#endif
206//
207// Local Variables:
208// mode: C++
209// End:
210//