]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliMCTruthdNdetaTask.h
dN/deta tasks no longer make symmetric extensions, nor
[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
9ecab72f 50 */
c8b1a7db 51 virtual Bool_t Finalize();
9ecab72f 52protected:
53 /**
54 * Copy constructor
290052e7 55 *
56 * @param o Object to copy from
9ecab72f 57 */
58 AliMCTruthdNdetaTask(const AliMCTruthdNdetaTask& o);
59 /**
60 * Assigmement operator
61 *
62 * @return Reference to this
63 */
c8b1a7db 64 AliMCTruthdNdetaTask& operator=(const AliMCTruthdNdetaTask&);
9ecab72f 65
66 /**
67 * Retrieve the histogram
68 *
69 * @param aod AOD event
70 * @param mc Whether to get the MC histogram or not
71 *
72 * @return Retrieved histogram or null
73 */
c8b1a7db 74 TH2D* GetHistogram(const AliAODEvent& aod, Bool_t mc);
9ecab72f 75 /**
76 * Get the marker style
77 *
78 * @return Marker style
79 */
80 virtual Int_t GetMarker() const { return GetMarkerStyle(kStar); }
81 /**
82 * Get the colour to use for markers (only pp - in PbPb we use a rainbow)
83 *
84 * @return Marker colour
85 */
86 virtual Int_t GetColor() const { return kGray+2; }
87 /**
88 * Make a new centrality bin
89 *
90 * @param name Histogram names
91 * @param l Lower cut
92 * @param h Upper cut
93 *
94 * @return Newly allocated object (of our type)
95 */
96 AliBasedNdetaTask::CentralityBin*
97 MakeCentralityBin(const char* name, Short_t l, Short_t h) const;
98
99 /**
100 * Class that holds data for a single centrality bin
101 *
102 */
badf1074 103 class CentralityBin : public AliBasedNdetaTask::CentralityBin
9ecab72f 104 {
badf1074 105 public:
9ecab72f 106 /**
107 * Constructor
108 */
109 CentralityBin() : AliBasedNdetaTask::CentralityBin(), fSumTruth(0) {}
110 /**
111 * Constructor
112 *
113 * @param name Name used for histograms (e.g., Forward)
114 * @param low Lower centrality cut in percent
115 * @param high Upper centrality cut in percent
116 */
117 CentralityBin(const char* name, Short_t low, Short_t high)
118 : AliBasedNdetaTask::CentralityBin(name, low, high),
119 fSumTruth(0)
120 {}
121 /**
122 * Copy constructor
123 *
124 * @param other Object to copy from
125 */
126 CentralityBin(const CentralityBin& other)
127 : AliBasedNdetaTask::CentralityBin(other),
128 fSumTruth(other.fSumTruth)
129 {}
130 /**
131 * Destructor
132 */
133 virtual ~CentralityBin() {}
134 /**
135 * Assignement operator
136 *
137 *
138 * @return
139 */
140 CentralityBin& operator=(const CentralityBin&) { return *this; }
141 /**
142 * Process an event
143 *
144 * @param forward Forward data (for trigger, vertex, & centrality)
145 * @param triggerMask Trigger mask
146 * @param isZero True if this is a zero bin event
147 * @param vzMin Minimum IP z coordinate
148 * @param vzMax Maximum IP z coordinate
149 * @param data Data histogram
150 * @param mc MC histogram
5f2f85f0 151 * @param checkPileup If true, check for pile-up (global flag)
9ecab72f 152 */
bfab35d9 153 virtual Bool_t ProcessEvent(const AliAODForwardMult* forward,
154 Int_t triggerMask,
155 Bool_t isZero,
156 Double_t vzMin,
157 Double_t vzMax,
158 const TH2D* data,
5f2f85f0 159 const TH2D* mc,
160 Bool_t checkPileup);
9ecab72f 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
9ecab72f 167 * @param trigEff Trigger efficiency
66cf95f2 168 * @param trigEff0 0-bin trigger efficiency
9ecab72f 169 * @param rootProj If true, use TH2::ProjectionX
170 * @param corrEmpty Whether to correct for empty bins
9ecab72f 171 * @param triggerMask Trigger mask
172 * @param color Marker colour
173 * @param marker Marker style
c6115ede 174 * @param mclist List of MC results
175 * @param truthlist List of MC truth results
9ecab72f 176 */
177 virtual void End(TList* sums,
178 TList* results,
179 UShort_t scheme,
9ecab72f 180 Double_t trigEff,
66cf95f2 181 Double_t trigEff0,
9ecab72f 182 Bool_t rootProj,
183 Bool_t corrEmpty,
9ecab72f 184 Int_t triggerMask,
185 Int_t marker,
c89b9ac1 186 Int_t color,
187 TList* mclist,
188 TList* truthlist);
9ecab72f 189 protected:
190 TH2D* fSumTruth; // Sum of primary histograms
5934a3e3 191 ClassDef(CentralityBin,2); // A centrality bin
9ecab72f 192 };
786db950 193 Bool_t fHasData; // whether we actually have data or not
5934a3e3 194 ClassDef(AliMCTruthdNdetaTask,2); // Determine multiplicity in forward region
9ecab72f 195};
196
197#endif
198//
199// Local Variables:
200// mode: C++
201// End:
202//