]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AliHFSystErr.cxx
D0 pPb systematics (A.Festanti) + fix for pPb (ZCdV)
[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   fNorm = new TH1F("fNorm","fNorm",24,0,24);
575   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.02); // 
576   
577   // Branching ratio 
578   fBR = new TH1F("fBR","fBR",24,0,24);
579   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.013); // 1.2% PDG2010
580
581   // Tracking efficiency
582   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
583   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.06); // 3% per track
584
585   // Raw yield extraction
586   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
587   fRawYield->SetBinContent(1,0.0);
588   fRawYield->SetBinContent(2,0.05);
589   for(Int_t i=3;i<=6;i++) fRawYield->SetBinContent(i,0.02);
590   for(Int_t i=7;i<=24;i++) fRawYield->SetBinContent(i,0.05);
591   
592   // Cuts efficiency (from cuts variation)
593   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
594   fCutsEff->SetBinContent(1,0.0);
595   fCutsEff->SetBinContent(2,0.10);
596   for(Int_t i=3;i<=24;i++) fCutsEff->SetBinContent(i,0.05);
597
598   // PID efficiency (from PID/noPID)
599   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
600   fPIDEff->SetBinContent(1,0.0);
601   fPIDEff->SetBinContent(2,0.05);
602   for(Int_t i=3;i<=12;i++) fPIDEff->SetBinContent(i,0.00);
603   for(Int_t i=12;i<=24;i++) fPIDEff->SetBinContent(i,0.05);
604
605   // MC dN/dpt  
606   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
607   fMCPtShape->SetBinContent(1,0.0);
608   fMCPtShape->SetBinContent(2,0.02);
609   fMCPtShape->SetBinContent(3,0.02);
610   for(Int_t i=4;i<=8;i++) fMCPtShape->SetBinContent(i,0.0);
611   for(Int_t i=9;i<=24;i++) fMCPtShape->SetBinContent(i,0.02);
612
613   // particle-antiparticle
614   /*
615   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
616   for(Int_t i=1;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
617   */
618   return;
619
620
621 }
622
623 //--------------------------------------------------------------------------
624 void AliHFSystErr::InitDplustoKpipi2010pp() {
625   // 
626   // D+->Kpipi syst errors. Responsible: R. Bala
627   //  2010 pp sample
628   //
629
630
631 // Normalization
632   fNorm = new TH1F("fNorm","fNorm",24,0,24);
633   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
634
635   // Branching ratio 
636   fBR = new TH1F("fBR","fBR",24,0,24);
637   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
638
639   // Tracking efficiency
640   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
641   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
642
643
644   // Raw yield extraction
645   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
646   fRawYield->SetBinContent(1,1);
647   fRawYield->SetBinContent(2,0.25);
648   fRawYield->SetBinContent(3,0.25);
649   fRawYield->SetBinContent(4,0.20);
650   fRawYield->SetBinContent(5,0.09);
651   fRawYield->SetBinContent(6,0.09);
652   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);  
653   for(Int_t i=12;i<=24;i++) fRawYield->SetBinContent(i,0.10);  
654   
655   // Cuts efficiency (from cuts variation)
656   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
657   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
658
659   // PID efficiency (from PID/noPID)
660   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
661   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 5%
662   fPIDEff->SetBinContent(1,0.15); // 15%
663   fPIDEff->SetBinContent(2,0.15); // 15%
664   fPIDEff->SetBinContent(3,0.15); // 15%
665   fPIDEff->SetBinContent(4,0.15); // 15%
666   for(Int_t i=12;i<=16;i++) fPIDEff->SetBinContent(i,0.10); // 5%
667
668   // MC dN/dpt  
669   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
670   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
671   fMCPtShape->SetBinContent(1,0.03);
672   fMCPtShape->SetBinContent(2,0.03);
673
674
675   // particle-antiparticle
676   /*
677   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
678   fPartAntipart->SetBinContent(1,1);
679   fPartAntipart->SetBinContent(2,1);
680   fPartAntipart->SetBinContent(3,0.12);
681   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
682   */
683   return;
684 }
685  
686 //--------------------------------------------------------------------------
687 void AliHFSystErr::InitDstoKKpi2010pp() {
688   // 
689   // D+s->KKpi syst errors. Responsible: G.M. Innocenti
690   //  2010 pp sample
691   //
692
693
694 // Normalization
695   fNorm = new TH1F("fNorm","fNorm",12,0,12);
696   for(Int_t i=1;i<=12;i++) fNorm->SetBinContent(i,0.035); // 3.5% error on sigmaV0and
697
698   // Branching ratio 
699   fBR = new TH1F("fBR","fBR",12,0,12);
700   for(Int_t i=1;i<=12;i++) fBR->SetBinContent(i,0.06); // 0.14/2.32 PDG2010
701
702   // Tracking efficiency
703   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",12,0,12);
704   for(Int_t i=1;i<=12;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
705
706
707   // Raw yield extraction
708   fRawYield = new TH1F("fRawYield","fRawYield",12,0,12);
709   fRawYield->SetBinContent(1,1);
710   fRawYield->SetBinContent(2,1);
711   fRawYield->SetBinContent(3,0.20);
712   fRawYield->SetBinContent(4,0.20);
713   fRawYield->SetBinContent(5,0.15);
714   fRawYield->SetBinContent(6,0.15);
715   fRawYield->SetBinContent(7,0.15);
716   fRawYield->SetBinContent(8,0.15);
717   fRawYield->SetBinContent(9,0.20);
718   fRawYield->SetBinContent(10,0.20);
719   fRawYield->SetBinContent(11,0.20);
720   fRawYield->SetBinContent(12,0.20);
721   
722   // Cuts efficiency (from cuts variation)
723   fCutsEff = new TH1F("fCutsEff","fCutsEff",12,0,12);
724   for(Int_t i=1;i<=12;i++) fCutsEff->SetBinContent(i,0.15); // 15%
725
726   // PID efficiency (from PID/noPID)
727   fPIDEff = new TH1F("fPIDEff","fPIDEff",12,0,12);
728   for(Int_t i=1;i<=12;i++) fPIDEff->SetBinContent(i,0.07); // 7%
729
730   // MC dN/dpt 
731   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
732   for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
733   for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
734   for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
735   for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
736   for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
737
738
739   // particle-antiparticle
740   /*
741   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",12,0,12);
742   fPartAntipart->SetBinContent(1,1);
743   fPartAntipart->SetBinContent(2,1);
744   fPartAntipart->SetBinContent(3,0.12);
745   for(Int_t i=4;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
746   */
747   return;
748 }
749    
750  
751 //--------------------------------------------------------------------------
752 void AliHFSystErr::InitDplustoKpipi2011PbPb07half() {
753   // 
754   // D+->Kpipi syst errors. Responsible: E. Bruna
755   //  2011 PbPb sample, 0-7.5% CC
756   //
757
758  // Normalization
759   fNorm = new TH1F("fNorm","fNorm",36,0,36);
760   for(Int_t i=1;i<=36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
761
762   // Branching ratio 
763   fBR = new TH1F("fBR","fBR",36,0,36);
764   for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
765
766   // Tracking efficiency
767   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);
768   for(Int_t i=1;i<=36;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
769
770   // Raw yield extraction
771   fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
772   for(Int_t i=1;i<=36;i++) fRawYield->SetBinContent(i,.10);  //5 to 10%
773   fRawYield->SetBinContent(4,0.30);
774   fRawYield->SetBinContent(5,0.20);
775   fRawYield->SetBinContent(6,0.20);
776   for(Int_t i=7; i<=8; i++) fRawYield->SetBinContent(i,0.10);
777   for(Int_t i=9; i<=12; i++) fRawYield->SetBinContent(i,0.08);
778   for(Int_t i=13; i<=16; i++) fRawYield->SetBinContent(i,0.05);
779   for(Int_t i=17; i<=24; i++) fRawYield->SetBinContent(i,0.08);
780   for(Int_t i=25; i<=36; i++) fRawYield->SetBinContent(i,0.20);
781
782
783   // Cuts efficiency (from cuts variation)
784   fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
785   for(Int_t i=1; i<=12; i++) fCutsEff->SetBinContent(i,0.10);
786   for(Int_t i=13; i<=36; i++) fCutsEff->SetBinContent(i,0.08);
787
788
789   // PID efficiency (from PID/noPID)
790   fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
791   for(Int_t i=1;i<=36;i++) fPIDEff->SetBinContent(i,0.05); // 5%
792
793   // MC dN/dpt  (24/7/2012)
794   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
795   for(Int_t iBin=1; iBin<=5; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
796   for(Int_t iBin=6; iBin<=36; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
797   //  for(Int_t iBin=13; iBin<=36; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
798
799
800   // particle-antiparticle
801   /*
802   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
803   fPartAntipart->SetBinContent(1,1);
804   fPartAntipart->SetBinContent(2,1);
805   fPartAntipart->SetBinContent(3,0.12);
806   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
807   */
808
809   return;
810 }
811
812 //--------------------------------------------------------------------------
813 void AliHFSystErr::InitDstoKKpi2011PbPb07half() {
814   // 
815   // D+s->Kpipi syst errors. Responsible: G.M. Innocenti
816   //  2011 PbPb sample, 0-7.5% CC
817   //
818
819  // Normalization
820   fNorm = new TH1F("fNorm","fNorm",12,0,12);
821   for(Int_t i=1;i<=12;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
822
823   // Branching ratio 
824   fBR = new TH1F("fBR","fBR",12,0,12);
825   for(Int_t i=1;i<=12;i++) fBR->SetBinContent(i,0.053); // 0.12/2.28 PDG2012
826
827   // Tracking efficiency
828   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",12,0,12);
829   for(Int_t i=1;i<=12;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
830
831   // Raw yield extraction
832   fRawYield = new TH1F("fRawYield","fRawYield",12,0,12);
833   for(Int_t i=1;i<=6;i++) fRawYield->SetBinContent(i,.30); 
834   for(Int_t i=7; i<=12; i++) fRawYield->SetBinContent(i,0.20);
835  
836
837
838   // Cuts efficiency (from cuts variation)
839   fCutsEff = new TH1F("fCutsEff","fCutsEff",12,0,12);
840   for(Int_t i=1;i<=12;i++) fCutsEff->SetBinContent(i,0.20); // 20%
841
842   // PID efficiency (from PID/noPID)
843   fPIDEff = new TH1F("fPIDEff","fPIDEff",12,0,12);
844   for(Int_t i=1;i<=12;i++) fPIDEff->SetBinContent(i,0.1); // 10%
845
846    // MC dN/dpt 
847   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
848   for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
849   for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
850   for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
851   for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
852   for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
853
854   // particle-antiparticle
855   /*
856   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",12,0,12);
857   fPartAntipart->SetBinContent(1,1);
858   fPartAntipart->SetBinContent(2,1);
859   fPartAntipart->SetBinContent(3,0.12);
860   for(Int_t i=4;i<=12;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
861   */
862
863   return;
864 }
865
866 //_________________________________________________________________________
867 void AliHFSystErr::InitDstoKKpi2013pPb0100(){
868
869   // Dstar syst
870   
871   //Normalization
872   fNorm = new TH1F("fNorm","fNorm",24,0,24);
873   for(Int_t i=3;i<=12;i++) fNorm->SetBinContent(i,0.00); // 
874   
875  // Branching ratio 
876   fBR = new TH1F("fBR","fBR",12,0,12);
877   for(Int_t i=3;i<=12;i++) fBR->SetBinContent(i,0.053); // 0.12/2.28 PDG2012
878
879   // Tracking efficiency
880   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
881   for(Int_t i=3;i<=12;i++) fTrackingEff->SetBinContent(i,0.07); // 3% per track
882
883   // Raw yield extraction
884   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
885   for(Int_t i=3;i<=12;i++) fRawYield->SetBinContent(i,0.0);  
886   
887   // Cuts efficiency (from cuts variation)
888   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
889   for(Int_t i=3;i<=12;i++) fCutsEff->SetBinContent(i,0.0); //
890
891   // PID efficiency (from PID/noPID)
892   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
893   for(Int_t i=3;i<=12;i++) fPIDEff->SetBinContent(i,0.07); 
894
895
896   // MC dN/dpt  
897   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
898   for(Int_t i=3;i<=12;i++) fMCPtShape->SetBinContent(i,0.0);
899
900   // particle-antiparticle
901   /*
902   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
903   fPartAntipart->SetBinContent(1,1);
904   fPartAntipart->SetBinContent(2,1);
905   fPartAntipart->SetBinContent(3,0.12);
906   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
907   */
908   return;
909
910
911 }
912
913
914 //--------------------------------------------------------------------------
915 void AliHFSystErr::InitDplustoKpipi2010PbPb020() {
916   // 
917   // D+->Kpipi syst errors. Responsible: ??
918   //  2010 PbPb sample, 0-20 CC
919   //
920
921  // Normalization
922   fNorm = new TH1F("fNorm","fNorm",20,0,20);
923   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
924
925   // Branching ratio 
926   fBR = new TH1F("fBR","fBR",20,0,20);
927   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
928
929   // Tracking efficiency
930   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
931   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
932
933   // Raw yield extraction
934   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
935   for(Int_t i=1;i<=20;i++) fRawYield->SetBinContent(i,.10);  //5 to 10%
936   // fRawYield->SetBinContent(5,0.23);
937   //fRawYield->SetBinContent(6,0.23);
938   fRawYield->SetBinContent(7,0.20);
939   fRawYield->SetBinContent(8,0.20);
940   fRawYield->SetBinContent(9,0.15);
941   fRawYield->SetBinContent(10,0.15);
942   fRawYield->SetBinContent(11,0.15);
943   fRawYield->SetBinContent(12,0.15);
944
945   // Cuts efficiency (from cuts variation)
946   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
947   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
948
949   // PID efficiency (from PID/noPID)
950   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
951   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
952
953   // MC dN/dpt  (2/2/2012)
954   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
955   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.);
956   for(Int_t iBin=7; iBin<=8; iBin++) fMCPtShape->SetBinContent(iBin,0.01);
957   for(Int_t iBin=9; iBin<=12; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
958   for(Int_t iBin=13; iBin<=16; iBin++) fMCPtShape->SetBinContent(iBin,0.05);
959
960
961   // particle-antiparticle
962   /*
963   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
964   fPartAntipart->SetBinContent(1,1);
965   fPartAntipart->SetBinContent(2,1);
966   fPartAntipart->SetBinContent(3,0.12);
967   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
968   */
969
970   return;
971 }
972
973 //--------------------------------------------------------------------------
974 void AliHFSystErr::InitDplustoKpipi2010PbPb4080() {
975   // 
976   // D+->Kpipi syst errors. Responsible: ??
977   //  2010 PbPb sample, 40-80 CC
978   //
979   
980
981  // Normalization
982   fNorm = new TH1F("fNorm","fNorm",20,0,20);
983   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
984
985   // Branching ratio 
986   fBR = new TH1F("fBR","fBR",20,0,20);
987   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% 
988
989   // Tracking efficiency
990   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
991   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
992
993
994   // Raw yield extraction
995   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
996   fRawYield->SetBinContent(1,1);
997   fRawYield->SetBinContent(2,1);
998   fRawYield->SetBinContent(3,1);
999   fRawYield->SetBinContent(4,0.15);
1000   fRawYield->SetBinContent(5,0.05);
1001   fRawYield->SetBinContent(6,0.05);
1002   fRawYield->SetBinContent(7,0.15);
1003   fRawYield->SetBinContent(8,0.15);
1004   for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.15);
1005   for(Int_t i=13;i<=20;i++) fRawYield->SetBinContent(i,1);  //5 to 10%
1006
1007   // Cuts efficiency (from cuts variation)
1008   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
1009   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1010
1011   // PID efficiency (from PID/noPID)
1012   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
1013   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
1014   fPIDEff->SetBinContent(3,0.13); // 13%
1015  
1016
1017   // MC dN/dpt  (2/2/2012)
1018   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
1019   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0);
1020   for(Int_t iBin=4; iBin<=8; iBin++) fMCPtShape->SetBinContent(iBin,0.01);
1021   for(Int_t iBin=9; iBin<=12; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
1022   for(Int_t iBin=13; iBin<=16; iBin++) fMCPtShape->SetBinContent(iBin,0.03);
1023
1024
1025   // particle-antiparticle
1026   /*
1027   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
1028   fPartAntipart->SetBinContent(1,1);
1029   fPartAntipart->SetBinContent(2,1);
1030   fPartAntipart->SetBinContent(3,0.12);
1031   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
1032   */
1033   return;
1034 }
1035
1036 //--------------------------------------------------------------------------
1037 void AliHFSystErr::InitDplustoKpipi2010ppLowEn() {
1038
1039   // 
1040   // D+->Kpipi syst errors. Responsible: R. Bala
1041   //  2011 2.76 TeV pp sample
1042   //
1043   AliInfo(" Settings for D+ --> K pi pi p-p collisions at 2.76 TeV"); 
1044
1045   // Normalization
1046   fNorm = new TH1F("fNorm","fNorm",20,0,20);
1047   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 10% error on sigmaV0and
1048
1049   // Branching ratio 
1050   fBR = new TH1F("fBR","fBR",20,0,20);
1051   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
1052
1053   // Tracking efficiency
1054   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
1055   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); // 3% (1% per track)
1056
1057   // Raw yield extraction
1058   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
1059   fRawYield->SetBinContent(1,1);
1060   fRawYield->SetBinContent(2,1);
1061   for(Int_t i=3;i<=6;i++) fRawYield->SetBinContent(i,0.10);  //5 to 10%
1062   fRawYield->SetBinContent(7,0.15);
1063   fRawYield->SetBinContent(8,0.15); 
1064   for(Int_t i=9;i<=20;i++) fRawYield->SetBinContent(i,0.055);  //5 to 10%
1065
1066   // Cuts efficiency (from cuts variation)
1067   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
1068   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.15); // 10%
1069
1070   // PID efficiency (from PID/noPID)
1071   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
1072   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 5%
1073   fPIDEff->SetBinContent(3,0.10); // 13%
1074   fPIDEff->SetBinContent(4,0.10); // 13%
1075  
1076   // MC dN/dpt  (copied from D0 : will update later)
1077   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
1078   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
1079   fMCPtShape->SetBinContent(1,0.03);
1080   fMCPtShape->SetBinContent(2,0.03);
1081
1082   return;
1083 }
1084
1085 //_________________________________________________________________________
1086 void AliHFSystErr::InitDplustoKpipi2013pPb0100(){
1087
1088 // Dplus syst 
1089
1090   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1091   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.00); // 
1092   
1093   fBR = new TH1F("fBR","fBR",20,0,20);
1094   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.021); // 2.1% PDG2010
1095
1096   // Tracking efficiency
1097   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
1098   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.09); // 3% per track
1099
1100   // Raw yield extraction
1101   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1102   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.0);  
1103   
1104   // Cuts efficiency (from cuts variation)
1105   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1106   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.0); //
1107
1108   // PID efficiency (from PID/noPID)
1109   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1110   fPIDEff->SetBinContent(2,0.05);
1111   for(Int_t i=3;i<=12;i++) fPIDEff->SetBinContent(i,0.00); 
1112   for(Int_t i=12;i<=24;i++) fPIDEff->SetBinContent(i,0.05); 
1113
1114   // MC dN/dpt  
1115   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1116   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.0);
1117
1118   // particle-antiparticle
1119   /*
1120   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
1121   fPartAntipart->SetBinContent(1,1);
1122   fPartAntipart->SetBinContent(2,1);
1123   fPartAntipart->SetBinContent(3,0.12);
1124   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
1125   */
1126   return;
1127
1128
1129 }
1130
1131 //--------------------------------------------------------------------------
1132 void AliHFSystErr::InitDstartoD0pi2010pp() {
1133   // 
1134   // D*+->D0pi syst errors. Responsible: A. Grelli, Y. Wang
1135   //  2010 pp sample
1136   //
1137
1138  // Normalization
1139   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1140   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
1141
1142   // Branching ratio 
1143   fBR = new TH1F("fBR","fBR",24,0,24);
1144   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1145
1146   // Tracking efficiency
1147   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
1148   fTrackingEff->SetBinContent(1,1.0);
1149   fTrackingEff->SetBinContent(2,0.13); // 10% (ITSsa) \oplus 8% (4% per ITSTPC track)
1150   fTrackingEff->SetBinContent(3,0.12);
1151   fTrackingEff->SetBinContent(3,0.12);
1152   for(Int_t i=4;i<=24;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
1153
1154
1155   // Raw yield extraction
1156   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1157   fRawYield->SetBinContent(1,1.0);
1158   fRawYield->SetBinContent(2,0.10);
1159   fRawYield->SetBinContent(3,0.04);
1160   fRawYield->SetBinContent(4,0.03);
1161   fRawYield->SetBinContent(5,0.03);
1162   fRawYield->SetBinContent(6,0.05);
1163   fRawYield->SetBinContent(7,0.05);
1164   fRawYield->SetBinContent(8,0.05);
1165   for(Int_t i=9;i<=12;i++) fRawYield->SetBinContent(i,0.04);  //4%
1166   for(Int_t i=13;i<=16;i++) fRawYield->SetBinContent(i,0.09);  //4%
1167   for(Int_t i=17;i<=24;i++) fRawYield->SetBinContent(i,0.2);  //4%
1168
1169   // Cuts efficiency (from cuts variation)
1170   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1171   fCutsEff->SetBinContent(2,0.22);
1172   for(Int_t i=3;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1173
1174   // PID efficiency (from PID/noPID)
1175   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1176   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.04); // 3%
1177  
1178
1179   // MC dN/dpt  (copied from D0 : will update later)
1180   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1181   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0);
1182   fMCPtShape->SetBinContent(1,0.03);
1183   fMCPtShape->SetBinContent(2,0.03);
1184
1185   return;
1186
1187
1188 }
1189 //--------------------------------------------------------------------------
1190 void AliHFSystErr::InitDstartoD0pi2010ppLowEn() {
1191
1192   // 
1193   // D+->Kpipi syst errors. Responsible: A. Grelli
1194   //  2011 2.76 TeV pp sample
1195   //
1196   AliInfo(" Settings for D*+ --> D0 pi p-p collisions at 2.76 TeV"); 
1197
1198 // Normalization
1199   fNorm = new TH1F("fNorm","fNorm",20,0,20);
1200   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.031); // 10% error on sigmaV0and
1201
1202   // Branching ratio 
1203   fBR = new TH1F("fBR","fBR",20,0,20);
1204   for(Int_t i=1;i<=20;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1205
1206   // Tracking efficiency
1207   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",20,0,20);
1208   for(Int_t i=1;i<=20;i++) fTrackingEff->SetBinContent(i,0.15); //10% (to be checked!!)
1209
1210   // Raw yield extraction
1211   fRawYield = new TH1F("fRawYield","fRawYield",20,0,20);
1212   fRawYield->SetBinContent(1,1);
1213   fRawYield->SetBinContent(2,1);
1214   fRawYield->SetBinContent(3,0.14);
1215   fRawYield->SetBinContent(4,0.14);
1216   fRawYield->SetBinContent(5,0.12);
1217   fRawYield->SetBinContent(6,0.12);
1218   fRawYield->SetBinContent(7,0.06);
1219   fRawYield->SetBinContent(8,0.06);
1220   fRawYield->SetBinContent(9,0.08);
1221   fRawYield->SetBinContent(10,0.08);
1222   fRawYield->SetBinContent(11,0.08);
1223   fRawYield->SetBinContent(12,0.08);
1224   for(Int_t i=9;i<=20;i++) fRawYield->SetBinContent(i,0.065);
1225
1226   // Cuts efficiency (from cuts variation)
1227   fCutsEff = new TH1F("fCutsEff","fCutsEff",20,0,20);
1228   for(Int_t i=1;i<=20;i++) fCutsEff->SetBinContent(i,0.10);  
1229   fCutsEff->SetBinContent(3,0.15);
1230   fCutsEff->SetBinContent(4,0.15);
1231   fCutsEff->SetBinContent(5,0.15);
1232   fCutsEff->SetBinContent(6,0.15);
1233   fCutsEff->SetBinContent(7,0.10);
1234   fCutsEff->SetBinContent(8,0.10);
1235   fCutsEff->SetBinContent(9,0.10);
1236   fCutsEff->SetBinContent(10,0.10);
1237   fCutsEff->SetBinContent(11,0.10);
1238   fCutsEff->SetBinContent(12,0.10);
1239
1240   // PID efficiency (from PID/noPID)
1241   fPIDEff = new TH1F("fPIDEff","fPIDEff",20,0,20);
1242   for(Int_t i=1;i<=20;i++) fPIDEff->SetBinContent(i,0.05); // 10%
1243
1244   // MC dN/dpt
1245   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",20,0,20);
1246   for(Int_t i=1;i<=20;i++) fMCPtShape->SetBinContent(i,0.01);
1247   fMCPtShape->SetBinContent(1,0.03);
1248   fMCPtShape->SetBinContent(2,0.03);
1249
1250   return;
1251 }
1252
1253 //------------------------------------------------------------------------
1254 void AliHFSystErr::InitDstartoD0pi2010PbPb020() {
1255   // 
1256   // D*+->D0pi syst errors. Responsible: A. Grelli
1257   //  2010 PbPb sample, 0-20 CC
1258   //
1259
1260   AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 0-20 centrality - DUMMY"); 
1261
1262  // Normalization
1263   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1264   for(Int_t i=1;i<=20;i++) fNorm->SetBinContent(i,0.05); // TAA and pp norm
1265
1266   // Branching ratio 
1267   fBR = new TH1F("fBR","fBR",24,0,24);
1268   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1269
1270   // Tracking efficiency
1271   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1272   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1273
1274
1275   // Raw yield extraction
1276   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1277   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.1);  //4%
1278   fRawYield->SetBinContent(3,0.2);
1279   fRawYield->SetBinContent(4,0.2);
1280   fRawYield->SetBinContent(5,0.2);
1281   fRawYield->SetBinContent(6,0.2);
1282  
1283   // Cuts efficiency (from cuts variation)
1284   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1285   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1286   fCutsEff->SetBinContent(4,0.15);
1287   fCutsEff->SetBinContent(5,0.15);
1288   fCutsEff->SetBinContent(6,0.15);
1289
1290   // PID efficiency (from PID/noPID)
1291   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1292   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1293  
1294
1295   // MC dN/dpt  (from study on D* pt shape)
1296   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1297   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.045);
1298   fMCPtShape->SetBinContent(4,0.025);
1299   fMCPtShape->SetBinContent(5,0.025);
1300   fMCPtShape->SetBinContent(6,0.025);
1301   fMCPtShape->SetBinContent(7,0.04);
1302   fMCPtShape->SetBinContent(8,0.04);
1303   fMCPtShape->SetBinContent(9,0.03);
1304   fMCPtShape->SetBinContent(10,0.03);
1305   fMCPtShape->SetBinContent(11,0.03);
1306   fMCPtShape->SetBinContent(12,0.03);
1307   
1308   return;
1309
1310 }
1311 // ----------------------------- 2011 ----------------------------------
1312 void AliHFSystErr::InitDstartoD0pi2011PbPb07half() {
1313   // 
1314   // D*+->D0pi syst errors. Responsible: A. Grelli
1315   //  2011 PbPb sample, 0-7.5 CC
1316   //
1317
1318   AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 0-7.5 centrality - DUMMY"); 
1319
1320
1321  // Normalization
1322   fNorm = new TH1F("fNorm","fNorm",36,0,36);
1323   for(Int_t i=1;i<=36;i++) fNorm->SetBinContent(i,0.048); // TAA and pp norm
1324
1325   // Branching ratio 
1326   fBR = new TH1F("fBR","fBR",36,0,36);
1327   for(Int_t i=1;i<=36;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1328
1329   // Tracking efficiency
1330   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",36,0,36);;
1331   for(Int_t i=1;i<=36;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1332
1333
1334   // Raw yield extraction
1335   fRawYield = new TH1F("fRawYield","fRawYield",36,0,36);
1336   for(Int_t i=1;i<=36;i++) fRawYield->SetBinContent(i,0.05);  //4%
1337   fRawYield->SetBinContent(4,0.2);
1338   fRawYield->SetBinContent(5,0.10);
1339   fRawYield->SetBinContent(6,0.10);
1340   fRawYield->SetBinContent(7,0.08);
1341   for(Int_t i=25;i<=36;i++) fRawYield->SetBinContent(i,0.15);  //4%
1342
1343   // Cuts efficiency (from cuts variation)
1344   fCutsEff = new TH1F("fCutsEff","fCutsEff",36,0,36);
1345   for(Int_t i=1;i<=36;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1346
1347   // PID efficiency (from PID/noPID)
1348   fPIDEff = new TH1F("fPIDEff","fPIDEff",36,0,36);
1349   for(Int_t i=1;i<=36;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1350   fPIDEff->SetBinContent(4,0.09);
1351
1352   // MC dN/dpt  (from study on D* pt shape)
1353   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",36,0,36);
1354   for(Int_t i=1;i<=36;i++) fMCPtShape->SetBinContent(i,0.035);
1355   fMCPtShape->SetBinContent(4,0.015);
1356   fMCPtShape->SetBinContent(5,0.015);
1357   fMCPtShape->SetBinContent(6,0.015);
1358   fMCPtShape->SetBinContent(7,0.02);
1359   fMCPtShape->SetBinContent(8,0.02);
1360   fMCPtShape->SetBinContent(9,0.03);
1361   fMCPtShape->SetBinContent(10,0.03);
1362   fMCPtShape->SetBinContent(11,0.03);
1363   fMCPtShape->SetBinContent(12,0.03);
1364   
1365   
1366
1367   return;
1368
1369 }
1370 //-------------------------------------------------------------------------
1371 void AliHFSystErr::InitDstartoD0pi2010PbPb2040() {
1372   // 
1373   // D*+->D0pi syst errors. Responsible: A. Grelli
1374   //  2010 PbPb sample, 20-40 CC
1375   //
1376
1377   AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 20-40 centrality - DUMMY"); 
1378
1379  // Normalization
1380   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1381   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.10); // 10% error on sigmaV0and
1382
1383   // Branching ratio 
1384   fBR = new TH1F("fBR","fBR",24,0,24);
1385   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1386
1387   // Tracking efficiency
1388   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1389   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1390
1391
1392   // Raw yield extraction
1393   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1394   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.15);  //4%
1395  
1396   // Cuts efficiency (from cuts variation)
1397   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1398   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1399
1400   // PID efficiency (from PID/noPID)
1401   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1402   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.04); // 3%
1403  
1404
1405   // MC dN/dpt  (copied from D0 : will update later)
1406   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1407   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.);
1408   fMCPtShape->SetBinContent(1,0.03);
1409   fMCPtShape->SetBinContent(2,0.03);
1410
1411   return;
1412
1413 }
1414
1415 //--------------------------------------------------------------------------
1416 void AliHFSystErr::InitDstartoD0pi2010PbPb4080() {
1417   // 
1418   // D*+->D0pi syst errors. Responsible: A. Grelli
1419   //  2010 PbPb sample, 40-80 CC
1420   //
1421
1422   AliInfo(" Settings for D*+ --> D0pi Pb-Pb collisions at 2.76 TeV - 40-80 centrality - DUMMY"); 
1423
1424  // Normalization
1425   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1426   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.07); // TAA and pp norm
1427
1428   // Branching ratio 
1429   fBR = new TH1F("fBR","fBR",24,0,24);
1430   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1431
1432   // Tracking efficiency
1433   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);;
1434   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.15); // Jacek, 5% per track
1435
1436
1437   // Raw yield extraction
1438   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1439   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.2);  //4%
1440   fRawYield->SetBinContent(1,1);
1441   fRawYield->SetBinContent(2,0.15);
1442   fRawYield->SetBinContent(3,0.15);
1443   fRawYield->SetBinContent(4,0.15);
1444   fRawYield->SetBinContent(5,0.15);
1445   fRawYield->SetBinContent(6,0.10);
1446   fRawYield->SetBinContent(7,0.10);
1447   fRawYield->SetBinContent(8,0.10);
1448   fRawYield->SetBinContent(9,0.11);
1449   fRawYield->SetBinContent(10,0.11);
1450   fRawYield->SetBinContent(11,0.11);
1451   fRawYield->SetBinContent(12,0.11);
1452   fRawYield->SetBinContent(13,0.08);
1453   fRawYield->SetBinContent(14,0.08);
1454   fRawYield->SetBinContent(15,0.08);
1455   fRawYield->SetBinContent(16,0.08);
1456
1457
1458   // Cuts efficiency (from cuts variation)
1459   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1460   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.10); // 10%
1461
1462   // PID efficiency (from PID/noPID)
1463   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1464   for(Int_t i=1;i<=24;i++) fPIDEff->SetBinContent(i,0.05); // 3%
1465  
1466
1467   // MC dN/dpt  (copied from D0 : will update later)
1468   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1469   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.01);
1470   fMCPtShape->SetBinContent(2,0.05);
1471   fMCPtShape->SetBinContent(3,0.05);
1472   fMCPtShape->SetBinContent(4,0.05);
1473   fMCPtShape->SetBinContent(5,0.04);
1474   fMCPtShape->SetBinContent(6,0.02);
1475   fMCPtShape->SetBinContent(7,0.04);
1476   fMCPtShape->SetBinContent(8,0.04);
1477  
1478   return;
1479
1480 }
1481
1482 //_________________________________________________________________________
1483 void AliHFSystErr::InitDstartoD0pi2013pPb0100(){
1484
1485   // Dstar syst
1486   
1487   //Normalization
1488   fNorm = new TH1F("fNorm","fNorm",24,0,24);
1489   for(Int_t i=1;i<=24;i++) fNorm->SetBinContent(i,0.00); // 
1490   
1491  // Branching ratio 
1492   fBR = new TH1F("fBR","fBR",24,0,24);
1493   for(Int_t i=1;i<=24;i++) fBR->SetBinContent(i,0.015); // 1.5% PDG2010
1494
1495   // Tracking efficiency
1496   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",24,0,24);
1497   for(Int_t i=1;i<=24;i++) fTrackingEff->SetBinContent(i,0.09); // 3% per track
1498
1499   // Raw yield extraction
1500   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1501   for(Int_t i=1;i<=24;i++) fRawYield->SetBinContent(i,0.0);  
1502   
1503   // Cuts efficiency (from cuts variation)
1504   fCutsEff = new TH1F("fCutsEff","fCutsEff",24,0,24);
1505   for(Int_t i=1;i<=24;i++) fCutsEff->SetBinContent(i,0.0); //
1506
1507   // PID efficiency (from PID/noPID)
1508   fPIDEff = new TH1F("fPIDEff","fPIDEff",24,0,24);
1509   fPIDEff->SetBinContent(2,0.05);
1510   for(Int_t i=3;i<=12;i++) fPIDEff->SetBinContent(i,0.00); 
1511   for(Int_t i=12;i<=24;i++) fPIDEff->SetBinContent(i,0.05); 
1512
1513   // MC dN/dpt  
1514   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",24,0,24);
1515   for(Int_t i=1;i<=24;i++) fMCPtShape->SetBinContent(i,0.0);
1516
1517   // particle-antiparticle
1518   /*
1519   fPartAntipart = new TH1F("fPartAntipart","fPartAntipart",20,0,20);
1520   fPartAntipart->SetBinContent(1,1);
1521   fPartAntipart->SetBinContent(2,1);
1522   fPartAntipart->SetBinContent(3,0.12);
1523   for(Int_t i=4;i<=20;i++) fPartAntipart->SetBinContent(i,0.05);   //5 to 12%
1524   */
1525   return;
1526
1527
1528 }
1529
1530 //--------------------------------------------------------------------------
1531 void AliHFSystErr::InitD0toKpi2010PbPb010CentScan(){
1532   // define errors for RAA vs. centrality
1533   InitD0toKpi2010PbPb020();
1534   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1535   for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.17);      
1536   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1537 }
1538 //--------------------------------------------------------------------------
1539 void AliHFSystErr::InitD0toKpi2010PbPb1020CentScan(){
1540   // define errors for RAA vs. centrality
1541   InitD0toKpi2010PbPb020();
1542   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1543   for(Int_t i=3;i<=5;i++)  fMCPtShape->SetBinContent(i,0.17);    
1544   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1545 }
1546 //--------------------------------------------------------------------------
1547 void AliHFSystErr::InitD0toKpi2010PbPb2040CentScan(){
1548   // define errors for RAA vs. centrality
1549   InitD0toKpi2010PbPb4080();
1550   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05);
1551   for(Int_t i=3;i<=5;i++)  fMCPtShape->SetBinContent(i,0.14);
1552   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1553 }
1554 //--------------------------------------------------------------------------
1555 void AliHFSystErr::InitD0toKpi2010PbPb4060CentScan(){
1556    // define errors for RAA vs. centrality
1557   InitD0toKpi2010PbPb4080();
1558   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.06);
1559   for(Int_t i=3;i<=5;i++)  fMCPtShape->SetBinContent(i,0.11);  
1560   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1561 }
1562 //--------------------------------------------------------------------------
1563 void AliHFSystErr::InitD0toKpi2010PbPb6080CentScan(){
1564    // define errors for RAA vs. centrality
1565   InitD0toKpi2010PbPb4080();
1566   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1567   for(Int_t i=3;i<=5;i++) fMCPtShape->SetBinContent(i,0.08);
1568   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08); 
1569 }
1570 //--------------------------------------------------------------------------
1571 void AliHFSystErr::InitDplustoKpipi2010PbPb010CentScan(){
1572   // define errors for RAA vs. centrality
1573   InitDplustoKpipi2010PbPb020();
1574   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.18);
1575   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.09);
1576
1577 }
1578 //--------------------------------------------------------------------------
1579 void AliHFSystErr::InitDplustoKpipi2010PbPb1020CentScan(){
1580   // define errors for RAA vs. centrality
1581   InitDplustoKpipi2010PbPb020();
1582   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.23);
1583   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1584 }
1585 //--------------------------------------------------------------------------
1586 void AliHFSystErr::InitDplustoKpipi2010PbPb2040CentScan(){
1587   // define errors for RAA vs. centrality
1588   InitDplustoKpipi2010PbPb020();
1589   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1590   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.095);
1591 }
1592 //--------------------------------------------------------------------------
1593 void AliHFSystErr::InitDplustoKpipi2010PbPb4060CentScan(){
1594   // define errors for RAA vs. centrality
1595   InitDplustoKpipi2010PbPb4080();
1596   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.08);
1597   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1598 }
1599 //--------------------------------------------------------------------------
1600 void AliHFSystErr::InitDplustoKpipi2010PbPb6080CentScan(){
1601   // define errors for RAA vs. centrality
1602   InitDplustoKpipi2010PbPb4080();
1603   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.15);
1604   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.07);
1605 }
1606
1607 //--------------------------------------------------------------------------
1608 void AliHFSystErr::InitDstartoD0pi2010PbPb010CentScan(){
1609   // define errors for RAA vs. centrality
1610   InitDstartoD0pi2010PbPb020();
1611   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.16); 
1612   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.15);
1613 }
1614 //--------------------------------------------------------------------------
1615 void AliHFSystErr::InitDstartoD0pi2010PbPb1020CentScan(){
1616   // define errors for RAA vs. centrality
1617   InitDstartoD0pi2010PbPb020();
1618   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.05); 
1619   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.15);
1620 }
1621 //--------------------------------------------------------------------------
1622 void AliHFSystErr::InitDstartoD0pi2010PbPb2040CentScan(){
1623   // define errors for RAA vs. centrality
1624   InitDstartoD0pi2010PbPb2040();
1625   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10); 
1626   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.08);
1627 }
1628 //--------------------------------------------------------------------------
1629 void AliHFSystErr::InitDstartoD0pi2010PbPb4060CentScan(){
1630   // define errors for RAA vs. centrality
1631   InitDstartoD0pi2010PbPb4080();
1632   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10); 
1633   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.045);
1634 }
1635 //--------------------------------------------------------------------------
1636 void AliHFSystErr::InitDstartoD0pi2010PbPb6080CentScan(){
1637   // define errors for RAA vs. centrality
1638   InitDstartoD0pi2010PbPb4080();
1639   for(Int_t i=7;i<=12;i++) fRawYield->SetBinContent(i,0.10); 
1640   for(Int_t i=7;i<=12;i++) fMCPtShape->SetBinContent(i,0.045);
1641 }
1642
1643 //--------------------------------------------------------------------------
1644 void AliHFSystErr::InitD0toKpi2011PbPb010CentScan(){
1645   // define errors for RAA vs. centrality 2011
1646   InitD0toKpi2011PbPb07half();
1647   
1648 }
1649 //--------------------------------------------------------------------------
1650 void AliHFSystErr::InitD0toKpi2011PbPb1020CentScan(){
1651   // define errors for RAA vs. centrality 2011
1652   InitD0toKpi2011PbPb07half();
1653   
1654 }
1655 //--------------------------------------------------------------------------
1656 void AliHFSystErr::InitD0toKpi2011PbPb2030CentScan(){
1657   // define errors for RAA vs. centrality 2011
1658   InitD0toKpi2011PbPb07half();
1659   
1660 }
1661 //--------------------------------------------------------------------------
1662 void AliHFSystErr::InitD0toKpi2011PbPb3040CentScan(){
1663   // define errors for RAA vs. centrality 2011
1664   InitD0toKpi2011PbPb07half();
1665   
1666 }
1667 //--------------------------------------------------------------------------
1668 void AliHFSystErr::InitD0toKpi2011PbPb4050CentScan(){
1669   // define errors for RAA vs. centrality 2011
1670   InitD0toKpi2011PbPb07half();
1671   
1672 }
1673 //--------------------------------------------------------------------------
1674 void AliHFSystErr::InitD0toKpi2010PbPb5080CentScan(){
1675   // define errors for RAA vs. centrality 2011
1676   InitD0toKpi2011PbPb07half();
1677   
1678 }
1679 //--------------------------------------------------------------------------
1680 void AliHFSystErr::InitDplustoKpipi2011PbPb010CentScan(){
1681   // define errors for RAA vs. centrality 2011
1682   InitDplustoKpipi2011PbPb07half();
1683   
1684 }
1685 //--------------------------------------------------------------------------
1686 void AliHFSystErr::InitDplustoKpipi2011PbPb1020CentScan(){
1687   // define errors for RAA vs. centrality 2011
1688   InitDplustoKpipi2011PbPb07half();
1689   
1690 }
1691 //--------------------------------------------------------------------------
1692 void AliHFSystErr::InitDplustoKpipi2011PbPb2030CentScan(){
1693   // define errors for RAA vs. centrality 2011
1694   InitDplustoKpipi2011PbPb07half();
1695   
1696 }
1697 //--------------------------------------------------------------------------
1698 void AliHFSystErr::InitDplustoKpipi2011PbPb3040CentScan(){
1699   // define errors for RAA vs. centrality 2011
1700   InitDplustoKpipi2011PbPb07half();
1701   
1702 }
1703 //--------------------------------------------------------------------------
1704 void AliHFSystErr::InitDplustoKpipi2011PbPb4050CentScan(){
1705   // define errors for RAA vs. centrality 2011
1706   InitDplustoKpipi2011PbPb07half();
1707   
1708 }
1709 //--------------------------------------------------------------------------
1710 void AliHFSystErr::InitDplustoKpipi2010PbPb5080CentScan(){
1711   // define errors for RAA vs. centrality 2011
1712   InitDplustoKpipi2011PbPb07half();
1713   
1714 }
1715 //--------------------------------------------------------------------------
1716 void AliHFSystErr::InitDstartoD0pi2011PbPb010CentScan(){
1717   // define errors for RAA vs. centrality 2011
1718   InitDstartoD0pi2011PbPb07half();
1719   
1720 }
1721 //--------------------------------------------------------------------------
1722 void AliHFSystErr::InitDstartoD0pi2011PbPb1020CentScan(){
1723   // define errors for RAA vs. centrality 2011
1724   InitDstartoD0pi2011PbPb07half();
1725   
1726 }
1727 //--------------------------------------------------------------------------
1728 void AliHFSystErr::InitDstartoD0pi2011PbPb2030CentScan(){
1729   // define errors for RAA vs. centrality 2011
1730   InitDstartoD0pi2011PbPb07half();
1731   
1732 }
1733 //--------------------------------------------------------------------------
1734 void AliHFSystErr::InitDstartoD0pi2011PbPb3040CentScan(){
1735   // define errors for RAA vs. centrality 2011
1736   InitDstartoD0pi2011PbPb07half();
1737   
1738 }
1739 //--------------------------------------------------------------------------
1740 void AliHFSystErr::InitDstartoD0pi2011PbPb4050CentScan(){
1741   // define errors for RAA vs. centrality 2011
1742   InitDstartoD0pi2011PbPb07half();
1743   
1744 }
1745 //--------------------------------------------------------------------------
1746 void AliHFSystErr::InitDstartoD0pi2010PbPb5080CentScan(){
1747   // define errors for RAA vs. centrality 2011
1748   InitDstartoD0pi2011PbPb07half();
1749   
1750 }
1751
1752
1753
1754 //--------------------------------------------------------------------------
1755 void AliHFSystErr::InitLctopKpi2010pp() {
1756   //
1757   // Lc->pKpi syst errors. Responsible: R. Romita
1758   //  2010 pp sample
1759   //
1760
1761   // Normalization
1762   fNorm = new TH1F("fNorm","fNorm",4,2,6);
1763   for(Int_t i=1;i<=4;i++) fNorm->SetBinContent(i,0.035); // 4% error on sigmaV0and
1764
1765   // Tracking efficiency
1766   fTrackingEff = new TH1F("fTrackingEff","fTrackingEff",4,2,6);
1767   for(Int_t i=1;i<=4;i++) fTrackingEff->SetBinContent(i,0.12); // 12% (4% per track)
1768
1769   // Raw yield extraction
1770   fRawYield = new TH1F("fRawYield","fRawYield",24,0,24);
1771   fRawYield->SetBinContent(1,0.20);
1772   fRawYield->SetBinContent(2,0.15);
1773   fRawYield->SetBinContent(3,0.10);
1774   fRawYield->SetBinContent(4,0.15);
1775
1776   fCutsEff = new TH1F("fCutsEff","fCutsEff",4,2,6);
1777   fCutsEff->SetBinContent(1,0.50);
1778   fCutsEff->SetBinContent(2,0.07);
1779   fCutsEff->SetBinContent(3,0.30);
1780   fCutsEff->SetBinContent(4,0.40);
1781
1782   // PID efficiency (from PID/noPID)
1783   fPIDEff = new TH1F("fPIDEff","fPIDEff",4,2,4);
1784   fPIDEff->SetBinContent(1,0.13); // 15%
1785   fPIDEff->SetBinContent(2,0.30); // 15%
1786   fPIDEff->SetBinContent(3,0.5); // 15%
1787   fPIDEff->SetBinContent(4,0.30); // 15%
1788
1789   // MC dN/dpt 
1790   fMCPtShape = new TH1F("fMCPtShape","fMCPtShape",12,0,12);
1791   for(Int_t i=1; i<=2; i++) fMCPtShape->SetBinContent(i,1.);
1792   for(Int_t i=3; i<=4; i++) fMCPtShape->SetBinContent(i,0.03);
1793   for(Int_t i=5; i<=6; i++) fMCPtShape->SetBinContent(i,0.03);
1794   for(Int_t i=7; i<=8; i++) fMCPtShape->SetBinContent(i,0.02);
1795   for(Int_t i=9; i<=12; i++) fMCPtShape->SetBinContent(i,0.02);
1796 }
1797
1798 //--------------------------------------------------------------------------
1799 Double_t AliHFSystErr::GetCutsEffErr(Double_t pt) const {
1800   // 
1801   // Get error
1802   //
1803
1804   Int_t bin=fCutsEff->FindBin(pt);
1805
1806   return fCutsEff->GetBinContent(bin);
1807 }
1808 //--------------------------------------------------------------------------
1809 Double_t AliHFSystErr::GetMCPtShapeErr(Double_t pt) const {
1810   // 
1811   // Get error
1812   //
1813
1814   Int_t bin=fMCPtShape->FindBin(pt);
1815
1816   return fMCPtShape->GetBinContent(bin);
1817 }
1818 //--------------------------------------------------------------------------
1819 Double_t AliHFSystErr::GetSeleEffErr(Double_t pt) const {
1820   // 
1821   // Get error
1822   //
1823
1824   Double_t err=GetCutsEffErr(pt)*GetCutsEffErr(pt)+GetMCPtShapeErr(pt)*GetMCPtShapeErr(pt);
1825
1826   return TMath::Sqrt(err);
1827 }
1828 //--------------------------------------------------------------------------
1829 Double_t AliHFSystErr::GetPIDEffErr(Double_t pt) const {
1830   // 
1831   // Get error
1832   //
1833
1834   Int_t bin=fPIDEff->FindBin(pt);
1835
1836   return fPIDEff->GetBinContent(bin);
1837 }
1838 //--------------------------------------------------------------------------
1839 Double_t AliHFSystErr::GetTrackingEffErr(Double_t pt) const {
1840   // 
1841   // Get error
1842   //
1843
1844   Int_t bin=fTrackingEff->FindBin(pt);
1845
1846   return fTrackingEff->GetBinContent(bin);
1847 }
1848 //--------------------------------------------------------------------------
1849 Double_t AliHFSystErr::GetRawYieldErr(Double_t pt) const {
1850   // 
1851   // Get error
1852   //
1853
1854   Int_t bin=fRawYield->FindBin(pt);
1855
1856   return fRawYield->GetBinContent(bin);
1857 }
1858 //--------------------------------------------------------------------------
1859 Double_t AliHFSystErr::GetPartAntipartErr(Double_t pt) const {
1860   // 
1861   // Get error
1862   //
1863
1864   Int_t bin=fPartAntipart->FindBin(pt);
1865
1866   return fPartAntipart->GetBinContent(bin);
1867 }
1868 //--------------------------------------------------------------------------
1869 Double_t AliHFSystErr::GetTotalSystErr(Double_t pt,Double_t feeddownErr) const {
1870   // 
1871   // Get total syst error (except norm. error)
1872   //
1873
1874   Double_t err=0.;
1875
1876   if(fRawYield) err += GetRawYieldErr(pt)*GetRawYieldErr(pt);
1877   if(fTrackingEff) err += GetTrackingEffErr(pt)*GetTrackingEffErr(pt);
1878   //  if(fBR) err += GetBRErr()*GetBRErr();
1879   if(fCutsEff) err += GetCutsEffErr(pt)*GetCutsEffErr(pt);
1880   if(fPIDEff) err += GetPIDEffErr(pt)*GetPIDEffErr(pt);
1881   if(fMCPtShape) err += GetMCPtShapeErr(pt)*GetMCPtShapeErr(pt);
1882   if(fPartAntipart) err += GetPartAntipartErr(pt)*GetPartAntipartErr(pt);
1883
1884   err += feeddownErr*feeddownErr;
1885
1886   return TMath::Sqrt(err);
1887 }
1888 //---------------------------------------------------------------------------
1889 void AliHFSystErr::DrawErrors(TGraphAsymmErrors *grErrFeeddown) const {
1890   //
1891   // Draw errors
1892   //
1893   gStyle->SetOptStat(0);
1894
1895   TCanvas *cSystErr = new TCanvas("cSystErr","Systematic Errors",300,80,640,500);
1896   cSystErr->Range(0.20,-0.5,18.4,0.34);
1897   cSystErr->SetRightMargin(0.318);
1898   cSystErr->SetFillColor(0);
1899
1900   TH2F *hFrame = new TH2F("hFrame","Systematic errors; p_{t} (GeV/c); Relative Error",40,0,40,100,-1,+1);
1901   hFrame->SetAxisRange(1.,35.9,"X");
1902   hFrame->SetAxisRange(-0.5,0.5,"Y");
1903   hFrame->Draw();
1904
1905   TLegend *leg = new TLegend(0.69,0.44,0.98,0.86,NULL,"brNDC");
1906   leg->SetTextSize(0.03601695);
1907   leg->SetFillStyle(0);
1908   leg->SetBorderSize(0);
1909   
1910   TH1F *hTotErr=new TH1F("hTotErr","",36,0,36);
1911   Int_t nbins = fNorm->GetNbinsX();
1912   TGraphAsymmErrors *gTotErr = new TGraphAsymmErrors(nbins);
1913   for(Int_t i=1;i<=36;i++) {
1914     Double_t pt = hTotErr->GetBinCenter(i);
1915     Double_t ptwidth = hTotErr->GetBinWidth(i);
1916
1917     if(grErrFeeddown) {
1918       Double_t x=0., y=0., errxl=0., errxh=0., erryl=0., erryh=0.;
1919       Double_t toterryl=0., toterryh=0.;
1920       for(Int_t j=0; j<grErrFeeddown->GetN(); j++) {
1921         grErrFeeddown->GetPoint(j,x,y);
1922         errxh = grErrFeeddown->GetErrorXhigh(j);
1923         errxl = grErrFeeddown->GetErrorXlow(j);
1924         if ( ( (x-errxl) <= pt) && ( (x+errxl) >= pt) ) {
1925           erryh = grErrFeeddown->GetErrorYhigh(j);
1926           erryl = grErrFeeddown->GetErrorYlow(j);
1927         }
1928       }
1929       if (erryl>=1e-3) toterryl = GetTotalSystErr(pt,erryl);
1930       else toterryl = GetTotalSystErr(pt);
1931       if (erryh>=1e-3) toterryh = GetTotalSystErr(pt,erryh);
1932       else toterryh = GetTotalSystErr(pt);
1933
1934       hTotErr->SetBinContent(i,toterryh);
1935       gTotErr->SetPoint(i,pt,0.);
1936       gTotErr->SetPointError(i,ptwidth/2.,ptwidth/2.,toterryl,toterryh); // i, exl, exh, eyl, eyh
1937     }
1938     else {
1939       hTotErr->SetBinContent(i,GetTotalSystErr(pt));
1940       gTotErr->SetPoint(i,pt,0.);
1941       gTotErr->SetPointError(i,ptwidth/2.,ptwidth/2.,GetTotalSystErr(pt),GetTotalSystErr(pt)); // i, exl, exh, eyl, eyh
1942     }
1943
1944   }
1945   gTotErr->SetLineColor(kBlack);
1946   gTotErr->SetFillColor(kRed);
1947   gTotErr->SetFillStyle(3002);
1948   gTotErr->Draw("2");
1949   leg->AddEntry(gTotErr,"Total (excl. norm.)","f");
1950 //   hTotErr->SetLineColor(1);
1951 //   hTotErr->SetLineWidth(3);
1952 //   hTotErr->Draw("same");
1953 //   leg->AddEntry(hTotErr,"Total (excl. norm.)","l");
1954   
1955
1956   fNorm->SetFillColor(1);
1957   fNorm->SetFillStyle(3002);
1958   //fNorm->Draw("same");
1959   //TH1F *hNormRefl = ReflectHisto(fNorm);
1960   //hNormRefl->Draw("same");
1961   Double_t norm = fNorm->GetBinContent(1)*100;
1962   leg->AddEntry(fNorm,Form("Normalization (%.1f%s)",norm,"%"),"");
1963
1964   if(grErrFeeddown) {
1965     grErrFeeddown->SetFillColor(kTeal-8);
1966     grErrFeeddown->SetFillStyle(3001);
1967     grErrFeeddown->Draw("2");
1968     leg->AddEntry(grErrFeeddown,"Feed-down from B","f");
1969   }
1970   if(fTrackingEff) {
1971     fTrackingEff->SetFillColor(4);
1972     fTrackingEff->SetFillStyle(3006);
1973     fTrackingEff->Draw("same");
1974     TH1F *hTrackingEffRefl = ReflectHisto(fTrackingEff);
1975     hTrackingEffRefl->Draw("same");
1976     leg->AddEntry(fTrackingEff,"Tracking efficiency","f");
1977   }
1978   if(fBR) {
1979     fBR->SetFillColor(6);
1980     fBR->SetFillStyle(3005);
1981     //fBR->SetFillStyle(3020);
1982     fBR->Draw("same");
1983     TH1F *hBRRefl = ReflectHisto(fBR);
1984     hBRRefl->Draw("same");
1985     leg->AddEntry(fBR,"Branching ratio","f");
1986   }
1987   if(fRawYield) {
1988     Int_t ci;   // for color index setting
1989     ci = TColor::GetColor("#00cc00");
1990     fRawYield->SetLineColor(ci);
1991     //    fRawYield->SetLineColor(3);
1992     fRawYield->SetLineWidth(3);
1993     fRawYield->Draw("same");
1994     TH1F *hRawYieldRefl = ReflectHisto(fRawYield);
1995     hRawYieldRefl->Draw("same");
1996     leg->AddEntry(fRawYield,"Yield extraction","l");
1997   }
1998   if(fCutsEff) {
1999     fCutsEff->SetLineColor(4);
2000     fCutsEff->SetLineWidth(3);
2001     fCutsEff->Draw("same");
2002     TH1F *hCutsEffRefl = ReflectHisto(fCutsEff);
2003     hCutsEffRefl->Draw("same");
2004     leg->AddEntry(fCutsEff,"Cuts efficiency","l");
2005   }
2006   if(fPIDEff) {
2007     fPIDEff->SetLineColor(7);
2008     fPIDEff->SetLineWidth(3);
2009     fPIDEff->Draw("same");
2010     TH1F *hPIDEffRefl = ReflectHisto(fPIDEff);
2011     hPIDEffRefl->Draw("same");
2012     leg->AddEntry(fPIDEff,"PID efficiency","l");
2013   }
2014   if(fMCPtShape) {
2015     Int_t ci = TColor::GetColor("#9933ff");
2016     fMCPtShape->SetLineColor(ci);
2017     //    fMCPtShape->SetLineColor(8);
2018     fMCPtShape->SetLineWidth(3);
2019     fMCPtShape->Draw("same");
2020     TH1F *hMCPtShapeRefl = ReflectHisto(fMCPtShape);
2021     hMCPtShapeRefl->Draw("same");
2022     leg->AddEntry(fMCPtShape,"MC p_{t} shape","l");
2023   }
2024   if(fPartAntipart) {
2025     Int_t ci = TColor::GetColor("#ff6600");
2026     fPartAntipart->SetLineColor(ci);
2027     //    fPartAntipart->SetLineColor(9);
2028     fPartAntipart->SetLineWidth(3);
2029     fPartAntipart->Draw("same");
2030     TH1F *hPartAntipartRefl = ReflectHisto(fPartAntipart);
2031     hPartAntipartRefl->Draw("same");
2032     leg->AddEntry(fPartAntipart,"D = #bar{D}","l");
2033   }
2034
2035
2036   leg->Draw();
2037
2038   cSystErr->SaveAs("RelativeSystematics.eps");
2039
2040   return;
2041 }
2042 //-------------------------------------------------------------------------
2043 TH1F* AliHFSystErr::ReflectHisto(TH1F *hin) const {
2044   //
2045   // Clones and reflects histogram 
2046   // 
2047   TH1F *hout=(TH1F*)hin->Clone("hout");
2048   hout->Scale(-1.);
2049
2050   return hout;
2051 }
2052
2053
2054