1 #if !defined (__CINT__) || (defined(__MAKECINT__))
3 #include "TClonesArray.h"
5 #include "AliPWGFunc.h"
6 //#include "LoadSpectraPiKPPbPb.C"
7 #include "AliParticleYield.h"
9 #include "TDatabasePDG.h"
14 void AddHistograms (TH1 * hdest, TH1 * hsource, Float_t scale = 1. , Int_t isLinear = 0) ;
15 TH1* PrintYieldAndError(TH1 * hsyst, TH1* hstat, Int_t ifunc = 0, Double_t massParticle=0.139) ;
16 TH1* ReweightSpectra(TClonesArray * histos, Double_t * weights, Int_t isLinear = 0, TString suffix = "") ;
17 void LoadStuff(Bool_t loadPbPb = kTRUE) ;
18 void AverageAndExtrapolate(TString what);
29 void AverageAndExtrapolate () {
31 // MF COMMON LIBRARIES SHOULD NOT BE LOADED FOR THIS MACRO TO WORK
32 LoadStuff(1); // True PbPb, False pPb
34 // PrintYieldAndError(hSpectraCentr_sys[0][kMyProton][0], hSpectraCentr_stat[0][kMyProton][0], 0, mass[2]);
36 // PrintYieldAndError(hLambdaSyst[0], hLambdaStat[0], 0, TDatabasePDG::Instance()->GetParticle("Lambda0")->Mass());
37 // icentr, ipart, icharge
39 // AverageAndExtrapolate("pions_pos_0020");
40 // AverageAndExtrapolate("pions_pos_0010");
41 // AverageAndExtrapolate("pions_neg_0010");
42 // AverageAndExtrapolate("pions_sum_0010");
43 // AverageAndExtrapolate("kaons_pos_0010");
44 // AverageAndExtrapolate("kaons_neg_0010");
45 // AverageAndExtrapolate("protons_pos_0010");
46 // AverageAndExtrapolate("protons_neg_0010");
47 // AverageAndExtrapolate("lambda_0010");
48 // AverageAndExtrapolate("k0s_0010");
49 // AverageAndExtrapolate("pions_pos_6080");
50 // AverageAndExtrapolate("pions_neg_6080");
51 // AverageAndExtrapolate("kaons_pos_6080");
52 // AverageAndExtrapolate("kaons_neg_6080");
53 // AverageAndExtrapolate("protons_pos_6080");
54 // AverageAndExtrapolate("protons_neg_6080");
56 // AverageAndExtrapolate("pions_pos_2040");
57 AverageAndExtrapolate("pions_neg_2040");
58 AverageAndExtrapolate("kaons_pos_2040");
59 AverageAndExtrapolate("kaons_neg_2040");
60 AverageAndExtrapolate("protons_pos_2040");
61 AverageAndExtrapolate("protons_neg_2040");
65 TH1* PrintYieldAndError(TH1 * hsyst, TH1* hstat, Int_t ifunc, Double_t massParticle) {
69 f= BGBlastWave("fBlastWave", massParticle);
70 f->SetParameters(massParticle, 0.640, 0.097, 0.73, 100); // FIXME
72 else if (ifunc == 1) {
73 f = fm.GetTsallis(massParticle, 0.2, 11, 800, "fTsallisPion");
76 // TH1 * h = YieldMean(hstat, hsyst, f, 0.0, 100, 0.01, 0.1, "");
77 TH1 * h = YieldMean(hstat, hsyst, f, 0.0, 100);
78 // std::cout << "H " << h << std::endl;
79 std::cout << "" << std::endl;
80 std::cout << h->GetBinContent(1) << ", " << h->GetBinContent(2) << ", " << h->GetBinContent(3) << std::endl;
81 std::cout << "" << std::endl;
88 TH1* ReweightSpectra(TObjArray * histos, Double_t * weights, Int_t isLinear, TString suffix) {
90 // sums a number of spectra with a given weight. Used to combine
91 // several centrality bins. The weights should add up to 1 and be
92 // proportional to the width of the centrality bin for each
94 // Suffix is added to the name of the histogram.
95 // if linear = 1 errors are summed linearly rather than in quadrature
102 while ((h = dynamic_cast<TH1*>(it.Next()))) {
104 std::cout << "ERROR cannot get one of the histos!" << std::endl;
109 // First histogram, clone it
110 hsum = (TH1D*) h->Clone(TString(h->GetName())+suffix);
111 hsum->Scale(weights[ihisto++]);
113 AddHistograms(hsum, h, weights[ihisto++], isLinear);
119 void AddHistograms (TH1 * hdest, TH1 * hsource, Float_t scale, Int_t isLinear) {
120 // THis method assumes that the 2 histos are consistent!!
121 TH1 * hsourceLoc = (TH1*) hsource->Clone("hsourceLoc");
122 hsourceLoc->Scale(scale);
124 hdest->Add(hsourceLoc);
127 Int_t nbin = hsourceLoc->GetNbinsX();
128 for(Int_t ibin = 0; ibin < nbin; ibin++){
129 Double_t content = hdest->GetBinContent(ibin) + hsourceLoc->GetBinContent(ibin);
130 Double_t error = hdest->GetBinError (ibin) + hsourceLoc->GetBinError (ibin);
131 hdest->SetBinContent(ibin,content);
132 hdest->SetBinError(ibin, error);
145 void LoadStuff(Bool_t loadPbPb) {
147 gROOT->LoadMacro("LoadSpectraPiKPPbPb.C");
148 LoadSpectraPiKPPbPb();
151 gROOT->LoadMacro("LoadSpectraPiKPProtonLead.C");
152 LoadSpectraPiKPProtonLead();
155 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/UTILS/YieldMean.C");
156 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/UTILS/SpectraUtils.C");
158 // Load Lambdas and K0s
159 TFile * f = new TFile("k0s_lambda_final_spectra.root");
160 const char * multTags[] = { "0005", "0510", "1020", "2040", "4060", "6080", "8090"};
161 for (Int_t icentr = 0; icentr<7; icentr++) {
162 hLambdaStat[icentr] = (TH1*) f->Get(Form("statonly_cent%s_Lambda",multTags[icentr]));
163 hLambdaSyst[icentr] = (TH1*) f->Get(Form("statonly_cent%s_Lambda",multTags[icentr]));
164 hK0SStat[icentr] = (TH1*) f->Get(Form("systonly_cent%s_K0s",multTags[icentr]));
165 hK0SSyst[icentr] = (TH1*) f->Get(Form("statonly_cent%s_K0s",multTags[icentr]));
167 // The bin 300-400 MeV was not used in the analysis
168 hK0SStat[icentr]->SetBinContent(4,0);
169 hK0SSyst[icentr]->SetBinContent(4,0);
170 hK0SStat[icentr]->SetBinError(4,0);
171 hK0SSyst[icentr]->SetBinError(4,0);
176 void AverageAndExtrapolate(TString what) {
182 if(what == "pions_pos_0020"){
184 TObjArray * arrStat = new TObjArray();
185 arrStat->Add(hSpectraCentr_stat[0][kMyPion][kMyPos]);
186 arrStat->Add(hSpectraCentr_stat[1][kMyPion][kMyPos]);
187 arrStat->Add(hSpectraCentr_stat[2][kMyPion][kMyPos]);
189 TObjArray * arrSyst = new TObjArray();
190 arrSyst->Add(hSpectraCentr_sys [0][kMyPion][kMyPos]);
191 arrSyst->Add(hSpectraCentr_sys [1][kMyPion][kMyPos]);
192 arrSyst->Add(hSpectraCentr_sys [2][kMyPion][kMyPos]);
194 Double_t weights[] = {0.25, 0.25, 0.5};
195 //Double_t weights[] = {0.5, 0.5};
197 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0020");
198 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0020");
200 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[0]);
204 if(what == "pions_pos_0010"){
206 TObjArray * arrStat = new TObjArray();
207 arrStat->Add(hSpectraCentr_stat[0][kMyPion][kMyPos]);
208 arrStat->Add(hSpectraCentr_stat[1][kMyPion][kMyPos]);
210 TObjArray * arrSyst = new TObjArray();
211 arrSyst->Add(hSpectraCentr_sys [0][kMyPion][kMyPos]);
212 arrSyst->Add(hSpectraCentr_sys [1][kMyPion][kMyPos]);
214 Double_t weights[] = {0.5, 0.5};
216 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
217 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
219 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[0]);
223 if(what == "pions_sum_0010"){
225 TObjArray * arrStat = new TObjArray();
226 arrStat->Add(hSpectraCentr_stat[0][kMyPion][kMyPos]);
227 arrStat->Add(hSpectraCentr_stat[1][kMyPion][kMyPos]);
228 arrStat->Add(hSpectraCentr_stat[0][kMyPion][kMyNeg]);
229 arrStat->Add(hSpectraCentr_stat[1][kMyPion][kMyNeg]);
231 TObjArray * arrSyst = new TObjArray();
232 arrSyst->Add(hSpectraCentr_sys [0][kMyPion][kMyPos]);
233 arrSyst->Add(hSpectraCentr_sys [1][kMyPion][kMyPos]);
234 arrSyst->Add(hSpectraCentr_sys [0][kMyPion][kMyNeg]);
235 arrSyst->Add(hSpectraCentr_sys [1][kMyPion][kMyNeg]);
237 Double_t weights[] = {0.5, 0.5, 0.5, 0.5};
239 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
240 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
242 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[0]);
246 if(what == "pions_neg_0010"){
248 TObjArray * arrStat = new TObjArray();
249 arrStat->Add(hSpectraCentr_stat[0][kMyPion][kMyNeg]);
250 arrStat->Add(hSpectraCentr_stat[1][kMyPion][kMyNeg]);
252 TObjArray * arrSyst = new TObjArray();
253 arrSyst->Add(hSpectraCentr_sys [0][kMyPion][kMyNeg]);
254 arrSyst->Add(hSpectraCentr_sys [1][kMyPion][kMyNeg]);
256 Double_t weights[] = {0.5, 0.5};
258 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
259 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
261 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[0]);
265 if(what == "protons_pos_0010"){
267 TObjArray * arrStat = new TObjArray();
268 arrStat->Add(hSpectraCentr_stat[0][kMyProton][kMyPos]);
269 arrStat->Add(hSpectraCentr_stat[1][kMyProton][kMyPos]);
271 TObjArray * arrSyst = new TObjArray();
272 arrSyst->Add(hSpectraCentr_sys [0][kMyProton][kMyPos]);
273 arrSyst->Add(hSpectraCentr_sys [1][kMyProton][kMyPos]);
275 Double_t weights[] = {0.5, 0.5};
277 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
278 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
280 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[2]);
284 if(what == "protons_neg_0010"){
286 TObjArray * arrStat = new TObjArray();
287 arrStat->Add(hSpectraCentr_stat[0][kMyProton][kMyNeg]);
288 arrStat->Add(hSpectraCentr_stat[1][kMyProton][kMyNeg]);
290 TObjArray * arrSyst = new TObjArray();
291 arrSyst->Add(hSpectraCentr_sys [0][kMyProton][kMyNeg]);
292 arrSyst->Add(hSpectraCentr_sys [1][kMyProton][kMyNeg]);
294 Double_t weights[] = {0.5, 0.5};
296 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
297 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
299 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[2]);
303 if(what == "kaons_pos_0010"){
305 TObjArray * arrStat = new TObjArray();
306 arrStat->Add(hSpectraCentr_stat[0][kMyKaon][kMyPos]);
307 arrStat->Add(hSpectraCentr_stat[1][kMyKaon][kMyPos]);
309 TObjArray * arrSyst = new TObjArray();
310 arrSyst->Add(hSpectraCentr_sys [0][kMyKaon][kMyPos]);
311 arrSyst->Add(hSpectraCentr_sys [1][kMyKaon][kMyPos]);
313 Double_t weights[] = {0.5, 0.5};
315 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
316 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
318 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[1]);
322 if(what == "kaons_neg_0010"){
324 TObjArray * arrStat = new TObjArray();
325 arrStat->Add(hSpectraCentr_stat[0][kMyKaon][kMyNeg]);
326 arrStat->Add(hSpectraCentr_stat[1][kMyKaon][kMyNeg]);
328 TObjArray * arrSyst = new TObjArray();
329 arrSyst->Add(hSpectraCentr_sys [0][kMyKaon][kMyNeg]);
330 arrSyst->Add(hSpectraCentr_sys [1][kMyKaon][kMyNeg]);
332 Double_t weights[] = {0.5, 0.5};
334 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
335 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
337 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[1]);
342 if(what == "pions_pos_6080"){
344 TObjArray * arrStat = new TObjArray();
345 arrStat->Add(hSpectraCentr_stat[7][kMyPion][kMyPos]);
346 arrStat->Add(hSpectraCentr_stat[8][kMyPion][kMyPos]);
348 TObjArray * arrSyst = new TObjArray();
349 arrSyst->Add(hSpectraCentr_sys [7][kMyPion][kMyPos]);
350 arrSyst->Add(hSpectraCentr_sys [8][kMyPion][kMyPos]);
352 Double_t weights[] = {0.5, 0.5};
354 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_6080");
355 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_6080");
357 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[0]);
361 if(what == "pions_neg_6080"){
363 TObjArray * arrStat = new TObjArray();
364 arrStat->Add(hSpectraCentr_stat[7][kMyPion][kMyNeg]);
365 arrStat->Add(hSpectraCentr_stat[8][kMyPion][kMyNeg]);
367 TObjArray * arrSyst = new TObjArray();
368 arrSyst->Add(hSpectraCentr_sys [7][kMyPion][kMyNeg]);
369 arrSyst->Add(hSpectraCentr_sys [8][kMyPion][kMyNeg]);
371 Double_t weights[] = {0.5, 0.5};
373 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_6080");
374 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_6080");
376 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[0]);
380 if(what == "protons_pos_6080"){
382 TObjArray * arrStat = new TObjArray();
383 arrStat->Add(hSpectraCentr_stat[7][kMyProton][kMyPos]);
384 arrStat->Add(hSpectraCentr_stat[8][kMyProton][kMyPos]);
386 TObjArray * arrSyst = new TObjArray();
387 arrSyst->Add(hSpectraCentr_sys [7][kMyProton][kMyPos]);
388 arrSyst->Add(hSpectraCentr_sys [8][kMyProton][kMyPos]);
390 Double_t weights[] = {0.5, 0.5};
392 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_6080");
393 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_6080");
395 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[2]);
399 if(what == "protons_neg_6080"){
401 TObjArray * arrStat = new TObjArray();
402 arrStat->Add(hSpectraCentr_stat[7][kMyProton][kMyNeg]);
403 arrStat->Add(hSpectraCentr_stat[8][kMyProton][kMyNeg]);
405 TObjArray * arrSyst = new TObjArray();
406 arrSyst->Add(hSpectraCentr_sys [7][kMyProton][kMyNeg]);
407 arrSyst->Add(hSpectraCentr_sys [8][kMyProton][kMyNeg]);
409 Double_t weights[] = {0.5, 0.5};
411 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_6080");
412 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_6080");
414 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[2]);
418 if(what == "kaons_pos_6080"){
420 TObjArray * arrStat = new TObjArray();
421 arrStat->Add(hSpectraCentr_stat[7][kMyKaon][kMyPos]);
422 arrStat->Add(hSpectraCentr_stat[8][kMyKaon][kMyPos]);
424 TObjArray * arrSyst = new TObjArray();
425 arrSyst->Add(hSpectraCentr_sys [7][kMyKaon][kMyPos]);
426 arrSyst->Add(hSpectraCentr_sys [8][kMyKaon][kMyPos]);
428 Double_t weights[] = {0.5, 0.5};
430 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_6080");
431 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_6080");
433 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[1]);
437 if(what == "kaons_neg_6080"){
439 TObjArray * arrStat = new TObjArray();
440 arrStat->Add(hSpectraCentr_stat[7][kMyKaon][kMyNeg]);
441 arrStat->Add(hSpectraCentr_stat[8][kMyKaon][kMyNeg]);
443 TObjArray * arrSyst = new TObjArray();
444 arrSyst->Add(hSpectraCentr_sys [7][kMyKaon][kMyNeg]);
445 arrSyst->Add(hSpectraCentr_sys [8][kMyKaon][kMyNeg]);
447 Double_t weights[] = {0.5, 0.5};
449 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_6080");
450 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_6080");
452 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[1]);
457 if(what == "pions_pos_2040"){
459 TObjArray * arrStat = new TObjArray();
460 arrStat->Add(hSpectraCentr_stat[3][kMyPion][kMyPos]);
461 arrStat->Add(hSpectraCentr_stat[4][kMyPion][kMyPos]);
463 TObjArray * arrSyst = new TObjArray();
464 arrSyst->Add(hSpectraCentr_sys [3][kMyPion][kMyPos]);
465 arrSyst->Add(hSpectraCentr_sys [4][kMyPion][kMyPos]);
467 Double_t weights[] = {0.5, 0.5};
469 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_2040");
470 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_2040");
472 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[0]);
476 if(what == "pions_neg_2040"){
478 TObjArray * arrStat = new TObjArray();
479 arrStat->Add(hSpectraCentr_stat[3][kMyPion][kMyNeg]);
480 arrStat->Add(hSpectraCentr_stat[4][kMyPion][kMyNeg]);
482 TObjArray * arrSyst = new TObjArray();
483 arrSyst->Add(hSpectraCentr_sys [3][kMyPion][kMyNeg]);
484 arrSyst->Add(hSpectraCentr_sys [4][kMyPion][kMyNeg]);
486 Double_t weights[] = {0.5, 0.5};
488 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_2040");
489 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_2040");
491 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[0]);
495 if(what == "kaons_pos_2040"){
497 TObjArray * arrStat = new TObjArray();
498 arrStat->Add(hSpectraCentr_stat[3][kMyKaon][kMyPos]);
499 arrStat->Add(hSpectraCentr_stat[4][kMyKaon][kMyPos]);
501 TObjArray * arrSyst = new TObjArray();
502 arrSyst->Add(hSpectraCentr_sys [3][kMyKaon][kMyPos]);
503 arrSyst->Add(hSpectraCentr_sys [4][kMyKaon][kMyPos]);
505 Double_t weights[] = {0.5, 0.5};
507 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_2040");
508 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_2040");
510 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[1]);
514 if(what == "kaons_neg_2040"){
516 TObjArray * arrStat = new TObjArray();
517 arrStat->Add(hSpectraCentr_stat[3][kMyKaon][kMyNeg]);
518 arrStat->Add(hSpectraCentr_stat[4][kMyKaon][kMyNeg]);
520 TObjArray * arrSyst = new TObjArray();
521 arrSyst->Add(hSpectraCentr_sys [3][kMyKaon][kMyNeg]);
522 arrSyst->Add(hSpectraCentr_sys [4][kMyKaon][kMyNeg]);
524 Double_t weights[] = {0.5, 0.5};
526 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_2040");
527 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_2040");
529 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[1]);
534 if(what == "protons_pos_2040"){
536 TObjArray * arrStat = new TObjArray();
537 arrStat->Add(hSpectraCentr_stat[3][kMyProton][kMyPos]);
538 arrStat->Add(hSpectraCentr_stat[4][kMyProton][kMyPos]);
540 TObjArray * arrSyst = new TObjArray();
541 arrSyst->Add(hSpectraCentr_sys [3][kMyProton][kMyPos]);
542 arrSyst->Add(hSpectraCentr_sys [4][kMyProton][kMyPos]);
544 Double_t weights[] = {0.5, 0.5};
546 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_2040");
547 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_2040");
549 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[2]);
553 if(what == "protons_neg_2040"){
555 TObjArray * arrStat = new TObjArray();
556 arrStat->Add(hSpectraCentr_stat[3][kMyProton][kMyNeg]);
557 arrStat->Add(hSpectraCentr_stat[4][kMyProton][kMyNeg]);
559 TObjArray * arrSyst = new TObjArray();
560 arrSyst->Add(hSpectraCentr_sys [3][kMyProton][kMyNeg]);
561 arrSyst->Add(hSpectraCentr_sys [4][kMyProton][kMyNeg]);
563 Double_t weights[] = {0.5, 0.5};
565 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_2040");
566 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_2040");
568 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, mass[2]);
574 if(what == "lambda_0010"){
576 TObjArray * arrStat = new TObjArray();
577 arrStat->Add(hLambdaStat[0]);
578 arrStat->Add(hLambdaStat[1]);
580 TObjArray * arrSyst = new TObjArray();
581 arrSyst->Add(hLambdaSyst[0]);
582 arrSyst->Add(hLambdaSyst[1]);
584 Double_t weights[] = {0.5, 0.5};
586 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
587 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
589 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, TDatabasePDG::Instance()->GetParticle("Lambda0")->Mass());
594 if(what == "k0s_0010"){
596 TObjArray * arrStat = new TObjArray();
597 arrStat->Add(hK0SStat[0]);
598 arrStat->Add(hK0SStat[1]);
600 TObjArray * arrSyst = new TObjArray();
601 arrSyst->Add(hK0SSyst[0]);
602 arrSyst->Add(hK0SSyst[1]);
604 Double_t weights[] = {0.5, 0.5};
606 TH1 * hstat = ReweightSpectra(arrStat, weights, 0, "_0010");
607 TH1 * hsyst = ReweightSpectra(arrSyst, weights, 1, "_0010");
609 hyieldmean = PrintYieldAndError(hsyst, hstat, 0, TDatabasePDG::Instance()->GetParticle("K_S0")->Mass());
617 TCanvas * c1 = new TCanvas("Averaging", "Averaging");
621 hsyst->Draw("same,e3");