]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/correlationHF/AliHFDhadronCorrSystUnc.h
Use configuration script
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliHFDhadronCorrSystUnc.h
1 #ifndef ALIHFDHADRONCORRSYSTUNC_H
2 #define ALIHFDHADRONCORRSYSTUNC_H
3 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: $ */
7
8 /////////////////////////////////////////////////////////////
9 // class for systematic uncertainties on D meson -hadron correlation distribution
10 //
11 // Author: A. Rossi, andrea.rossi@cern.ch
12 //
13 // Responsible of the values set for the different mesons/datasets
14 //      D0:  in pp (2010 min bias) Fabio Colamaria, fabio.colamaria@ba.infn.it ;  p-Pb (2013 min bias): Fabio Colamaria, fabio.colamaria@ba.infn.it,  Somnath Kar, somnath.kar@cern.ch
15 //      D*+: in pp 2010 min. bias and p-Pb 2013 min. bias  Sandro Bjelogrlic, sandro.bjelogrlic@cern.ch
16 //      D+:  in pp 2010 min. bias and p-Pb 2013 min. bias  Jitendra Kumar, jitendra.kumar@cern.ch
17 //
18 /////////////////////////////////////////////////////////////
19 #include <TH1D.h>
20 #include <TH2D.h>
21 #include <TCanvas.h>
22 #include <TGraphAsymmErrors.h>
23 #include <TString.h>
24 class AliHFDhadronCorrSystUnc : public TNamed{
25   
26  public:
27   AliHFDhadronCorrSystUnc();
28   AliHFDhadronCorrSystUnc(const char* name);
29   ~AliHFDhadronCorrSystUnc();
30   void InitEmptyHistosFromTemplate();
31   void InitStandardUncertaintiesPP2010(Int_t meson,Double_t ptD,Double_t minptAss);
32   void InitStandardUncertaintiesPPb2013(Int_t meson,Double_t ptD,Double_t minptAss);
33   // Method with uncertainties for pp 2010, Dzero and D*+ and pt assoc> 0.3 GeV/c, with values used for HP2013
34   void InitStandardUncertaintiesPP2010DzeroLowPtAss03HP();
35   void InitStandardUncertaintiesPP2010DzeroMidPtAss03HP();
36   void InitStandardUncertaintiesPP2010DzeroHighPtAss03HP();
37   
38   void InitStandardUncertaintiesPP2010DstarLowPtAss03HP();
39   void InitStandardUncertaintiesPP2010DstarMidPtAss03HP();
40   void InitStandardUncertaintiesPP2010DstarHighPtAss03HP();
41
42
43   // Method with uncertainties for pp 2010, all kinematic cases but those approved for HP2013
44   void InitStandardUncertaintiesPP2010DplusLowPtAss03();
45   void InitStandardUncertaintiesPP2010DplusMidPtAss03();
46   void InitStandardUncertaintiesPP2010DplusHighPtAss03();
47
48   void InitStandardUncertaintiesPP2010DzeroLowPtAss05();
49   void InitStandardUncertaintiesPP2010DzeroMidPtAss05();
50   void InitStandardUncertaintiesPP2010DzeroHighPtAss05();
51
52   void InitStandardUncertaintiesPP2010DstarLowPtAss05();
53   void InitStandardUncertaintiesPP2010DstarMidPtAss05();
54   void InitStandardUncertaintiesPP2010DstarHighPtAss05();
55
56   void InitStandardUncertaintiesPP2010DplusLowPtAss05();
57   void InitStandardUncertaintiesPP2010DplusMidPtAss05();
58   void InitStandardUncertaintiesPP2010DplusHighPtAss05();
59
60
61   void InitStandardUncertaintiesPP2010DzeroLowPtAss1();
62   void InitStandardUncertaintiesPP2010DzeroMidPtAss1();
63   void InitStandardUncertaintiesPP2010DzeroHighPtAss1();
64
65   void InitStandardUncertaintiesPP2010DstarLowPtAss1();
66   void InitStandardUncertaintiesPP2010DstarMidPtAss1();
67   void InitStandardUncertaintiesPP2010DstarHighPtAss1();
68
69   void InitStandardUncertaintiesPP2010DplusLowPtAss1();
70   void InitStandardUncertaintiesPP2010DplusMidPtAss1();
71   void InitStandardUncertaintiesPP2010DplusHighPtAss1();
72
73
74   // Method with uncertainties for pPb 2013
75  void InitStandardUncertaintiesPPb2013DzeroLowPtAss03();
76   void InitStandardUncertaintiesPPb2013DzeroMidPtAss03();
77   void InitStandardUncertaintiesPPb2013DzeroHighPtAss03();
78
79   void InitStandardUncertaintiesPPb2013DstarLowPtAss03();
80   void InitStandardUncertaintiesPPb2013DstarMidPtAss03();
81   void InitStandardUncertaintiesPPb2013DstarHighPtAss03();
82
83   void InitStandardUncertaintiesPPb2013DplusLowPtAss03();
84   void InitStandardUncertaintiesPPb2013DplusMidPtAss03();
85   void InitStandardUncertaintiesPPb2013DplusHighPtAss03();
86
87   void InitStandardUncertaintiesPPb2013DzeroLowPtAss05();
88   void InitStandardUncertaintiesPPb2013DzeroMidPtAss05();
89   void InitStandardUncertaintiesPPb2013DzeroHighPtAss05();
90
91   void InitStandardUncertaintiesPPb2013DstarLowPtAss05();
92   void InitStandardUncertaintiesPPb2013DstarMidPtAss05();
93   void InitStandardUncertaintiesPPb2013DstarHighPtAss05();
94
95   void InitStandardUncertaintiesPPb2013DplusLowPtAss05();
96   void InitStandardUncertaintiesPPb2013DplusMidPtAss05();
97   void InitStandardUncertaintiesPPb2013DplusHighPtAss05();
98
99
100   void InitStandardUncertaintiesPPb2013DzeroLowPtAss1();
101   void InitStandardUncertaintiesPPb2013DzeroMidPtAss1();
102   void InitStandardUncertaintiesPPb2013DzeroHighPtAss1();
103
104   void InitStandardUncertaintiesPPb2013DstarLowPtAss1();
105   void InitStandardUncertaintiesPPb2013DstarMidPtAss1();
106   void InitStandardUncertaintiesPPb2013DstarHighPtAss1();
107
108   void InitStandardUncertaintiesPPb2013DplusLowPtAss1();
109   void InitStandardUncertaintiesPPb2013DplusMidPtAss1();
110   void InitStandardUncertaintiesPPb2013DplusHighPtAss1();
111
112
113   /////////////
114
115   TGraphAsymmErrors* GetUncGraphFromHistos(TH1D *hRef,TH1D *hMin,TH1D *hMax);
116   void BuildGraphsRelUnc();
117   void BuildGraphsUnc(TH1D *hRef);
118   TCanvas* BuildSystUncertaintyPlotVsDeltaPhi(TH1D *hCorrPlot,Int_t doInit);
119   void BuildTotalNonFDUncHisto();
120   void BuildTotalUncHisto();
121   void BuildTotalNonFlatUncHisto();  
122   TH1D *GetVariedHisto(const TH1D *hIn,const TGraphAsymmErrors *gr,Int_t minmax);
123   TH1D *GetHistoTotFlatMin(){return fhtotFlatMin;}
124   TH1D *GetHistoTotFlatMax(){return fhtotFlatMax;}
125
126   TH1D *GetHistoYieldUnc(){
127     return fhYieldExtraction;
128   }
129
130   TH1D *GetHistoBackSubUncMin(){
131     return fhBackSubtractionMin;
132   }
133
134   TH1D *GetHistoBackSubUncMax(){
135     return fhBackSubtractionMax;
136   }
137   
138   TH1D *GetHistoTemplate(){
139     return fhDeltaPhiTemplate;
140   }
141   
142   TH1D *GetHistoMCclosureTestMin(){
143     return fhMCclosureTestMin;
144   }
145   TH1D *GetHistoMCclosureTestMax(){
146     return fhMCclosureTestMax;
147   }
148
149   TH1D *GetHistoMCcorrectionsMin(){
150     return fhMCcorrectionsMin;
151   }
152   TH1D *GetHistoMCcorrectionsMax(){
153     return fhMCcorrectionsMax;
154   }
155
156   TH1D *GetHistoMCDefficiencyMin(){
157     return fhMCDefficiencyMin;
158   }
159   TH1D *GetHistoMCDefficiencyMax(){
160     return fhMCDefficiencyMax;
161   }
162
163   TH1D *GetHistoSecContaminationMin(){
164     return fhSecContaminationMin;
165   }
166   TH1D *GetHistoSecContaminationMax(){
167     return fhSecContaminationMax;
168   }
169
170   TH1D *GetHistoFDmin(){
171     return fhBeautyFDmin;
172   }
173
174   TH1D *GetHistoFDmax(){
175     return fhBeautyFDmax;
176   }
177   
178   void SetHistoTemplate(TH1D *h,TString strname="",Bool_t clone=kTRUE);
179   void SetHistoMCclosureTestMin(TH1D *h,TString strname="",Bool_t clone=kTRUE);
180   void SetHistoMCclosureTestMax(TH1D *h,TString strname="",Bool_t clone=kTRUE);
181   void SetHistoMCcorrectionsMin(TH1D *h,TString strname="",Bool_t clone=kTRUE);
182   void SetHistoMCcorrectionsMax(TH1D *h,TString strname="",Bool_t clone=kTRUE);
183   void SetHistoMCDefficiencyMin(TH1D *h,TString strname="",Bool_t clone=kTRUE);
184   void SetHistoMCDefficiencyMax(TH1D *h,TString strname="",Bool_t clone=kTRUE);
185   void SetHistoSecContaminationMin(TH1D *h,TString strname="",Bool_t clone=kTRUE);
186   void SetHistoSecContaminationMax(TH1D *h,TString strname="",Bool_t clone=kTRUE);
187   void SetHistoBeautyFDmin(TH1D *h,TString strname="",Bool_t clone=kTRUE);
188   void SetHistoBeautyFDmax(TH1D *h,TString strname="",Bool_t clone=kTRUE);
189   void SetHistoYieldExtraction(TH1D *h,TString strname="",Bool_t clone=kTRUE);
190   void SetHistoBackSubtraction(TH1D *hMax,TString strname="",Bool_t clone=kTRUE,TH1D *hMin=0x0);
191
192   
193   TGraphAsymmErrors* GetTotUncGraph(){return fgrTotal;}
194   TGraphAsymmErrors* GetTotNonFlatUncGraph(){return fgrTotalNonFlatDPhi;}
195   TGraphAsymmErrors* GetTotFlatUncGraph(){return fgrTotalFlatDPhi;}
196   
197  private:
198   Int_t fmeson;                       // 0=D0, 1=D*, 2=D+
199   TString fstrmeson;                  // meson name
200   TString fstrptAss;                  // string with pt range associated tracks
201   TString fstrptD;                  // string with pt range D meson
202   TH1D *fhDeltaPhiTemplate;            // histo do define the binning in DeltaPhi
203   TH1D *fhYieldExtraction;            // yield extr unc
204   TH1D *fhBackSubtractionMin;            // uncertainty from variation of SB range, etc.
205   TH1D *fhBackSubtractionMax;            // uncertainty from variation of SB range, etc.
206   TH1D *fhBeautyFDmin;                   // feed down uncertainty
207   TH1D *fhBeautyFDmax;                   // feed down uncertainty
208   TH1D *fhMCclosureTestMin;              // mc closure
209   TH1D *fhMCclosureTestMax;              // mc closure
210   TH1D *fhMCcorrectionsMin;              // mc corrections ( associated track selection variation)  
211   TH1D *fhMCcorrectionsMax;              // mc corrections ( associated track selection variation)  
212   TH1D *fhMCDefficiencyMin;              // mc corrections (D cut variation )
213   TH1D *fhMCDefficiencyMax;              // mc corrections (D cut variation ) 
214   TH1D *fhSecContaminationMin;           // contamination from secondaries
215   TH1D *fhSecContaminationMax;           // contamination from secondaries
216   TH1D *fhTotalMin;                      //
217   TH1D *fhTotalMax;                      //
218   TH1D *fhTotalNonFDMin;                //
219   TH1D *fhTotalNonFDMax;                 //
220   TH1D *fhTotalNonFlatDPhiMin;           //
221   TH1D *fhTotalNonFlatDPhiMax;           //
222   TH1D *fhtotFlatMin;                     //
223   TH1D *fhtotFlatMax;                     //
224   TGraphAsymmErrors *fgrYieldUnc;        //  
225   TGraphAsymmErrors *fgrBackSubUnc;        //  
226   TGraphAsymmErrors *fgrMCcorrections;   //
227   TGraphAsymmErrors *fgrMCDefficiency;   //
228   TGraphAsymmErrors *fgrSecContamination;   //
229   TGraphAsymmErrors *fgrMCclosureTest;   //
230   TGraphAsymmErrors *fgrBeautyFD;        //
231   TGraphAsymmErrors *fgrYieldUncRel;        // 
232   TGraphAsymmErrors *fgrBackSubUncRel;        //   
233   TGraphAsymmErrors *fgrMCcorrectionsRel;   //
234   TGraphAsymmErrors *fgrMCDefficiencyRel;   //
235   TGraphAsymmErrors *fgrSecContaminationRel;   //
236   TGraphAsymmErrors *fgrMCclosureTestRel;   //
237   TGraphAsymmErrors *fgrBeautyFDRel;        //
238   TGraphAsymmErrors  *fgrTotal;         //
239   TGraphAsymmErrors  *fgrTotalRel;         //
240   TGraphAsymmErrors  *fgrTotalNonFD;         //
241   TGraphAsymmErrors  *fgrTotalNonFlatDPhi;         //
242   TGraphAsymmErrors  *fgrTotalNonFlatDPhiRel;         //
243   TGraphAsymmErrors  *fgrTotalFlatDPhi;         //
244   TGraphAsymmErrors  *fgrTotalFlatDPhiRel;         //
245
246
247   ClassDef(AliHFDhadronCorrSystUnc,1);
248 };
249
250
251
252 #endif