]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AliHFSystErr.cxx
04c88e89e6b75e5d2d35668a8a7321d923063564
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliHFSystErr.cxx
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
47 ClassImp(AliHFSystErr)
48
49 //--------------------------------------------------------------------------
50 AliHFSystErr::AliHFSystErr(const Char_t* name, const Char_t* title) : 
51 TNamed(name,title),
52 fNorm(0),
53 fRawYield(0),
54 fTrackingEff(0),
55 fBR(0),
56 fCutsEff(0),
57 fPIDEff(0),
58 fMCPtShape(0),
59 fPartAntipart(0),
60 fRunNumber(10),
61 fCollisionType(0),
62 fCentralityClass("0100"),
63 fIsLowEnergy(false),
64 fIsCentScan(false)
65 {
66   //
67   // Default Constructor
68   //
69 }
70
71 //--------------------------------------------------------------------------
72 AliHFSystErr::~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 //--------------------------------------------------------------------------
90 void AliHFSystErr::Init(Int_t decay){
91   //
92   // Variables/histos initialization
93   //
94
95   if ((fRunNumber>11) && 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     } 
105     else if (fCollisionType==1) {
106       if (fRunNumber == 10){
107         if (fCentralityClass=="010") InitD0toKpi2010PbPb010CentScan();
108         else if (fCentralityClass=="1020") InitD0toKpi2010PbPb1020CentScan();
109         else if (fCentralityClass=="020")  InitD0toKpi2010PbPb020();
110         else if (fCentralityClass=="2040") InitD0toKpi2010PbPb2040CentScan();
111         else if (fCentralityClass=="4060") InitD0toKpi2010PbPb4060CentScan();
112         else if (fCentralityClass=="6080") InitD0toKpi2010PbPb6080CentScan();
113         else if (fCentralityClass=="4080") InitD0toKpi2010PbPb4080();
114         else AliFatal("Not yet implemented");
115       }
116       else if (fRunNumber == 11){
117         if (fCentralityClass=="07half") InitD0toKpi2011PbPb07half();
118         else if (fCentralityClass=="3050InPlane") InitD0toKpi2011PbPb3050InPlane();
119         else if (fCentralityClass=="3050OutOfPlane") InitD0toKpi2011PbPb3050OutOfPlane();
120         else if (fCentralityClass=="010") InitD0toKpi2011PbPb010CentScan();
121         else if (fCentralityClass=="1020") InitD0toKpi2011PbPb1020CentScan();
122         else if (fCentralityClass=="2030") InitD0toKpi2011PbPb2030CentScan();
123         else if (fCentralityClass=="3040") InitD0toKpi2011PbPb3040CentScan();
124         else if (fCentralityClass=="4050") InitD0toKpi2011PbPb4050CentScan();
125         else if (fCentralityClass=="5080") InitD0toKpi2010PbPb5080CentScan();
126         else AliFatal("Not yet implemented");
127       }
128     } 
129     else if (fCollisionType==2) { 
130       if (fCentralityClass=="0100") InitD0toKpi2013pPb0100();
131     }
132     else AliFatal("Not yet implemented");
133     break;
134     
135   case 2: // D+->Kpipi
136     if (fCollisionType==0) {
137       if (fIsLowEnergy) InitDplustoKpipi2010ppLowEn();
138       else InitDplustoKpipi2010pp();
139     } 
140     else if (fCollisionType==1) {
141       if (fRunNumber == 10){
142         if (fCentralityClass=="010") InitDplustoKpipi2010PbPb010CentScan();
143         else if (fCentralityClass=="1020") InitDplustoKpipi2010PbPb1020CentScan();
144         else if (fCentralityClass=="020") InitDplustoKpipi2010PbPb020();
145         else if (fCentralityClass=="2040") InitDplustoKpipi2010PbPb2040CentScan();
146         else if (fCentralityClass=="4060") InitDplustoKpipi2010PbPb4060CentScan();
147         else if (fCentralityClass=="6080") InitDplustoKpipi2010PbPb6080CentScan();
148         else if (fCentralityClass=="4080") InitDplustoKpipi2010PbPb4080();
149         else AliFatal("Not yet implemented");
150       }
151       if(fRunNumber == 11){
152         if (fCentralityClass=="07half") InitDplustoKpipi2011PbPb07half();
153         else if (fCentralityClass=="010") InitDplustoKpipi2011PbPb010CentScan();
154         else if (fCentralityClass=="1020") InitDplustoKpipi2011PbPb1020CentScan();
155         else if (fCentralityClass=="2030") InitDplustoKpipi2011PbPb2030CentScan();
156         else if (fCentralityClass=="3040") InitDplustoKpipi2011PbPb3040CentScan();
157         else if (fCentralityClass=="4050") InitDplustoKpipi2011PbPb4050CentScan();
158         else if (fCentralityClass=="5080") InitDplustoKpipi2010PbPb5080CentScan();
159         else AliFatal("Not yet implemented");
160       }
161     } 
162     else if (fCollisionType==2) { 
163       if (fCentralityClass=="0100") InitDplustoKpipi2013pPb0100();
164     } 
165     else AliFatal("Not yet implemented");
166     break;
167   case 3: // D*->D0pi
168     if (fCollisionType==0) {
169       if(fIsLowEnergy)  InitDstartoD0pi2010ppLowEn();
170       else InitDstartoD0pi2010pp();
171     }
172     else if (fCollisionType==1) {
173       if (fRunNumber == 10){
174         if (fCentralityClass=="010") InitDstartoD0pi2010PbPb010CentScan();
175         else if (fCentralityClass=="1020") InitDstartoD0pi2010PbPb1020CentScan();
176         else if (fCentralityClass=="020") InitDstartoD0pi2010PbPb020();
177         else if (fCentralityClass=="2040" && fIsCentScan) InitDstartoD0pi2010PbPb2040CentScan();
178         else if (fCentralityClass=="2040") InitDstartoD0pi2010PbPb2040();
179         else if (fCentralityClass=="4060") InitDstartoD0pi2010PbPb4060CentScan();
180         else if (fCentralityClass=="6080") InitDstartoD0pi2010PbPb6080CentScan();
181         else if (fCentralityClass=="4080") InitDstartoD0pi2010PbPb4080();
182         else AliFatal("Not yet implemented");
183       }
184       if (fRunNumber == 11){
185         if (fCentralityClass=="07half") InitDstartoD0pi2011PbPb07half();
186         else if (fCentralityClass=="010") InitDstartoD0pi2011PbPb010CentScan();
187         else if (fCentralityClass=="1020") InitDstartoD0pi2011PbPb1020CentScan();
188         else if (fCentralityClass=="2030") InitDstartoD0pi2011PbPb2030CentScan();
189         else if (fCentralityClass=="3040") InitDstartoD0pi2011PbPb3040CentScan();
190         else if (fCentralityClass=="4050") InitDstartoD0pi2011PbPb4050CentScan();
191         else if (fCentralityClass=="5080") InitDstartoD0pi2010PbPb5080CentScan();
192         else AliFatal("Not yet implemented");
193       }
194     }
195     else if (fCollisionType==2) { 
196       if (fCentralityClass=="0100") InitDstartoD0pi2013pPb0100();
197     }
198     else AliFatal("Not yet implemented");
199     break;
200   case 4: // D+s->KKpi
201     if (fCollisionType==0) InitDstoKKpi2010pp();
202     else if (fCollisionType==1) {
203       if (fCentralityClass=="07half") InitDstoKKpi2011PbPb07half();
204       else AliFatal("Not yet implemented");
205     }
206     else if (fCollisionType==2) { 
207       if (fCentralityClass=="0100") InitDstoKKpi2013pPb0100();
208     }
209     else AliFatal("Not yet implemented");
210     break;
211   case 5: // Lc->pKpi
212     if (fCollisionType==0) InitLctopKpi2010pp();
213     else AliFatal("Not yet implemented");
214     break;
215     
216   default:
217     printf("Invalid decay type: %d\n",decay);
218     break;
219   }
220
221 }
222   
223 //--------------------------------------------------------------------------
224 void AliHFSystErr::InitD0toKpi2010pp() {
225   // 
226   // D0->Kpi syst errors. Responsible: A. Rossi
227   //   2010 pp sample
228   //
229
230   // Normalization
231   fNorm = new TH1F("fNorm","fNorm",24,0,24);
232   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
233
234   // Branching ratio 
235   fBR = new TH1F("fBR","fBR",24,0,24);
236   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
237
238   // Tracking efficiency
239   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
240   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.08); // 8% (4% per track)
241
242   // Raw yield extraction
243   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
244   fRawYield->SetBinContent(1,1);
245   fRawYield->SetBinContent(2,0.22);
246   fRawYield->SetBinContent(3,0.1);
247   for(Int_t i=4;i<=7;i++) fRawYield->SetBinContent(i,0.04);
248   for(Int_t i=8;i<=12;i++) fRawYield->SetBinContent(i,0.07);
249   for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
250   for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,1);
251
252   // Cuts efficiency (from cuts variation)
253   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
254   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
255
256   // PID efficiency (from PID/noPID)
257   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
258   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.03); // 3%
259   fPIDEff->SetBinContent(2,0.05); // 5%
260
261   // MC dN/dpt
262   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
263   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
264   fMCPtShape->SetBinContent(1,0.03);
265   fMCPtShape->SetBinContent(2,0.03);
266
267   // particle-antiparticle
268   //  fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",24,0,24);
269   //  fPartAntipart->SetBinContent(1,1); 
270   //  for(Int_t i=2;i<=24;i++) fPartAntipart->SetBinContent(i,0.05);
271   
272   return;
273 }
274 //--------------------------------------------------------------------------
275 void AliHFSystErr::InitD0toKpi2010PbPb020() {
276   // 
277   // D0->Kpi syst errors. Responsible: A. Rossi
278   //   2010 PbPb sample, 0-20 CC
279   //
280
281   // Normalization
282   fNorm = new TH1F("fNorm","fNorm",20,0,20);
283   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
284
285   // Branching ratio 
286   fBR = new TH1F("fBR","fBR",20,0,20);
287   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
288
289   // Tracking efficiency
290   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
291   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10);// Jacek, 5% per track
292
293   // Raw yield extraction
294   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
295   fRawYield->SetBinContent(1,0);
296   fRawYield->SetBinContent(2,0);
297   fRawYield->SetBinContent(3,0.08);
298   for(Int_t i=4;i<=12;i++) fRawYield->SetBinContent(i,0.06);
299   for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
300
301   // Cuts efficiency (from cuts variation)
302   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
303   fCutsEff->SetBinContent(1,0.);
304   fCutsEff->SetBinContent(2,0.);
305   fCutsEff->SetBinContent(3,0.13);
306   fCutsEff->SetBinContent(4,0.11);  
307   for(Int_t i=5;i<=16;i++) fCutsEff->SetBinContent(i,0.10);
308   for(Int_t i=17;i<=20;i++) fCutsEff->SetBinContent(i,0.);
309
310   // PID efficiency (from PID/noPID)
311   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
312   for(Int_t i=3;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
313
314   // MC dN/dpt
315   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
316   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
317   fMCPtShape->SetBinContent(3,0.04);
318   fMCPtShape->SetBinContent(4,0.02);
319   for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03); 
320
321 //   // particle-antiparticle
322 //   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
323 //   for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
324 //   fPartAntipart->SetBinContent(3,0.10);
325 //   fPartAntipart->SetBinContent(4,0.10);
326 //   fPartAntipart->SetBinContent(7,0.10);
327 //   fPartAntipart->SetBinContent(8,0.10);
328   
329   return;
330 }
331 //--------------------------------------------------------------------------
332 //--------------------------------------------------------------------------
333 void AliHFSystErr::InitD0toKpi2011PbPb07half() {
334   // 
335   // D0->Kpi syst errors. Responsible: A. Rossi
336   //   2011 PbPb sample, 0-7.5 CC
337   //
338
339   // Normalization
340   fNorm = new TH1F("fNorm","fNorm",36,0,36);
341   for(Int_t i=1;i<36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
342
343   // Branching ratio 
344   fBR = new TH1F("fBR","fBR",36,0,36);
345   for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
346
347   // Tracking efficiency
348   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);
349   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.10);// Jacek, 5% per track
350   for(Int_t i=25;i<=36;i++) fTrackingEff->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
351
352   // Raw yield extraction
353   fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
354   fRawYield->SetBinContent(1,0);
355   fRawYield->SetBinContent(2,0.1);
356   fRawYield->SetBinContent(3,0.05);
357   for(Int_t i=4;i<=12;i++) fRawYield->SetBinContent(i,0.05);
358   for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.10);
359   for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,0.30);
360   for(Int_t i=25;i<=36;i++) fRawYield->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
361
362   // Cuts efficiency (from cuts variation)
363   fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
364   fCutsEff->SetBinContent(1,0.);
365   fCutsEff->SetBinContent(2,0.15);
366   fCutsEff->SetBinContent(3,0.13);
367   fCutsEff->SetBinContent(4,0.11);  
368   fCutsEff->SetBinContent(5,0.08); 
369   for(Int_t i=6;i<=24;i++) fCutsEff->SetBinContent(i,0.06);
370   for(Int_t i=25;i<=36;i++) fCutsEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
371
372   // PID efficiency (from PID/noPID)
373   fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
374   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05);
375   for(Int_t i=25;i<=36;i++) fPIDEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
376
377   // MC dN/dpt
378   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
379   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.01);
380   fMCPtShape->SetBinContent(2,0.06);
381   fMCPtShape->SetBinContent(3,0.04);
382   fMCPtShape->SetBinContent(4,0.02);
383   for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03); 
384   for(Int_t i=17;i<=24;i++) fMCPtShape->SetBinContent(i,0.05);
385   for(Int_t i=25;i<=36;i++) fMCPtShape->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
386
387 //   // particle-antiparticle
388 //   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",36,0,36);
389 //   for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
390 //   fPartAntipart->SetBinContent(3,0.10);
391 //   fPartAntipart->SetBinContent(4,0.10);
392 //   fPartAntipart->SetBinContent(7,0.10);
393 //   fPartAntipart->SetBinContent(8,0.10);
394   
395   return;
396 }
397
398 //--------------------------------------------------------------------------
399 void AliHFSystErr::InitD0toKpi2011PbPb3050InPlane() {
400   //
401   // D0->Kpi syst errors. Responsible: D. Caffarri
402   //   2011 PbPb sample, 30-50 CC InPlane
403   //
404   InitD0toKpi2011PbPb07half();
405   // Raw yield extraction
406   // fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
407   fRawYield->SetBinContent(1,0);
408   fRawYield->SetBinContent(2,0);
409   fRawYield->SetBinContent(3,0.05);
410   fRawYield->SetBinContent(4,0.08);
411   for(Int_t i=5;i<=8;i++) fRawYield->SetBinContent(i,0.05);
412   for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.05);
413   for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.15);
414   for(Int_t i=17;i<=36;i++) fRawYield->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
415
416   // Cuts efficiency (from cuts variation)
417   //fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
418   fCutsEff->SetBinContent(1,0.);
419   fCutsEff->SetBinContent(2,0.0);
420   fCutsEff->SetBinContent(3,0.10);
421   fCutsEff->SetBinContent(4,0.10);
422   fCutsEff->SetBinContent(5,0.10);
423   fCutsEff->SetBinContent(6,0.10);
424   for(Int_t i=7;i<=8;i++) fCutsEff->SetBinContent(i,0.15);
425   for(Int_t i=9;i<=16;i++) fCutsEff->SetBinContent(i,0.15);
426   for(Int_t i=25;i<=36;i++) fCutsEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
427 }
428
429 //--------------------------------------------------------------------------
430 void AliHFSystErr::InitD0toKpi2011PbPb3050OutOfPlane() {
431   //
432   // D0->Kpi syst errors. Responsible: D. Caffarri
433   //   2011 PbPb sample, 30-50 CC OutOfPlane
434   //
435   InitD0toKpi2011PbPb07half();
436   // Raw yield extraction
437   //fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
438   fRawYield->SetBinContent(1,0);
439   fRawYield->SetBinContent(2,0.);
440   fRawYield->SetBinContent(3,0.05);
441   for(Int_t i=4;i<=6;i++) fRawYield->SetBinContent(i,0.07);
442   for(Int_t i=7;i<=8;i++) fRawYield->SetBinContent(i,0.05);
443   for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.10);
444   for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.15);
445   for(Int_t i=17;i<=36;i++) fRawYield->SetBinContent(i,0.);// OUT OF MEASUREMENT RANGE
446
447   // Cuts efficiency (from cuts variation)
448   // fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
449   fCutsEff->SetBinContent(1,0.);
450   fCutsEff->SetBinContent(2,0.);
451   fCutsEff->SetBinContent(3,0.10);
452   fCutsEff->SetBinContent(4,0.10);
453   fCutsEff->SetBinContent(5,0.10);
454   fCutsEff->SetBinContent(6,0.10);
455   for(Int_t i=7;i<=8;i++) fCutsEff->SetBinContent(i,0.15);
456   for(Int_t i=9;i<=16;i++) fCutsEff->SetBinContent(i,0.15);
457   for(Int_t i=17;i<=36;i++) fCutsEff->SetBinContent(i,0.0);// OUT OF MEASUREMENT RANGE
458 }
459
460 //--------------------------------------------------------------------------
461 void AliHFSystErr::InitD0toKpi2010PbPb4080() {
462   //
463   // D0->Kpi syst errors. Responsible: A. Rossi
464   //   2010 PbPb sample, 40-80 CC
465   //
466
467   // Normalization
468   fNorm = new TH1F("fNorm","fNorm",20,0,20);
469   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
470
471   // Branching ratio 
472   fBR = new TH1F("fBR","fBR",20,0,20);
473   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
474
475   // Tracking efficiency
476   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
477   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10); // Jacek, 5% per track
478
479
480   // Raw yield extraction
481   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
482   fRawYield->SetBinContent(1,0);
483   fRawYield->SetBinContent(2,0);
484   for(Int_t i=3;i<=16;i++) fRawYield->SetBinContent(i,0.05);
485   //for(Int_t i=13;i<=20;i++) fRawYield->SetBinContent(i,0);
486
487   // Cuts efficiency (from cuts variation)
488   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
489   fCutsEff->SetBinContent(1,0.);
490   fCutsEff->SetBinContent(2,0.);
491   fCutsEff->SetBinContent(3,0.13);
492   fCutsEff->SetBinContent(4,0.11);  
493   for(Int_t i=5;i<=16;i++) fCutsEff->SetBinContent(i,0.10);
494   for(Int_t i=17;i<=20;i++) fCutsEff->SetBinContent(i,0.);
495
496   // PID efficiency (from PID/noPID)
497   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
498 //   for(Int_t i=3;i<=6;i++) fPIDEff->SetBinContent(i,0.10);
499 //   for(Int_t i=7;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
500   for(Int_t i=3;i<=16;i++) fPIDEff->SetBinContent(i,0.05);
501
502   // MC dN/dpt
503   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
504   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
505   //  fMCPtShape->SetBinContent(3,0.04); Not set for peripherals (Raa Vs pt is flat)
506   //  fMCPtShape->SetBinContent(4,0.02);
507   for(Int_t i=13;i<=16;i++) fMCPtShape->SetBinContent(i,0.03); 
508   
509   //   // particle-antiparticle
510   //   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
511   //   for(Int_t i=3;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);
512   
513   return;
514 }
515
516 //--------------------------------------------------------------------------
517 void AliHFSystErr::InitD0toKpi2010ppLowEn() {
518   // 
519   // D0->Kpi syst errors. Low energy run
520   //   2011 2.76 TeV pp sample
521   //
522   AliInfo(" Settings for D0 --> K pi, p-p collisions at 2.76 TeV"); 
523
524   // Normalization
525   fNorm = new TH1F("fNorm","fNorm",20,0,20);
526   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 4% error on sigmaV0and
527
528   // Branching ratio 
529   fBR = new TH1F("fBR","fBR",20,0,20);
530   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.012); // 1.2% PDG2010
531
532   // Tracking efficiency
533   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
534   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.10); //10% (5% per track)
535
536   // Raw yield extraction
537   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
538   fRawYield->SetBinContent(1,1);
539   for(Int_t i=1;i<=20;i++) fRawYield->SetBinContent(i,0.15);
540
541   // Cuts efficiency (from cuts variation)
542   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
543   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10); // 10% 
544   fCutsEff->SetBinContent(2,0.20);
545   for(Int_t i=7;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10% 
546
547
548   // PID efficiency (from PID/noPID)
549   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
550   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.15); // 10%
551   //  fPIDEff->SetBinContent(2,0.20);
552   for(Int_t i=7;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 10%
553
554   // MC dN/dpt
555   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
556   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
557   fMCPtShape->SetBinContent(1,0.03);
558   fMCPtShape->SetBinContent(2,0.03);
559
560 //   // particle-antiparticle
561 //   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
562 //   fPartAntipart->SetBinContent(1,1);
563 //   fPartAntipart->SetBinContent(2,1);
564 //   for(Int_t i=3;i<=6;i++) fPartAntipart->SetBinContent(i,0.08);
565 //   for(Int_t i=1;i<=20;i++) fPartAntipart->SetBinContent(i,0.);
566   
567   return;
568 }
569 //_________________________________________________________________________
570 void AliHFSystErr::InitD0toKpi2013pPb0100(){
571   //
572   // D0->Kpi syst errors. p-Pb data sample
573   //
574   AliInfo(" Settings for D0 --> K pi, p-Pb collisions at 5.023 TeV"); 
575
576   fNorm = new TH1F("fNorm","fNorm",24,0,24);
577   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.02); // 
578   
579   // Branching ratio 
580   fBR = new TH1F("fBR","fBR",24,0,24);
581   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.013); // 1.2% PDG2010
582
583   // Tracking efficiency
584   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
585   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.06); // 3% per track
586
587   // Raw yield extraction
588   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
589   fRawYield->SetBinContent(1,0.0);
590   fRawYield->SetBinContent(2,0.05);
591   for(Int_t i=3;i<=6;i++) fRawYield->SetBinContent(i,0.02);
592   for(Int_t i=7;i<=24;i++) fRawYield->SetBinContent(i,0.05);
593   
594   // Cuts efficiency (from cuts variation)
595   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
596   fCutsEff->SetBinContent(1,0.0);
597   fCutsEff->SetBinContent(2,0.10);
598   for(Int_t i=3;i<=24;i++) fCutsEff->SetBinContent(i,0.05);
599
600   // PID efficiency (from PID/noPID)
601   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
602   fPIDEff->SetBinContent(1,0.0);
603   fPIDEff->SetBinContent(2,0.05);
604   for(Int_t i=3;i<=12;i++) fPIDEff->SetBinContent(i,0.00);
605   for(Int_t i=12;i<=24;i++) fPIDEff->SetBinContent(i,0.05);
606
607   // MC dN/dpt  
608   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
609   fMCPtShape->SetBinContent(1,0.0);
610   fMCPtShape->SetBinContent(2,0.02);
611   fMCPtShape->SetBinContent(3,0.02);
612   for(Int_t i=4;i<=8;i++) fMCPtShape->SetBinContent(i,0.0);
613   for(Int_t i=9;i<=24;i++) fMCPtShape->SetBinContent(i,0.02);
614
615   // particle-antiparticle
616   /*
617   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
618   for(Int_t i=1;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
619   */
620   return;
621
622
623 }
624
625 //--------------------------------------------------------------------------
626 void AliHFSystErr::InitDplustoKpipi2010pp() {
627   // 
628   // D+->Kpipi syst errors. Responsible: R. Bala
629   //  2010 pp sample
630   //
631
632
633 // Normalization
634   fNorm = new TH1F("fNorm","fNorm",24,0,24);
635   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
636
637   // Branching ratio 
638   fBR = new TH1F("fBR","fBR",24,0,24);
639   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
640
641   // Tracking efficiency
642   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
643   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
644
645
646   // Raw yield extraction
647   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
648   fRawYield->SetBinContent(1,1);
649   fRawYield->SetBinContent(2,0.25);
650   fRawYield->SetBinContent(3,0.25);
651   fRawYield->SetBinContent(4,0.20);
652   fRawYield->SetBinContent(5,0.09);
653   fRawYield->SetBinContent(6,0.09);
654   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);  
655   for(Int_t i=12;i<=24;i++) fRawYield->SetBinContent(i,0.10);  
656   
657   // Cuts efficiency (from cuts variation)
658   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
659   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
660
661   // PID efficiency (from PID/noPID)
662   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
663   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 5%
664   fPIDEff->SetBinContent(1,0.15); // 15%
665   fPIDEff->SetBinContent(2,0.15); // 15%
666   fPIDEff->SetBinContent(3,0.15); // 15%
667   fPIDEff->SetBinContent(4,0.15); // 15%
668   for(Int_t i=12;i<=16;i++) fPIDEff->SetBinContent(i,0.10); // 5%
669
670   // MC dN/dpt  
671   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
672   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
673   fMCPtShape->SetBinContent(1,0.03);
674   fMCPtShape->SetBinContent(2,0.03);
675
676
677   // particle-antiparticle
678   /*
679   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
680   fPartAntipart->SetBinContent(1,1);
681   fPartAntipart->SetBinContent(2,1);
682   fPartAntipart->SetBinContent(3,0.12);
683   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
684   */
685   return;
686 }
687  
688 //--------------------------------------------------------------------------
689 void AliHFSystErr::InitDstoKKpi2010pp() {
690   // 
691   // D+s->KKpi syst errors. Responsible: G.M. Innocenti
692   //  2010 pp sample
693   //
694
695
696 // Normalization
697   fNorm = new TH1F("fNorm","fNorm",12,0,12);
698   for(Int_t i=1;i<=12;i++) fNorm->SetBinContent(i,0.035); // 3.5% error on sigmaV0and
699
700   // Branching ratio 
701   fBR = new TH1F("fBR","fBR",12,0,12);
702   for(Int_t i=1;i<=12;i++) fBR->SetBinContent(i,0.06); // 0.14/2.32 PDG2010
703
704   // Tracking efficiency
705   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",12,0,12);
706   for(Int_t i=1;i<=12;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
707
708
709   // Raw yield extraction
710   fRawYield = new TH1F("fRawYield","fRawYield",12,0,12);
711   fRawYield->SetBinContent(1,1);
712   fRawYield->SetBinContent(2,1);
713   fRawYield->SetBinContent(3,0.20);
714   fRawYield->SetBinContent(4,0.20);
715   fRawYield->SetBinContent(5,0.15);
716   fRawYield->SetBinContent(6,0.15);
717   fRawYield->SetBinContent(7,0.15);
718   fRawYield->SetBinContent(8,0.15);
719   fRawYield->SetBinContent(9,0.20);
720   fRawYield->SetBinContent(10,0.20);
721   fRawYield->SetBinContent(11,0.20);
722   fRawYield->SetBinContent(12,0.20);
723   
724   // Cuts efficiency (from cuts variation)
725   fCutsEff = new TH1F("fCutsEff","fCutsEff",12,0,12);
726   for(Int_t i=1;i<=12;i++) fCutsEff->SetBinContent(i,0.15); // 15%
727
728   // PID efficiency (from PID/noPID)
729   fPIDEff = new TH1F("fPIDEff","fPIDEff",12,0,12);
730   for(Int_t i=1;i<=12;i++) fPIDEff->SetBinContent(i,0.07); // 7%
731
732   // MC dN/dpt 
733   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
734   for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
735   for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
736   for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
737   for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
738   for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
739
740
741   // particle-antiparticle
742   /*
743   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",12,0,12);
744   fPartAntipart->SetBinContent(1,1);
745   fPartAntipart->SetBinContent(2,1);
746   fPartAntipart->SetBinContent(3,0.12);
747   for(Int_t i=4;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
748   */
749   return;
750 }
751    
752  
753 //--------------------------------------------------------------------------
754 void AliHFSystErr::InitDplustoKpipi2011PbPb07half() {
755   // 
756   // D+->Kpipi syst errors. Responsible: E. Bruna
757   //  2011 PbPb sample, 0-7.5% CC
758   //
759
760  // Normalization
761   fNorm = new TH1F("fNorm","fNorm",36,0,36);
762   for(Int_t i=1;i<=36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
763
764   // Branching ratio 
765   fBR = new TH1F("fBR","fBR",36,0,36);
766   for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
767
768   // Tracking efficiency
769   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);
770   for(Int_t i=1;i<=36;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
771
772   // Raw yield extraction
773   fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
774   for(Int_t i=1;i<=36;i++) fRawYield->SetBinContent(i,.10);  //5 to 10%
775   fRawYield->SetBinContent(4,0.30);
776   fRawYield->SetBinContent(5,0.20);
777   fRawYield->SetBinContent(6,0.20);
778   for(Int_t i=7; i<=8; i++) fRawYield->SetBinContent(i,0.10);
779   for(Int_t i=9; i<=12; i++) fRawYield->SetBinContent(i,0.08);
780   for(Int_t i=13; i<=16; i++) fRawYield->SetBinContent(i,0.05);
781   for(Int_t i=17; i<=24; i++) fRawYield->SetBinContent(i,0.08);
782   for(Int_t i=25; i<=36; i++) fRawYield->SetBinContent(i,0.20);
783
784
785   // Cuts efficiency (from cuts variation)
786   fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
787   for(Int_t i=1; i<=12; i++) fCutsEff->SetBinContent(i,0.10);
788   for(Int_t i=13; i<=36; i++) fCutsEff->SetBinContent(i,0.08);
789
790
791   // PID efficiency (from PID/noPID)
792   fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
793   for(Int_t i=1;i<=36;i++) fPIDEff->SetBinContent(i,0.05); // 5%
794
795   // MC dN/dpt  (24/7/2012)
796   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
797   for(Int_t iBin=1; iBin<=5; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
798   for(Int_t iBin=6; iBin<=36; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
799   //  for(Int_t iBin=13; iBin<=36; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
800
801
802   // particle-antiparticle
803   /*
804   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
805   fPartAntipart->SetBinContent(1,1);
806   fPartAntipart->SetBinContent(2,1);
807   fPartAntipart->SetBinContent(3,0.12);
808   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
809   */
810
811   return;
812 }
813
814 //--------------------------------------------------------------------------
815 void AliHFSystErr::InitDstoKKpi2011PbPb07half() {
816   // 
817   // D+s->Kpipi syst errors. Responsible: G.M. Innocenti
818   //  2011 PbPb sample, 0-7.5% CC
819   //
820
821  // Normalization
822   fNorm = new TH1F("fNorm","fNorm",12,0,12);
823   for(Int_t i=1;i<=12;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
824
825   // Branching ratio 
826   fBR = new TH1F("fBR","fBR",12,0,12);
827   for(Int_t i=1;i<=12;i++) fBR->SetBinContent(i,0.053); // 0.12/2.28 PDG2012
828
829   // Tracking efficiency
830   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",12,0,12);
831   for(Int_t i=1;i<=12;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
832
833   // Raw yield extraction
834   fRawYield = new TH1F("fRawYield","fRawYield",12,0,12);
835   for(Int_t i=1;i<=6;i++) fRawYield->SetBinContent(i,.30); 
836   for(Int_t i=7; i<=12; i++) fRawYield->SetBinContent(i,0.20);
837  
838
839
840   // Cuts efficiency (from cuts variation)
841   fCutsEff = new TH1F("fCutsEff","fCutsEff",12,0,12);
842   for(Int_t i=1;i<=12;i++) fCutsEff->SetBinContent(i,0.20); // 20%
843
844   // PID efficiency (from PID/noPID)
845   fPIDEff = new TH1F("fPIDEff","fPIDEff",12,0,12);
846   for(Int_t i=1;i<=12;i++) fPIDEff->SetBinContent(i,0.1); // 10%
847
848    // MC dN/dpt 
849   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
850   for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
851   for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
852   for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
853   for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
854   for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
855
856   // particle-antiparticle
857   /*
858   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",12,0,12);
859   fPartAntipart->SetBinContent(1,1);
860   fPartAntipart->SetBinContent(2,1);
861   fPartAntipart->SetBinContent(3,0.12);
862   for(Int_t i=4;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
863   */
864
865   return;
866 }
867
868 //_________________________________________________________________________
869 void AliHFSystErr::InitDstoKKpi2013pPb0100(){
870   //
871   // Dstar syst
872   AliInfo(" Settings for Ds --> K K pi, p-Pb collisions at 5.023 TeV"); 
873   
874   //Normalization
875   fNorm = new TH1F("fNorm","fNorm",24,0,24);
876   for(Int_t i=3;i<=12;i++) fNorm->SetBinContent(i,0.00); // 
877   
878  // Branching ratio 
879   fBR = new TH1F("fBR","fBR",12,0,12);
880   for(Int_t i=3;i<=12;i++) fBR->SetBinContent(i,0.053); // 0.12/2.28 PDG2012
881
882   // Tracking efficiency
883   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
884   for(Int_t i=3;i<=12;i++) fTrackingEff->SetBinContent(i,0.09); // 3% per track
885
886   // Raw yield extraction
887   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
888   for(Int_t i=3; i<=4; i++) fRawYield->SetBinContent(i,0.10);
889   for(Int_t i=5; i<=6; i++) fRawYield->SetBinContent(i,0.08);
890   for(Int_t i=7; i<=8; i++) fRawYield->SetBinContent(i,0.05);
891   for(Int_t i=9; i<=12; i++) fRawYield->SetBinContent(i,0.08);
892
893   // Cuts efficiency (from cuts variation)
894   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
895   for(Int_t i=3;i<=12;i++) fCutsEff->SetBinContent(i,0.15); //
896
897   // PID efficiency (from PID/noPID)
898   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
899   for(Int_t i=3;i<=4;i++) fPIDEff->SetBinContent(i,0.10); 
900   for(Int_t i=5;i<=12;i++) fPIDEff->SetBinContent(i,0.05); 
901
902   // MC dN/dpt  
903   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
904   for(Int_t i=3;i<=12;i++) fMCPtShape->SetBinContent(i,0.04);
905
906   // particle-antiparticle
907   /*
908   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
909   fPartAntipart->SetBinContent(1,1);
910   fPartAntipart->SetBinContent(2,1);
911   fPartAntipart->SetBinContent(3,0.12);
912   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
913   */
914   return;
915 }
916
917
918 //--------------------------------------------------------------------------
919 void AliHFSystErr::InitDplustoKpipi2010PbPb020() {
920   // 
921   // D+->Kpipi syst errors. Responsible: ??
922   //  2010 PbPb sample, 0-20 CC
923   //
924
925  // Normalization
926   fNorm = new TH1F("fNorm","fNorm",20,0,20);
927   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
928
929   // Branching ratio 
930   fBR = new TH1F("fBR","fBR",20,0,20);
931   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
932
933   // Tracking efficiency
934   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
935   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
936
937   // Raw yield extraction
938   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
939   for(Int_t i=1;i<=20;i++) fRawYield->SetBinContent(i,.10);  //5 to 10%
940   // fRawYield->SetBinContent(5,0.23);
941   //fRawYield->SetBinContent(6,0.23);
942   fRawYield->SetBinContent(7,0.20);
943   fRawYield->SetBinContent(8,0.20);
944   fRawYield->SetBinContent(9,0.15);
945   fRawYield->SetBinContent(10,0.15);
946   fRawYield->SetBinContent(11,0.15);
947   fRawYield->SetBinContent(12,0.15);
948
949   // Cuts efficiency (from cuts variation)
950   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
951   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
952
953   // PID efficiency (from PID/noPID)
954   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
955   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
956
957   // MC dN/dpt  (2/2/2012)
958   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
959   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.);
960   for(Int_t iBin=7; iBin<=8; iBin++) fMCPtShape->SetBinContent(iBin,0.01);
961   for(Int_t iBin=9; iBin<=12; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
962   for(Int_t iBin=13; iBin<=16; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
963
964
965   // particle-antiparticle
966   /*
967   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
968   fPartAntipart->SetBinContent(1,1);
969   fPartAntipart->SetBinContent(2,1);
970   fPartAntipart->SetBinContent(3,0.12);
971   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
972   */
973
974   return;
975 }
976
977 //--------------------------------------------------------------------------
978 void AliHFSystErr::InitDplustoKpipi2010PbPb4080() {
979   // 
980   // D+->Kpipi syst errors. Responsible: ??
981   //  2010 PbPb sample, 40-80 CC
982   //
983   
984
985  // Normalization
986   fNorm = new TH1F("fNorm","fNorm",20,0,20);
987   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
988
989   // Branching ratio 
990   fBR = new TH1F("fBR","fBR",20,0,20);
991   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% 
992
993   // Tracking efficiency
994   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
995   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
996
997
998   // Raw yield extraction
999   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
1000   fRawYield->SetBinContent(1,1);
1001   fRawYield->SetBinContent(2,1);
1002   fRawYield->SetBinContent(3,1);
1003   fRawYield->SetBinContent(4,0.15);
1004   fRawYield->SetBinContent(5,0.05);
1005   fRawYield->SetBinContent(6,0.05);
1006   fRawYield->SetBinContent(7,0.15);
1007   fRawYield->SetBinContent(8,0.15);
1008   for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.15);
1009   for(Int_t i=13;i<=20;i++) fRawYield->SetBinContent(i,1);  //5 to 10%
1010
1011   // Cuts efficiency (from cuts variation)
1012   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
1013   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1014
1015   // PID efficiency (from PID/noPID)
1016   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
1017   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
1018   fPIDEff->SetBinContent(3,0.13); // 13%
1019  
1020
1021   // MC dN/dpt  (2/2/2012)
1022   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
1023   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0);
1024   for(Int_t iBin=4; iBin<=8; iBin++) fMCPtShape->SetBinContent(iBin,0.01);
1025   for(Int_t iBin=9; iBin<=12; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
1026   for(Int_t iBin=13; iBin<=16; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
1027
1028
1029   // particle-antiparticle
1030   /*
1031   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
1032   fPartAntipart->SetBinContent(1,1);
1033   fPartAntipart->SetBinContent(2,1);
1034   fPartAntipart->SetBinContent(3,0.12);
1035   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
1036   */
1037   return;
1038 }
1039
1040 //--------------------------------------------------------------------------
1041 void AliHFSystErr::InitDplustoKpipi2010ppLowEn() {
1042
1043   // 
1044   // D+->Kpipi syst errors. Responsible: R. Bala
1045   //  2011 2.76 TeV pp sample
1046   //
1047   AliInfo(" Settings for D+ --> K pi pi p-p collisions at 2.76 TeV"); 
1048
1049   // Normalization
1050   fNorm = new TH1F("fNorm","fNorm",20,0,20);
1051   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 10% error on sigmaV0and
1052
1053   // Branching ratio 
1054   fBR = new TH1F("fBR","fBR",20,0,20);
1055   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
1056
1057   // Tracking efficiency
1058   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
1059   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // 3% (1% per track)
1060
1061   // Raw yield extraction
1062   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
1063   fRawYield->SetBinContent(1,1);
1064   fRawYield->SetBinContent(2,1);
1065   for(Int_t i=3;i<=6;i++) fRawYield->SetBinContent(i,0.10);  //5 to 10%
1066   fRawYield->SetBinContent(7,0.15);
1067   fRawYield->SetBinContent(8,0.15); 
1068   for(Int_t i=9;i<=20;i++) fRawYield->SetBinContent(i,0.055);  //5 to 10%
1069
1070   // Cuts efficiency (from cuts variation)
1071   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
1072   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
1073
1074   // PID efficiency (from PID/noPID)
1075   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
1076   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
1077   fPIDEff->SetBinContent(3,0.10); // 13%
1078   fPIDEff->SetBinContent(4,0.10); // 13%
1079  
1080   // MC dN/dpt  (copied from D0 : will update later)
1081   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
1082   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
1083   fMCPtShape->SetBinContent(1,0.03);
1084   fMCPtShape->SetBinContent(2,0.03);
1085
1086   return;
1087 }
1088
1089 //_________________________________________________________________________
1090 void AliHFSystErr::InitDplustoKpipi2013pPb0100(){
1091   //
1092   // Dplus syst 
1093   AliInfo(" Settings for D+ --> K pi pi, p-Pb collisions at 5.023 TeV"); 
1094
1095   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1096   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.00); // 
1097   
1098   fBR = new TH1F("fBR","fBR",20,0,20);
1099   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
1100
1101   // Tracking efficiency
1102   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
1103   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.09); // 3% per track
1104
1105   // Raw yield extraction
1106   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1107   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.0);  
1108   
1109   // Cuts efficiency (from cuts variation)
1110   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1111   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.0); //
1112
1113   // PID efficiency (from PID/noPID)
1114   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1115   fPIDEff->SetBinContent(2,0.05);
1116   for(Int_t i=3;i<=12;i++) fPIDEff->SetBinContent(i,0.00); 
1117   for(Int_t i=12;i<=24;i++) fPIDEff->SetBinContent(i,0.05); 
1118
1119   // MC dN/dpt  
1120   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1121   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.0);
1122
1123   // particle-antiparticle
1124   /*
1125   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
1126   fPartAntipart->SetBinContent(1,1);
1127   fPartAntipart->SetBinContent(2,1);
1128   fPartAntipart->SetBinContent(3,0.12);
1129   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
1130   */
1131   return;
1132
1133
1134 }
1135
1136 //--------------------------------------------------------------------------
1137 void AliHFSystErr::InitDstartoD0pi2010pp() {
1138   // 
1139   // D*+->D0pi syst errors. Responsible: A. Grelli, Y. Wang
1140   //  2010 pp sample
1141   //
1142
1143  // Normalization
1144   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1145   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
1146
1147   // Branching ratio 
1148   fBR = new TH1F("fBR","fBR",24,0,24);
1149   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1150
1151   // Tracking efficiency
1152   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
1153   fTrackingEff->SetBinContent(1,1.0);
1154   fTrackingEff->SetBinContent(2,0.13); // 10% (ITSsa) \oplus 8% (4% per ITSTPC track)
1155   fTrackingEff->SetBinContent(3,0.12);
1156   fTrackingEff->SetBinContent(3,0.12);
1157   for(Int_t i=4;i<=24;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
1158
1159
1160   // Raw yield extraction
1161   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1162   fRawYield->SetBinContent(1,1.0);
1163   fRawYield->SetBinContent(2,0.10);
1164   fRawYield->SetBinContent(3,0.04);
1165   fRawYield->SetBinContent(4,0.03);
1166   fRawYield->SetBinContent(5,0.03);
1167   fRawYield->SetBinContent(6,0.05);
1168   fRawYield->SetBinContent(7,0.05);
1169   fRawYield->SetBinContent(8,0.05);
1170   for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.04);  //4%
1171   for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.09);  //4%
1172   for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,0.2);  //4%
1173
1174   // Cuts efficiency (from cuts variation)
1175   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1176   fCutsEff->SetBinContent(2,0.22);
1177   for(Int_t i=3;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1178
1179   // PID efficiency (from PID/noPID)
1180   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1181   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.04); // 3%
1182  
1183
1184   // MC dN/dpt  (copied from D0 : will update later)
1185   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1186   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
1187   fMCPtShape->SetBinContent(1,0.03);
1188   fMCPtShape->SetBinContent(2,0.03);
1189
1190   return;
1191
1192
1193 }
1194 //--------------------------------------------------------------------------
1195 void AliHFSystErr::InitDstartoD0pi2010ppLowEn() {
1196
1197   // 
1198   // D+->Kpipi syst errors. Responsible: A. Grelli
1199   //  2011 2.76 TeV pp sample
1200   //
1201   AliInfo(" Settings for D*+ --> D0 pi p-p collisions at 2.76 TeV"); 
1202
1203 // Normalization
1204   fNorm = new TH1F("fNorm","fNorm",20,0,20);
1205   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 10% error on sigmaV0and
1206
1207   // Branching ratio 
1208   fBR = new TH1F("fBR","fBR",20,0,20);
1209   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1210
1211   // Tracking efficiency
1212   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
1213   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); //10% (to be checked!!)
1214
1215   // Raw yield extraction
1216   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
1217   fRawYield->SetBinContent(1,1);
1218   fRawYield->SetBinContent(2,1);
1219   fRawYield->SetBinContent(3,0.14);
1220   fRawYield->SetBinContent(4,0.14);
1221   fRawYield->SetBinContent(5,0.12);
1222   fRawYield->SetBinContent(6,0.12);
1223   fRawYield->SetBinContent(7,0.06);
1224   fRawYield->SetBinContent(8,0.06);
1225   fRawYield->SetBinContent(9,0.08);
1226   fRawYield->SetBinContent(10,0.08);
1227   fRawYield->SetBinContent(11,0.08);
1228   fRawYield->SetBinContent(12,0.08);
1229   for(Int_t i=9;i<=20;i++) fRawYield->SetBinContent(i,0.065);
1230
1231   // Cuts efficiency (from cuts variation)
1232   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
1233   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10);  
1234   fCutsEff->SetBinContent(3,0.15);
1235   fCutsEff->SetBinContent(4,0.15);
1236   fCutsEff->SetBinContent(5,0.15);
1237   fCutsEff->SetBinContent(6,0.15);
1238   fCutsEff->SetBinContent(7,0.10);
1239   fCutsEff->SetBinContent(8,0.10);
1240   fCutsEff->SetBinContent(9,0.10);
1241   fCutsEff->SetBinContent(10,0.10);
1242   fCutsEff->SetBinContent(11,0.10);
1243   fCutsEff->SetBinContent(12,0.10);
1244
1245   // PID efficiency (from PID/noPID)
1246   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
1247   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 10%
1248
1249   // MC dN/dpt
1250   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
1251   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
1252   fMCPtShape->SetBinContent(1,0.03);
1253   fMCPtShape->SetBinContent(2,0.03);
1254
1255   return;
1256 }
1257
1258 //------------------------------------------------------------------------
1259 void AliHFSystErr::InitDstartoD0pi2010PbPb020() {
1260   // 
1261   // D*+->D0pi syst errors. Responsible: A. Grelli
1262   //  2010 PbPb sample, 0-20 CC
1263   //
1264
1265   AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 0-20 centrality - DUMMY"); 
1266
1267  // Normalization
1268   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1269   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
1270
1271   // Branching ratio 
1272   fBR = new TH1F("fBR","fBR",24,0,24);
1273   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1274
1275   // Tracking efficiency
1276   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1277   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1278
1279
1280   // Raw yield extraction
1281   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1282   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.1);  //4%
1283   fRawYield->SetBinContent(3,0.2);
1284   fRawYield->SetBinContent(4,0.2);
1285   fRawYield->SetBinContent(5,0.2);
1286   fRawYield->SetBinContent(6,0.2);
1287  
1288   // Cuts efficiency (from cuts variation)
1289   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1290   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1291   fCutsEff->SetBinContent(4,0.15);
1292   fCutsEff->SetBinContent(5,0.15);
1293   fCutsEff->SetBinContent(6,0.15);
1294
1295   // PID efficiency (from PID/noPID)
1296   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1297   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1298  
1299
1300   // MC dN/dpt  (from study on D* pt shape)
1301   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1302   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.045);
1303   fMCPtShape->SetBinContent(4,0.025);
1304   fMCPtShape->SetBinContent(5,0.025);
1305   fMCPtShape->SetBinContent(6,0.025);
1306   fMCPtShape->SetBinContent(7,0.04);
1307   fMCPtShape->SetBinContent(8,0.04);
1308   fMCPtShape->SetBinContent(9,0.03);
1309   fMCPtShape->SetBinContent(10,0.03);
1310   fMCPtShape->SetBinContent(11,0.03);
1311   fMCPtShape->SetBinContent(12,0.03);
1312   
1313   return;
1314
1315 }
1316 // ----------------------------- 2011 ----------------------------------
1317 void AliHFSystErr::InitDstartoD0pi2011PbPb07half() {
1318   // 
1319   // D*+->D0pi syst errors. Responsible: A. Grelli
1320   //  2011 PbPb sample, 0-7.5 CC
1321   //
1322
1323   AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 0-7.5 centrality - DUMMY"); 
1324
1325
1326  // Normalization
1327   fNorm = new TH1F("fNorm","fNorm",36,0,36);
1328   for(Int_t i=1;i<=36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
1329
1330   // Branching ratio 
1331   fBR = new TH1F("fBR","fBR",36,0,36);
1332   for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1333
1334   // Tracking efficiency
1335   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);;
1336   for(Int_t i=1;i<=36;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1337
1338
1339   // Raw yield extraction
1340   fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
1341   for(Int_t i=1;i<=36;i++) fRawYield->SetBinContent(i,0.05);  //4%
1342   fRawYield->SetBinContent(4,0.2);
1343   fRawYield->SetBinContent(5,0.10);
1344   fRawYield->SetBinContent(6,0.10);
1345   fRawYield->SetBinContent(7,0.08);
1346   for(Int_t i=25;i<=36;i++) fRawYield->SetBinContent(i,0.15);  //4%
1347
1348   // Cuts efficiency (from cuts variation)
1349   fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
1350   for(Int_t i=1;i<=36;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1351
1352   // PID efficiency (from PID/noPID)
1353   fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
1354   for(Int_t i=1;i<=36;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1355   fPIDEff->SetBinContent(4,0.09);
1356
1357   // MC dN/dpt  (from study on D* pt shape)
1358   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
1359   for(Int_t i=1;i<=36;i++) fMCPtShape->SetBinContent(i,0.035);
1360   fMCPtShape->SetBinContent(4,0.015);
1361   fMCPtShape->SetBinContent(5,0.015);
1362   fMCPtShape->SetBinContent(6,0.015);
1363   fMCPtShape->SetBinContent(7,0.02);
1364   fMCPtShape->SetBinContent(8,0.02);
1365   fMCPtShape->SetBinContent(9,0.03);
1366   fMCPtShape->SetBinContent(10,0.03);
1367   fMCPtShape->SetBinContent(11,0.03);
1368   fMCPtShape->SetBinContent(12,0.03);
1369   
1370   
1371
1372   return;
1373
1374 }
1375 //-------------------------------------------------------------------------
1376 void AliHFSystErr::InitDstartoD0pi2010PbPb2040() {
1377   // 
1378   // D*+->D0pi syst errors. Responsible: A. Grelli
1379   //  2010 PbPb sample, 20-40 CC
1380   //
1381
1382   AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 20-40 centrality - DUMMY"); 
1383
1384  // Normalization
1385   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1386   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.10); // 10% error on sigmaV0and
1387
1388   // Branching ratio 
1389   fBR = new TH1F("fBR","fBR",24,0,24);
1390   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1391
1392   // Tracking efficiency
1393   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1394   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1395
1396
1397   // Raw yield extraction
1398   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1399   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.15);  //4%
1400  
1401   // Cuts efficiency (from cuts variation)
1402   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1403   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1404
1405   // PID efficiency (from PID/noPID)
1406   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1407   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.04); // 3%
1408  
1409
1410   // MC dN/dpt  (copied from D0 : will update later)
1411   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1412   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.);
1413   fMCPtShape->SetBinContent(1,0.03);
1414   fMCPtShape->SetBinContent(2,0.03);
1415
1416   return;
1417
1418 }
1419
1420 //--------------------------------------------------------------------------
1421 void AliHFSystErr::InitDstartoD0pi2010PbPb4080() {
1422   // 
1423   // D*+->D0pi syst errors. Responsible: A. Grelli
1424   //  2010 PbPb sample, 40-80 CC
1425   //
1426
1427   AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 40-80 centrality - DUMMY"); 
1428
1429  // Normalization
1430   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1431   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
1432
1433   // Branching ratio 
1434   fBR = new TH1F("fBR","fBR",24,0,24);
1435   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1436
1437   // Tracking efficiency
1438   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1439   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1440
1441
1442   // Raw yield extraction
1443   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1444   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.2);  //4%
1445   fRawYield->SetBinContent(1,1);
1446   fRawYield->SetBinContent(2,0.15);
1447   fRawYield->SetBinContent(3,0.15);
1448   fRawYield->SetBinContent(4,0.15);
1449   fRawYield->SetBinContent(5,0.15);
1450   fRawYield->SetBinContent(6,0.10);
1451   fRawYield->SetBinContent(7,0.10);
1452   fRawYield->SetBinContent(8,0.10);
1453   fRawYield->SetBinContent(9,0.11);
1454   fRawYield->SetBinContent(10,0.11);
1455   fRawYield->SetBinContent(11,0.11);
1456   fRawYield->SetBinContent(12,0.11);
1457   fRawYield->SetBinContent(13,0.08);
1458   fRawYield->SetBinContent(14,0.08);
1459   fRawYield->SetBinContent(15,0.08);
1460   fRawYield->SetBinContent(16,0.08);
1461
1462
1463   // Cuts efficiency (from cuts variation)
1464   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1465   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1466
1467   // PID efficiency (from PID/noPID)
1468   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1469   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1470  
1471
1472   // MC dN/dpt  (copied from D0 : will update later)
1473   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1474   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.01);
1475   fMCPtShape->SetBinContent(2,0.05);
1476   fMCPtShape->SetBinContent(3,0.05);
1477   fMCPtShape->SetBinContent(4,0.05);
1478   fMCPtShape->SetBinContent(5,0.04);
1479   fMCPtShape->SetBinContent(6,0.02);
1480   fMCPtShape->SetBinContent(7,0.04);
1481   fMCPtShape->SetBinContent(8,0.04);
1482  
1483   return;
1484
1485 }
1486
1487 //_________________________________________________________________________
1488 void AliHFSystErr::InitDstartoD0pi2013pPb0100(){
1489   // Dstar syst in pPb 2013 MB
1490   //
1491   AliInfo(" Settings for D* --> D0 pi, p-Pb collisions at 5.023 TeV"); 
1492
1493   //Normalization
1494   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1495   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.00); // 
1496   
1497   // Branching ratio
1498   fBR = new TH1F("fBR","fBR",24,0,24);
1499   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1500
1501   // Tracking efficiency
1502   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
1503   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.09); // 3% per track
1504
1505   // Raw yield extraction
1506   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1507   fRawYield->SetBinContent(1,1.0);
1508   fRawYield->SetBinContent(2,0.10);
1509   fRawYield->SetBinContent(3,0.05);
1510   fRawYield->SetBinContent(4,0.02);
1511   fRawYield->SetBinContent(5,0.02);
1512   fRawYield->SetBinContent(6,0.04);
1513   fRawYield->SetBinContent(7,0.04);
1514   fRawYield->SetBinContent(8,0.04);
1515   for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.04); 
1516   for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.06);
1517   for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,0.06);
1518
1519   // Cuts efficiency (from cuts variation)
1520   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1521   fCutsEff->SetBinContent(1,0.);
1522   fCutsEff->SetBinContent(2,0.10);
1523   for(Int_t i=3;i<=24;i++) fCutsEff->SetBinContent(i,0.05);
1524
1525   // PID efficiency (from PID/noPID)
1526   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1527   fPIDEff->SetBinContent(1,0.0);
1528   fPIDEff->SetBinContent(2,0.05);
1529   for(Int_t i=3;i<=12;i++) fPIDEff->SetBinContent(i,0.00);
1530   for(Int_t i=12;i<=24;i++) fPIDEff->SetBinContent(i,0.05);
1531
1532   // MC dN/dpt  
1533   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1534   for(Int_t i=1;i<=3;i++) fMCPtShape->SetBinContent(i,0.02);
1535   for(Int_t i=4;i<=8;i++) fMCPtShape->SetBinContent(i,0.);
1536   for(Int_t i=9;i<=24;i++) fMCPtShape->SetBinContent(i,0.01);
1537
1538   // particle-antiparticle
1539   /*
1540   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
1541   fPartAntipart->SetBinContent(1,1);
1542   fPartAntipart->SetBinContent(2,1);
1543   fPartAntipart->SetBinContent(3,0.12);
1544   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
1545   */
1546   return;
1547
1548
1549 }
1550
1551 //--------------------------------------------------------------------------
1552 void AliHFSystErr::InitD0toKpi2010PbPb010CentScan(){
1553   // define errors for RAA vs. centrality
1554   InitD0toKpi2010PbPb020();
1555   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1556   for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.17);      
1557   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1558 }
1559 //--------------------------------------------------------------------------
1560 void AliHFSystErr::InitD0toKpi2010PbPb1020CentScan(){
1561   // define errors for RAA vs. centrality
1562   InitD0toKpi2010PbPb020();
1563   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1564   for(Int_t i=3;i<=5;i++)  fMCPtShape->SetBinContent(i,0.17);    
1565   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1566 }
1567 //--------------------------------------------------------------------------
1568 void AliHFSystErr::InitD0toKpi2010PbPb2040CentScan(){
1569   // define errors for RAA vs. centrality
1570   InitD0toKpi2010PbPb4080();
1571   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1572   for(Int_t i=3;i<=5;i++)  fMCPtShape->SetBinContent(i,0.14);
1573   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1574 }
1575 //--------------------------------------------------------------------------
1576 void AliHFSystErr::InitD0toKpi2010PbPb4060CentScan(){
1577    // define errors for RAA vs. centrality
1578   InitD0toKpi2010PbPb4080();
1579   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.06);
1580   for(Int_t i=3;i<=5;i++)  fMCPtShape->SetBinContent(i,0.11);  
1581   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1582 }
1583 //--------------------------------------------------------------------------
1584 void AliHFSystErr::InitD0toKpi2010PbPb6080CentScan(){
1585    // define errors for RAA vs. centrality
1586   InitD0toKpi2010PbPb4080();
1587   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1588   for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.08);
1589   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1590 }
1591 //--------------------------------------------------------------------------
1592 void AliHFSystErr::InitDplustoKpipi2010PbPb010CentScan(){
1593   // define errors for RAA vs. centrality
1594   InitDplustoKpipi2010PbPb020();
1595   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.18);
1596   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.09);
1597
1598 }
1599 //--------------------------------------------------------------------------
1600 void AliHFSystErr::InitDplustoKpipi2010PbPb1020CentScan(){
1601   // define errors for RAA vs. centrality
1602   InitDplustoKpipi2010PbPb020();
1603   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.23);
1604   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1605 }
1606 //--------------------------------------------------------------------------
1607 void AliHFSystErr::InitDplustoKpipi2010PbPb2040CentScan(){
1608   // define errors for RAA vs. centrality
1609   InitDplustoKpipi2010PbPb020();
1610   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1611   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.095);
1612 }
1613 //--------------------------------------------------------------------------
1614 void AliHFSystErr::InitDplustoKpipi2010PbPb4060CentScan(){
1615   // define errors for RAA vs. centrality
1616   InitDplustoKpipi2010PbPb4080();
1617   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1618   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1619 }
1620 //--------------------------------------------------------------------------
1621 void AliHFSystErr::InitDplustoKpipi2010PbPb6080CentScan(){
1622   // define errors for RAA vs. centrality
1623   InitDplustoKpipi2010PbPb4080();
1624   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.15);
1625   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.07);
1626 }
1627
1628 //--------------------------------------------------------------------------
1629 void AliHFSystErr::InitDstartoD0pi2010PbPb010CentScan(){
1630   // define errors for RAA vs. centrality
1631   InitDstartoD0pi2010PbPb020();
1632   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.16); 
1633   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.15);
1634 }
1635 //--------------------------------------------------------------------------
1636 void AliHFSystErr::InitDstartoD0pi2010PbPb1020CentScan(){
1637   // define errors for RAA vs. centrality
1638   InitDstartoD0pi2010PbPb020();
1639   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05); 
1640   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.15);
1641 }
1642 //--------------------------------------------------------------------------
1643 void AliHFSystErr::InitDstartoD0pi2010PbPb2040CentScan(){
1644   // define errors for RAA vs. centrality
1645   InitDstartoD0pi2010PbPb2040();
1646   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10); 
1647   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1648 }
1649 //--------------------------------------------------------------------------
1650 void AliHFSystErr::InitDstartoD0pi2010PbPb4060CentScan(){
1651   // define errors for RAA vs. centrality
1652   InitDstartoD0pi2010PbPb4080();
1653   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10); 
1654   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.045);
1655 }
1656 //--------------------------------------------------------------------------
1657 void AliHFSystErr::InitDstartoD0pi2010PbPb6080CentScan(){
1658   // define errors for RAA vs. centrality
1659   InitDstartoD0pi2010PbPb4080();
1660   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10); 
1661   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.045);
1662 }
1663
1664 //--------------------------------------------------------------------------
1665 void AliHFSystErr::InitD0toKpi2011PbPb010CentScan(){
1666   // define errors for RAA vs. centrality 2011
1667   InitD0toKpi2011PbPb07half();
1668   
1669 }
1670 //--------------------------------------------------------------------------
1671 void AliHFSystErr::InitD0toKpi2011PbPb1020CentScan(){
1672   // define errors for RAA vs. centrality 2011
1673   InitD0toKpi2011PbPb07half();
1674   
1675 }
1676 //--------------------------------------------------------------------------
1677 void AliHFSystErr::InitD0toKpi2011PbPb2030CentScan(){
1678   // define errors for RAA vs. centrality 2011
1679   InitD0toKpi2011PbPb07half();
1680   
1681 }
1682 //--------------------------------------------------------------------------
1683 void AliHFSystErr::InitD0toKpi2011PbPb3040CentScan(){
1684   // define errors for RAA vs. centrality 2011
1685   InitD0toKpi2011PbPb07half();
1686   
1687 }
1688 //--------------------------------------------------------------------------
1689 void AliHFSystErr::InitD0toKpi2011PbPb4050CentScan(){
1690   // define errors for RAA vs. centrality 2011
1691   InitD0toKpi2011PbPb07half();
1692   
1693 }
1694 //--------------------------------------------------------------------------
1695 void AliHFSystErr::InitD0toKpi2010PbPb5080CentScan(){
1696   // define errors for RAA vs. centrality 2011
1697   InitD0toKpi2011PbPb07half();
1698   
1699 }
1700
1701 //--------------------------------------------------------------------------
1702 void AliHFSystErr::InitDplustoKpipi2011PbPb010CentScan(){
1703   // define errors for RAA vs. centrality 2011
1704   InitDplustoKpipi2011PbPb07half();
1705
1706   for(Int_t i=2;i<=5;i++) fRawYield->SetBinContent(i,0.15);
1707   for(Int_t i=5;i<=8;i++) fRawYield->SetBinContent(i,0.05);
1708   for(Int_t i=9;i<=17;i++) fRawYield->SetBinContent(i,0.15);
1709
1710   for(Int_t i=2;i<=5;i++) fMCPtShape->SetBinContent(i,0.10);
1711   for(Int_t i=5;i<=8;i++) fMCPtShape->SetBinContent(i,0.05);
1712   for(Int_t i=9;i<=17;i++) fMCPtShape->SetBinContent(i,0.05);
1713
1714   for(Int_t i=2;i<=5;i++) fCutsEff->SetBinContent(i,0.15);
1715   for(Int_t i=5;i<=8;i++) fCutsEff->SetBinContent(i,0.20);
1716   for(Int_t i=9;i<=17;i++) fCutsEff->SetBinContent(i,0.10);
1717 }
1718
1719 //--------------------------------------------------------------------------
1720 void AliHFSystErr::InitDplustoKpipi2011PbPb1020CentScan(){
1721   // define errors for RAA vs. centrality 2011
1722   InitDplustoKpipi2011PbPb07half();
1723
1724   for(Int_t i=2;i<=5;i++) fRawYield->SetBinContent(i,0.10);
1725   for(Int_t i=5;i<=8;i++) fRawYield->SetBinContent(i,0.10);
1726   for(Int_t i=9;i<=17;i++)fRawYield->SetBinContent(i,0.15);
1727
1728   for(Int_t i=2;i<=5;i++) fMCPtShape->SetBinContent(i,0.10);
1729   for(Int_t i=5;i<=8;i++) fMCPtShape->SetBinContent(i,0.05);
1730   for(Int_t i=9;i<=17;i++) fMCPtShape->SetBinContent(i,0.05);
1731   
1732   for(Int_t i=2;i<=5;i++) fCutsEff->SetBinContent(i,0.15);
1733   for(Int_t i=5;i<=8;i++) fCutsEff->SetBinContent(i,0.20);
1734   for(Int_t i=9;i<=17;i++) fCutsEff->SetBinContent(i,0.15);
1735 }
1736
1737 //--------------------------------------------------------------------------
1738 void AliHFSystErr::InitDplustoKpipi2011PbPb2030CentScan(){
1739   // define errors for RAA vs. centrality 2011
1740   InitDplustoKpipi2011PbPb07half();
1741   
1742   for(Int_t i=2;i<=5;i++) fRawYield->SetBinContent(i,0.10);
1743   for(Int_t i=5;i<=8;i++) fRawYield->SetBinContent(i,0.10);
1744   for(Int_t i=9;i<=17;i++) fRawYield->SetBinContent(i,0.08);
1745
1746   for(Int_t i=2;i<=5;i++) fMCPtShape->SetBinContent(i,0.10);
1747   for(Int_t i=5;i<=8;i++) fMCPtShape->SetBinContent(i,0.05);
1748   for(Int_t i=9;i<=17;i++) fMCPtShape->SetBinContent(i,0.05);
1749   
1750   for(Int_t i=2;i<=5;i++) fCutsEff->SetBinContent(i,0.20);
1751   for(Int_t i=5;i<=8;i++) fCutsEff->SetBinContent(i,0.15);
1752   for(Int_t i=9;i<=17;i++) fCutsEff->SetBinContent(i,0.20);
1753 }
1754
1755 //--------------------------------------------------------------------------
1756 void AliHFSystErr::InitDplustoKpipi2011PbPb3040CentScan(){
1757   // define errors for RAA vs. centrality 2011
1758   InitDplustoKpipi2011PbPb07half();
1759
1760   for(Int_t i=2;i<=5;i++) fRawYield->SetBinContent(i,0.20);
1761   for(Int_t i=5;i<=8;i++) fRawYield->SetBinContent(i,0.10);
1762   for(Int_t i=9;i<=17;i++) fRawYield->SetBinContent(i,0.20);
1763
1764   for(Int_t i=2;i<=5;i++) fMCPtShape->SetBinContent(i,0.10);
1765   for(Int_t i=5;i<=8;i++) fMCPtShape->SetBinContent(i,0.05);
1766   for(Int_t i=9;i<=17;i++) fMCPtShape->SetBinContent(i,0.05);
1767
1768   for(Int_t i=2;i<=5;i++) fCutsEff->SetBinContent(i,0.20);
1769   for(Int_t i=5;i<=8;i++) fCutsEff->SetBinContent(i,0.20);
1770   for(Int_t i=9;i<=17;i++) fCutsEff->SetBinContent(i,0.20);
1771 }
1772
1773 //--------------------------------------------------------------------------
1774 void AliHFSystErr::InitDplustoKpipi2011PbPb4050CentScan(){
1775   // define errors for RAA vs. centrality 2011
1776   InitDplustoKpipi2011PbPb07half();
1777
1778   for(Int_t i=2;i<=5;i++) fRawYield->SetBinContent(i,0.10);
1779   for(Int_t i=5;i<=8;i++) fRawYield->SetBinContent(i,0.10);
1780   for(Int_t i=9;i<=17;i++) fRawYield->SetBinContent(i,0.05);
1781
1782   for(Int_t i=2;i<=5;i++) fMCPtShape->SetBinContent(i,0.10);
1783   for(Int_t i=5;i<=8;i++) fMCPtShape->SetBinContent(i,0.05);
1784   for(Int_t i=9;i<=17;i++) fMCPtShape->SetBinContent(i,0.05);
1785
1786   for(Int_t i=2;i<=5;i++) fCutsEff->SetBinContent(i,0.20);
1787   for(Int_t i=5;i<=8;i++) fCutsEff->SetBinContent(i,0.15);
1788   for(Int_t i=9;i<=17;i++) fCutsEff->SetBinContent(i,0.20);
1789 }
1790
1791 //--------------------------------------------------------------------------
1792 void AliHFSystErr::InitDplustoKpipi2010PbPb5080CentScan(){
1793   // define errors for RAA vs. centrality 2011
1794   InitDplustoKpipi2010PbPb4080();
1795
1796   for(Int_t i=2;i<=5;i++) fRawYield->SetBinContent(i,0.05);
1797   for(Int_t i=5;i<=8;i++) fRawYield->SetBinContent(i,0.05);
1798   for(Int_t i=9;i<=17;i++) fRawYield->SetBinContent(i,0.10);
1799
1800   for(Int_t i=1;i<=17;i++) fMCPtShape->SetBinContent(i,0.05);
1801   for(Int_t i=2;i<=5;i++) fCutsEff->SetBinContent(i,0.20); // 10%
1802   for(Int_t i=5;i<=8;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1803   for(Int_t i=9;i<=17;i++) fCutsEff->SetBinContent(i,0.20); // 10%
1804 }
1805
1806 //--------------------------------------------------------------------------
1807 void AliHFSystErr::InitDstartoD0pi2011PbPb010CentScan(){
1808   // define errors for RAA vs. centrality 2011
1809   InitDstartoD0pi2011PbPb07half();
1810   
1811 }
1812 //--------------------------------------------------------------------------
1813 void AliHFSystErr::InitDstartoD0pi2011PbPb1020CentScan(){
1814   // define errors for RAA vs. centrality 2011
1815   InitDstartoD0pi2011PbPb07half();
1816   
1817 }
1818 //--------------------------------------------------------------------------
1819 void AliHFSystErr::InitDstartoD0pi2011PbPb2030CentScan(){
1820   // define errors for RAA vs. centrality 2011
1821   InitDstartoD0pi2011PbPb07half();
1822   
1823 }
1824 //--------------------------------------------------------------------------
1825 void AliHFSystErr::InitDstartoD0pi2011PbPb3040CentScan(){
1826   // define errors for RAA vs. centrality 2011
1827   InitDstartoD0pi2011PbPb07half();
1828   
1829 }
1830 //--------------------------------------------------------------------------
1831 void AliHFSystErr::InitDstartoD0pi2011PbPb4050CentScan(){
1832   // define errors for RAA vs. centrality 2011
1833   InitDstartoD0pi2011PbPb07half();
1834   
1835 }
1836 //--------------------------------------------------------------------------
1837 void AliHFSystErr::InitDstartoD0pi2010PbPb5080CentScan(){
1838   // define errors for RAA vs. centrality 2011
1839   InitDstartoD0pi2011PbPb07half();
1840   
1841 }
1842
1843
1844
1845 //--------------------------------------------------------------------------
1846 void AliHFSystErr::InitLctopKpi2010pp() {
1847   //
1848   // Lc->pKpi syst errors. Responsible: R. Romita
1849   //  2010 pp sample
1850   //
1851
1852   // Normalization
1853   fNorm = new TH1F("fNorm","fNorm",4,2,6);
1854   for(Int_t i=1;i<=4;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
1855
1856   // Tracking efficiency
1857   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",4,2,6);
1858   for(Int_t i=1;i<=4;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
1859
1860   // Raw yield extraction
1861   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1862   fRawYield->SetBinContent(1,0.20);
1863   fRawYield->SetBinContent(2,0.15);
1864   fRawYield->SetBinContent(3,0.10);
1865   fRawYield->SetBinContent(4,0.15);
1866
1867   fCutsEff = new TH1F("fCutsEff","fCutsEff",4,2,6);
1868   fCutsEff->SetBinContent(1,0.50);
1869   fCutsEff->SetBinContent(2,0.07);
1870   fCutsEff->SetBinContent(3,0.30);
1871   fCutsEff->SetBinContent(4,0.40);
1872
1873   // PID efficiency (from PID/noPID)
1874   fPIDEff = new TH1F("fPIDEff","fPIDEff",4,2,4);
1875   fPIDEff->SetBinContent(1,0.13); // 15%
1876   fPIDEff->SetBinContent(2,0.30); // 15%
1877   fPIDEff->SetBinContent(3,0.5); // 15%
1878   fPIDEff->SetBinContent(4,0.30); // 15%
1879
1880   // MC dN/dpt 
1881   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
1882   for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
1883   for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
1884   for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
1885   for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
1886   for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
1887 }
1888
1889 //--------------------------------------------------------------------------
1890 Double_t AliHFSystErr::GetCutsEffErr(Double_t pt) const {
1891   // 
1892   // Get error
1893   //
1894
1895   Int_t bin=fCutsEff->FindBin(pt);
1896
1897   return fCutsEff->GetBinContent(bin);
1898 }
1899 //--------------------------------------------------------------------------
1900 Double_t AliHFSystErr::GetMCPtShapeErr(Double_t pt) const {
1901   // 
1902   // Get error
1903   //
1904
1905   Int_t bin=fMCPtShape->FindBin(pt);
1906
1907   return fMCPtShape->GetBinContent(bin);
1908 }
1909 //--------------------------------------------------------------------------
1910 Double_t AliHFSystErr::GetSeleEffErr(Double_t pt) const {
1911   // 
1912   // Get error
1913   //
1914
1915   Double_t err=GetCutsEffErr(pt)*GetCutsEffErr(pt)+GetMCPtShapeErr(pt)*GetMCPtShapeErr(pt);
1916
1917   return TMath::Sqrt(err);
1918 }
1919 //--------------------------------------------------------------------------
1920 Double_t AliHFSystErr::GetPIDEffErr(Double_t pt) const {
1921   // 
1922   // Get error
1923   //
1924
1925   Int_t bin=fPIDEff->FindBin(pt);
1926
1927   return fPIDEff->GetBinContent(bin);
1928 }
1929 //--------------------------------------------------------------------------
1930 Double_t AliHFSystErr::GetTrackingEffErr(Double_t pt) const {
1931   // 
1932   // Get error
1933   //
1934
1935   Int_t bin=fTrackingEff->FindBin(pt);
1936
1937   return fTrackingEff->GetBinContent(bin);
1938 }
1939 //--------------------------------------------------------------------------
1940 Double_t AliHFSystErr::GetRawYieldErr(Double_t pt) const {
1941   // 
1942   // Get error
1943   //
1944
1945   Int_t bin=fRawYield->FindBin(pt);
1946
1947   return fRawYield->GetBinContent(bin);
1948 }
1949 //--------------------------------------------------------------------------
1950 Double_t AliHFSystErr::GetPartAntipartErr(Double_t pt) const {
1951   // 
1952   // Get error
1953   //
1954
1955   Int_t bin=fPartAntipart->FindBin(pt);
1956
1957   return fPartAntipart->GetBinContent(bin);
1958 }
1959 //--------------------------------------------------------------------------
1960 Double_t AliHFSystErr::GetTotalSystErr(Double_t pt,Double_t feeddownErr) const {
1961   // 
1962   // Get total syst error (except norm. error)
1963   //
1964
1965   Double_t err=0.;
1966
1967   if(fRawYield) err += GetRawYieldErr(pt)*GetRawYieldErr(pt);
1968   if(fTrackingEff) err += GetTrackingEffErr(pt)*GetTrackingEffErr(pt);
1969   //  if(fBR) err += GetBRErr()*GetBRErr();
1970   if(fCutsEff) err += GetCutsEffErr(pt)*GetCutsEffErr(pt);
1971   if(fPIDEff) err += GetPIDEffErr(pt)*GetPIDEffErr(pt);
1972   if(fMCPtShape) err += GetMCPtShapeErr(pt)*GetMCPtShapeErr(pt);
1973   if(fPartAntipart) err += GetPartAntipartErr(pt)*GetPartAntipartErr(pt);
1974
1975   err += feeddownErr*feeddownErr;
1976
1977   return TMath::Sqrt(err);
1978 }
1979 //---------------------------------------------------------------------------
1980 void AliHFSystErr::DrawErrors(TGraphAsymmErrors *grErrFeeddown) const {
1981   //
1982   // Draw errors
1983   //
1984   gStyle->SetOptStat(0);
1985
1986   TCanvas *cSystErr = new TCanvas("cSystErr","Systematic Errors",300,80,640,500);
1987   cSystErr->Range(0.20,-0.5,18.4,0.34);
1988   cSystErr->SetRightMargin(0.318);
1989   cSystErr->SetFillColor(0);
1990
1991   TH2F *hFrame = new TH2F("hFrame","Systematic errors; p_{t} (GeV/c); Relative Error",40,0,40,100,-1,+1);
1992   hFrame->SetAxisRange(1.,35.9,"X");
1993   hFrame->SetAxisRange(-0.5,0.5,"Y");
1994   hFrame->Draw();
1995
1996   TLegend *leg = new TLegend(0.69,0.44,0.98,0.86,NULL,"brNDC");
1997   leg->SetTextSize(0.03601695);
1998   leg->SetFillStyle(0);
1999   leg->SetBorderSize(0);
2000   
2001   TH1F *hTotErr=new TH1F("hTotErr","",36,0,36);
2002   Int_t nbins = fNorm->GetNbinsX();
2003   TGraphAsymmErrors *gTotErr = new TGraphAsymmErrors(nbins);
2004   for(Int_t i=1;i<=36;i++) {
2005     Double_t pt = hTotErr->GetBinCenter(i);
2006     Double_t ptwidth = hTotErr->GetBinWidth(i);
2007
2008     if(grErrFeeddown) {
2009       Double_t x=0., y=0., errxl=0., errxh=0., erryl=0., erryh=0.;
2010       Double_t toterryl=0., toterryh=0.;
2011       for(Int_t j=0; j<grErrFeeddown->GetN(); j++) {
2012         grErrFeeddown->GetPoint(j,x,y);
2013         errxh = grErrFeeddown->GetErrorXhigh(j);
2014         errxl = grErrFeeddown->GetErrorXlow(j);
2015         if ( ( (x-errxl) <= pt) && ( (x+errxl) >= pt) ) {
2016           erryh = grErrFeeddown->GetErrorYhigh(j);
2017           erryl = grErrFeeddown->GetErrorYlow(j);
2018         }
2019       }
2020       if (erryl>=1e-3) toterryl = GetTotalSystErr(pt,erryl);
2021       else toterryl = GetTotalSystErr(pt);
2022       if (erryh>=1e-3) toterryh = GetTotalSystErr(pt,erryh);
2023       else toterryh = GetTotalSystErr(pt);
2024
2025       hTotErr->SetBinContent(i,toterryh);
2026       gTotErr->SetPoint(i,pt,0.);
2027       gTotErr->SetPointError(i,ptwidth/2.,ptwidth/2.,toterryl,toterryh); // i, exl, exh, eyl, eyh
2028     }
2029     else {
2030       hTotErr->SetBinContent(i,GetTotalSystErr(pt));
2031       gTotErr->SetPoint(i,pt,0.);
2032       gTotErr->SetPointError(i,ptwidth/2.,ptwidth/2.,GetTotalSystErr(pt),GetTotalSystErr(pt)); // i, exl, exh, eyl, eyh
2033     }
2034
2035   }
2036   gTotErr->SetLineColor(kBlack);
2037   gTotErr->SetFillColor(kRed);
2038   gTotErr->SetFillStyle(3002);
2039   gTotErr->Draw("2");
2040   leg->AddEntry(gTotErr,"Total (excl. norm.)","f");
2041 //   hTotErr->SetLineColor(1);
2042 //   hTotErr->SetLineWidth(3);
2043 //   hTotErr->Draw("same");
2044 //   leg->AddEntry(hTotErr,"Total (excl. norm.)","l");
2045   
2046
2047   fNorm->SetFillColor(1);
2048   fNorm->SetFillStyle(3002);
2049   //fNorm->Draw("same");
2050   //TH1F *hNormRefl = ReflectHisto(fNorm);
2051   //hNormRefl->Draw("same");
2052   Double_t norm = fNorm->GetBinContent(1)*100;
2053   leg->AddEntry(fNorm,Form("Normalization (%.1f%s)",norm,"%"),"");
2054
2055   if(grErrFeeddown) {
2056     grErrFeeddown->SetFillColor(kTeal-8);
2057     grErrFeeddown->SetFillStyle(3001);
2058     grErrFeeddown->Draw("2");
2059     leg->AddEntry(grErrFeeddown,"Feed-down from B","f");
2060   }
2061   if(fTrackingEff) {
2062     fTrackingEff->SetFillColor(4);
2063     fTrackingEff->SetFillStyle(3006);
2064     fTrackingEff->Draw("same");
2065     TH1F *hTrackingEffRefl = ReflectHisto(fTrackingEff);
2066     hTrackingEffRefl->Draw("same");
2067     leg->AddEntry(fTrackingEff,"Tracking efficiency","f");
2068   }
2069   if(fBR) {
2070     fBR->SetFillColor(6);
2071     fBR->SetFillStyle(3005);
2072     //fBR->SetFillStyle(3020);
2073     fBR->Draw("same");
2074     TH1F *hBRRefl = ReflectHisto(fBR);
2075     hBRRefl->Draw("same");
2076     leg->AddEntry(fBR,"Branching ratio","f");
2077   }
2078   if(fRawYield) {
2079     Int_t ci;   // for color index setting
2080     ci = TColor::GetColor("#00cc00");
2081     fRawYield->SetLineColor(ci);
2082     //    fRawYield->SetLineColor(3);
2083     fRawYield->SetLineWidth(3);
2084     fRawYield->Draw("same");
2085     TH1F *hRawYieldRefl = ReflectHisto(fRawYield);
2086     hRawYieldRefl->Draw("same");
2087     leg->AddEntry(fRawYield,"Yield extraction","l");
2088   }
2089   if(fCutsEff) {
2090     fCutsEff->SetLineColor(4);
2091     fCutsEff->SetLineWidth(3);
2092     fCutsEff->Draw("same");
2093     TH1F *hCutsEffRefl = ReflectHisto(fCutsEff);
2094     hCutsEffRefl->Draw("same");
2095     leg->AddEntry(fCutsEff,"Cuts efficiency","l");
2096   }
2097   if(fPIDEff) {
2098     fPIDEff->SetLineColor(7);
2099     fPIDEff->SetLineWidth(3);
2100     fPIDEff->Draw("same");
2101     TH1F *hPIDEffRefl = ReflectHisto(fPIDEff);
2102     hPIDEffRefl->Draw("same");
2103     leg->AddEntry(fPIDEff,"PID efficiency","l");
2104   }
2105   if(fMCPtShape) {
2106     Int_t ci = TColor::GetColor("#9933ff");
2107     fMCPtShape->SetLineColor(ci);
2108     //    fMCPtShape->SetLineColor(8);
2109     fMCPtShape->SetLineWidth(3);
2110     fMCPtShape->Draw("same");
2111     TH1F *hMCPtShapeRefl = ReflectHisto(fMCPtShape);
2112     hMCPtShapeRefl->Draw("same");
2113     leg->AddEntry(fMCPtShape,"MC p_{t} shape","l");
2114   }
2115   if(fPartAntipart) {
2116     Int_t ci = TColor::GetColor("#ff6600");
2117     fPartAntipart->SetLineColor(ci);
2118     //    fPartAntipart->SetLineColor(9);
2119     fPartAntipart->SetLineWidth(3);
2120     fPartAntipart->Draw("same");
2121     TH1F *hPartAntipartRefl = ReflectHisto(fPartAntipart);
2122     hPartAntipartRefl->Draw("same");
2123     leg->AddEntry(fPartAntipart,"D = #bar{D}","l");
2124   }
2125
2126
2127   leg->Draw();
2128
2129   cSystErr->SaveAs("RelativeSystematics.eps");
2130
2131   return;
2132 }
2133 //-------------------------------------------------------------------------
2134 TH1F* AliHFSystErr::ReflectHisto(TH1F *hin) const {
2135   //
2136   // Clones and reflects histogram 
2137   // 
2138   TH1F *hout=(TH1F*)hin->Clone("hout");
2139   hout->Scale(-1.);
2140
2141   return hout;
2142 }
2143
2144
2145