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 */
8 /////////////////////////////////////////////////////////////
9 // class for systematic uncertainties on D meson -hadron correlation distribution
11 // Author: A. Rossi, andrea.rossi@cern.ch
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
18 /////////////////////////////////////////////////////////////
22 #include <TGraphAsymmErrors.h>
24 class AliHFDhadronCorrSystUnc : public TNamed{
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();
38 void InitStandardUncertaintiesPP2010DstarLowPtAss03HP();
39 void InitStandardUncertaintiesPP2010DstarMidPtAss03HP();
40 void InitStandardUncertaintiesPP2010DstarHighPtAss03HP();
43 // Method with uncertainties for pp 2010, all kinematic cases but those approved for HP2013
44 void InitStandardUncertaintiesPP2010DplusLowPtAss03();
45 void InitStandardUncertaintiesPP2010DplusMidPtAss03();
46 void InitStandardUncertaintiesPP2010DplusHighPtAss03();
48 void InitStandardUncertaintiesPP2010DzeroLowPtAss05();
49 void InitStandardUncertaintiesPP2010DzeroMidPtAss05();
50 void InitStandardUncertaintiesPP2010DzeroHighPtAss05();
52 void InitStandardUncertaintiesPP2010DstarLowPtAss05();
53 void InitStandardUncertaintiesPP2010DstarMidPtAss05();
54 void InitStandardUncertaintiesPP2010DstarHighPtAss05();
56 void InitStandardUncertaintiesPP2010DplusLowPtAss05();
57 void InitStandardUncertaintiesPP2010DplusMidPtAss05();
58 void InitStandardUncertaintiesPP2010DplusHighPtAss05();
61 void InitStandardUncertaintiesPP2010DzeroLowPtAss1();
62 void InitStandardUncertaintiesPP2010DzeroMidPtAss1();
63 void InitStandardUncertaintiesPP2010DzeroHighPtAss1();
65 void InitStandardUncertaintiesPP2010DstarLowPtAss1();
66 void InitStandardUncertaintiesPP2010DstarMidPtAss1();
67 void InitStandardUncertaintiesPP2010DstarHighPtAss1();
69 void InitStandardUncertaintiesPP2010DplusLowPtAss1();
70 void InitStandardUncertaintiesPP2010DplusMidPtAss1();
71 void InitStandardUncertaintiesPP2010DplusHighPtAss1();
74 // Method with uncertainties for pPb 2013
75 void InitStandardUncertaintiesPPb2013DzeroLowPtAss03();
76 void InitStandardUncertaintiesPPb2013DzeroMidPtAss03();
77 void InitStandardUncertaintiesPPb2013DzeroHighPtAss03();
79 void InitStandardUncertaintiesPPb2013DstarLowPtAss03();
80 void InitStandardUncertaintiesPPb2013DstarMidPtAss03();
81 void InitStandardUncertaintiesPPb2013DstarHighPtAss03();
83 void InitStandardUncertaintiesPPb2013DplusLowPtAss03();
84 void InitStandardUncertaintiesPPb2013DplusMidPtAss03();
85 void InitStandardUncertaintiesPPb2013DplusHighPtAss03();
87 void InitStandardUncertaintiesPPb2013DzeroLowPtAss05();
88 void InitStandardUncertaintiesPPb2013DzeroMidPtAss05();
89 void InitStandardUncertaintiesPPb2013DzeroHighPtAss05();
91 void InitStandardUncertaintiesPPb2013DstarLowPtAss05();
92 void InitStandardUncertaintiesPPb2013DstarMidPtAss05();
93 void InitStandardUncertaintiesPPb2013DstarHighPtAss05();
95 void InitStandardUncertaintiesPPb2013DplusLowPtAss05();
96 void InitStandardUncertaintiesPPb2013DplusMidPtAss05();
97 void InitStandardUncertaintiesPPb2013DplusHighPtAss05();
100 void InitStandardUncertaintiesPPb2013DzeroLowPtAss1();
101 void InitStandardUncertaintiesPPb2013DzeroMidPtAss1();
102 void InitStandardUncertaintiesPPb2013DzeroHighPtAss1();
104 void InitStandardUncertaintiesPPb2013DstarLowPtAss1();
105 void InitStandardUncertaintiesPPb2013DstarMidPtAss1();
106 void InitStandardUncertaintiesPPb2013DstarHighPtAss1();
108 void InitStandardUncertaintiesPPb2013DplusLowPtAss1();
109 void InitStandardUncertaintiesPPb2013DplusMidPtAss1();
110 void InitStandardUncertaintiesPPb2013DplusHighPtAss1();
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;}
126 TH1D *GetHistoYieldUnc(){
127 return fhYieldExtraction;
130 TH1D *GetHistoBackSubUncMin(){
131 return fhBackSubtractionMin;
134 TH1D *GetHistoBackSubUncMax(){
135 return fhBackSubtractionMax;
138 TH1D *GetHistoTemplate(){
139 return fhDeltaPhiTemplate;
142 TH1D *GetHistoMCclosureTestMin(){
143 return fhMCclosureTestMin;
145 TH1D *GetHistoMCclosureTestMax(){
146 return fhMCclosureTestMax;
149 TH1D *GetHistoMCcorrectionsMin(){
150 return fhMCcorrectionsMin;
152 TH1D *GetHistoMCcorrectionsMax(){
153 return fhMCcorrectionsMax;
156 TH1D *GetHistoMCDefficiencyMin(){
157 return fhMCDefficiencyMin;
159 TH1D *GetHistoMCDefficiencyMax(){
160 return fhMCDefficiencyMax;
163 TH1D *GetHistoSecContaminationMin(){
164 return fhSecContaminationMin;
166 TH1D *GetHistoSecContaminationMax(){
167 return fhSecContaminationMax;
170 TH1D *GetHistoFDmin(){
171 return fhBeautyFDmin;
174 TH1D *GetHistoFDmax(){
175 return fhBeautyFDmax;
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);
193 TGraphAsymmErrors* GetTotUncGraph(){return fgrTotal;}
194 TGraphAsymmErrors* GetTotNonFlatUncGraph(){return fgrTotalNonFlatDPhi;}
195 TGraphAsymmErrors* GetTotFlatUncGraph(){return fgrTotalFlatDPhi;}
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
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; //
247 ClassDef(AliHFDhadronCorrSystUnc,1);