2 /**************************************************************************
3 * Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
5 * Author: The ALICE Off-line Project. *
6 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
19 /////////////////////////////////////////////////////////////
21 // Class to handle systematic errors for charm hadrons
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
32 // Author: A.Dainese, andrea.dainese@pd.infn.it
33 /////////////////////////////////////////////////////////////
36 #include <TGraphAsymmErrors.h>
44 #include "AliHFSystErr.h"
47 ClassImp(AliHFSystErr)
49 //--------------------------------------------------------------------------
50 AliHFSystErr::AliHFSystErr(const Char_t* name, const Char_t* title) :
62 fCentralityClass("0100"),
67 // Default Constructor
71 //--------------------------------------------------------------------------
72 AliHFSystErr::~AliHFSystErr() {
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; }
89 //--------------------------------------------------------------------------
90 void AliHFSystErr::Init(Int_t decay){
92 // Variables/histos initialization
95 if (fRunNumber!=10 && fIsLowEnergy==false) {
96 AliFatal("Only settings for 2010 and the low energy runs are implemented so far");
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=="3050InPlane") InitD0toKpi2011PbPb3050InPlane();
111 else if (fCentralityClass=="3050OutOfPlane") InitD0toKpi2011PbPb3050OutOfPlane();
112 else if (fCentralityClass=="4060") InitD0toKpi2010PbPb4060CentScan();
113 else if (fCentralityClass=="6080") InitD0toKpi2010PbPb6080CentScan();
114 else if (fCentralityClass=="4080") InitD0toKpi2010PbPb4080();
115 else AliFatal("Not yet implemented");
117 // else if (fCollisionType==2) InitD0toKpi2010ppLowEn();
120 if (fCollisionType==0) {
121 if (fIsLowEnergy) InitDplustoKpipi2010ppLowEn();
122 else InitDplustoKpipi2010pp();
123 } else if (fCollisionType==1) {
124 if (fCentralityClass=="07half") InitDplustoKpipi2011PbPb07half();
125 else if (fCentralityClass=="010") InitDplustoKpipi2010PbPb010CentScan();
126 else if (fCentralityClass=="1020") InitDplustoKpipi2010PbPb1020CentScan();
127 else if (fCentralityClass=="020") InitDplustoKpipi2010PbPb020();
128 else if (fCentralityClass=="2040") InitDplustoKpipi2010PbPb2040CentScan();
129 else if (fCentralityClass=="4060") InitDplustoKpipi2010PbPb4060CentScan();
130 else if (fCentralityClass=="6080") InitDplustoKpipi2010PbPb6080CentScan();
131 else if (fCentralityClass=="4080") InitDplustoKpipi2010PbPb4080();
132 else AliFatal("Not yet implemented");
136 if (fCollisionType==0) {
137 if(fIsLowEnergy) InitDstartoD0pi2010ppLowEn();
138 else InitDstartoD0pi2010pp();
139 }else if (fCollisionType==1) {
140 if (fCentralityClass=="010") InitDstartoD0pi2010PbPb010CentScan();
141 else if (fCentralityClass=="07half") InitDstartoD0pi2011PbPb07half();
142 else if (fCentralityClass=="1020") InitDstartoD0pi2010PbPb1020CentScan();
143 else if (fCentralityClass=="020") InitDstartoD0pi2010PbPb020();
144 else if (fCentralityClass=="2040" && fIsCentScan) InitDstartoD0pi2010PbPb2040CentScan();
145 else if (fCentralityClass=="2040") InitDstartoD0pi2010PbPb2040();
146 else if (fCentralityClass=="4060") InitDstartoD0pi2010PbPb4060CentScan();
147 else if (fCentralityClass=="6080") InitDstartoD0pi2010PbPb6080CentScan();
148 else if (fCentralityClass=="4080") InitDstartoD0pi2010PbPb4080();
149 else AliFatal("Not yet implemented");
153 if (fCollisionType==0) InitDstoKKpi2010pp();
154 else if (fCollisionType==1) {
155 if (fCentralityClass=="07half") InitDstoKKpi2011PbPb07half();
156 else AliFatal("Not yet implemented");
158 else AliFatal("Not yet implemented");
162 printf("Invalid decay type: %d\n",decay);
168 //--------------------------------------------------------------------------
169 void AliHFSystErr::InitD0toKpi2010pp() {
171 // D0->Kpi syst errors. Responsible: A. Rossi
176 fNorm = new TH1F("fNorm","fNorm",24,0,24);
177 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
180 fBR = new TH1F("fBR","fBR",24,0,24);
181 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
183 // Tracking efficiency
184 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
185 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.08); // 8% (4% per track)
187 // Raw yield extraction
188 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
189 fRawYield->SetBinContent(1,1);
190 fRawYield->SetBinContent(2,0.22);
191 fRawYield->SetBinContent(3,0.1);
192 for(Int_t i=4;i<=7;i++) fRawYield->SetBinContent(i,0.04);
193 for(Int_t i=8;i<=12;i++) fRawYield->SetBinContent(i,0.07);
194 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
195 for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,1);
197 // Cuts efficiency (from cuts variation)
198 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
199 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
201 // PID efficiency (from PID/noPID)
202 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
203 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.03); // 3%
204 fPIDEff->SetBinContent(2,0.05); // 5%
207 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
208 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
209 fMCPtShape->SetBinContent(1,0.03);
210 fMCPtShape->SetBinContent(2,0.03);
212 // particle-antiparticle
213 // fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",24,0,24);
214 // fPartAntipart->SetBinContent(1,1);
215 // for(Int_t i=2;i<=24;i++) fPartAntipart->SetBinContent(i,0.05);
219 //--------------------------------------------------------------------------
220 void AliHFSystErr::InitD0toKpi2010PbPb020() {
222 // D0->Kpi syst errors. Responsible: A. Rossi
223 // 2010 PbPb sample, 0-20 CC
227 fNorm = new TH1F("fNorm","fNorm",20,0,20);
228 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
231 fBR = new TH1F("fBR","fBR",20,0,20);
232 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
234 // Tracking efficiency
235 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
236 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10);// Jacek, 5% per track
238 // Raw yield extraction
239 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
240 fRawYield->SetBinContent(1,0);
241 fRawYield->SetBinContent(2,0);
242 fRawYield->SetBinContent(3,0.08);
243 for(Int_t i=4;i<=12;i++) fRawYield->SetBinContent(i,0.06);
244 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
246 // Cuts efficiency (from cuts variation)
247 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
248 fCutsEff->SetBinContent(1,0.);
249 fCutsEff->SetBinContent(2,0.);
250 fCutsEff->SetBinContent(3,0.13);
251 fCutsEff->SetBinContent(4,0.11);
252 for(Int_t i=5;i<=16;i++) fCutsEff->SetBinContent(i,0.10);
253 for(Int_t i=17;i<=20;i++) fCutsEff->SetBinContent(i,0.);
255 // PID efficiency (from PID/noPID)
256 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
257 for(Int_t i=3;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
260 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
261 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
262 fMCPtShape->SetBinContent(3,0.04);
263 fMCPtShape->SetBinContent(4,0.02);
264 for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03);
266 // // particle-antiparticle
267 // fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
268 // for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
269 // fPartAntipart->SetBinContent(3,0.10);
270 // fPartAntipart->SetBinContent(4,0.10);
271 // fPartAntipart->SetBinContent(7,0.10);
272 // fPartAntipart->SetBinContent(8,0.10);
276 //--------------------------------------------------------------------------
277 //--------------------------------------------------------------------------
278 void AliHFSystErr::InitD0toKpi2011PbPb07half() {
280 // D0->Kpi syst errors. Responsible: A. Rossi
281 // 2011 PbPb sample, 0-7.5 CC
285 fNorm = new TH1F("fNorm","fNorm",36,0,36);
286 for(Int_t i=1;i<36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
289 fBR = new TH1F("fBR","fBR",36,0,36);
290 for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
292 // Tracking efficiency
293 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);
294 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.10);// Jacek, 5% per track
295 for(Int_t i=25;i<=36;i++) fTrackingEff->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
297 // Raw yield extraction
298 fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
299 fRawYield->SetBinContent(1,0);
300 fRawYield->SetBinContent(2,0.1);
301 fRawYield->SetBinContent(3,0.05);
302 for(Int_t i=4;i<=12;i++) fRawYield->SetBinContent(i,0.05);
303 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
304 for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,0.30);
305 for(Int_t i=25;i<=36;i++) fRawYield->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
307 // Cuts efficiency (from cuts variation)
308 fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
309 fCutsEff->SetBinContent(1,0.);
310 fCutsEff->SetBinContent(2,0.15);
311 fCutsEff->SetBinContent(3,0.13);
312 fCutsEff->SetBinContent(4,0.11);
313 fCutsEff->SetBinContent(5,0.08);
314 for(Int_t i=6;i<=24;i++) fCutsEff->SetBinContent(i,0.06);
315 for(Int_t i=25;i<=36;i++) fCutsEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
317 // PID efficiency (from PID/noPID)
318 fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
319 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05);
320 for(Int_t i=25;i<=36;i++) fPIDEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
323 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
324 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.01);
325 fMCPtShape->SetBinContent(2,0.06);
326 fMCPtShape->SetBinContent(3,0.04);
327 fMCPtShape->SetBinContent(4,0.02);
328 for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03);
329 for(Int_t i=17;i<=24;i++) fMCPtShape->SetBinContent(i,0.05);
330 for(Int_t i=25;i<=36;i++) fMCPtShape->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
332 // // particle-antiparticle
333 // fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",36,0,36);
334 // for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
335 // fPartAntipart->SetBinContent(3,0.10);
336 // fPartAntipart->SetBinContent(4,0.10);
337 // fPartAntipart->SetBinContent(7,0.10);
338 // fPartAntipart->SetBinContent(8,0.10);
343 //--------------------------------------------------------------------------
344 void AliHFSystErr::InitD0toKpi2011PbPb3050InPlane() {
346 // D0->Kpi syst errors. Responsible: D. Caffarri
347 // 2011 PbPb sample, 30-50 CC InPlane
349 InitD0toKpi2011PbPb07half();
350 // Raw yield extraction
351 // fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
352 fRawYield->SetBinContent(1,0);
353 fRawYield->SetBinContent(2,0);
354 fRawYield->SetBinContent(3,0.05);
355 fRawYield->SetBinContent(4,0.08);
356 for(Int_t i=5;i<=8;i++) fRawYield->SetBinContent(i,0.05);
357 for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.05);
358 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.15);
359 for(Int_t i=17;i<=36;i++) fRawYield->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
361 // Cuts efficiency (from cuts variation)
362 //fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
363 fCutsEff->SetBinContent(1,0.);
364 fCutsEff->SetBinContent(2,0.0);
365 fCutsEff->SetBinContent(3,0.10);
366 fCutsEff->SetBinContent(4,0.10);
367 fCutsEff->SetBinContent(5,0.10);
368 fCutsEff->SetBinContent(6,0.10);
369 for(Int_t i=7;i<=8;i++) fCutsEff->SetBinContent(i,0.15);
370 for(Int_t i=9;i<=16;i++) fCutsEff->SetBinContent(i,0.15);
371 for(Int_t i=25;i<=36;i++) fCutsEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
374 //--------------------------------------------------------------------------
375 void AliHFSystErr::InitD0toKpi2011PbPb3050OutOfPlane() {
377 // D0->Kpi syst errors. Responsible: D. Caffarri
378 // 2011 PbPb sample, 30-50 CC OutOfPlane
380 InitD0toKpi2011PbPb07half();
381 // Raw yield extraction
382 //fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
383 fRawYield->SetBinContent(1,0);
384 fRawYield->SetBinContent(2,0.);
385 fRawYield->SetBinContent(3,0.05);
386 for(Int_t i=4;i<=6;i++) fRawYield->SetBinContent(i,0.07);
387 for(Int_t i=7;i<=8;i++) fRawYield->SetBinContent(i,0.05);
388 for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.10);
389 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.15);
390 for(Int_t i=17;i<=36;i++) fRawYield->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
392 // Cuts efficiency (from cuts variation)
393 // fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
394 fCutsEff->SetBinContent(1,0.);
395 fCutsEff->SetBinContent(2,0.);
396 fCutsEff->SetBinContent(3,0.10);
397 fCutsEff->SetBinContent(4,0.10);
398 fCutsEff->SetBinContent(5,0.10);
399 fCutsEff->SetBinContent(6,0.10);
400 for(Int_t i=7;i<=8;i++) fCutsEff->SetBinContent(i,0.15);
401 for(Int_t i=9;i<=16;i++) fCutsEff->SetBinContent(i,0.15);
402 for(Int_t i=17;i<=36;i++) fCutsEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
405 //--------------------------------------------------------------------------
406 void AliHFSystErr::InitD0toKpi2010PbPb4080() {
408 // D0->Kpi syst errors. Responsible: A. Rossi
409 // 2010 PbPb sample, 40-80 CC
413 fNorm = new TH1F("fNorm","fNorm",20,0,20);
414 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
417 fBR = new TH1F("fBR","fBR",20,0,20);
418 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
420 // Tracking efficiency
421 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
422 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10); // Jacek, 5% per track
425 // Raw yield extraction
426 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
427 fRawYield->SetBinContent(1,0);
428 fRawYield->SetBinContent(2,0);
429 for(Int_t i=3;i<=16;i++) fRawYield->SetBinContent(i,0.05);
430 //for(Int_t i=13;i<=20;i++) fRawYield->SetBinContent(i,0);
432 // Cuts efficiency (from cuts variation)
433 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
434 fCutsEff->SetBinContent(1,0.);
435 fCutsEff->SetBinContent(2,0.);
436 fCutsEff->SetBinContent(3,0.13);
437 fCutsEff->SetBinContent(4,0.11);
438 for(Int_t i=5;i<=16;i++) fCutsEff->SetBinContent(i,0.10);
439 for(Int_t i=17;i<=20;i++) fCutsEff->SetBinContent(i,0.);
441 // PID efficiency (from PID/noPID)
442 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
443 // for(Int_t i=3;i<=6;i++) fPIDEff->SetBinContent(i,0.10);
444 // for(Int_t i=7;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
445 for(Int_t i=3;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
448 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
449 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
450 // fMCPtShape->SetBinContent(3,0.04); Not set for peripherals (Raa Vs pt is flat)
451 // fMCPtShape->SetBinContent(4,0.02);
452 for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03);
454 // // particle-antiparticle
455 // fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
456 // for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
461 //--------------------------------------------------------------------------
462 void AliHFSystErr::InitD0toKpi2010ppLowEn() {
464 // D0->Kpi syst errors. Low energy run
465 // 2011 2.76 TeV pp sample
467 AliInfo(" Settings for D0 --> K pi, p-p collisions at 2.76 TeV");
470 fNorm = new TH1F("fNorm","fNorm",20,0,20);
471 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 4% error on sigmaV0and
474 fBR = new TH1F("fBR","fBR",20,0,20);
475 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
477 // Tracking efficiency
478 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
479 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10); //10% (5% per track)
481 // Raw yield extraction
482 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
483 fRawYield->SetBinContent(1,1);
484 for(Int_t i=1;i<=20;i++) fRawYield->SetBinContent(i,0.15);
486 // Cuts efficiency (from cuts variation)
487 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
488 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10); // 10%
489 fCutsEff->SetBinContent(2,0.20);
490 for(Int_t i=7;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
493 // PID efficiency (from PID/noPID)
494 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
495 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.15); // 10%
496 // fPIDEff->SetBinContent(2,0.20);
497 for(Int_t i=7;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 10%
500 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
501 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
502 fMCPtShape->SetBinContent(1,0.03);
503 fMCPtShape->SetBinContent(2,0.03);
505 // // particle-antiparticle
506 // fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
507 // fPartAntipart->SetBinContent(1,1);
508 // fPartAntipart->SetBinContent(2,1);
509 // for(Int_t i=3;i<=6;i++) fPartAntipart->SetBinContent(i,0.08);
510 // for(Int_t i=1;i<=20;i++) fPartAntipart->SetBinContent(i,0.);
515 //--------------------------------------------------------------------------
516 void AliHFSystErr::InitDplustoKpipi2010pp() {
518 // D+->Kpipi syst errors. Responsible: R. Bala
524 fNorm = new TH1F("fNorm","fNorm",24,0,24);
525 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
528 fBR = new TH1F("fBR","fBR",24,0,24);
529 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
531 // Tracking efficiency
532 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
533 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
536 // Raw yield extraction
537 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
538 fRawYield->SetBinContent(1,1);
539 fRawYield->SetBinContent(2,0.25);
540 fRawYield->SetBinContent(3,0.25);
541 fRawYield->SetBinContent(4,0.20);
542 fRawYield->SetBinContent(5,0.09);
543 fRawYield->SetBinContent(6,0.09);
544 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
545 for(Int_t i=12;i<=24;i++) fRawYield->SetBinContent(i,0.10);
547 // Cuts efficiency (from cuts variation)
548 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
549 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
551 // PID efficiency (from PID/noPID)
552 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
553 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 5%
554 fPIDEff->SetBinContent(1,0.15); // 15%
555 fPIDEff->SetBinContent(2,0.15); // 15%
556 fPIDEff->SetBinContent(3,0.15); // 15%
557 fPIDEff->SetBinContent(4,0.15); // 15%
558 for(Int_t i=12;i<=16;i++) fPIDEff->SetBinContent(i,0.10); // 5%
561 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
562 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
563 fMCPtShape->SetBinContent(1,0.03);
564 fMCPtShape->SetBinContent(2,0.03);
567 // particle-antiparticle
569 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
570 fPartAntipart->SetBinContent(1,1);
571 fPartAntipart->SetBinContent(2,1);
572 fPartAntipart->SetBinContent(3,0.12);
573 for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
578 //--------------------------------------------------------------------------
579 void AliHFSystErr::InitDstoKKpi2010pp() {
581 // D+s->KKpi syst errors. Responsible: G.M. Innocenti
587 fNorm = new TH1F("fNorm","fNorm",12,0,12);
588 for(Int_t i=1;i<=12;i++) fNorm->SetBinContent(i,0.035); // 3.5% error on sigmaV0and
591 fBR = new TH1F("fBR","fBR",12,0,12);
592 for(Int_t i=1;i<=12;i++) fBR->SetBinContent(i,0.06); // 0.14/2.32 PDG2010
594 // Tracking efficiency
595 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",12,0,12);
596 for(Int_t i=1;i<=12;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
599 // Raw yield extraction
600 fRawYield = new TH1F("fRawYield","fRawYield",12,0,12);
601 fRawYield->SetBinContent(1,1);
602 fRawYield->SetBinContent(2,1);
603 fRawYield->SetBinContent(3,0.20);
604 fRawYield->SetBinContent(4,0.20);
605 fRawYield->SetBinContent(5,0.15);
606 fRawYield->SetBinContent(6,0.15);
607 fRawYield->SetBinContent(7,0.15);
608 fRawYield->SetBinContent(8,0.15);
609 fRawYield->SetBinContent(9,0.20);
610 fRawYield->SetBinContent(10,0.20);
611 fRawYield->SetBinContent(11,0.20);
612 fRawYield->SetBinContent(12,0.20);
614 // Cuts efficiency (from cuts variation)
615 fCutsEff = new TH1F("fCutsEff","fCutsEff",12,0,12);
616 for(Int_t i=1;i<=12;i++) fCutsEff->SetBinContent(i,0.15); // 15%
618 // PID efficiency (from PID/noPID)
619 fPIDEff = new TH1F("fPIDEff","fPIDEff",12,0,12);
620 for(Int_t i=1;i<=12;i++) fPIDEff->SetBinContent(i,0.07); // 7%
623 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
624 for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
625 for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
626 for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
627 for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
628 for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
631 // particle-antiparticle
633 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",12,0,12);
634 fPartAntipart->SetBinContent(1,1);
635 fPartAntipart->SetBinContent(2,1);
636 fPartAntipart->SetBinContent(3,0.12);
637 for(Int_t i=4;i<=12;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
643 //--------------------------------------------------------------------------
644 void AliHFSystErr::InitDplustoKpipi2011PbPb07half() {
646 // D+->Kpipi syst errors. Responsible: E. Bruna
647 // 2011 PbPb sample, 0-7.5% CC
651 fNorm = new TH1F("fNorm","fNorm",36,0,36);
652 for(Int_t i=1;i<=36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
655 fBR = new TH1F("fBR","fBR",36,0,36);
656 for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
658 // Tracking efficiency
659 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);
660 for(Int_t i=1;i<=36;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
662 // Raw yield extraction
663 fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
664 for(Int_t i=1;i<=36;i++) fRawYield->SetBinContent(i,.10); //5 to 10%
665 fRawYield->SetBinContent(4,0.30);
666 fRawYield->SetBinContent(5,0.20);
667 fRawYield->SetBinContent(6,0.20);
668 for(Int_t i=7; i<=8; i++) fRawYield->SetBinContent(i,0.10);
669 for(Int_t i=9; i<=12; i++) fRawYield->SetBinContent(i,0.08);
670 for(Int_t i=13; i<=16; i++) fRawYield->SetBinContent(i,0.05);
671 for(Int_t i=17; i<=24; i++) fRawYield->SetBinContent(i,0.08);
672 for(Int_t i=25; i<=36; i++) fRawYield->SetBinContent(i,0.20);
675 // Cuts efficiency (from cuts variation)
676 fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
677 for(Int_t i=1; i<=12; i++) fCutsEff->SetBinContent(i,0.10);
678 for(Int_t i=13; i<=36; i++) fCutsEff->SetBinContent(i,0.08);
681 // PID efficiency (from PID/noPID)
682 fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
683 for(Int_t i=1;i<=36;i++) fPIDEff->SetBinContent(i,0.05); // 5%
685 // MC dN/dpt (24/7/2012)
686 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
687 for(Int_t iBin=1; iBin<=5; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
688 for(Int_t iBin=6; iBin<=36; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
689 // for(Int_t iBin=13; iBin<=36; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
692 // particle-antiparticle
694 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
695 fPartAntipart->SetBinContent(1,1);
696 fPartAntipart->SetBinContent(2,1);
697 fPartAntipart->SetBinContent(3,0.12);
698 for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
704 //--------------------------------------------------------------------------
705 void AliHFSystErr::InitDstoKKpi2011PbPb07half() {
707 // D+s->Kpipi syst errors. Responsible: G.M. Innocenti
708 // 2011 PbPb sample, 0-7.5% CC
712 fNorm = new TH1F("fNorm","fNorm",12,0,12);
713 for(Int_t i=1;i<=12;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
716 fBR = new TH1F("fBR","fBR",12,0,12);
717 for(Int_t i=1;i<=12;i++) fBR->SetBinContent(i,0.053); // 0.12/2.28 PDG2012
719 // Tracking efficiency
720 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",12,0,12);
721 for(Int_t i=1;i<=12;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
723 // Raw yield extraction
724 fRawYield = new TH1F("fRawYield","fRawYield",12,0,12);
725 for(Int_t i=1;i<=6;i++) fRawYield->SetBinContent(i,.30);
726 for(Int_t i=7; i<=12; i++) fRawYield->SetBinContent(i,0.20);
730 // Cuts efficiency (from cuts variation)
731 fCutsEff = new TH1F("fCutsEff","fCutsEff",12,0,12);
732 for(Int_t i=1;i<=12;i++) fCutsEff->SetBinContent(i,0.20); // 20%
734 // PID efficiency (from PID/noPID)
735 fPIDEff = new TH1F("fPIDEff","fPIDEff",12,0,12);
736 for(Int_t i=1;i<=12;i++) fPIDEff->SetBinContent(i,0.1); // 10%
739 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
740 for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
741 for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
742 for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
743 for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
744 for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
746 // particle-antiparticle
748 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",12,0,12);
749 fPartAntipart->SetBinContent(1,1);
750 fPartAntipart->SetBinContent(2,1);
751 fPartAntipart->SetBinContent(3,0.12);
752 for(Int_t i=4;i<=12;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
758 //--------------------------------------------------------------------------
759 void AliHFSystErr::InitDplustoKpipi2010PbPb020() {
761 // D+->Kpipi syst errors. Responsible: ??
762 // 2010 PbPb sample, 0-20 CC
766 fNorm = new TH1F("fNorm","fNorm",20,0,20);
767 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
770 fBR = new TH1F("fBR","fBR",20,0,20);
771 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
773 // Tracking efficiency
774 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
775 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
777 // Raw yield extraction
778 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
779 for(Int_t i=1;i<=20;i++) fRawYield->SetBinContent(i,.10); //5 to 10%
780 // fRawYield->SetBinContent(5,0.23);
781 //fRawYield->SetBinContent(6,0.23);
782 fRawYield->SetBinContent(7,0.20);
783 fRawYield->SetBinContent(8,0.20);
784 fRawYield->SetBinContent(9,0.15);
785 fRawYield->SetBinContent(10,0.15);
786 fRawYield->SetBinContent(11,0.15);
787 fRawYield->SetBinContent(12,0.15);
789 // Cuts efficiency (from cuts variation)
790 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
791 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
793 // PID efficiency (from PID/noPID)
794 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
795 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
797 // MC dN/dpt (2/2/2012)
798 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
799 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.);
800 for(Int_t iBin=7; iBin<=8; iBin++) fMCPtShape->SetBinContent(iBin,0.01);
801 for(Int_t iBin=9; iBin<=12; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
802 for(Int_t iBin=13; iBin<=16; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
805 // particle-antiparticle
807 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
808 fPartAntipart->SetBinContent(1,1);
809 fPartAntipart->SetBinContent(2,1);
810 fPartAntipart->SetBinContent(3,0.12);
811 for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
817 //--------------------------------------------------------------------------
818 void AliHFSystErr::InitDplustoKpipi2010PbPb4080() {
820 // D+->Kpipi syst errors. Responsible: ??
821 // 2010 PbPb sample, 40-80 CC
826 fNorm = new TH1F("fNorm","fNorm",20,0,20);
827 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
830 fBR = new TH1F("fBR","fBR",20,0,20);
831 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1%
833 // Tracking efficiency
834 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
835 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
838 // Raw yield extraction
839 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
840 fRawYield->SetBinContent(1,1);
841 fRawYield->SetBinContent(2,1);
842 fRawYield->SetBinContent(3,1);
843 fRawYield->SetBinContent(4,0.15);
844 fRawYield->SetBinContent(5,0.05);
845 fRawYield->SetBinContent(6,0.05);
846 fRawYield->SetBinContent(7,0.15);
847 fRawYield->SetBinContent(8,0.15);
848 for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.15);
849 for(Int_t i=13;i<=20;i++) fRawYield->SetBinContent(i,1); //5 to 10%
851 // Cuts efficiency (from cuts variation)
852 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
853 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10); // 10%
855 // PID efficiency (from PID/noPID)
856 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
857 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
858 fPIDEff->SetBinContent(3,0.13); // 13%
861 // MC dN/dpt (2/2/2012)
862 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
863 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0);
864 for(Int_t iBin=4; iBin<=8; iBin++) fMCPtShape->SetBinContent(iBin,0.01);
865 for(Int_t iBin=9; iBin<=12; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
866 for(Int_t iBin=13; iBin<=16; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
869 // particle-antiparticle
871 fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
872 fPartAntipart->SetBinContent(1,1);
873 fPartAntipart->SetBinContent(2,1);
874 fPartAntipart->SetBinContent(3,0.12);
875 for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05); //5 to 12%
880 //--------------------------------------------------------------------------
881 void AliHFSystErr::InitDplustoKpipi2010ppLowEn() {
884 // D+->Kpipi syst errors. Responsible: R. Bala
885 // 2011 2.76 TeV pp sample
887 AliInfo(" Settings for D+ --> K pi pi p-p collisions at 2.76 TeV");
890 fNorm = new TH1F("fNorm","fNorm",20,0,20);
891 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 10% error on sigmaV0and
894 fBR = new TH1F("fBR","fBR",20,0,20);
895 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
897 // Tracking efficiency
898 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
899 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // 3% (1% per track)
901 // Raw yield extraction
902 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
903 fRawYield->SetBinContent(1,1);
904 fRawYield->SetBinContent(2,1);
905 for(Int_t i=3;i<=6;i++) fRawYield->SetBinContent(i,0.10); //5 to 10%
906 fRawYield->SetBinContent(7,0.15);
907 fRawYield->SetBinContent(8,0.15);
908 for(Int_t i=9;i<=20;i++) fRawYield->SetBinContent(i,0.055); //5 to 10%
910 // Cuts efficiency (from cuts variation)
911 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
912 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
914 // PID efficiency (from PID/noPID)
915 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
916 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
917 fPIDEff->SetBinContent(3,0.10); // 13%
918 fPIDEff->SetBinContent(4,0.10); // 13%
920 // MC dN/dpt (copied from D0 : will update later)
921 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
922 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
923 fMCPtShape->SetBinContent(1,0.03);
924 fMCPtShape->SetBinContent(2,0.03);
929 //--------------------------------------------------------------------------
930 void AliHFSystErr::InitDstartoD0pi2010pp() {
932 // D*+->D0pi syst errors. Responsible: A. Grelli, Y. Wang
937 fNorm = new TH1F("fNorm","fNorm",24,0,24);
938 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
941 fBR = new TH1F("fBR","fBR",24,0,24);
942 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
944 // Tracking efficiency
945 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
946 fTrackingEff->SetBinContent(1,1.0);
947 fTrackingEff->SetBinContent(2,0.13); // 10% (ITSsa) \oplus 8% (4% per ITSTPC track)
948 fTrackingEff->SetBinContent(3,0.12);
949 fTrackingEff->SetBinContent(3,0.12);
950 for(Int_t i=4;i<=24;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
953 // Raw yield extraction
954 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
955 fRawYield->SetBinContent(1,1.0);
956 fRawYield->SetBinContent(2,0.10);
957 fRawYield->SetBinContent(3,0.04);
958 fRawYield->SetBinContent(4,0.03);
959 fRawYield->SetBinContent(5,0.03);
960 fRawYield->SetBinContent(6,0.05);
961 fRawYield->SetBinContent(7,0.05);
962 fRawYield->SetBinContent(8,0.05);
963 for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.04); //4%
964 for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.09); //4%
965 for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,0.2); //4%
967 // Cuts efficiency (from cuts variation)
968 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
969 fCutsEff->SetBinContent(2,0.22);
970 for(Int_t i=3;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
972 // PID efficiency (from PID/noPID)
973 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
974 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.04); // 3%
977 // MC dN/dpt (copied from D0 : will update later)
978 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
979 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
980 fMCPtShape->SetBinContent(1,0.03);
981 fMCPtShape->SetBinContent(2,0.03);
987 //--------------------------------------------------------------------------
988 void AliHFSystErr::InitDstartoD0pi2010ppLowEn() {
991 // D+->Kpipi syst errors. Responsible: A. Grelli
992 // 2011 2.76 TeV pp sample
994 AliInfo(" Settings for D*+ --> D0 pi p-p collisions at 2.76 TeV");
997 fNorm = new TH1F("fNorm","fNorm",20,0,20);
998 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 10% error on sigmaV0and
1001 fBR = new TH1F("fBR","fBR",20,0,20);
1002 for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1004 // Tracking efficiency
1005 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
1006 for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); //10% (to be checked!!)
1008 // Raw yield extraction
1009 fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
1010 fRawYield->SetBinContent(1,1);
1011 fRawYield->SetBinContent(2,1);
1012 fRawYield->SetBinContent(3,0.14);
1013 fRawYield->SetBinContent(4,0.14);
1014 fRawYield->SetBinContent(5,0.12);
1015 fRawYield->SetBinContent(6,0.12);
1016 fRawYield->SetBinContent(7,0.06);
1017 fRawYield->SetBinContent(8,0.06);
1018 fRawYield->SetBinContent(9,0.08);
1019 fRawYield->SetBinContent(10,0.08);
1020 fRawYield->SetBinContent(11,0.08);
1021 fRawYield->SetBinContent(12,0.08);
1022 for(Int_t i=9;i<=20;i++) fRawYield->SetBinContent(i,0.065);
1024 // Cuts efficiency (from cuts variation)
1025 fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
1026 for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10);
1027 fCutsEff->SetBinContent(3,0.15);
1028 fCutsEff->SetBinContent(4,0.15);
1029 fCutsEff->SetBinContent(5,0.15);
1030 fCutsEff->SetBinContent(6,0.15);
1031 fCutsEff->SetBinContent(7,0.10);
1032 fCutsEff->SetBinContent(8,0.10);
1033 fCutsEff->SetBinContent(9,0.10);
1034 fCutsEff->SetBinContent(10,0.10);
1035 fCutsEff->SetBinContent(11,0.10);
1036 fCutsEff->SetBinContent(12,0.10);
1038 // PID efficiency (from PID/noPID)
1039 fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
1040 for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 10%
1043 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
1044 for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
1045 fMCPtShape->SetBinContent(1,0.03);
1046 fMCPtShape->SetBinContent(2,0.03);
1051 //------------------------------------------------------------------------
1052 void AliHFSystErr::InitDstartoD0pi2010PbPb020() {
1054 // D*+->D0pi syst errors. Responsible: A. Grelli
1055 // 2010 PbPb sample, 0-20 CC
1058 AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 0-20 centrality - DUMMY");
1061 fNorm = new TH1F("fNorm","fNorm",24,0,24);
1062 for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
1065 fBR = new TH1F("fBR","fBR",24,0,24);
1066 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1068 // Tracking efficiency
1069 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1070 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1073 // Raw yield extraction
1074 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1075 for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.1); //4%
1076 fRawYield->SetBinContent(3,0.2);
1077 fRawYield->SetBinContent(4,0.2);
1078 fRawYield->SetBinContent(5,0.2);
1079 fRawYield->SetBinContent(6,0.2);
1081 // Cuts efficiency (from cuts variation)
1082 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1083 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1084 fCutsEff->SetBinContent(4,0.15);
1085 fCutsEff->SetBinContent(5,0.15);
1086 fCutsEff->SetBinContent(6,0.15);
1088 // PID efficiency (from PID/noPID)
1089 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1090 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1093 // MC dN/dpt (from study on D* pt shape)
1094 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1095 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.045);
1096 fMCPtShape->SetBinContent(4,0.025);
1097 fMCPtShape->SetBinContent(5,0.025);
1098 fMCPtShape->SetBinContent(6,0.025);
1099 fMCPtShape->SetBinContent(7,0.04);
1100 fMCPtShape->SetBinContent(8,0.04);
1101 fMCPtShape->SetBinContent(9,0.03);
1102 fMCPtShape->SetBinContent(10,0.03);
1103 fMCPtShape->SetBinContent(11,0.03);
1104 fMCPtShape->SetBinContent(12,0.03);
1109 // ----------------------------- 2011 ----------------------------------
1110 void AliHFSystErr::InitDstartoD0pi2011PbPb07half() {
1112 // D*+->D0pi syst errors. Responsible: A. Grelli
1113 // 2011 PbPb sample, 0-7.5 CC
1116 AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 0-7.5 centrality - DUMMY");
1120 fNorm = new TH1F("fNorm","fNorm",36,0,36);
1121 for(Int_t i=1;i<=36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
1124 fBR = new TH1F("fBR","fBR",36,0,36);
1125 for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1127 // Tracking efficiency
1128 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);;
1129 for(Int_t i=1;i<=36;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1132 // Raw yield extraction
1133 fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
1134 for(Int_t i=1;i<=36;i++) fRawYield->SetBinContent(i,0.05); //4%
1135 fRawYield->SetBinContent(4,0.2);
1136 fRawYield->SetBinContent(5,0.10);
1137 fRawYield->SetBinContent(6,0.10);
1138 fRawYield->SetBinContent(7,0.08);
1139 for(Int_t i=25;i<=36;i++) fRawYield->SetBinContent(i,0.15); //4%
1141 // Cuts efficiency (from cuts variation)
1142 fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
1143 for(Int_t i=1;i<=36;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1145 // PID efficiency (from PID/noPID)
1146 fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
1147 for(Int_t i=1;i<=36;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1148 fPIDEff->SetBinContent(4,0.09);
1150 // MC dN/dpt (from study on D* pt shape)
1151 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
1152 for(Int_t i=1;i<=36;i++) fMCPtShape->SetBinContent(i,0.035);
1153 fMCPtShape->SetBinContent(4,0.015);
1154 fMCPtShape->SetBinContent(5,0.015);
1155 fMCPtShape->SetBinContent(6,0.015);
1156 fMCPtShape->SetBinContent(7,0.02);
1157 fMCPtShape->SetBinContent(8,0.02);
1158 fMCPtShape->SetBinContent(9,0.03);
1159 fMCPtShape->SetBinContent(10,0.03);
1160 fMCPtShape->SetBinContent(11,0.03);
1161 fMCPtShape->SetBinContent(12,0.03);
1168 //-------------------------------------------------------------------------
1169 void AliHFSystErr::InitDstartoD0pi2010PbPb2040() {
1171 // D*+->D0pi syst errors. Responsible: A. Grelli
1172 // 2010 PbPb sample, 20-40 CC
1175 AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 20-40 centrality - DUMMY");
1178 fNorm = new TH1F("fNorm","fNorm",24,0,24);
1179 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.10); // 10% error on sigmaV0and
1182 fBR = new TH1F("fBR","fBR",24,0,24);
1183 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1185 // Tracking efficiency
1186 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1187 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1190 // Raw yield extraction
1191 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1192 for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.15); //4%
1194 // Cuts efficiency (from cuts variation)
1195 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1196 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1198 // PID efficiency (from PID/noPID)
1199 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1200 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.04); // 3%
1203 // MC dN/dpt (copied from D0 : will update later)
1204 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1205 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.);
1206 fMCPtShape->SetBinContent(1,0.03);
1207 fMCPtShape->SetBinContent(2,0.03);
1213 //--------------------------------------------------------------------------
1214 void AliHFSystErr::InitDstartoD0pi2010PbPb4080() {
1216 // D*+->D0pi syst errors. Responsible: A. Grelli
1217 // 2010 PbPb sample, 40-80 CC
1220 AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 40-80 centrality - DUMMY");
1223 fNorm = new TH1F("fNorm","fNorm",24,0,24);
1224 for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
1227 fBR = new TH1F("fBR","fBR",24,0,24);
1228 for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1230 // Tracking efficiency
1231 fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1232 for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1235 // Raw yield extraction
1236 fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1237 for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.2); //4%
1238 fRawYield->SetBinContent(1,1);
1239 fRawYield->SetBinContent(2,0.15);
1240 fRawYield->SetBinContent(3,0.15);
1241 fRawYield->SetBinContent(4,0.15);
1242 fRawYield->SetBinContent(5,0.15);
1243 fRawYield->SetBinContent(6,0.10);
1244 fRawYield->SetBinContent(7,0.10);
1245 fRawYield->SetBinContent(8,0.10);
1246 fRawYield->SetBinContent(9,0.11);
1247 fRawYield->SetBinContent(10,0.11);
1248 fRawYield->SetBinContent(11,0.11);
1249 fRawYield->SetBinContent(12,0.11);
1250 fRawYield->SetBinContent(13,0.08);
1251 fRawYield->SetBinContent(14,0.08);
1252 fRawYield->SetBinContent(15,0.08);
1253 fRawYield->SetBinContent(16,0.08);
1256 // Cuts efficiency (from cuts variation)
1257 fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1258 for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1260 // PID efficiency (from PID/noPID)
1261 fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1262 for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1265 // MC dN/dpt (copied from D0 : will update later)
1266 fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1267 for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.01);
1268 fMCPtShape->SetBinContent(2,0.05);
1269 fMCPtShape->SetBinContent(3,0.05);
1270 fMCPtShape->SetBinContent(4,0.05);
1271 fMCPtShape->SetBinContent(5,0.04);
1272 fMCPtShape->SetBinContent(6,0.02);
1273 fMCPtShape->SetBinContent(7,0.04);
1274 fMCPtShape->SetBinContent(8,0.04);
1280 //--------------------------------------------------------------------------
1281 void AliHFSystErr::InitD0toKpi2010PbPb010CentScan(){
1282 // define errors for RAA vs. centrality
1283 InitD0toKpi2010PbPb020();
1284 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1285 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.17);
1286 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1288 //--------------------------------------------------------------------------
1289 void AliHFSystErr::InitD0toKpi2010PbPb1020CentScan(){
1290 // define errors for RAA vs. centrality
1291 InitD0toKpi2010PbPb020();
1292 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1293 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.17);
1294 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1296 //--------------------------------------------------------------------------
1297 void AliHFSystErr::InitD0toKpi2010PbPb2040CentScan(){
1298 // define errors for RAA vs. centrality
1299 InitD0toKpi2010PbPb4080();
1300 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1301 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.14);
1302 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1304 //--------------------------------------------------------------------------
1305 void AliHFSystErr::InitD0toKpi2010PbPb4060CentScan(){
1306 // define errors for RAA vs. centrality
1307 InitD0toKpi2010PbPb4080();
1308 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.06);
1309 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.11);
1310 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1312 //--------------------------------------------------------------------------
1313 void AliHFSystErr::InitD0toKpi2010PbPb6080CentScan(){
1314 // define errors for RAA vs. centrality
1315 InitD0toKpi2010PbPb4080();
1316 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1317 for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.08);
1318 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1320 //--------------------------------------------------------------------------
1321 void AliHFSystErr::InitDplustoKpipi2010PbPb010CentScan(){
1322 // define errors for RAA vs. centrality
1323 InitDplustoKpipi2010PbPb020();
1324 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.18);
1325 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.09);
1328 //--------------------------------------------------------------------------
1329 void AliHFSystErr::InitDplustoKpipi2010PbPb1020CentScan(){
1330 // define errors for RAA vs. centrality
1331 InitDplustoKpipi2010PbPb020();
1332 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.23);
1333 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1335 //--------------------------------------------------------------------------
1336 void AliHFSystErr::InitDplustoKpipi2010PbPb2040CentScan(){
1337 // define errors for RAA vs. centrality
1338 InitDplustoKpipi2010PbPb020();
1339 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1340 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.095);
1342 //--------------------------------------------------------------------------
1343 void AliHFSystErr::InitDplustoKpipi2010PbPb4060CentScan(){
1344 // define errors for RAA vs. centrality
1345 InitDplustoKpipi2010PbPb4080();
1346 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1347 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1349 //--------------------------------------------------------------------------
1350 void AliHFSystErr::InitDplustoKpipi2010PbPb6080CentScan(){
1351 // define errors for RAA vs. centrality
1352 InitDplustoKpipi2010PbPb4080();
1353 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.15);
1354 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.07);
1357 //--------------------------------------------------------------------------
1358 void AliHFSystErr::InitDstartoD0pi2010PbPb010CentScan(){
1359 // define errors for RAA vs. centrality
1360 InitDstartoD0pi2010PbPb020();
1361 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.16);
1362 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.15);
1364 //--------------------------------------------------------------------------
1365 void AliHFSystErr::InitDstartoD0pi2010PbPb1020CentScan(){
1366 // define errors for RAA vs. centrality
1367 InitDstartoD0pi2010PbPb020();
1368 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1369 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.15);
1371 //--------------------------------------------------------------------------
1372 void AliHFSystErr::InitDstartoD0pi2010PbPb2040CentScan(){
1373 // define errors for RAA vs. centrality
1374 InitDstartoD0pi2010PbPb2040();
1375 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10);
1376 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1378 //--------------------------------------------------------------------------
1379 void AliHFSystErr::InitDstartoD0pi2010PbPb4060CentScan(){
1380 // define errors for RAA vs. centrality
1381 InitDstartoD0pi2010PbPb4080();
1382 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10);
1383 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.045);
1385 //--------------------------------------------------------------------------
1386 void AliHFSystErr::InitDstartoD0pi2010PbPb6080CentScan(){
1387 // define errors for RAA vs. centrality
1388 InitDstartoD0pi2010PbPb4080();
1389 for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10);
1390 for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.045);
1394 //--------------------------------------------------------------------------
1395 Double_t AliHFSystErr::GetCutsEffErr(Double_t pt) const {
1400 Int_t bin=fCutsEff->FindBin(pt);
1402 return fCutsEff->GetBinContent(bin);
1404 //--------------------------------------------------------------------------
1405 Double_t AliHFSystErr::GetMCPtShapeErr(Double_t pt) const {
1410 Int_t bin=fMCPtShape->FindBin(pt);
1412 return fMCPtShape->GetBinContent(bin);
1414 //--------------------------------------------------------------------------
1415 Double_t AliHFSystErr::GetSeleEffErr(Double_t pt) const {
1420 Double_t err=GetCutsEffErr(pt)*GetCutsEffErr(pt)+GetMCPtShapeErr(pt)*GetMCPtShapeErr(pt);
1422 return TMath::Sqrt(err);
1424 //--------------------------------------------------------------------------
1425 Double_t AliHFSystErr::GetPIDEffErr(Double_t pt) const {
1430 Int_t bin=fPIDEff->FindBin(pt);
1432 return fPIDEff->GetBinContent(bin);
1434 //--------------------------------------------------------------------------
1435 Double_t AliHFSystErr::GetTrackingEffErr(Double_t pt) const {
1440 Int_t bin=fTrackingEff->FindBin(pt);
1442 return fTrackingEff->GetBinContent(bin);
1444 //--------------------------------------------------------------------------
1445 Double_t AliHFSystErr::GetRawYieldErr(Double_t pt) const {
1450 Int_t bin=fRawYield->FindBin(pt);
1452 return fRawYield->GetBinContent(bin);
1454 //--------------------------------------------------------------------------
1455 Double_t AliHFSystErr::GetPartAntipartErr(Double_t pt) const {
1460 Int_t bin=fPartAntipart->FindBin(pt);
1462 return fPartAntipart->GetBinContent(bin);
1464 //--------------------------------------------------------------------------
1465 Double_t AliHFSystErr::GetTotalSystErr(Double_t pt,Double_t feeddownErr) const {
1467 // Get total syst error (except norm. error)
1472 if(fRawYield) err += GetRawYieldErr(pt)*GetRawYieldErr(pt);
1473 if(fTrackingEff) err += GetTrackingEffErr(pt)*GetTrackingEffErr(pt);
1474 // if(fBR) err += GetBRErr()*GetBRErr();
1475 if(fCutsEff) err += GetCutsEffErr(pt)*GetCutsEffErr(pt);
1476 if(fPIDEff) err += GetPIDEffErr(pt)*GetPIDEffErr(pt);
1477 if(fMCPtShape) err += GetMCPtShapeErr(pt)*GetMCPtShapeErr(pt);
1478 if(fPartAntipart) err += GetPartAntipartErr(pt)*GetPartAntipartErr(pt);
1480 err += feeddownErr*feeddownErr;
1482 return TMath::Sqrt(err);
1484 //---------------------------------------------------------------------------
1485 void AliHFSystErr::DrawErrors(TGraphAsymmErrors *grErrFeeddown) const {
1489 gStyle->SetOptStat(0);
1491 TCanvas *cSystErr = new TCanvas("cSystErr","Systematic Errors",300,80,640,500);
1492 cSystErr->Range(0.20,-0.5,18.4,0.34);
1493 cSystErr->SetRightMargin(0.318);
1494 cSystErr->SetFillColor(0);
1496 TH2F *hFrame = new TH2F("hFrame","Systematic errors; p_{t} (GeV/c); Relative Error",40,0,40,100,-1,+1);
1497 hFrame->SetAxisRange(1.,35.9,"X");
1498 hFrame->SetAxisRange(-0.5,0.5,"Y");
1501 TLegend *leg = new TLegend(0.69,0.44,0.98,0.86,NULL,"brNDC");
1502 leg->SetTextSize(0.03601695);
1503 leg->SetFillStyle(0);
1504 leg->SetBorderSize(0);
1506 TH1F *hTotErr=new TH1F("hTotErr","",36,0,36);
1507 Int_t nbins = fNorm->GetNbinsX();
1508 TGraphAsymmErrors *gTotErr = new TGraphAsymmErrors(nbins);
1509 for(Int_t i=1;i<=36;i++) {
1510 Double_t pt = hTotErr->GetBinCenter(i);
1511 Double_t ptwidth = hTotErr->GetBinWidth(i);
1514 Double_t x=0., y=0., errxl=0., errxh=0., erryl=0., erryh=0.;
1515 Double_t toterryl=0., toterryh=0.;
1516 for(Int_t j=0; j<grErrFeeddown->GetN(); j++) {
1517 grErrFeeddown->GetPoint(j,x,y);
1518 errxh = grErrFeeddown->GetErrorXhigh(j);
1519 errxl = grErrFeeddown->GetErrorXlow(j);
1520 if ( ( (x-errxl) <= pt) && ( (x+errxl) >= pt) ) {
1521 erryh = grErrFeeddown->GetErrorYhigh(j);
1522 erryl = grErrFeeddown->GetErrorYlow(j);
1525 if (erryl>=1e-3) toterryl = GetTotalSystErr(pt,erryl);
1526 else toterryl = GetTotalSystErr(pt);
1527 if (erryh>=1e-3) toterryh = GetTotalSystErr(pt,erryh);
1528 else toterryh = GetTotalSystErr(pt);
1530 hTotErr->SetBinContent(i,toterryh);
1531 gTotErr->SetPoint(i,pt,0.);
1532 gTotErr->SetPointError(i,ptwidth/2.,ptwidth/2.,toterryl,toterryh); // i, exl, exh, eyl, eyh
1535 hTotErr->SetBinContent(i,GetTotalSystErr(pt));
1536 gTotErr->SetPoint(i,pt,0.);
1537 gTotErr->SetPointError(i,ptwidth/2.,ptwidth/2.,GetTotalSystErr(pt),GetTotalSystErr(pt)); // i, exl, exh, eyl, eyh
1541 gTotErr->SetLineColor(kBlack);
1542 gTotErr->SetFillColor(kRed);
1543 gTotErr->SetFillStyle(3002);
1545 leg->AddEntry(gTotErr,"Total (excl. norm.)","f");
1546 // hTotErr->SetLineColor(1);
1547 // hTotErr->SetLineWidth(3);
1548 // hTotErr->Draw("same");
1549 // leg->AddEntry(hTotErr,"Total (excl. norm.)","l");
1552 fNorm->SetFillColor(1);
1553 fNorm->SetFillStyle(3002);
1554 //fNorm->Draw("same");
1555 //TH1F *hNormRefl = ReflectHisto(fNorm);
1556 //hNormRefl->Draw("same");
1557 Double_t norm = fNorm->GetBinContent(1)*100;
1558 leg->AddEntry(fNorm,Form("Normalization (%.1f%s)",norm,"%"),"");
1561 grErrFeeddown->SetFillColor(kTeal-8);
1562 grErrFeeddown->SetFillStyle(3001);
1563 grErrFeeddown->Draw("2");
1564 leg->AddEntry(grErrFeeddown,"Feed-down from B","f");
1567 fTrackingEff->SetFillColor(4);
1568 fTrackingEff->SetFillStyle(3006);
1569 fTrackingEff->Draw("same");
1570 TH1F *hTrackingEffRefl = ReflectHisto(fTrackingEff);
1571 hTrackingEffRefl->Draw("same");
1572 leg->AddEntry(fTrackingEff,"Tracking efficiency","f");
1575 fBR->SetFillColor(6);
1576 fBR->SetFillStyle(3005);
1577 //fBR->SetFillStyle(3020);
1579 TH1F *hBRRefl = ReflectHisto(fBR);
1580 hBRRefl->Draw("same");
1581 leg->AddEntry(fBR,"Branching ratio","f");
1584 Int_t ci; // for color index setting
1585 ci = TColor::GetColor("#00cc00");
1586 fRawYield->SetLineColor(ci);
1587 // fRawYield->SetLineColor(3);
1588 fRawYield->SetLineWidth(3);
1589 fRawYield->Draw("same");
1590 TH1F *hRawYieldRefl = ReflectHisto(fRawYield);
1591 hRawYieldRefl->Draw("same");
1592 leg->AddEntry(fRawYield,"Yield extraction","l");
1595 fCutsEff->SetLineColor(4);
1596 fCutsEff->SetLineWidth(3);
1597 fCutsEff->Draw("same");
1598 TH1F *hCutsEffRefl = ReflectHisto(fCutsEff);
1599 hCutsEffRefl->Draw("same");
1600 leg->AddEntry(fCutsEff,"Cuts efficiency","l");
1603 fPIDEff->SetLineColor(7);
1604 fPIDEff->SetLineWidth(3);
1605 fPIDEff->Draw("same");
1606 TH1F *hPIDEffRefl = ReflectHisto(fPIDEff);
1607 hPIDEffRefl->Draw("same");
1608 leg->AddEntry(fPIDEff,"PID efficiency","l");
1611 Int_t ci = TColor::GetColor("#9933ff");
1612 fMCPtShape->SetLineColor(ci);
1613 // fMCPtShape->SetLineColor(8);
1614 fMCPtShape->SetLineWidth(3);
1615 fMCPtShape->Draw("same");
1616 TH1F *hMCPtShapeRefl = ReflectHisto(fMCPtShape);
1617 hMCPtShapeRefl->Draw("same");
1618 leg->AddEntry(fMCPtShape,"MC p_{t} shape","l");
1621 Int_t ci = TColor::GetColor("#ff6600");
1622 fPartAntipart->SetLineColor(ci);
1623 // fPartAntipart->SetLineColor(9);
1624 fPartAntipart->SetLineWidth(3);
1625 fPartAntipart->Draw("same");
1626 TH1F *hPartAntipartRefl = ReflectHisto(fPartAntipart);
1627 hPartAntipartRefl->Draw("same");
1628 leg->AddEntry(fPartAntipart,"D = #bar{D}","l");
1634 cSystErr->SaveAs("RelativeSystematics.eps");
1638 //-------------------------------------------------------------------------
1639 TH1F* AliHFSystErr::ReflectHisto(TH1F *hin) const {
1641 // Clones and reflects histogram
1643 TH1F *hout=(TH1F*)hin->Clone("hout");