]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGHF/vertexingHF/AliHFSystErr.cxx
Set the detector version to 0 for upgrade. Tmp.hack to make the simulation chain...
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliHFSystErr.cxx
... / ...
CommitLineData
1
2/**************************************************************************
3 * Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4 * *
5 * Author: The ALICE Off-line Project. *
6 * Contributors are mentioned in the code where appropriate. *
7 * *
8 * Permission to use, copy, modify and distribute this software and its *
9 * documentation strictly for non-commercial purposes is hereby granted *
10 * without fee, provided that the above copyright notice appears in all *
11 * copies and that both the copyright notice and this permission notice *
12 * appear in the supporting documentation. The authors make no claims *
13 * about the suitability of this software for any purpose. It is *
14 * provided "as is" without express or implied warranty. *
15 **************************************************************************/
16
17/* $Id$ */
18
19/////////////////////////////////////////////////////////////
20//
21// Class to handle systematic errors for charm hadrons
22//
23// Usage:
24// AliHFSystEff syst; // DECAY = 1 for D0, 2, for D+, 3 for D*
25// syst.SetRunNumber(YEAR); // YEAR = two last numbers of the year (is 10 for 2010)
26// syst.SetCollisionType(TYPE); // TYPE = 0 is pp, 1 is PbPb
27// syst.SetCentrality(CENT); // CENT is centrality, 0100 for MB, 020 (4080) for 0-20 (40-80) CC...
28// syst.Init(DECAY); // DECAY = 1 for D0, 2, for D+, 3 for D*
29// syst.DrawErrors(); // to see a plot of the error contributions
30// syst.GetTotalSystErr(pt); // to get the total err at pt
31//
32// Author: A.Dainese, andrea.dainese@pd.infn.it
33/////////////////////////////////////////////////////////////
34
35#include <TStyle.h>
36#include <TGraphAsymmErrors.h>
37#include <TMath.h>
38#include <TCanvas.h>
39#include <TH2F.h>
40#include <TLegend.h>
41#include <TColor.h>
42
43#include "AliLog.h"
44#include "AliHFSystErr.h"
45
46
47ClassImp(AliHFSystErr)
48
49//--------------------------------------------------------------------------
50AliHFSystErr::AliHFSystErr(const Char_t* name, const Char_t* title) :
51TNamed(name,title),
52fNorm(0),
53fRawYield(0),
54fTrackingEff(0),
55fBR(0),
56fCutsEff(0),
57fPIDEff(0),
58fMCPtShape(0),
59fPartAntipart(0),
60fRunNumber(10),
61fCollisionType(0),
62fCentralityClass("0100"),
63fIsLowEnergy(false),
64fIsCentScan(false)
65{
66 //
67 // Default Constructor
68 //
69}
70
71//--------------------------------------------------------------------------
72AliHFSystErr::~AliHFSystErr() {
73 //
74 // Default Destructor
75 //
76 /*
77
78 if(fNorm) { delete fNorm; fNorm=0; }
79 if(fRawYield) { delete fRawYield; fRawYield=0; }
80 if(fTrackingEff) { delete fTrackingEff; fTrackingEff=0; }
81 if(fBR) { delete fBR; fBR=0; }
82 if(fCutsEff) { delete fCutsEff; fCutsEff=0; }
83 if(fPIDEff) { delete fPIDEff; fPIDEff=0; }
84 if(fMCPtShape) { delete fMCPtShape; fMCPtShape=0; }
85 if(fPartAntipart) { delete fPartAntipart; fPartAntipart=0; }
86 */
87}
88
89//--------------------------------------------------------------------------
90void AliHFSystErr::Init(Int_t decay){
91 //
92 // Variables/histos initialization
93 //
94
95 if (fRunNumber!=10 && fIsLowEnergy==false) {
96 AliFatal("Only settings for 2010 and the low energy runs are implemented so far");
97 }
98
99 switch(decay) {
100 case 1: // D0->Kpi
101 if (fCollisionType==0) {
102 if (fIsLowEnergy) InitD0toKpi2010ppLowEn();
103 else InitD0toKpi2010pp();
104 } else if (fCollisionType==1) {
105 if (fCentralityClass=="07half") InitD0toKpi2011PbPb07half();
106 else if (fCentralityClass=="010") InitD0toKpi2010PbPb010CentScan();
107 else if (fCentralityClass=="1020") InitD0toKpi2010PbPb1020CentScan();
108 else if (fCentralityClass=="020") InitD0toKpi2010PbPb020();
109 else if (fCentralityClass=="2040") InitD0toKpi2010PbPb2040CentScan();
110 else if (fCentralityClass=="4060") InitD0toKpi2010PbPb4060CentScan();
111 else if (fCentralityClass=="6080") InitD0toKpi2010PbPb6080CentScan();
112 else if (fCentralityClass=="4080") InitD0toKpi2010PbPb4080();
113 else AliFatal("Not yet implemented");
114 }
115 // else if (fCollisionType==2) InitD0toKpi2010ppLowEn();
116 break;
117 case 2: // D+->Kpipi
118 if (fCollisionType==0) {
119 if (fIsLowEnergy) InitDplustoKpipi2010ppLowEn();
120 else InitDplustoKpipi2010pp();
121 } else if (fCollisionType==1) {
122 if (fCentralityClass=="07half") InitDplustoKpipi2011PbPb07half();
123 else if (fCentralityClass=="010") InitDplustoKpipi2010PbPb010CentScan();
124 else if (fCentralityClass=="1020") InitDplustoKpipi2010PbPb1020CentScan();
125 else if (fCentralityClass=="020") InitDplustoKpipi2010PbPb020();
126 else if (fCentralityClass=="2040") InitDplustoKpipi2010PbPb2040CentScan();
127 else if (fCentralityClass=="4060") InitDplustoKpipi2010PbPb4060CentScan();
128 else if (fCentralityClass=="6080") InitDplustoKpipi2010PbPb6080CentScan();
129 else if (fCentralityClass=="4080") InitDplustoKpipi2010PbPb4080();
130 else AliFatal("Not yet implemented");
131 }
132 break;
133 case 3: // D*->D0pi
134 if (fCollisionType==0) {
135 if(fIsLowEnergy) InitDstartoD0pi2010ppLowEn();
136 else InitDstartoD0pi2010pp();
137 }else if (fCollisionType==1) {
138 if (fCentralityClass=="010") InitDstartoD0pi2010PbPb010CentScan();
139 else if (fCentralityClass=="07half") InitDstartoD0pi2011PbPb07half();
140 else if (fCentralityClass=="1020") InitDstartoD0pi2010PbPb1020CentScan();
141 else if (fCentralityClass=="020") InitDstartoD0pi2010PbPb020();
142 else if (fCentralityClass=="2040" && fIsCentScan) InitDstartoD0pi2010PbPb2040CentScan();
143 else if (fCentralityClass=="2040") InitDstartoD0pi2010PbPb2040();
144 else if (fCentralityClass=="4060") InitDstartoD0pi2010PbPb4060CentScan();
145 else if (fCentralityClass=="6080") InitDstartoD0pi2010PbPb6080CentScan();
146 else if (fCentralityClass=="4080") InitDstartoD0pi2010PbPb4080();
147 else AliFatal("Not yet implemented");
148 }
149 break;
150 case 4: // D+s->KKpi
151 if (fCollisionType==0) InitDstoKKpi2010pp();
152 else if (fCollisionType==1) {
153 if (fCentralityClass=="07half") InitDstoKKpi2011PbPb07half();
154 else AliFatal("Not yet implemented");
155 }
156 else AliFatal("Not yet implemented");
157 break;
158
159 default:
160 printf("Invalid decay type: %d\n",decay);
161 break;
162 }
163
164}
165
166//--------------------------------------------------------------------------
167void AliHFSystErr::InitD0toKpi2010pp() {
168 //
169 // D0->Kpi syst errors. Responsible: A. Rossi
170 // 2010 pp sample
171 //
172
173 // Normalization
174 fNorm = new TH1F("fNorm","fNorm",24,0,24);
175 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
176
177 // Branching ratio
178 fBR = new TH1F("fBR","fBR",24,0,24);
179 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
180
181 // Tracking efficiency
182 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
183 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.08); // 8% (4% per track)
184
185 // Raw yield extraction
186 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
187 fRawYield->SetBinContent(1,1);
188 fRawYield->SetBinContent(2,0.22);
189 fRawYield->SetBinContent(3,0.1);
190 for(Int_t i=4;i<=7;i++) fRawYield->SetBinContent(i,0.04);
191 for(Int_t i=8;i<=12;i++) fRawYield->SetBinContent(i,0.07);
192 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
193 for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,1);
194
195 // Cuts efficiency (from cuts variation)
196 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
197 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
198
199 // PID efficiency (from PID/noPID)
200 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
201 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.03); // 3%
202 fPIDEff->SetBinContent(2,0.05); // 5%
203
204 // MC dN/dpt
205 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
206 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
207 fMCPtShape->SetBinContent(1,0.03);
208 fMCPtShape->SetBinContent(2,0.03);
209
210 // particle-antiparticle
211 // fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",24,0,24);
212 // fPartAntipart->SetBinContent(1,1);
213 // for(Int_t i=2;i<=24;i++) fPartAntipart->SetBinContent(i,0.05);
214
215 return;
216}
217//--------------------------------------------------------------------------
218void AliHFSystErr::InitD0toKpi2010PbPb020() {
219 //
220 // D0->Kpi syst errors. Responsible: A. Rossi
221 // 2010 PbPb sample, 0-20 CC
222 //
223
224 // Normalization
225 fNorm = new TH1F("fNorm","fNorm",20,0,20);
226 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
227
228 // Branching ratio
229 fBR = new TH1F("fBR","fBR",20,0,20);
230 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
231
232 // Tracking efficiency
233 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
234 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10);// Jacek, 5% per track
235
236 // Raw yield extraction
237 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
238 fRawYield->SetBinContent(1,0);
239 fRawYield->SetBinContent(2,0);
240 fRawYield->SetBinContent(3,0.08);
241 for(Int_t i=4;i<=12;i++) fRawYield->SetBinContent(i,0.06);
242 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
243
244 // Cuts efficiency (from cuts variation)
245 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
246 fCutsEff->SetBinContent(1,0.);
247 fCutsEff->SetBinContent(2,0.);
248 fCutsEff->SetBinContent(3,0.13);
249 fCutsEff->SetBinContent(4,0.11);
250 for(Int_t i=5;i<=16;i++) fCutsEff->SetBinContent(i,0.10);
251 for(Int_t i=17;i<=20;i++) fCutsEff->SetBinContent(i,0.);
252
253 // PID efficiency (from PID/noPID)
254 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
255 for(Int_t i=3;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
256
257 // MC dN/dpt
258 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
259 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
260 fMCPtShape->SetBinContent(3,0.04);
261 fMCPtShape->SetBinContent(4,0.02);
262 for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03);
263
264// // particle-antiparticle
265// fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
266// for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
267// fPartAntipart->SetBinContent(3,0.10);
268// fPartAntipart->SetBinContent(4,0.10);
269// fPartAntipart->SetBinContent(7,0.10);
270// fPartAntipart->SetBinContent(8,0.10);
271
272 return;
273}
274//--------------------------------------------------------------------------
275//--------------------------------------------------------------------------
276void AliHFSystErr::InitD0toKpi2011PbPb07half() {
277 //
278 // D0->Kpi syst errors. Responsible: A. Rossi
279 // 2011 PbPb sample, 0-7.5 CC
280 //
281
282 // Normalization
283 fNorm = new TH1F("fNorm","fNorm",36,0,36);
284 for(Int_t i=1;i<36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
285
286 // Branching ratio
287 fBR = new TH1F("fBR","fBR",36,0,36);
288 for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
289
290 // Tracking efficiency
291 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);
292 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.10);// Jacek, 5% per track
293 for(Int_t i=25;i<=36;i++) fTrackingEff->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
294
295 // Raw yield extraction
296 fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
297 fRawYield->SetBinContent(1,0);
298 fRawYield->SetBinContent(2,0.1);
299 fRawYield->SetBinContent(3,0.05);
300 for(Int_t i=4;i<=12;i++) fRawYield->SetBinContent(i,0.05);
301 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
302 for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,0.30);
303 for(Int_t i=25;i<=36;i++) fRawYield->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
304
305 // Cuts efficiency (from cuts variation)
306 fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
307 fCutsEff->SetBinContent(1,0.);
308 fCutsEff->SetBinContent(2,0.15);
309 fCutsEff->SetBinContent(3,0.13);
310 fCutsEff->SetBinContent(4,0.11);
311 fCutsEff->SetBinContent(5,0.08);
312 for(Int_t i=6;i<=24;i++) fCutsEff->SetBinContent(i,0.06);
313 for(Int_t i=25;i<=36;i++) fCutsEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
314
315 // PID efficiency (from PID/noPID)
316 fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
317 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05);
318 for(Int_t i=25;i<=36;i++) fPIDEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
319
320 // MC dN/dpt
321 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
322 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.01);
323 fMCPtShape->SetBinContent(2,0.06);
324 fMCPtShape->SetBinContent(3,0.04);
325 fMCPtShape->SetBinContent(4,0.02);
326 for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03);
327 for(Int_t i=17;i<=24;i++) fMCPtShape->SetBinContent(i,0.05);
328 for(Int_t i=25;i<=36;i++) fMCPtShape->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
329
330// // particle-antiparticle
331// fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",36,0,36);
332// for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
333// fPartAntipart->SetBinContent(3,0.10);
334// fPartAntipart->SetBinContent(4,0.10);
335// fPartAntipart->SetBinContent(7,0.10);
336// fPartAntipart->SetBinContent(8,0.10);
337
338 return;
339}
340//--------------------------------------------------------------------------
341void AliHFSystErr::InitD0toKpi2010PbPb4080() {
342 //
343 // D0->Kpi syst errors. Responsible: A. Rossi
344 // 2010 PbPb sample, 40-80 CC
345 //
346
347 // Normalization
348 fNorm = new TH1F("fNorm","fNorm",20,0,20);
349 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
350
351 // Branching ratio
352 fBR = new TH1F("fBR","fBR",20,0,20);
353 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
354
355 // Tracking efficiency
356 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
357 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10); // Jacek, 5% per track
358
359
360 // Raw yield extraction
361 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
362 fRawYield->SetBinContent(1,0);
363 fRawYield->SetBinContent(2,0);
364 for(Int_t i=3;i<=16;i++) fRawYield->SetBinContent(i,0.05);
365 //for(Int_t i=13;i<=20;i++) fRawYield->SetBinContent(i,0);
366
367 // Cuts efficiency (from cuts variation)
368 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
369 fCutsEff->SetBinContent(1,0.);
370 fCutsEff->SetBinContent(2,0.);
371 fCutsEff->SetBinContent(3,0.13);
372 fCutsEff->SetBinContent(4,0.11);
373 for(Int_t i=5;i<=16;i++) fCutsEff->SetBinContent(i,0.10);
374 for(Int_t i=17;i<=20;i++) fCutsEff->SetBinContent(i,0.);
375
376 // PID efficiency (from PID/noPID)
377 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
378// for(Int_t i=3;i<=6;i++) fPIDEff->SetBinContent(i,0.10);
379// for(Int_t i=7;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
380 for(Int_t i=3;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
381
382 // MC dN/dpt
383 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
384 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
385 // fMCPtShape->SetBinContent(3,0.04); Not set for peripherals (Raa Vs pt is flat)
386 // fMCPtShape->SetBinContent(4,0.02);
387 for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03);
388
389 // // particle-antiparticle
390 // fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
391 // for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
392
393 return;
394}
395
396//--------------------------------------------------------------------------
397void AliHFSystErr::InitD0toKpi2010ppLowEn() {
398 //
399 // D0->Kpi syst errors. Low energy run
400 // 2011 2.76 TeV pp sample
401 //
402 AliInfo(" Settings for D0 --> K pi, p-p collisions at 2.76 TeV");
403
404 // Normalization
405 fNorm = new TH1F("fNorm","fNorm",20,0,20);
406 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 4% error on sigmaV0and
407
408 // Branching ratio
409 fBR = new TH1F("fBR","fBR",20,0,20);
410 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
411
412 // Tracking efficiency
413 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
414 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10); //10% (5% per track)
415
416 // Raw yield extraction
417 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
418 fRawYield->SetBinContent(1,1);
419 for(Int_t i=1;i<=20;i++) fRawYield->SetBinContent(i,0.15);
420
421 // Cuts efficiency (from cuts variation)
422 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
423 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10); // 10%
424 fCutsEff->SetBinContent(2,0.20);
425 for(Int_t i=7;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
426
427
428 // PID efficiency (from PID/noPID)
429 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
430 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.15); // 10%
431 // fPIDEff->SetBinContent(2,0.20);
432 for(Int_t i=7;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 10%
433
434 // MC dN/dpt
435 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
436 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
437 fMCPtShape->SetBinContent(1,0.03);
438 fMCPtShape->SetBinContent(2,0.03);
439
440// // particle-antiparticle
441// fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
442// fPartAntipart->SetBinContent(1,1);
443// fPartAntipart->SetBinContent(2,1);
444// for(Int_t i=3;i<=6;i++) fPartAntipart->SetBinContent(i,0.08);
445// for(Int_t i=1;i<=20;i++) fPartAntipart->SetBinContent(i,0.);
446
447 return;
448}
449
450//--------------------------------------------------------------------------
451void AliHFSystErr::InitDplustoKpipi2010pp() {
452 //
453 // D+->Kpipi syst errors. Responsible: R. Bala
454 // 2010 pp sample
455 //
456
457
458// Normalization
459 fNorm = new TH1F("fNorm","fNorm",24,0,24);
460 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
461
462 // Branching ratio
463 fBR = new TH1F("fBR","fBR",24,0,24);
464 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
465
466 // Tracking efficiency
467 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
468 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
469
470
471 // Raw yield extraction
472 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
473 fRawYield->SetBinContent(1,1);
474 fRawYield->SetBinContent(2,0.25);
475 fRawYield->SetBinContent(3,0.25);
476 fRawYield->SetBinContent(4,0.20);
477 fRawYield->SetBinContent(5,0.09);
478 fRawYield->SetBinContent(6,0.09);
479 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
480 for(Int_t i=12;i<=24;i++) fRawYield->SetBinContent(i,0.10);
481
482 // Cuts efficiency (from cuts variation)
483 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
484 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
485
486 // PID efficiency (from PID/noPID)
487 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
488 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 5%
489 fPIDEff->SetBinContent(1,0.15); // 15%
490 fPIDEff->SetBinContent(2,0.15); // 15%
491 fPIDEff->SetBinContent(3,0.15); // 15%
492 fPIDEff->SetBinContent(4,0.15); // 15%
493 for(Int_t i=12;i<=16;i++) fPIDEff->SetBinContent(i,0.10); // 5%
494
495 // MC dN/dpt
496 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
497 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
498 fMCPtShape->SetBinContent(1,0.03);
499 fMCPtShape->SetBinContent(2,0.03);
500
501
502 // particle-antiparticle
503 /*
504 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
505 fPartAntipart->SetBinContent(1,1);
506 fPartAntipart->SetBinContent(2,1);
507 fPartAntipart->SetBinContent(3,0.12);
508 for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
509 */
510 return;
511}
512
513//--------------------------------------------------------------------------
514void AliHFSystErr::InitDstoKKpi2010pp() {
515 //
516 // D+s->KKpi syst errors. Responsible: G.M. Innocenti
517 // 2010 pp sample
518 //
519
520
521// Normalization
522 fNorm = new TH1F("fNorm","fNorm",12,0,12);
523 for(Int_t i=1;i<=12;i++) fNorm->SetBinContent(i,0.035); // 3.5% error on sigmaV0and
524
525 // Branching ratio
526 fBR = new TH1F("fBR","fBR",12,0,12);
527 for(Int_t i=1;i<=12;i++) fBR->SetBinContent(i,0.06); // 0.14/2.32 PDG2010
528
529 // Tracking efficiency
530 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",12,0,12);
531 for(Int_t i=1;i<=12;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
532
533
534 // Raw yield extraction
535 fRawYield = new TH1F("fRawYield","fRawYield",12,0,12);
536 fRawYield->SetBinContent(1,1);
537 fRawYield->SetBinContent(2,1);
538 fRawYield->SetBinContent(3,0.20);
539 fRawYield->SetBinContent(4,0.20);
540 fRawYield->SetBinContent(5,0.15);
541 fRawYield->SetBinContent(6,0.15);
542 fRawYield->SetBinContent(7,0.15);
543 fRawYield->SetBinContent(8,0.15);
544 fRawYield->SetBinContent(9,0.20);
545 fRawYield->SetBinContent(10,0.20);
546 fRawYield->SetBinContent(11,0.20);
547 fRawYield->SetBinContent(12,0.20);
548
549 // Cuts efficiency (from cuts variation)
550 fCutsEff = new TH1F("fCutsEff","fCutsEff",12,0,12);
551 for(Int_t i=1;i<=12;i++) fCutsEff->SetBinContent(i,0.15); // 15%
552
553 // PID efficiency (from PID/noPID)
554 fPIDEff = new TH1F("fPIDEff","fPIDEff",12,0,12);
555 for(Int_t i=1;i<=12;i++) fPIDEff->SetBinContent(i,0.07); // 7%
556
557 // MC dN/dpt
558 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
559 for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
560 for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
561 for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
562 for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
563 for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
564
565
566 // particle-antiparticle
567 /*
568 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",12,0,12);
569 fPartAntipart->SetBinContent(1,1);
570 fPartAntipart->SetBinContent(2,1);
571 fPartAntipart->SetBinContent(3,0.12);
572 for(Int_t i=4;i<=12;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
573 */
574 return;
575}
576
577
578//--------------------------------------------------------------------------
579void AliHFSystErr::InitDplustoKpipi2011PbPb07half() {
580 //
581 // D+->Kpipi syst errors. Responsible: E. Bruna
582 // 2011 PbPb sample, 0-7.5% CC
583 //
584
585 // Normalization
586 fNorm = new TH1F("fNorm","fNorm",36,0,36);
587 for(Int_t i=1;i<=36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
588
589 // Branching ratio
590 fBR = new TH1F("fBR","fBR",36,0,36);
591 for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
592
593 // Tracking efficiency
594 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);
595 for(Int_t i=1;i<=36;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
596
597 // Raw yield extraction
598 fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
599 for(Int_t i=1;i<=36;i++) fRawYield->SetBinContent(i,.10); //5 to 10%
600 fRawYield->SetBinContent(4,0.30);
601 fRawYield->SetBinContent(5,0.20);
602 fRawYield->SetBinContent(6,0.20);
603 for(Int_t i=7; i<=8; i++) fRawYield->SetBinContent(i,0.10);
604 for(Int_t i=9; i<=12; i++) fRawYield->SetBinContent(i,0.08);
605 for(Int_t i=13; i<=16; i++) fRawYield->SetBinContent(i,0.05);
606 for(Int_t i=17; i<=24; i++) fRawYield->SetBinContent(i,0.08);
607 for(Int_t i=25; i<=36; i++) fRawYield->SetBinContent(i,0.20);
608
609
610 // Cuts efficiency (from cuts variation)
611 fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
612 for(Int_t i=1; i<=12; i++) fCutsEff->SetBinContent(i,0.10);
613 for(Int_t i=13; i<=36; i++) fCutsEff->SetBinContent(i,0.08);
614
615
616 // PID efficiency (from PID/noPID)
617 fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
618 for(Int_t i=1;i<=36;i++) fPIDEff->SetBinContent(i,0.05); // 5%
619
620 // MC dN/dpt (24/7/2012)
621 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
622 for(Int_t iBin=1; iBin<=5; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
623 for(Int_t iBin=6; iBin<=36; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
624 // for(Int_t iBin=13; iBin<=36; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
625
626
627 // particle-antiparticle
628 /*
629 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
630 fPartAntipart->SetBinContent(1,1);
631 fPartAntipart->SetBinContent(2,1);
632 fPartAntipart->SetBinContent(3,0.12);
633 for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
634 */
635
636 return;
637}
638
639//--------------------------------------------------------------------------
640void AliHFSystErr::InitDstoKKpi2011PbPb07half() {
641 //
642 // D+s->Kpipi syst errors. Responsible: G.M. Innocenti
643 // 2011 PbPb sample, 0-7.5% CC
644 //
645
646 // Normalization
647 fNorm = new TH1F("fNorm","fNorm",12,0,12);
648 for(Int_t i=1;i<=12;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
649
650 // Branching ratio
651 fBR = new TH1F("fBR","fBR",12,0,12);
652 for(Int_t i=1;i<=12;i++) fBR->SetBinContent(i,0.053); // 0.12/2.28 PDG2012
653
654 // Tracking efficiency
655 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",12,0,12);
656 for(Int_t i=1;i<=12;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
657
658 // Raw yield extraction
659 fRawYield = new TH1F("fRawYield","fRawYield",12,0,12);
660 for(Int_t i=1;i<=6;i++) fRawYield->SetBinContent(i,.30);
661 for(Int_t i=7; i<=12; i++) fRawYield->SetBinContent(i,0.20);
662
663
664
665 // Cuts efficiency (from cuts variation)
666 fCutsEff = new TH1F("fCutsEff","fCutsEff",12,0,12);
667 for(Int_t i=1;i<=12;i++) fCutsEff->SetBinContent(i,0.20); // 20%
668
669 // PID efficiency (from PID/noPID)
670 fPIDEff = new TH1F("fPIDEff","fPIDEff",12,0,12);
671 for(Int_t i=1;i<=12;i++) fPIDEff->SetBinContent(i,0.1); // 10%
672
673 // MC dN/dpt
674 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
675 for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
676 for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
677 for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
678 for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
679 for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
680
681 // particle-antiparticle
682 /*
683 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",12,0,12);
684 fPartAntipart->SetBinContent(1,1);
685 fPartAntipart->SetBinContent(2,1);
686 fPartAntipart->SetBinContent(3,0.12);
687 for(Int_t i=4;i<=12;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
688 */
689
690 return;
691}
692
693//--------------------------------------------------------------------------
694void AliHFSystErr::InitDplustoKpipi2010PbPb020() {
695 //
696 // D+->Kpipi syst errors. Responsible: ??
697 // 2010 PbPb sample, 0-20 CC
698 //
699
700 // Normalization
701 fNorm = new TH1F("fNorm","fNorm",20,0,20);
702 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
703
704 // Branching ratio
705 fBR = new TH1F("fBR","fBR",20,0,20);
706 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
707
708 // Tracking efficiency
709 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
710 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
711
712 // Raw yield extraction
713 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
714 for(Int_t i=1;i<=20;i++) fRawYield->SetBinContent(i,.10); //5 to 10%
715 // fRawYield->SetBinContent(5,0.23);
716 //fRawYield->SetBinContent(6,0.23);
717 fRawYield->SetBinContent(7,0.20);
718 fRawYield->SetBinContent(8,0.20);
719 fRawYield->SetBinContent(9,0.15);
720 fRawYield->SetBinContent(10,0.15);
721 fRawYield->SetBinContent(11,0.15);
722 fRawYield->SetBinContent(12,0.15);
723
724 // Cuts efficiency (from cuts variation)
725 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
726 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
727
728 // PID efficiency (from PID/noPID)
729 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
730 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
731
732 // MC dN/dpt (2/2/2012)
733 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
734 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.);
735 for(Int_t iBin=7; iBin<=8; iBin++) fMCPtShape->SetBinContent(iBin,0.01);
736 for(Int_t iBin=9; iBin<=12; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
737 for(Int_t iBin=13; iBin<=16; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
738
739
740 // particle-antiparticle
741 /*
742 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
743 fPartAntipart->SetBinContent(1,1);
744 fPartAntipart->SetBinContent(2,1);
745 fPartAntipart->SetBinContent(3,0.12);
746 for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
747 */
748
749 return;
750}
751
752//--------------------------------------------------------------------------
753void AliHFSystErr::InitDplustoKpipi2010PbPb4080() {
754 //
755 // D+->Kpipi syst errors. Responsible: ??
756 // 2010 PbPb sample, 40-80 CC
757 //
758
759
760 // Normalization
761 fNorm = new TH1F("fNorm","fNorm",20,0,20);
762 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
763
764 // Branching ratio
765 fBR = new TH1F("fBR","fBR",20,0,20);
766 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1%
767
768 // Tracking efficiency
769 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
770 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
771
772
773 // Raw yield extraction
774 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
775 fRawYield->SetBinContent(1,1);
776 fRawYield->SetBinContent(2,1);
777 fRawYield->SetBinContent(3,1);
778 fRawYield->SetBinContent(4,0.15);
779 fRawYield->SetBinContent(5,0.05);
780 fRawYield->SetBinContent(6,0.05);
781 fRawYield->SetBinContent(7,0.15);
782 fRawYield->SetBinContent(8,0.15);
783 for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.15);
784 for(Int_t i=13;i<=20;i++) fRawYield->SetBinContent(i,1); //5 to 10%
785
786 // Cuts efficiency (from cuts variation)
787 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
788 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10); // 10%
789
790 // PID efficiency (from PID/noPID)
791 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
792 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
793 fPIDEff->SetBinContent(3,0.13); // 13%
794
795
796 // MC dN/dpt (2/2/2012)
797 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
798 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0);
799 for(Int_t iBin=4; iBin<=8; iBin++) fMCPtShape->SetBinContent(iBin,0.01);
800 for(Int_t iBin=9; iBin<=12; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
801 for(Int_t iBin=13; iBin<=16; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
802
803
804 // particle-antiparticle
805 /*
806 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
807 fPartAntipart->SetBinContent(1,1);
808 fPartAntipart->SetBinContent(2,1);
809 fPartAntipart->SetBinContent(3,0.12);
810 for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
811 */
812 return;
813}
814
815//--------------------------------------------------------------------------
816void AliHFSystErr::InitDplustoKpipi2010ppLowEn() {
817
818 //
819 // D+->Kpipi syst errors. Responsible: R. Bala
820 // 2011 2.76 TeV pp sample
821 //
822 AliInfo(" Settings for D+ --> K pi pi p-p collisions at 2.76 TeV");
823
824 // Normalization
825 fNorm = new TH1F("fNorm","fNorm",20,0,20);
826 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 10% error on sigmaV0and
827
828 // Branching ratio
829 fBR = new TH1F("fBR","fBR",20,0,20);
830 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
831
832 // Tracking efficiency
833 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
834 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // 3% (1% per track)
835
836 // Raw yield extraction
837 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
838 fRawYield->SetBinContent(1,1);
839 fRawYield->SetBinContent(2,1);
840 for(Int_t i=3;i<=6;i++) fRawYield->SetBinContent(i,0.10); //5 to 10%
841 fRawYield->SetBinContent(7,0.15);
842 fRawYield->SetBinContent(8,0.15);
843 for(Int_t i=9;i<=20;i++) fRawYield->SetBinContent(i,0.055); //5 to 10%
844
845 // Cuts efficiency (from cuts variation)
846 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
847 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
848
849 // PID efficiency (from PID/noPID)
850 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
851 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
852 fPIDEff->SetBinContent(3,0.10); // 13%
853 fPIDEff->SetBinContent(4,0.10); // 13%
854
855 // MC dN/dpt (copied from D0 : will update later)
856 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
857 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
858 fMCPtShape->SetBinContent(1,0.03);
859 fMCPtShape->SetBinContent(2,0.03);
860
861 return;
862}
863
864//--------------------------------------------------------------------------
865void AliHFSystErr::InitDstartoD0pi2010pp() {
866 //
867 // D*+->D0pi syst errors. Responsible: A. Grelli, Y. Wang
868 // 2010 pp sample
869 //
870
871 // Normalization
872 fNorm = new TH1F("fNorm","fNorm",24,0,24);
873 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
874
875 // Branching ratio
876 fBR = new TH1F("fBR","fBR",24,0,24);
877 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
878
879 // Tracking efficiency
880 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
881 fTrackingEff->SetBinContent(1,1.0);
882 fTrackingEff->SetBinContent(2,0.13); // 10% (ITSsa) \oplus 8% (4% per ITSTPC track)
883 fTrackingEff->SetBinContent(3,0.12);
884 fTrackingEff->SetBinContent(3,0.12);
885 for(Int_t i=4;i<=24;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
886
887
888 // Raw yield extraction
889 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
890 fRawYield->SetBinContent(1,1.0);
891 fRawYield->SetBinContent(2,0.10);
892 fRawYield->SetBinContent(3,0.04);
893 fRawYield->SetBinContent(4,0.03);
894 fRawYield->SetBinContent(5,0.03);
895 fRawYield->SetBinContent(6,0.05);
896 fRawYield->SetBinContent(7,0.05);
897 fRawYield->SetBinContent(8,0.05);
898 for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.04); //4%
899 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.09); //4%
900 for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,0.2); //4%
901
902 // Cuts efficiency (from cuts variation)
903 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
904 fCutsEff->SetBinContent(2,0.22);
905 for(Int_t i=3;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
906
907 // PID efficiency (from PID/noPID)
908 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
909 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.04); // 3%
910
911
912 // MC dN/dpt (copied from D0 : will update later)
913 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
914 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
915 fMCPtShape->SetBinContent(1,0.03);
916 fMCPtShape->SetBinContent(2,0.03);
917
918 return;
919
920
921}
922//--------------------------------------------------------------------------
923void AliHFSystErr::InitDstartoD0pi2010ppLowEn() {
924
925 //
926 // D+->Kpipi syst errors. Responsible: A. Grelli
927 // 2011 2.76 TeV pp sample
928 //
929 AliInfo(" Settings for D*+ --> D0 pi p-p collisions at 2.76 TeV");
930
931// Normalization
932 fNorm = new TH1F("fNorm","fNorm",20,0,20);
933 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 10% error on sigmaV0and
934
935 // Branching ratio
936 fBR = new TH1F("fBR","fBR",20,0,20);
937 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
938
939 // Tracking efficiency
940 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
941 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); //10% (to be checked!!)
942
943 // Raw yield extraction
944 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
945 fRawYield->SetBinContent(1,1);
946 fRawYield->SetBinContent(2,1);
947 fRawYield->SetBinContent(3,0.14);
948 fRawYield->SetBinContent(4,0.14);
949 fRawYield->SetBinContent(5,0.12);
950 fRawYield->SetBinContent(6,0.12);
951 fRawYield->SetBinContent(7,0.06);
952 fRawYield->SetBinContent(8,0.06);
953 fRawYield->SetBinContent(9,0.08);
954 fRawYield->SetBinContent(10,0.08);
955 fRawYield->SetBinContent(11,0.08);
956 fRawYield->SetBinContent(12,0.08);
957 for(Int_t i=9;i<=20;i++) fRawYield->SetBinContent(i,0.065);
958
959 // Cuts efficiency (from cuts variation)
960 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
961 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10);
962 fCutsEff->SetBinContent(3,0.15);
963 fCutsEff->SetBinContent(4,0.15);
964 fCutsEff->SetBinContent(5,0.15);
965 fCutsEff->SetBinContent(6,0.15);
966 fCutsEff->SetBinContent(7,0.10);
967 fCutsEff->SetBinContent(8,0.10);
968 fCutsEff->SetBinContent(9,0.10);
969 fCutsEff->SetBinContent(10,0.10);
970 fCutsEff->SetBinContent(11,0.10);
971 fCutsEff->SetBinContent(12,0.10);
972
973 // PID efficiency (from PID/noPID)
974 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
975 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 10%
976
977 // MC dN/dpt
978 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
979 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
980 fMCPtShape->SetBinContent(1,0.03);
981 fMCPtShape->SetBinContent(2,0.03);
982
983 return;
984}
985
986//------------------------------------------------------------------------
987void AliHFSystErr::InitDstartoD0pi2010PbPb020() {
988 //
989 // D*+->D0pi syst errors. Responsible: A. Grelli
990 // 2010 PbPb sample, 0-20 CC
991 //
992
993 AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 0-20 centrality - DUMMY");
994
995 // Normalization
996 fNorm = new TH1F("fNorm","fNorm",24,0,24);
997 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
998
999 // Branching ratio
1000 fBR = new TH1F("fBR","fBR",24,0,24);
1001 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1002
1003 // Tracking efficiency
1004 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1005 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1006
1007
1008 // Raw yield extraction
1009 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1010 for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.1); //4%
1011 fRawYield->SetBinContent(3,0.2);
1012 fRawYield->SetBinContent(4,0.2);
1013 fRawYield->SetBinContent(5,0.2);
1014 fRawYield->SetBinContent(6,0.2);
1015
1016 // Cuts efficiency (from cuts variation)
1017 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1018 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1019 fCutsEff->SetBinContent(4,0.15);
1020 fCutsEff->SetBinContent(5,0.15);
1021 fCutsEff->SetBinContent(6,0.15);
1022
1023 // PID efficiency (from PID/noPID)
1024 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1025 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1026
1027
1028 // MC dN/dpt (from study on D* pt shape)
1029 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1030 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.045);
1031 fMCPtShape->SetBinContent(4,0.025);
1032 fMCPtShape->SetBinContent(5,0.025);
1033 fMCPtShape->SetBinContent(6,0.025);
1034 fMCPtShape->SetBinContent(7,0.04);
1035 fMCPtShape->SetBinContent(8,0.04);
1036 fMCPtShape->SetBinContent(9,0.03);
1037 fMCPtShape->SetBinContent(10,0.03);
1038 fMCPtShape->SetBinContent(11,0.03);
1039 fMCPtShape->SetBinContent(12,0.03);
1040
1041 return;
1042
1043}
1044// ----------------------------- 2011 ----------------------------------
1045void AliHFSystErr::InitDstartoD0pi2011PbPb07half() {
1046 //
1047 // D*+->D0pi syst errors. Responsible: A. Grelli
1048 // 2011 PbPb sample, 0-7.5 CC
1049 //
1050
1051 AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 0-7.5 centrality - DUMMY");
1052
1053
1054 // Normalization
1055 fNorm = new TH1F("fNorm","fNorm",36,0,36);
1056 for(Int_t i=1;i<=36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
1057
1058 // Branching ratio
1059 fBR = new TH1F("fBR","fBR",36,0,36);
1060 for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1061
1062 // Tracking efficiency
1063 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);;
1064 for(Int_t i=1;i<=36;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1065
1066
1067 // Raw yield extraction
1068 fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
1069 for(Int_t i=1;i<=36;i++) fRawYield->SetBinContent(i,0.05); //4%
1070 fRawYield->SetBinContent(4,0.2);
1071 fRawYield->SetBinContent(5,0.10);
1072 fRawYield->SetBinContent(6,0.10);
1073 fRawYield->SetBinContent(7,0.08);
1074 for(Int_t i=25;i<=36;i++) fRawYield->SetBinContent(i,0.15); //4%
1075
1076 // Cuts efficiency (from cuts variation)
1077 fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
1078 for(Int_t i=1;i<=36;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1079
1080 // PID efficiency (from PID/noPID)
1081 fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
1082 for(Int_t i=1;i<=36;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1083 fPIDEff->SetBinContent(4,0.09);
1084
1085 // MC dN/dpt (from study on D* pt shape)
1086 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
1087 for(Int_t i=1;i<=36;i++) fMCPtShape->SetBinContent(i,0.045);
1088 fMCPtShape->SetBinContent(4,0.025);
1089 fMCPtShape->SetBinContent(5,0.025);
1090 fMCPtShape->SetBinContent(6,0.025);
1091 fMCPtShape->SetBinContent(7,0.04);
1092 fMCPtShape->SetBinContent(8,0.04);
1093 fMCPtShape->SetBinContent(9,0.03);
1094 fMCPtShape->SetBinContent(10,0.03);
1095 fMCPtShape->SetBinContent(11,0.03);
1096 fMCPtShape->SetBinContent(12,0.03);
1097
1098
1099
1100 return;
1101
1102}
1103//-------------------------------------------------------------------------
1104void AliHFSystErr::InitDstartoD0pi2010PbPb2040() {
1105 //
1106 // D*+->D0pi syst errors. Responsible: A. Grelli
1107 // 2010 PbPb sample, 20-40 CC
1108 //
1109
1110 AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 20-40 centrality - DUMMY");
1111
1112 // Normalization
1113 fNorm = new TH1F("fNorm","fNorm",24,0,24);
1114 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.10); // 10% error on sigmaV0and
1115
1116 // Branching ratio
1117 fBR = new TH1F("fBR","fBR",24,0,24);
1118 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1119
1120 // Tracking efficiency
1121 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1122 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1123
1124
1125 // Raw yield extraction
1126 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1127 for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.15); //4%
1128
1129 // Cuts efficiency (from cuts variation)
1130 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1131 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1132
1133 // PID efficiency (from PID/noPID)
1134 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1135 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.04); // 3%
1136
1137
1138 // MC dN/dpt (copied from D0 : will update later)
1139 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1140 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.);
1141 fMCPtShape->SetBinContent(1,0.03);
1142 fMCPtShape->SetBinContent(2,0.03);
1143
1144 return;
1145
1146}
1147
1148//--------------------------------------------------------------------------
1149void AliHFSystErr::InitDstartoD0pi2010PbPb4080() {
1150 //
1151 // D*+->D0pi syst errors. Responsible: A. Grelli
1152 // 2010 PbPb sample, 40-80 CC
1153 //
1154
1155 AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 40-80 centrality - DUMMY");
1156
1157 // Normalization
1158 fNorm = new TH1F("fNorm","fNorm",24,0,24);
1159 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
1160
1161 // Branching ratio
1162 fBR = new TH1F("fBR","fBR",24,0,24);
1163 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1164
1165 // Tracking efficiency
1166 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1167 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1168
1169
1170 // Raw yield extraction
1171 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1172 for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.2); //4%
1173 fRawYield->SetBinContent(1,1);
1174 fRawYield->SetBinContent(2,0.15);
1175 fRawYield->SetBinContent(3,0.15);
1176 fRawYield->SetBinContent(4,0.15);
1177 fRawYield->SetBinContent(5,0.15);
1178 fRawYield->SetBinContent(6,0.10);
1179 fRawYield->SetBinContent(7,0.10);
1180 fRawYield->SetBinContent(8,0.10);
1181 fRawYield->SetBinContent(9,0.11);
1182 fRawYield->SetBinContent(10,0.11);
1183 fRawYield->SetBinContent(11,0.11);
1184 fRawYield->SetBinContent(12,0.11);
1185 fRawYield->SetBinContent(13,0.08);
1186 fRawYield->SetBinContent(14,0.08);
1187 fRawYield->SetBinContent(15,0.08);
1188 fRawYield->SetBinContent(16,0.08);
1189
1190
1191 // Cuts efficiency (from cuts variation)
1192 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1193 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1194
1195 // PID efficiency (from PID/noPID)
1196 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1197 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1198
1199
1200 // MC dN/dpt (copied from D0 : will update later)
1201 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1202 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.01);
1203 fMCPtShape->SetBinContent(2,0.05);
1204 fMCPtShape->SetBinContent(3,0.05);
1205 fMCPtShape->SetBinContent(4,0.05);
1206 fMCPtShape->SetBinContent(5,0.04);
1207 fMCPtShape->SetBinContent(6,0.02);
1208 fMCPtShape->SetBinContent(7,0.04);
1209 fMCPtShape->SetBinContent(8,0.04);
1210
1211 return;
1212
1213}
1214
1215//--------------------------------------------------------------------------
1216void AliHFSystErr::InitD0toKpi2010PbPb010CentScan(){
1217 // define errors for RAA vs. centrality
1218 InitD0toKpi2010PbPb020();
1219 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1220 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.17);
1221 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1222}
1223//--------------------------------------------------------------------------
1224void AliHFSystErr::InitD0toKpi2010PbPb1020CentScan(){
1225 // define errors for RAA vs. centrality
1226 InitD0toKpi2010PbPb020();
1227 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1228 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.17);
1229 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1230}
1231//--------------------------------------------------------------------------
1232void AliHFSystErr::InitD0toKpi2010PbPb2040CentScan(){
1233 // define errors for RAA vs. centrality
1234 InitD0toKpi2010PbPb4080();
1235 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1236 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.14);
1237 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1238}
1239//--------------------------------------------------------------------------
1240void AliHFSystErr::InitD0toKpi2010PbPb4060CentScan(){
1241 // define errors for RAA vs. centrality
1242 InitD0toKpi2010PbPb4080();
1243 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.06);
1244 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.11);
1245 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1246}
1247//--------------------------------------------------------------------------
1248void AliHFSystErr::InitD0toKpi2010PbPb6080CentScan(){
1249 // define errors for RAA vs. centrality
1250 InitD0toKpi2010PbPb4080();
1251 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1252 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.08);
1253 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1254}
1255//--------------------------------------------------------------------------
1256void AliHFSystErr::InitDplustoKpipi2010PbPb010CentScan(){
1257 // define errors for RAA vs. centrality
1258 InitDplustoKpipi2010PbPb020();
1259 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.18);
1260 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.09);
1261
1262}
1263//--------------------------------------------------------------------------
1264void AliHFSystErr::InitDplustoKpipi2010PbPb1020CentScan(){
1265 // define errors for RAA vs. centrality
1266 InitDplustoKpipi2010PbPb020();
1267 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.23);
1268 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1269}
1270//--------------------------------------------------------------------------
1271void AliHFSystErr::InitDplustoKpipi2010PbPb2040CentScan(){
1272 // define errors for RAA vs. centrality
1273 InitDplustoKpipi2010PbPb020();
1274 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1275 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.095);
1276}
1277//--------------------------------------------------------------------------
1278void AliHFSystErr::InitDplustoKpipi2010PbPb4060CentScan(){
1279 // define errors for RAA vs. centrality
1280 InitDplustoKpipi2010PbPb4080();
1281 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1282 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1283}
1284//--------------------------------------------------------------------------
1285void AliHFSystErr::InitDplustoKpipi2010PbPb6080CentScan(){
1286 // define errors for RAA vs. centrality
1287 InitDplustoKpipi2010PbPb4080();
1288 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.15);
1289 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.07);
1290}
1291
1292//--------------------------------------------------------------------------
1293void AliHFSystErr::InitDstartoD0pi2010PbPb010CentScan(){
1294 // define errors for RAA vs. centrality
1295 InitDstartoD0pi2010PbPb020();
1296 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.16);
1297 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.15);
1298}
1299//--------------------------------------------------------------------------
1300void AliHFSystErr::InitDstartoD0pi2010PbPb1020CentScan(){
1301 // define errors for RAA vs. centrality
1302 InitDstartoD0pi2010PbPb020();
1303 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1304 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.15);
1305}
1306//--------------------------------------------------------------------------
1307void AliHFSystErr::InitDstartoD0pi2010PbPb2040CentScan(){
1308 // define errors for RAA vs. centrality
1309 InitDstartoD0pi2010PbPb2040();
1310 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10);
1311 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1312}
1313//--------------------------------------------------------------------------
1314void AliHFSystErr::InitDstartoD0pi2010PbPb4060CentScan(){
1315 // define errors for RAA vs. centrality
1316 InitDstartoD0pi2010PbPb4080();
1317 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10);
1318 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.045);
1319}
1320//--------------------------------------------------------------------------
1321void AliHFSystErr::InitDstartoD0pi2010PbPb6080CentScan(){
1322 // define errors for RAA vs. centrality
1323 InitDstartoD0pi2010PbPb4080();
1324 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10);
1325 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.045);
1326}
1327
1328
1329//--------------------------------------------------------------------------
1330Double_t AliHFSystErr::GetCutsEffErr(Double_t pt) const {
1331 //
1332 // Get error
1333 //
1334
1335 Int_t bin=fCutsEff->FindBin(pt);
1336
1337 return fCutsEff->GetBinContent(bin);
1338}
1339//--------------------------------------------------------------------------
1340Double_t AliHFSystErr::GetMCPtShapeErr(Double_t pt) const {
1341 //
1342 // Get error
1343 //
1344
1345 Int_t bin=fMCPtShape->FindBin(pt);
1346
1347 return fMCPtShape->GetBinContent(bin);
1348}
1349//--------------------------------------------------------------------------
1350Double_t AliHFSystErr::GetSeleEffErr(Double_t pt) const {
1351 //
1352 // Get error
1353 //
1354
1355 Double_t err=GetCutsEffErr(pt)*GetCutsEffErr(pt)+GetMCPtShapeErr(pt)*GetMCPtShapeErr(pt);
1356
1357 return TMath::Sqrt(err);
1358}
1359//--------------------------------------------------------------------------
1360Double_t AliHFSystErr::GetPIDEffErr(Double_t pt) const {
1361 //
1362 // Get error
1363 //
1364
1365 Int_t bin=fPIDEff->FindBin(pt);
1366
1367 return fPIDEff->GetBinContent(bin);
1368}
1369//--------------------------------------------------------------------------
1370Double_t AliHFSystErr::GetTrackingEffErr(Double_t pt) const {
1371 //
1372 // Get error
1373 //
1374
1375 Int_t bin=fTrackingEff->FindBin(pt);
1376
1377 return fTrackingEff->GetBinContent(bin);
1378}
1379//--------------------------------------------------------------------------
1380Double_t AliHFSystErr::GetRawYieldErr(Double_t pt) const {
1381 //
1382 // Get error
1383 //
1384
1385 Int_t bin=fRawYield->FindBin(pt);
1386
1387 return fRawYield->GetBinContent(bin);
1388}
1389//--------------------------------------------------------------------------
1390Double_t AliHFSystErr::GetPartAntipartErr(Double_t pt) const {
1391 //
1392 // Get error
1393 //
1394
1395 Int_t bin=fPartAntipart->FindBin(pt);
1396
1397 return fPartAntipart->GetBinContent(bin);
1398}
1399//--------------------------------------------------------------------------
1400Double_t AliHFSystErr::GetTotalSystErr(Double_t pt,Double_t feeddownErr) const {
1401 //
1402 // Get total syst error (except norm. error)
1403 //
1404
1405 Double_t err=0.;
1406
1407 if(fRawYield) err += GetRawYieldErr(pt)*GetRawYieldErr(pt);
1408 if(fTrackingEff) err += GetTrackingEffErr(pt)*GetTrackingEffErr(pt);
1409 // if(fBR) err += GetBRErr()*GetBRErr();
1410 if(fCutsEff) err += GetCutsEffErr(pt)*GetCutsEffErr(pt);
1411 if(fPIDEff) err += GetPIDEffErr(pt)*GetPIDEffErr(pt);
1412 if(fMCPtShape) err += GetMCPtShapeErr(pt)*GetMCPtShapeErr(pt);
1413 if(fPartAntipart) err += GetPartAntipartErr(pt)*GetPartAntipartErr(pt);
1414
1415 err += feeddownErr*feeddownErr;
1416
1417 return TMath::Sqrt(err);
1418}
1419//---------------------------------------------------------------------------
1420void AliHFSystErr::DrawErrors(TGraphAsymmErrors *grErrFeeddown) const {
1421 //
1422 // Draw errors
1423 //
1424 gStyle->SetOptStat(0);
1425
1426 TCanvas *cSystErr = new TCanvas("cSystErr","Systematic Errors",300,80,640,500);
1427 cSystErr->Range(0.20,-0.5,18.4,0.34);
1428 cSystErr->SetRightMargin(0.318);
1429 cSystErr->SetFillColor(0);
1430
1431 TH2F *hFrame = new TH2F("hFrame","Systematic errors; p_{t} (GeV/c); Relative Error",40,0,40,100,-1,+1);
1432 hFrame->SetAxisRange(1.,35.9,"X");
1433 hFrame->SetAxisRange(-0.5,0.5,"Y");
1434 hFrame->Draw();
1435
1436 TLegend *leg = new TLegend(0.69,0.44,0.98,0.86,NULL,"brNDC");
1437 leg->SetTextSize(0.03601695);
1438 leg->SetFillStyle(0);
1439 leg->SetBorderSize(0);
1440
1441 TH1F *hTotErr=new TH1F("hTotErr","",36,0,36);
1442 Int_t nbins = fNorm->GetNbinsX();
1443 TGraphAsymmErrors *gTotErr = new TGraphAsymmErrors(nbins);
1444 for(Int_t i=1;i<=36;i++) {
1445 Double_t pt = hTotErr->GetBinCenter(i);
1446 Double_t ptwidth = hTotErr->GetBinWidth(i);
1447
1448 if(grErrFeeddown) {
1449 Double_t x=0., y=0., errxl=0., errxh=0., erryl=0., erryh=0.;
1450 Double_t toterryl=0., toterryh=0.;
1451 for(Int_t j=0; j<grErrFeeddown->GetN(); j++) {
1452 grErrFeeddown->GetPoint(j,x,y);
1453 errxh = grErrFeeddown->GetErrorXhigh(j);
1454 errxl = grErrFeeddown->GetErrorXlow(j);
1455 if ( ( (x-errxl) <= pt) && ( (x+errxl) >= pt) ) {
1456 erryh = grErrFeeddown->GetErrorYhigh(j);
1457 erryl = grErrFeeddown->GetErrorYlow(j);
1458 }
1459 }
1460 if (erryl>=1e-3) toterryl = GetTotalSystErr(pt,erryl);
1461 else toterryl = GetTotalSystErr(pt);
1462 if (erryh>=1e-3) toterryh = GetTotalSystErr(pt,erryh);
1463 else toterryh = GetTotalSystErr(pt);
1464
1465 hTotErr->SetBinContent(i,toterryh);
1466 gTotErr->SetPoint(i,pt,0.);
1467 gTotErr->SetPointError(i,ptwidth/2.,ptwidth/2.,toterryl,toterryh); // i, exl, exh, eyl, eyh
1468 }
1469 else {
1470 hTotErr->SetBinContent(i,GetTotalSystErr(pt));
1471 gTotErr->SetPoint(i,pt,0.);
1472 gTotErr->SetPointError(i,ptwidth/2.,ptwidth/2.,GetTotalSystErr(pt),GetTotalSystErr(pt)); // i, exl, exh, eyl, eyh
1473 }
1474
1475 }
1476 gTotErr->SetLineColor(kBlack);
1477 gTotErr->SetFillColor(kRed);
1478 gTotErr->SetFillStyle(3002);
1479 gTotErr->Draw("2");
1480 leg->AddEntry(gTotErr,"Total (excl. norm.)","f");
1481// hTotErr->SetLineColor(1);
1482// hTotErr->SetLineWidth(3);
1483// hTotErr->Draw("same");
1484// leg->AddEntry(hTotErr,"Total (excl. norm.)","l");
1485
1486
1487 fNorm->SetFillColor(1);
1488 fNorm->SetFillStyle(3002);
1489 //fNorm->Draw("same");
1490 //TH1F *hNormRefl = ReflectHisto(fNorm);
1491 //hNormRefl->Draw("same");
1492 Double_t norm = fNorm->GetBinContent(1)*100;
1493 leg->AddEntry(fNorm,Form("Normalization (%.1f%s)",norm,"%"),"");
1494
1495 if(grErrFeeddown) {
1496 grErrFeeddown->SetFillColor(kTeal-8);
1497 grErrFeeddown->SetFillStyle(3001);
1498 grErrFeeddown->Draw("2");
1499 leg->AddEntry(grErrFeeddown,"Feed-down from B","f");
1500 }
1501 if(fTrackingEff) {
1502 fTrackingEff->SetFillColor(4);
1503 fTrackingEff->SetFillStyle(3006);
1504 fTrackingEff->Draw("same");
1505 TH1F *hTrackingEffRefl = ReflectHisto(fTrackingEff);
1506 hTrackingEffRefl->Draw("same");
1507 leg->AddEntry(fTrackingEff,"Tracking efficiency","f");
1508 }
1509 if(fBR) {
1510 fBR->SetFillColor(6);
1511 fBR->SetFillStyle(3005);
1512 //fBR->SetFillStyle(3020);
1513 fBR->Draw("same");
1514 TH1F *hBRRefl = ReflectHisto(fBR);
1515 hBRRefl->Draw("same");
1516 leg->AddEntry(fBR,"Branching ratio","f");
1517 }
1518 if(fRawYield) {
1519 Int_t ci; // for color index setting
1520 ci = TColor::GetColor("#00cc00");
1521 fRawYield->SetLineColor(ci);
1522 // fRawYield->SetLineColor(3);
1523 fRawYield->SetLineWidth(3);
1524 fRawYield->Draw("same");
1525 TH1F *hRawYieldRefl = ReflectHisto(fRawYield);
1526 hRawYieldRefl->Draw("same");
1527 leg->AddEntry(fRawYield,"Yield extraction","l");
1528 }
1529 if(fCutsEff) {
1530 fCutsEff->SetLineColor(4);
1531 fCutsEff->SetLineWidth(3);
1532 fCutsEff->Draw("same");
1533 TH1F *hCutsEffRefl = ReflectHisto(fCutsEff);
1534 hCutsEffRefl->Draw("same");
1535 leg->AddEntry(fCutsEff,"Cuts efficiency","l");
1536 }
1537 if(fPIDEff) {
1538 fPIDEff->SetLineColor(7);
1539 fPIDEff->SetLineWidth(3);
1540 fPIDEff->Draw("same");
1541 TH1F *hPIDEffRefl = ReflectHisto(fPIDEff);
1542 hPIDEffRefl->Draw("same");
1543 leg->AddEntry(fPIDEff,"PID efficiency","l");
1544 }
1545 if(fMCPtShape) {
1546 Int_t ci = TColor::GetColor("#9933ff");
1547 fMCPtShape->SetLineColor(ci);
1548 // fMCPtShape->SetLineColor(8);
1549 fMCPtShape->SetLineWidth(3);
1550 fMCPtShape->Draw("same");
1551 TH1F *hMCPtShapeRefl = ReflectHisto(fMCPtShape);
1552 hMCPtShapeRefl->Draw("same");
1553 leg->AddEntry(fMCPtShape,"MC p_{t} shape","l");
1554 }
1555 if(fPartAntipart) {
1556 Int_t ci = TColor::GetColor("#ff6600");
1557 fPartAntipart->SetLineColor(ci);
1558 // fPartAntipart->SetLineColor(9);
1559 fPartAntipart->SetLineWidth(3);
1560 fPartAntipart->Draw("same");
1561 TH1F *hPartAntipartRefl = ReflectHisto(fPartAntipart);
1562 hPartAntipartRefl->Draw("same");
1563 leg->AddEntry(fPartAntipart,"D = #bar{D}","l");
1564 }
1565
1566
1567 leg->Draw();
1568
1569 cSystErr->SaveAs("RelativeSystematics.eps");
1570
1571 return;
1572}
1573//-------------------------------------------------------------------------
1574TH1F* AliHFSystErr::ReflectHisto(TH1F *hin) const {
1575 //
1576 // Clones and reflects histogram
1577 //
1578 TH1F *hout=(TH1F*)hin->Clone("hout");
1579 hout->Scale(-1.);
1580
1581 return hout;
1582}
1583
1584
1585