e7c4d434e0058c56d2fd30a195f890bfaa3abfc1
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / scripts / UnfoldMultDists.C
1 #ifndef UNFOLDMULTDISTS_H
2 #define UNFOLDMULTDISTS_H
3 #include <TFile.h>
4 #include <TList.h>
5 #include <TH1.h>
6 #include <TH2.h>
7 #include <TString.h>
8
9 /** 
10  * Structure to do unfolding of multiplcity distributions 
11  * 
12  * It takes as input 2 files: the output file (forward_multdists.root)
13  * of the analysis train MakeMultDistsTrain.C run on real and MC data.
14  *
15  * It generates the output file forward_unfolded.root with histograms
16  * and stacks of the input data and the unfolding results.
17  */
18 struct Unfolder 
19 {
20   enum { 
21     kMeasuredColor = kBlue+1,
22     kUnfoldedColor = kRed+1,
23     kTruthColor    = kGreen+2,
24     kCMSColor      = kYellow+1,
25     kALICEColor    = kMagenta+1,
26     kSysColor      = kBlue-10
27   };
28   /** 
29    * Constructor
30    */
31   Unfolder() {}
32   /** 
33    * Run this code 
34    * 
35    * @param realFile Output file of MakeMultDistsTrain on real data
36    * @param mcFile   Output file of MakeMultDistsTrain on MC data
37    */
38   void Run(const Char_t* realFile="forward_multdists.root", 
39            const Char_t* mcFile="forward_mcmultdists.root")
40   {
41     gSystem->Load("RooUnfold/libRooUnfold.so");
42
43     // --- Open files ------------------------------------------------
44     TFile* realF = TFile::Open(realFile,"READ");
45     if (!realF) { 
46       Error("Run", "Couldn't open %s", realFile);
47       return;
48     }
49     TFile* mcF = TFile::Open(mcFile,"READ");
50     if (!mcF) { 
51       Error("Run", "Couldn't open %s", mcFile);
52       return;
53     }
54     TFile* outF = TFile::Open("forward_unfolded.root", "RECREATE");
55     
56     // --- Get top-level containers ----------------------------------
57     TCollection* realTop = GetCollection(realF, "ForwardMultResults");
58     if (!realTop) {
59       Error("Run", "Failed to get real collection");
60       return;
61     }
62     TCollection* mcTop   = GetCollection(mcF,   "ForwardMultResults");
63     if (!mcTop) { 
64       Error("Run", "Failed to get MC collection");
65       return;
66     }
67
68     // --- Loop over the kinds of bins we have -----------------------
69     const char*  types[] = { "symmetric", "negative", "positive", "other", 0 };
70     const char** ptype   = types;
71     while ((*ptype)) { 
72       TCollection* realType = GetCollection(realTop, *ptype);
73       TCollection* mcType   = GetCollection(mcTop, *ptype);
74       TDirectory*  outType  = outF->mkdir(*ptype);
75       if(realType && mcType) ScanType(realType, mcType, outType);
76       ptype++;
77       outF->cd();
78     }
79
80     // --- Close all files -------------------------------------------
81     // outF->ls();
82     outF->Write();
83     outF->Close();
84     realF->Close();
85     mcF->Close();
86   }
87   /** 
88    * Get an object from a collection 
89    * 
90    * @param c    Collection
91    * @param name Name of object
92    * @param cl   Possible class to check against
93    * 
94    * @return Pointer to object or null
95    */
96   TObject* GetObject(TCollection* c, const TString& name, TClass* cl)
97   {
98     TObject* o = c->FindObject(name);
99     if (!o) { 
100       Warning("GetObject", "%s not found in %s", name.Data(), c->GetName());
101       return 0;
102     }
103     if (cl && !o->IsA()->InheritsFrom(cl)) {
104       Warning("GetCollection", "%s is not a %s but a %s", 
105               name.Data(), cl->GetName(), o->ClassName());
106       return 0;
107     }
108     return o;
109   }
110   /** 
111    * Get a collection
112    * 
113    * @param d 
114    * @param name 
115    * 
116    * @return 
117    */   
118   TCollection* GetCollection(TDirectory* d, const TString& name) const
119   {
120     TObject* o = d->Get(name);
121     if (!o) { 
122       Warning("GetCollection", "%s not found in %s", name.Data(), d->GetName());
123       return 0;
124     }
125     if (!o->IsA()->InheritsFrom(TCollection::Class())) { 
126       Warning("GetCollection", "%s is not a collection", name.Data());
127       return 0;
128     }
129     return static_cast<TCollection*>(o);
130   }
131   /** 
132    * Get a collection 
133    * 
134    * @param c 
135    * @param name 
136    * 
137    * @return 
138    */
139   TCollection* GetCollection(TCollection* c, const TString& name) const
140   {
141     return static_cast<TCollection*>(GetObject(c, name, TCollection::Class()));
142   }
143   /** 
144    * Get a 1D histogram from a collection
145    * 
146    * @param c    Collection
147    * @param name Nanme of histogram
148    * 
149    * @return Pointer to object or null
150    */
151   TH1* GetH1(TCollection* c, const TString& name) 
152   {
153     return static_cast<TH1*>(GetObject(c, name, TH1::Class()));
154   }
155   /** 
156    * Get a 2D histogram from a collection
157    * 
158    * @param c    Collection
159    * @param name Nanme of histogram
160    * 
161    * @return Pointer to object or null
162    */
163   TH2* GetH2(TCollection* c, const TString& name) 
164   {
165     return static_cast<TH2*>(GetObject(c, name, TH2::Class()));
166   }
167   TH1* Ratio(const TH1* num, const TGraph* denom,
168              Double_t etaMin, Double_t etaMax) 
169   {
170     TH1* ret = static_cast<TH1*>(num->Clone(Form("%s_%s",
171                                                  num->GetName(), 
172                                                  denom->GetName())));
173     ret->SetTitle(Form("%+5.1f<#eta<%+5.1f to %s", etaMin, etaMax,  
174                        denom->GetTitle()));
175     ret->SetDirectory(0);
176     ret->SetMarkerColor(denom->GetMarkerColor());
177     for (Int_t i = 1; i <= ret->GetNbinsX(); i++) { 
178       Double_t x    = ret->GetXaxis()->GetBinCenter(i);
179       Double_t numY = ret->GetBinContent(i);
180       Double_t numE = ret->GetBinError(i);
181       Double_t denY = denom->Eval(x);
182       
183       if (denY <= 0) {
184         ret->SetBinContent(i,0);
185         ret->SetBinError(i,0);
186         continue;
187       }
188       
189       ret->SetBinContent(i,(numY-denY)/denY);
190       ret->SetBinError(i,numE/denY);
191     }
192     return ret;
193   }
194   
195
196   /** 
197    * Scan type (symmetric, negative, ...) list for bins 
198    * 
199    * @param real Real list
200    * @param mc   MC list
201    * @param dir  Output directory 
202    */
203   void ScanType(TCollection* real, TCollection* mc, TDirectory* dir) 
204   {
205     // --- Create container stack ------------------------------------
206     TString tit(real->GetName());
207     tit[0] = toupper(tit[0]);
208     tit.Append(" bins");
209     
210     THStack* stack = new THStack("all", tit);
211     dir->Add(stack);
212     
213     THStack* ratios = 0;
214
215     TMultiGraph* mg = 0;
216
217     // --- Create list of entries for legend -------------------------
218     TList* l = new TList;
219     l->SetName("legend");
220
221     // --- Get the bins container ------------------------------------
222     TList* le = static_cast<TList*>(real->FindObject("lowEdges"));
223     TList* he = static_cast<TList*>(real->FindObject("highEdges"));
224     if (!le || !he) 
225       Warning("ScanType", "didn't get the bin low/high edge containers");
226     else {
227       // Copy to output 
228       dir->cd();
229       le->Clone()->Write("lowEdges", TObject::kSingleKey);
230       he->Clone()->Write("highEdges", TObject::kSingleKey);
231     }
232
233     // --- Setup for markers -----------------------------------------
234     const Int_t   nMarkers   = 7;
235     const Int_t   cMarkers[] = { 20,  21,  22,  23,  29,  33,  34  };
236     const Int_t   oMarkers[] = { 24,  25,  26,  32,  30,  27,  28  };
237     const Float_t sMarkers[] = { 1.1, 1.0, 1.2, 1.2, 1.2, 1.2, 1.0 };
238     Int_t iMarker            = 0;
239
240     // --- Loop over the contained objects ---------------------------
241     static TRegexp regex("[pm][0-9]d[0-9]*_[pm][0-9]d[0-9]*");
242     TIter          next(real);
243     TObject*       o = 0;
244     Int_t          f = 1;
245     while ((o = next())) {
246       // if not a collection, don't bother 
247       if (!o->IsA()->InheritsFrom(TCollection::Class())) continue;
248      
249       // If it doesn't match our regular expression, don't bother 
250       TString n(o->GetName());
251       if (n.Index(regex) == kNPOS) { 
252         Warning("ScanType", "%s in %s doesn't match eta range regexp", 
253                 n.Data(), real->GetName());
254         continue;
255       }
256       // Cast object and find corresponding MC object 
257       TCollection* realBin = static_cast<TCollection*>(o);
258       TCollection* mcBin   = GetCollection(mc, n.Data());
259       if (!mcBin) { 
260         Warning("ScanType", "No corresponding MC bin for %s found in %s", 
261                 n.Data(), mc->GetName());
262         continue;
263       }
264       TDirectory* outBin = dir->mkdir(realBin->GetName());
265       
266       // Now do the unfolding 
267       THStack* bin = UnfoldEtaBin(realBin, mcBin, outBin);
268       if (!bin) { dir->cd(); continue; }
269
270       // Loop over histograms and set properties 
271       TIter   nextH(bin->GetHists());
272       TH1*    hist    = 0;
273       Int_t   cMarker = cMarkers[iMarker % nMarkers];
274       Int_t   oMarker = oMarkers[iMarker % nMarkers];
275       Float_t sMarker = sMarkers[iMarker % nMarkers];
276       TH1*    realH   = 0;
277       while ((hist = static_cast<TH1*>(nextH()))) {
278         TH1* out = static_cast<TH1*>(hist->Clone());
279         if (out->GetMarkerColor() == kUnfoldedColor && 
280             out->GetMarkerStyle() != 24) realH = out;
281         out->SetDirectory(0);
282         out->Scale(f);
283         out->SetMarkerStyle(out->GetMarkerStyle() == 24 ? oMarker : cMarker);
284         out->SetMarkerSize(out->GetMarkerSize() * sMarker);
285         stack->Add(out, nextH.GetOption());
286       }
287       TString n(bin->GetTitle());
288       n.Append(Form(" (#times%d)", f));
289       TObjString* lee = new TObjString(n);
290       lee->SetUniqueID(cMarker);
291       l->Add(lee);
292
293       // Now try to get external data and make a multigraph 
294       n = o->GetName();
295       n.ReplaceAll("p", "+");
296       n.ReplaceAll("m", "-");
297       n.ReplaceAll("d", ".");
298       n.ReplaceAll("_", " ");
299       TObjArray*  tokens = n.Tokenize(" ");
300       TObjString* sMin   = static_cast<TObjString*>(tokens->At(0));
301       TObjString* sMax   = static_cast<TObjString*>(tokens->At(1));
302       Double_t    etaMin = sMin->String().Atof();
303       Double_t    etaMax = sMax->String().Atof();
304       if (TMath::Abs(etaMax + etaMin) < 1e-6) { 
305         // Symmetric bin
306         Double_t aEta = TMath::Abs(etaMin);
307         TGraphAsymmErrors* g1 = GetOther(0, aEta, 900, f, cMarker); 
308         TGraphAsymmErrors* g2 = GetOther(1, aEta, 900, f, cMarker); 
309         if (g1 || g2) {
310           if (!mg) mg = new TMultiGraph("other", "Other results");
311           if (!ratios) ratios = new THStack("ratios",tit);
312         }
313         if (g1) {
314           g1->SetTitle("CMS");
315           mg->Add(g1);
316           if (realH) ratios->Add(Ratio(realH, g1, etaMin, etaMax));
317         }
318         if (g2) {
319           g2->SetTitle("ALICE");
320           mg->Add(g2);
321           if (realH) ratios->Add(Ratio(realH, g2, etaMin, etaMax));
322         }
323       }
324
325       // Increment scaling and marker 
326       f *= 10;
327       iMarker++;
328
329       dir->cd();
330     }
331     dir->cd();
332     if (mg) mg->Write();
333     if (ratios) dir->Add(ratios);
334     l->Write(l->GetName(), TObject::kSingleKey);
335   }
336   /** 
337    * Do unfolding in an @f$\eta@f$ bin 
338    * 
339    * @param real Real list
340    * @param mc   MC list
341    * @param dir  Output directory
342    * 
343    * @return Stack of histograms on success
344    */  
345   THStack* UnfoldEtaBin(TCollection* real, TCollection* mc, TDirectory* dir)
346   {
347     TH1*  realRaw  = GetH1(real, "rawDist");
348     TH1*  mcRaw    = GetH1(mc,   "rawDist");
349     TH1*  mcTruth  = GetH1(mc,   "truth");
350     TH2*  response = GetH2(mc,   "response");
351     
352     if (!realRaw) { 
353       Warning("UnfoldEtaBin", "Real raw distribution not found in %s", 
354               real->GetName());
355       return 0;
356     }
357     if (!mcRaw) { 
358       Warning("UnfoldEtaBin", "MC raw distribution not found in %s", 
359               mc->GetName());
360       return 0;
361     }
362     if (!mcTruth) { 
363       Warning("UnfoldEtaBin", "MC true distribution not found in %s", 
364               mc->GetName());
365       return 0;
366     }
367     if (!response) { 
368       Warning("UnfoldEtaBin", "Response matrix not found in %s", 
369               mc->GetName());
370       return 0;
371     }
372     
373     Int_t    mN = realRaw->GetNbinsX();
374     Double_t mL = realRaw->GetXaxis()->GetXmin();
375     Double_t mH = realRaw->GetXaxis()->GetXmax();
376     Int_t    tN = mcRaw->GetNbinsX();
377     Double_t tL = mcRaw->GetXaxis()->GetXmin();
378     Double_t tH = mcRaw->GetXaxis()->GetXmax();
379     
380     RooUnfoldResponse matrix(mN, mL, mH, tN, tL, tH);
381     for (Int_t i = 1; i <= mN; i++) { 
382       Double_t mX = response->GetYaxis()->GetBinCenter(i);
383       for (Int_t j = 1; j <= tN; j++) { 
384         Double_t tX = response->GetXaxis()->GetBinCenter(j);
385         matrix.Fill(mX, tX, response->GetBinContent(j, i));
386       }
387     }
388
389     RooUnfoldBayes realUnfold(&matrix, realRaw, 4);
390     realUnfold.SetVerbose(0);
391     TH1* resReal = realUnfold.Hreco();
392     TH1* outReal = static_cast<TH1*>(resReal->Clone("realUnfolded"));
393     resReal->SetDirectory(0);
394     delete resReal;
395
396     RooUnfoldBayes mcUnfold(&matrix, mcRaw, 4);
397     mcUnfold.SetVerbose(0);
398     TH1* resMC = mcUnfold.Hreco();
399     TH1* outMC = static_cast<TH1*>(resMC->Clone("mcUnfolded"));
400     resMC->SetDirectory(0);
401     delete resMC;
402
403     TH1* outRealRaw  = static_cast<TH1*>(realRaw->Clone("realRaw"));
404     TH1* outMcRaw    = static_cast<TH1*>(mcRaw->Clone("mcRaw"));
405     TH1* outMcTruth  = static_cast<TH1*>(mcTruth->Clone("mcTruth"));
406     TH2* outResponse = static_cast<TH2*>(matrix.Hresponse()->Clone("response"));
407
408     outRealRaw ->SetTitle("Measured");
409     outMcRaw   ->SetTitle("Measured (MC)");
410     outMcTruth ->SetTitle("Truth (MC)");
411     outResponse->SetTitle("Response matrix");
412     outReal    ->SetTitle("Unfolded");
413     outMC      ->SetTitle("Unfolded (MC)");
414
415     outRealRaw ->SetDirectory(dir);
416     outMcRaw   ->SetDirectory(dir);
417     outMcTruth ->SetDirectory(dir);
418     outResponse->SetDirectory(dir);
419     outReal    ->SetDirectory(dir);
420     outMC      ->SetDirectory(dir);
421     
422     outMcRaw  ->SetMarkerStyle(24); // Open circle
423     outRealRaw->SetMarkerStyle(20); // Circle
424     outMcTruth->SetMarkerStyle(24); // Open Circle
425     outMC     ->SetMarkerStyle(24); // Open Circle
426     outReal   ->SetMarkerStyle(20); // Circle
427     
428     outMcRaw  ->SetMarkerSize(1.2); // Open circle
429     outMC     ->SetMarkerSize(1.2); // Open circle
430     outMcTruth->SetMarkerSize(1.6); // Open square
431
432     outMcRaw  ->SetMarkerColor(kMeasuredColor);
433     outRealRaw->SetMarkerColor(kMeasuredColor);
434     outMcTruth->SetMarkerColor(kTruthColor);
435     outMC     ->SetMarkerColor(kUnfoldedColor);
436     outReal   ->SetMarkerColor(kUnfoldedColor);
437
438     outMcRaw  ->SetFillColor(kSysColor);
439     outRealRaw->SetFillColor(kSysColor);
440     outMcTruth->SetFillColor(kSysColor);
441     outMC     ->SetFillColor(kSysColor);
442     outReal   ->SetFillColor(kSysColor);
443
444     outMcRaw  ->SetFillStyle(1001);
445     outRealRaw->SetFillStyle(0);
446     outMcTruth->SetFillStyle(1001);
447     outMC     ->SetFillStyle(0);
448     outReal   ->SetFillStyle(0);
449
450     outMcRaw  ->SetLineColor(kBlack);
451     outRealRaw->SetLineColor(kBlack);
452     outMcTruth->SetLineColor(kBlack);
453     outMC     ->SetLineColor(kBlack);
454     outReal   ->SetLineColor(kBlack);
455
456     TString tit(real->GetName());
457     tit.ReplaceAll("m", "-");
458     tit.ReplaceAll("p", "+");
459     tit.ReplaceAll("d", ".");
460     tit.ReplaceAll("_", "<#it{#eta}<");
461     
462     THStack* stack = new THStack("all", tit);
463     stack->Add(outMcRaw,      "E2");
464     stack->Add(outRealRaw,    "E1");
465     stack->Add(outMcTruth,    "E2");
466     stack->Add(outMC,         "E1");
467     stack->Add(outReal,       "E1");
468
469     dir->Add(stack);
470
471     return stack;
472   }
473   /** 
474    * Drwa output 
475    * 
476    * @param which 
477    */
478   void DrawType(const char* which="symmetric") 
479   {
480     const char* fname = "forward_unfolded.root";
481     TFile*   outF = 0;
482     TObject* outO = gROOT->GetListOfFiles()->FindObject(fname);
483     if (outO) outF = static_cast<TFile*>(outO);
484     else      outF = TFile::Open(fname, "READ");
485     
486     if (!outF) { 
487       Warning("DrawType", "Failed to open file %s", fname);
488       return;
489     }
490
491     THStack* stack = 0;
492     outF->GetObject(Form("/%s/all", which), stack);
493     if (!stack) { 
494       Warning("DrawType", "Failed to get /%s/all from file %s", which, fname);
495       return;
496     }
497     
498     TList* leg = 0;
499     outF->GetObject(Form("/%s/legend", which), leg);
500     if (!leg) { 
501       Warning("DrawType", "Failed to get /%s/legend from file %s", 
502               which, fname);
503       return;
504     }
505
506     TMultiGraph* other = 0;
507     outF->GetObject(Form("/%s/other", which), other);
508     if (!other) 
509       Warning("DrawType", "No other data found for %s", which);
510
511     THStack* ratios = 0;
512     outF->GetObject(Form("/%s/ratios", which), ratios);
513     if (!ratios) 
514       Warning("DrawType", "No ratios data found for %s", which);
515
516     TCanvas* c = new TCanvas(which, Form("%s P(#it{N}_{ch})", which));
517     c->SetLogy();
518     c->SetTopMargin(0.01);
519     c->SetRightMargin(0.02);
520     c->cd();
521     
522     THStack* drawn = static_cast<THStack*>(stack->Clone(which));
523     drawn->Draw("nostack");
524     drawn->GetXaxis()->SetTitle("#it{#eta}");
525     drawn->GetYaxis()->SetTitle("P(#it{N}_{ch})");
526     drawn->GetHistogram()->SetDirectory(0);
527     TIter nextH(drawn->GetHists());
528     TH1*  h = 0;
529     while ((h = static_cast<TH1*>(nextH()))) h->SetDirectory(0);
530
531     Bool_t        hasCMS   = false;
532     Bool_t        hasALICE = false;
533     if (other) {
534       TIter nextG(other->GetListOfGraphs());
535       TGraph* g = 0;
536       while ((g = static_cast<TGraph*>(nextG()))) {
537         g->Draw("p same");
538         if (g->GetMarkerColor() == kALICEColor) hasALICE = true;
539         if (g->GetMarkerColor() == kCMSColor)   hasCMS   = true;
540       }
541     }
542     TLegend* l = new TLegend(.65, .75, .975, .975);
543     l->SetBorderSize(0);
544     l->SetFillColor(0);
545     l->SetFillStyle(0);
546     
547     TIter         next(leg);
548     TObject*      o = 0;
549     TLegendEntry* e = 0;
550     Int_t         d = 0;
551     while (o = next()) { 
552       e = l->AddEntry(Form("dummy%02d", d++), o->GetName(), "p");
553       e->SetMarkerStyle(o->GetUniqueID());
554       e->SetLineColor(kBlack);
555       e->SetMarkerSize(1.3);
556     }
557     l->Draw();
558
559     Double_t x1 = other ? .12 : .7;
560     Double_t y1 = .1;
561     Double_t w1 = other ? .20 : .15;
562     Double_t h1 = other ? .3 : .25;
563     TLegend* l2 = new TLegend(x1, y1, x1+w1, y1+h1);
564     l2->SetBorderSize(0);
565     l2->SetFillColor(0);
566     l2->SetFillStyle(0);
567
568     const char* oth[] = { "Measured", 
569                           "Truth", 
570                           "Unfolded", 
571                           "CMS", 
572                           "ALICE" };
573     Int_t       col[] = { kMeasuredColor, 
574                           kTruthColor, 
575                           kUnfoldedColor, 
576                           kCMSColor, 
577                           kALICEColor };
578     for (Int_t i = 0; i < 5; i++) {
579       if (i == 3 && !hasCMS)   continue;
580       if (i == 4 && !hasALICE) continue;
581       e = l2->AddEntry(Form("dummy%02d", d++), oth[i], "f");
582       e->SetFillColor(col[i]);
583       e->SetFillStyle(1001);
584     }
585     e = l2->AddEntry(Form("dummy%02d", d++), "Real", "p");
586     e->SetMarkerStyle(20);
587     e->SetMarkerSize(1.3);
588     e->SetMarkerColor(kBlack);
589     e = l2->AddEntry(Form("dummy%02d", d++), "MC", "p");
590     e->SetMarkerStyle(24);
591     e->SetMarkerSize(1.3);
592     e->SetMarkerColor(kBlack);
593     
594     l2->Draw();
595
596   if (ratios) {
597     c = new TCanvas(Form("r%s", which), 
598                              Form("%s P(#it{N}_{ch})", which));
599     c->SetTopMargin(0.01);
600     c->SetRightMargin(0.02);
601     c->cd();
602     ratios->Draw("nostack");
603     c->BuildLegend();
604   }
605
606     outF->cd();
607   }
608   void DrawAll()
609   {
610     DrawType("symmetric");
611     DrawType("negative");
612     DrawType("positive");
613     DrawType("other");
614   }
615   TGraphAsymmErrors* GetOther(UShort_t type, Double_t eta, UShort_t sNN,
616                               Int_t factor, Int_t marker)
617   {
618     TGraphAsymmErrors* g = 0;
619     Int_t color = kBlack;
620     switch (type) { 
621     case 0: g = GetCMS(eta, sNN);   color = kCMSColor; break;
622     case 1: g = GetALICE(eta, sNN); color = kALICEColor; break;
623     }
624     if (!g) {
625       Warning("GetOther", "No other data found for type=%d, eta=%f, sNN=%d", 
626               type, eta, sNN);
627       return g;
628     }
629     
630     g->SetMarkerStyle(marker);
631     g->SetMarkerColor(color);
632     for (Int_t j = 0; j < g->GetN(); j++) { 
633       g->SetPoint(j, g->GetX()[j], g->GetY()[j]*factor);
634       g->SetPointError(j, g->GetEXlow()[j], g->GetEXhigh()[j], 
635                        g->GetEYlow()[j]*factor, g->GetEYhigh()[j]*factor);
636     }
637     return g;
638   }    
639
640   TGraphAsymmErrors* GetCMS(Double_t eta, UShort_t sNN)
641   {
642     Double_t aEta = TMath::Abs(eta);
643     TGraphAsymmErrors* g = 0;
644     switch (sNN) { 
645     case 900: 
646       if      (aEta <= 0.51)  g = CMSsqrts900eta05();
647       else if (aEta <= 1.01)  g = CMSsqrts900eta10();
648       else if (aEta <= 1.51)  g = CMSsqrts900eta15();
649       else if (aEta <= 2.01)  g = CMSsqrts900eta20();
650       else if (aEta <= 2.41)  g = CMSsqrts900eta24();
651       break;
652     default: 
653       return g;
654     }
655     if (g) {
656       g->SetMarkerColor(kCMSColor);
657       g->SetLineColor(kBlack);
658     }
659     return g;
660   }
661   /** 
662    * CMS pp, @f$\sqrt{s} = 900GeV@f$, NSD, @f$|\eta|\lt0.5@f$ 
663    * 
664    * @return 
665    */
666   TGraphAsymmErrors* CMSsqrts900eta05()
667   {
668     // Plot: p8068_d2x1y1
669     double x[] = { 0.0, 1.0,
670                    2.0, 3.0,
671                    4.0, 5.0,
672                    6.0, 7.0,
673                    8.0, 9.0,
674                    10.0,        11.0,
675                    12.0,        13.0,
676                    14.0,        15.0,
677                    16.0,        17.0,
678                    18.0,        19.0,
679                    20.0,        22.0,
680                    26.0 };
681     double xem[] = { 0.5,       0.5,
682                      0.5,       0.5,
683                      0.5,       0.5,
684                      0.5,       0.5,
685                      0.5,       0.5,
686                      0.5,       0.5,
687                      0.5,       0.5,
688                      0.5,       0.5,
689                      0.5,       0.5,
690                      0.5,       0.5,
691                      0.5,       1.5,
692                      2.5 };
693     double xep[] = { 0.5,       0.5,
694                      0.5,       0.5,
695                      0.5,       0.5,
696                      0.5,       0.5,
697                      0.5,       0.5,
698                      0.5,       0.5,
699                      0.5,       0.5,
700                      0.5,       0.5,
701                      0.5,       0.5,
702                      0.5,       0.5,
703                      0.5,       1.5,
704                      2.5 };
705     double y[] = { 0.193,       0.1504,
706                    0.13507,     0.11647,
707                    0.09566,     0.07567,
708                    0.05817,     0.04427,
709                    0.0337,      0.02572,
710                    0.01948,     0.01457,
711                    0.01069,     0.00769,
712                    0.0055,      0.00396,
713                    0.00289,     0.002112,
714                    0.001544,    0.001118,
715                    7.52E-4,     3.35E-4,
716                    9.8E-5 };
717     double yem[] = { 0.02189155088156159,       0.012180722474467595,
718                      0.007909551188278638,      0.006072832946821442,
719                      0.004838605170914444,      0.003828276374558138,
720                      0.003016836091006603,      0.002365797962633327,
721                      0.0018847015678881366,     0.0015610893632332517,
722                      0.001308166656049603,      0.0011140017953306899,
723                      9.219544457292888E-4,      7.203471385380802E-4,
724                      5.508175741568165E-4,      4.3011626335213136E-4,
725                      3.3837848631377264E-4,     2.746961958236772E-4,
726                      2.2377220560203628E-4,     1.9070920271449933E-4,
727                      1.6011246047700347E-4,     8.134494452638099E-5,
728                      2.5059928172283337E-5 };
729     double yep[] = { 0.031663227883461285,      0.015861904047118684,
730                      0.010948538715280683,      0.008490583018850945,
731                      0.007046453008429135,      0.005675746646917919,
732                      0.004395201929377079,      0.003365070578754627,
733                      0.0026049952015310893,     0.0020535335400231475,
734                      0.0016522106403240478,     0.0013497407158413798,
735                      0.001118033988749895,      9.060905032059435E-4,
736                      7.061161377563892E-4,      5.457105459856901E-4,
737                      4.148493702538308E-4,      3.257759966602819E-4,
738                      2.6689698387205504E-4,     2.292705825002414E-4,
739                      1.904205871222962E-4,      9.646242791885347E-5,
740                      3.417601498127012E-5 };
741     double ysm[] = { 0.002,     0.0014,
742                      7.9E-4,    7.2E-4,
743                      6.1E-4,    5.4E-4,
744                      4.7E-4,    4.1E-4,
745                      3.6E-4,    3.1E-4,
746                      2.7E-4,    2.3E-4,
747                      2.0E-4,    1.7E-4,
748                      1.5E-4,    1.3E-4,
749                      1.1E-4,    9.7E-5,
750                      8.5E-5,    7.1E-5,
751                      5.6E-5,    2.9E-5,
752                      1.2E-5 };
753     double ysp[] = { 0.002,     0.0014,
754                      7.9E-4,    7.2E-4,
755                      6.1E-4,    5.4E-4,
756                      4.7E-4,    4.1E-4,
757                      3.6E-4,    3.1E-4,
758                      2.7E-4,    2.3E-4,
759                      2.0E-4,    1.7E-4,
760                      1.5E-4,    1.3E-4,
761                      1.1E-4,    9.7E-5,
762                      8.5E-5,    7.1E-5,
763                      5.6E-5,    2.9E-5,
764                      1.2E-5 };
765     int np = 23;
766     TGraphAsymmErrors* g = new TGraphAsymmErrors(np, 
767                                                  x, y, 
768                                                  xem, 
769                                                  xep, 
770                                                  yem, 
771                                                  yep);
772     g->SetName("/HepData/8068/d2x1y1");
773     g->SetTitle("/HepData/8068/d2x1y1");
774
775     return g;
776   }
777   TGraphAsymmErrors* CMSsqrts900eta10()
778   {
779
780     // Plot: p8068_d3x1y1
781     double x[] = { 0.0, 1.0,
782                    2.0, 3.0,
783                    4.0, 5.0,
784                    6.0, 7.0,
785                    8.0, 9.0,
786                    10.0,        11.0,
787                    12.0,        13.0,
788                    14.0,        15.0,
789                    16.0,        17.0,
790                    18.0,        19.0,
791                    20.0,        21.0,
792                    22.0,        23.0,
793                    24.0,        25.0,
794                    26.0,        27.0,
795                    28.0,        29.0,
796                    30.0,        31.0,
797                    32.0,        33.0,
798                    34.0,        36.0,
799                    40.0,        45.0,
800                    50.0,        55.0 };
801     double xem[] = { 0.5,       0.5,
802                      0.5,       0.5,
803                      0.5,       0.5,
804                      0.5,       0.5,
805                      0.5,       0.5,
806                      0.5,       0.5,
807                      0.5,       0.5,
808                      0.5,       0.5,
809                      0.5,       0.5,
810                      0.5,       0.5,
811                      0.5,       0.5,
812                      0.5,       0.5,
813                      0.5,       0.5,
814                      0.5,       0.5,
815                      0.5,       0.5,
816                      0.5,       0.5,
817                      0.5,       0.5,
818                      0.5,       1.5,
819                      2.5,       2.5,
820                      2.5,       2.5 };
821     double xep[] = { 0.5,       0.5,
822                      0.5,       0.5,
823                      0.5,       0.5,
824                      0.5,       0.5,
825                      0.5,       0.5,
826                      0.5,       0.5,
827                      0.5,       0.5,
828                      0.5,       0.5,
829                      0.5,       0.5,
830                      0.5,       0.5,
831                      0.5,       0.5,
832                      0.5,       0.5,
833                      0.5,       0.5,
834                      0.5,       0.5,
835                      0.5,       0.5,
836                      0.5,       0.5,
837                      0.5,       0.5,
838                      0.5,       1.5,
839                      2.5,       2.5,
840                      2.5,       2.5 };
841     double y[] = { 0.1076,      0.0655,
842                    0.07574,     0.08168,
843                    0.0813,      0.07622,
844                    0.06843,     0.06034,
845                    0.05259,     0.0458,
846                    0.03987,     0.03472,
847                    0.03035,     0.02661,
848                    0.02328,     0.02018,
849                    0.01728,     0.0147,
850                    0.0125,      0.01067,
851                    0.00916,     0.00786,
852                    0.00671,     0.0057,
853                    0.00478,     0.00394,
854                    0.00319,     0.00251,
855                    0.00196,     0.00156,
856                    0.001301,    0.001121,
857                    9.84E-4,     8.25E-4,
858                    6.39E-4,     3.78E-4,
859                    1.96E-4,     6.0E-5,
860                    1.25E-5,     1.6E-6 };
861     double yem[] = { 0.015802847844613326,      0.009464142856064674,
862                      0.008214195030555337,      0.00676426640516176,
863                      0.0058916636020736966,     0.005200240379059414,
864                      0.004441733895676326,      0.003671511950137164,
865                      0.0029149442533262966,     0.0024150569351466646,
866                      0.0020554318281081475,     0.001767059704707229,
867                      0.0015500322577288513,     0.0013800362314084368,
868                      0.0012684636376341263,     0.0011763077828527702,
869                      0.001084158659975559,      9.82344135219425E-4,
870                      8.805679985100526E-4,      7.692203845452875E-4,
871                      6.705221845696084E-4,      5.913543776789007E-4,
872                      5.375872022286245E-4,      5.154609587543949E-4,
873                      5.124451190127582E-4,      4.904079934095691E-4,
874                      4.4922154890432404E-4,     3.7E-4,
875                      3.0083217912982643E-4,     2.4166091947189146E-4,
876                      2.1108529081866412E-4,     1.8252944967867517E-4,
877                      1.662077013859466E-4,      1.4663219291819924E-4,
878                      1.2229881438509532E-4,     7.826237921249263E-5,
879                      4.74236228055175E-5,       2.1095023109728988E-5,
880                      6.161980201201558E-6,      1.3601470508735443E-6 };
881     double yep[] = { 0.02725949375905576,       0.011154371340420759,
882                      0.009740395269186974,      0.008248078564126314,
883                      0.007285581651453781,      0.006454339625399333,
884                      0.005595158621522718,      0.004804039966528172,
885                      0.00405504623894722,       0.0034544174617437305,
886                      0.0029644561052577585,     0.002545584412271571,
887                      0.0021980445855350615,     0.0019087430418995638,
888                      0.0016690416411821486,     0.001468911161370898,
889                      0.0013179529581893276,     0.0011866338946785568,
890                      0.001065129100156408,      9.339164844888434E-4,
891                      8.052328855678958E-4,      6.868041933477111E-4,
892                      5.94810894318522E-4,       5.440588203494177E-4,
893                      5.220153254455275E-4,      5.192301994298867E-4,
894                      4.972926703662542E-4,      4.368065933568311E-4,
895                      3.5735136770411276E-4,     2.8792360097775935E-4,
896                      2.4200206610688264E-4,     2.0310588371585893E-4,
897                      1.670748335327616E-4,      1.364587849865299E-4,
898                      1.1970797801316335E-4,     9.470480452437458E-5,
899                      5.758472019555187E-5,      2.195449840010015E-5,
900                      7.481310045707236E-6,      1.7029386365926402E-6 };
901     double ysm[] = { 0.0018,    0.0011,
902                      6.3E-4,    6.8E-4,
903                      6.1E-4,    5.6E-4,
904                      5.3E-4,    4.8E-4,
905                      4.5E-4,    4.1E-4,
906                      3.8E-4,    3.6E-4,
907                      3.5E-4,    3.3E-4,
908                      3.1E-4,    2.9E-4,
909                      2.7E-4,    2.5E-4,
910                      2.3E-4,    2.1E-4,
911                      2.0E-4,    1.9E-4,
912                      1.7E-4,    1.6E-4,
913                      1.5E-4,    1.4E-4,
914                      1.3E-4,    1.2E-4,
915                      1.1E-4,    1.0E-4,
916                      9.4E-5,    8.6E-5,
917                      8.3E-5,    7.5E-5,
918                      6.1E-5,    3.5E-5,
919                      2.0E-5,    1.1E-5,
920                      4.6E-6,    1.1E-6 };
921     double ysp[] = { 0.0018,    0.0011,
922                      6.3E-4,    6.8E-4,
923                      6.1E-4,    5.6E-4,
924                      5.3E-4,    4.8E-4,
925                      4.5E-4,    4.1E-4,
926                      3.8E-4,    3.6E-4,
927                      3.5E-4,    3.3E-4,
928                      3.1E-4,    2.9E-4,
929                      2.7E-4,    2.5E-4,
930                      2.3E-4,    2.1E-4,
931                      2.0E-4,    1.9E-4,
932                      1.7E-4,    1.6E-4,
933                      1.5E-4,    1.4E-4,
934                      1.3E-4,    1.2E-4,
935                      1.1E-4,    1.0E-4,
936                      9.4E-5,    8.6E-5,
937                      8.3E-5,    7.5E-5,
938                      6.1E-5,    3.5E-5,
939                      2.0E-5,    1.1E-5,
940                      4.6E-6,    1.1E-6 };
941     int np = 40;
942     TGraphAsymmErrors* g = new TGraphAsymmErrors(np,
943                                                  x,
944                                                  y,
945                                                  xem,
946                                                  xep,
947                                                  yem,
948                                                  yep);
949     g->SetName("/HepData/8068/d3x1y1");
950     g->SetTitle("/HepData/8068/d3x1y1");
951     return g;
952   }
953   TGraphAsymmErrors* CMSsqrts900eta15()
954   {
955     // Plot: p8068_d4x1y1
956     double x[] = { 0.0, 1.0,
957                    2.0, 3.0,
958                    4.0, 5.0,
959                    6.0, 7.0,
960                    8.0, 9.0,
961                    10.0,        11.0,
962                    12.0,        13.0,
963                    14.0,        15.0,
964                    16.0,        17.0,
965                    18.0,        19.0,
966                    20.0,        21.0,
967                    22.0,        23.0,
968                    24.0,        25.0,
969                    26.0,        27.0,
970                    28.0,        29.0,
971                    30.0,        31.0,
972                    32.0,        33.0,
973                    34.0,        35.0,
974                    36.0,        37.0,
975                    38.0,        39.0,
976                    40.0,        41.0,
977                    42.0,        43.0,
978                    44.0,        45.0,
979                    46.5,        49.0,
980                    53.0,        58.0,
981                    63.0,        68.0 };
982     double xem[] = { 0.5,       0.5,
983                      0.5,       0.5,
984                      0.5,       0.5,
985                      0.5,       0.5,
986                      0.5,       0.5,
987                      0.5,       0.5,
988                      0.5,       0.5,
989                      0.5,       0.5,
990                      0.5,       0.5,
991                      0.5,       0.5,
992                      0.5,       0.5,
993                      0.5,       0.5,
994                      0.5,       0.5,
995                      0.5,       0.5,
996                      0.5,       0.5,
997                      0.5,       0.5,
998                      0.5,       0.5,
999                      0.5,       0.5,
1000                      0.5,       0.5,
1001                      0.5,       0.5,
1002                      0.5,       0.5,
1003                      0.5,       0.5,
1004                      0.5,       0.5,
1005                      1.0,       1.5,
1006                      2.5,       2.5,
1007                      2.5,       2.5 };
1008     double xep[] = { 0.5,       0.5,
1009                      0.5,       0.5,
1010                      0.5,       0.5,
1011                      0.5,       0.5,
1012                      0.5,       0.5,
1013                      0.5,       0.5,
1014                      0.5,       0.5,
1015                      0.5,       0.5,
1016                      0.5,       0.5,
1017                      0.5,       0.5,
1018                      0.5,       0.5,
1019                      0.5,       0.5,
1020                      0.5,       0.5,
1021                      0.5,       0.5,
1022                      0.5,       0.5,
1023                      0.5,       0.5,
1024                      0.5,       0.5,
1025                      0.5,       0.5,
1026                      0.5,       0.5,
1027                      0.5,       0.5,
1028                      0.5,       0.5,
1029                      0.5,       0.5,
1030                      0.5,       0.5,
1031                      1.0,       1.5,
1032                      2.5,       2.5,
1033                      2.5,       2.5 };
1034     double y[] = { 0.0753,      0.03557,
1035                    0.04347,     0.05068,
1036                    0.05566,     0.05786,
1037                    0.05835,     0.05688,
1038                    0.05348,     0.0489,
1039                    0.04422,     0.04002,
1040                    0.03647,     0.03337,
1041                    0.03055,     0.02797,
1042                    0.02556,     0.02329,
1043                    0.02122,     0.01936,
1044                    0.01765,     0.01604,
1045                    0.01451,     0.01304,
1046                    0.01168,     0.01045,
1047                    0.00937,     0.0084,
1048                    0.00751,     0.00667,
1049                    0.00592,     0.00526,
1050                    0.00466,     0.00413,
1051                    0.00362,     0.00316,
1052                    0.00272,     0.00233,
1053                    0.00203,     0.00178,
1054                    0.00156,     0.00136,
1055                    0.0012,      0.001053,
1056                    9.13E-4,     7.84E-4,
1057                    5.85E-4,     3.73E-4,
1058                    2.13E-4,     9.6E-5,
1059                    3.6E-5,      7.4E-6 };
1060     double yem[] = { 0.014524806367039803,      0.0061507154055443014,
1061                      0.006900384047283165,      0.0068944397886992964,
1062                      0.00601252858621063,       0.004686747272896204,
1063                      0.0042880881520789655,     0.0039679339712248235,
1064                      0.0035288099977187778,     0.0031197756329582422,
1065                      0.0027127108213003464,     0.0023229722340140013,
1066                      0.002033937068839643,      0.0017866449003649271,
1067                      0.001591257364476281,      0.0014504137340772805,
1068                      0.0013412307780542466,     0.0012490796611905903,
1069                      0.0011594826432508594,     0.0010893117092916976,
1070                      0.0010384603988597735,     9.972462083156796E-4,
1071                      9.588013350011566E-4,      8.984430978086481E-4,
1072                      8.160882305241266E-4,      7.178439941937245E-4,
1073                      6.390618123468182E-4,      5.88727441181401E-4,
1074                      5.571355310873647E-4,      5.255473337388365E-4,
1075                      4.846648326421054E-4,      4.6615448083226656E-4,
1076                      4.4384682042344296E-4,     4.3081318457076036E-4,
1077                      4.0853396431630995E-4,     3.992492955535426E-4,
1078                      3.676955262170047E-4,      3.2695565448543625E-4,
1079                      2.9068883707497264E-4,     2.505992817228334E-4,
1080                      2.1954498400100151E-4,     1.8601075237738274E-4,
1081                      1.8601075237738274E-4,     1.7042300314218148E-4,
1082                      1.7998055450520203E-4,     1.6058953888718904E-4,
1083                      1.4985659811966905E-4,     8.561541917201597E-5,
1084                      6.324555320336759E-5,      4.657252408878007E-5,
1085                      2.4166091947189146E-5,     5.590169943749474E-6 };
1086     double yep[] = { 0.03405304685340212,       0.00724989655098609,
1087                      0.007817985674072318,      0.007751728839426725,
1088                      0.006919566460407762,      0.00571192611997039,
1089                      0.005232991496266739,      0.004813003220443552,
1090                      0.00435332057170156,       0.0038838769290491172,
1091                      0.003445692963686695,      0.0030549959083442323,
1092                      0.0027252339349127445,     0.0024367396249907374,
1093                      0.002189794510907359,      0.001969568480657629,
1094                      0.0017906702655709678,     0.0016395731151735808,
1095                      0.0015002999700059986,     0.0013710215169719256,
1096                      0.0012712198865656563,     0.0011812705024675763,
1097                      0.0011035397591387453,     0.0010139033484509261,
1098                      9.121403400793104E-4,      8.132035415564789E-4,
1099                      7.242237223399962E-4,      6.545991139621257E-4,
1100                      6.135144660071188E-4,      5.724508712544685E-4,
1101                      5.692099788303082E-4,      5.126402247190518E-4,
1102                      4.531004303683677E-4,      4.4011362169330773E-4,
1103                      4.1785164831552356E-4,     4.0853396431630995E-4,
1104                      3.8626415831655934E-4,     3.54682957019364E-4,
1105                      3.1780497164141406E-4,     2.7730849247724094E-4,
1106                      2.459674775249769E-4,      2.3706539182259396E-4,
1107                      2.1954498400100151E-4,     2.0068881383873889E-4,
1108                      1.5864425612041553E-4,     1.6058953888718904E-4,
1109                      1.4338758663147937E-4,     1.0245974819410792E-4,
1110                      6.609841147864296E-5,      4.657252408878007E-5,
1111                      2.5079872407968906E-5,     5.941380311005179E-6 };
1112     double ysm[] = { 0.0019,    9.3E-4,
1113                      5.3E-4,    5.8E-4,
1114                      5.2E-4,    5.0E-4,
1115                      4.9E-4,    4.7E-4,
1116                      4.5E-4,    4.3E-4,
1117                      4.2E-4,    3.9E-4,
1118                      3.7E-4,    3.6E-4,
1119                      3.6E-4,    3.4E-4,
1120                      3.3E-4,    3.1E-4,
1121                      3.0E-4,    2.9E-4,
1122                      2.8E-4,    2.7E-4,
1123                      2.7E-4,    2.6E-4,
1124                      2.4E-4,    2.3E-4,
1125                      2.2E-4,    2.1E-4,
1126                      2.0E-4,    1.9E-4,
1127                      1.8E-4,    1.8E-4,
1128                      1.7E-4,    1.6E-4,
1129                      1.5E-4,    1.5E-4,
1130                      1.4E-4,    1.3E-4,
1131                      1.3E-4,    1.2E-4,
1132                      1.1E-4,    1.1E-4,
1133                      1.1E-4,    1.0E-4,
1134                      8.8E-5,    7.5E-5,
1135                      5.6E-5,    3.3E-5,
1136                      2.0E-5,    1.2E-5,
1137                      1.0E-5,    4.1E-6 };
1138     double ysp[] = { 0.0019,    9.3E-4,
1139                      5.3E-4,    5.8E-4,
1140                      5.2E-4,    5.0E-4,
1141                      4.9E-4,    4.7E-4,
1142                      4.5E-4,    4.3E-4,
1143                      4.2E-4,    3.9E-4,
1144                      3.7E-4,    3.6E-4,
1145                      3.6E-4,    3.4E-4,
1146                      3.3E-4,    3.1E-4,
1147                      3.0E-4,    2.9E-4,
1148                      2.8E-4,    2.7E-4,
1149                      2.7E-4,    2.6E-4,
1150                      2.4E-4,    2.3E-4,
1151                      2.2E-4,    2.1E-4,
1152                      2.0E-4,    1.9E-4,
1153                      1.8E-4,    1.8E-4,
1154                      1.7E-4,    1.6E-4,
1155                      1.5E-4,    1.5E-4,
1156                      1.4E-4,    1.3E-4,
1157                      1.3E-4,    1.2E-4,
1158                      1.1E-4,    1.1E-4,
1159                      1.1E-4,    1.0E-4,
1160                      8.8E-5,    7.5E-5,
1161                      5.6E-5,    3.3E-5,
1162                      2.0E-5,    1.2E-5,
1163                      1.0E-5,    4.1E-6 };
1164     int np = 52;
1165     TGraphAsymmErrors* g = new TGraphAsymmErrors(np,
1166                                                  x,
1167                                                  y,
1168                                                  xem,
1169                                                  xep,
1170                                                  yem,
1171                                                  yep);
1172     g->SetName("/HepData/8068/d4x1y1");
1173     g->SetTitle("/HepData/8068/d4x1y1");
1174     return g;
1175   }
1176   TGraphAsymmErrors* CMSsqrts900eta24()
1177   {
1178     // Plot: p8068_d5x1y1
1179     double x[] = { 0.0, 1.0,
1180                    2.0, 3.0,
1181                    4.0, 5.0,
1182                    6.0, 7.0,
1183                    8.0, 9.0,
1184                    10.0,        11.0,
1185                    12.0,        13.0,
1186                    14.0,        15.0,
1187                    16.0,        17.0,
1188                    18.0,        19.0,
1189                    20.0,        21.0,
1190                    22.0,        23.0,
1191                    24.0,        25.0,
1192                    26.0,        27.0,
1193                    28.0,        29.0,
1194                    30.0,        31.0,
1195                    32.0,        33.0,
1196                    34.0,        35.0,
1197                    36.0,        37.0,
1198                    38.0,        39.0,
1199                    40.0,        41.0,
1200                    42.0,        43.0,
1201                    44.0,        45.0,
1202                    46.0,        47.0,
1203                    48.0,        49.0,
1204                    50.0,        51.0,
1205                    52.0,        53.0,
1206                    54.0,        55.0,
1207                    56.0,        57.5,
1208                    60.0,        66.5,
1209                    76.5,        86.5 };
1210     double xem[] = { 0.5,       0.5,
1211                      0.5,       0.5,
1212                      0.5,       0.5,
1213                      0.5,       0.5,
1214                      0.5,       0.5,
1215                      0.5,       0.5,
1216                      0.5,       0.5,
1217                      0.5,       0.5,
1218                      0.5,       0.5,
1219                      0.5,       0.5,
1220                      0.5,       0.5,
1221                      0.5,       0.5,
1222                      0.5,       0.5,
1223                      0.5,       0.5,
1224                      0.5,       0.5,
1225                      0.5,       0.5,
1226                      0.5,       0.5,
1227                      0.5,       0.5,
1228                      0.5,       0.5,
1229                      0.5,       0.5,
1230                      0.5,       0.5,
1231                      0.5,       0.5,
1232                      0.5,       0.5,
1233                      0.5,       0.5,
1234                      0.5,       0.5,
1235                      0.5,       0.5,
1236                      0.5,       0.5,
1237                      0.5,       0.5,
1238                      0.5,       1.0,
1239                      1.5,       5.0,
1240                      5.0,       5.0 };
1241     double xep[] = { 0.5,       0.5,
1242                      0.5,       0.5,
1243                      0.5,       0.5,
1244                      0.5,       0.5,
1245                      0.5,       0.5,
1246                      0.5,       0.5,
1247                      0.5,       0.5,
1248                      0.5,       0.5,
1249                      0.5,       0.5,
1250                      0.5,       0.5,
1251                      0.5,       0.5,
1252                      0.5,       0.5,
1253                      0.5,       0.5,
1254                      0.5,       0.5,
1255                      0.5,       0.5,
1256                      0.5,       0.5,
1257                      0.5,       0.5,
1258                      0.5,       0.5,
1259                      0.5,       0.5,
1260                      0.5,       0.5,
1261                      0.5,       0.5,
1262                      0.5,       0.5,
1263                      0.5,       0.5,
1264                      0.5,       0.5,
1265                      0.5,       0.5,
1266                      0.5,       0.5,
1267                      0.5,       0.5,
1268                      0.5,       0.5,
1269                      0.5,       1.0,
1270                      1.5,       5.0,
1271                      5.0,       5.0 };
1272     double y[] = { 0.0561,      0.02321,
1273                    0.02645,     0.031,
1274                    0.0362,      0.04081,
1275                    0.04402,     0.04548,
1276                    0.04592,     0.04515,
1277                    0.04342,     0.04101,
1278                    0.03836,     0.03573,
1279                    0.03316,     0.03079,
1280                    0.02868,     0.02679,
1281                    0.02506,     0.02343,
1282                    0.02187,     0.02039,
1283                    0.01901,     0.0178,
1284                    0.01668,     0.01556,
1285                    0.01445,     0.01334,
1286                    0.01229,     0.01132,
1287                    0.01045,     0.00967,
1288                    0.00896,     0.00829,
1289                    0.00763,     0.00699,
1290                    0.00637,     0.00578,
1291                    0.00527,     0.00482,
1292                    0.00441,     0.00412,
1293                    0.00363,     0.00328,
1294                    0.00292,     0.00261,
1295                    0.00233,     0.00209,
1296                    0.00185,     0.00164,
1297                    0.00146,     0.00131,
1298                    0.00117,     0.00106,
1299                    9.7E-4,      8.9E-4,
1300                    8.2E-4,      6.63E-4,
1301                    4.53E-4,     2.12E-4,
1302                    7.7E-5,      1.12E-5 };
1303     double yem[] = { 0.01767766952966369,       0.003660737630587584,
1304                      0.005079094407470687,      0.006069810540700591,
1305                      0.006147235150862541,      0.005458580401532985,
1306                      0.004473712105176193,      0.0035970126494078384,
1307                      0.003456848275524976,      0.003228761372415125,
1308                      0.0029797483115189447,     0.002739361239413305,
1309                      0.0025401181074902798,     0.002313114783144148,
1310                      0.0020573040611440983,     0.001820109886792553,
1311                      0.0016324827717314506,     0.001484318025222358,
1312                      0.0013727709204379296,     0.001287866452703851,
1313                      0.001217538500417954,      0.0011279184367674819,
1314                      0.0010412012293500234,     9.741663102366044E-4,
1315                      9.360555539069249E-4,      9.139474820797965E-4,
1316                      9.013878188659973E-4,      8.697700845625814E-4,
1317                      8.190848551890091E-4,      7.433034373659253E-4,
1318                      6.741661516273269E-4,      6.239390995922599E-4,
1319                      5.961543424315552E-4,      5.8309518948453E-4,
1320                      5.738466694161429E-4,      5.515432893255072E-4,
1321                      5.292447448959697E-4,      4.976946855251721E-4,
1322                      4.609772228646444E-4,      4.295346318982906E-4,
1323                      4.0249223594996216E-4,     4.386342439892262E-4,
1324                      3.712142238654117E-4,      3.6674241641784496E-4,
1325                      3.6249137920783716E-4,     3.5341194094144583E-4,
1326                      3.3105890714493693E-4,     3.130495168499705E-4,
1327                      2.8178005607210744E-4,     2.5553864678361276E-4,
1328                      2.3323807579381201E-4,     2.1633307652783938E-4,
1329                      1.8601075237738274E-4,     1.6401219466856724E-4,
1330                      1.562049935181331E-4,      1.562049935181331E-4,
1331                      1.5480633061990717E-4,     1.395886814895821E-4,
1332                      1.0756393447619885E-4,     6.676076692189808E-5,
1333                      2.9966648127543395E-5,     6.551335741663679E-6 };
1334     double yep[] = { 0.09323352401362935,       0.004710169848317574,
1335                      0.005736898116578331,      0.006618164398078972,
1336                      0.006715772479767314,      0.006096630216767292,
1337                      0.00519042387479096,       0.004362247127341595,
1338                      0.004172217635742412,      0.003913693907295255,
1339                      0.003644283194264683,      0.0033638668225719043,
1340                      0.0031145144083789367,     0.0028765604460883488,
1341                      0.002629087294100369,      0.0023903974564912843,
1342                      0.002181604913819182,      0.0020026232796010335,
1343                      0.0018514858897652987,     0.0017280335644888382,
1344                      0.00160822883943797,       0.0014787156589419076,
1345                      0.0013612494260788505,     0.0012539936203984452,
1346                      0.0011763077828527702,     0.0011157060544785082,
1347                      0.001084158659975559,      0.001033247308247159,
1348                      9.630160954002794E-4,      9.244457799135652E-4,
1349                      8.35224520712844E-4,       6.989277502002622E-4,
1350                      6.519202405202648E-4,      6.203224967708329E-4,
1351                      6.10982814815605E-4,       5.88727441181401E-4,
1352                      5.664803615307418E-4,      5.348831648126533E-4,
1353                      4.976946855251721E-4,      4.477722635447622E-4,
1354                      4.204759208325728E-4,      3.9357337308308855E-4,
1355                      3.981205847478877E-4,      3.8483762809787716E-4,
1356                      3.807886552931954E-4,      3.716180835212409E-4,
1357                      3.584689665786984E-4,      3.4928498393145964E-4,
1358                      3.1780497164141406E-4,     2.9068883707497264E-4,
1359                      2.505992817228334E-4,      2.2472205054244234E-4,
1360                      2.0248456731316588E-4,     1.8027756377319944E-4,
1361                      1.6401219466856724E-4,     1.6401219466856724E-4,
1362                      1.5640012787718557E-4,     1.4223923509355636E-4,
1363                      1.0288342918079667E-4,     6.86804193347711E-5,
1364                      3.361547262794322E-5,      7.071067811865475E-6 };
1365     double ysm[] = { 0.0025,    8.1E-4,
1366                      4.4E-4,    4.9E-4,
1367                      4.6E-4,    4.5E-4,
1368                      4.6E-4,    4.4E-4,
1369                      4.3E-4,    4.3E-4,
1370                      4.2E-4,    4.0E-4,
1371                      3.9E-4,    3.9E-4,
1372                      3.9E-4,    3.8E-4,
1373                      3.7E-4,    3.6E-4,
1374                      3.4E-4,    3.1E-4,
1375                      3.0E-4,    2.9E-4,
1376                      2.9E-4,    2.9E-4,
1377                      2.9E-4,    2.8E-4,
1378                      2.7E-4,    2.6E-4,
1379                      2.5E-4,    2.5E-4,
1380                      2.4E-4,    2.3E-4,
1381                      2.3E-4,    2.2E-4,
1382                      2.2E-4,    2.1E-4,
1383                      2.0E-4,    1.9E-4,
1384                      1.9E-4,    1.8E-4,
1385                      1.8E-4,    1.8E-4,
1386                      1.7E-4,    1.6E-4,
1387                      1.5E-4,    1.5E-4,
1388                      1.4E-4,    1.4E-4,
1389                      1.3E-4,    1.3E-4,
1390                      1.2E-4,    1.2E-4,
1391                      1.1E-4,    1.0E-4,
1392                      1.0E-4,    1.0E-4,
1393                      9.4E-5,    6.6E-5,
1394                      3.7E-5,    1.9E-5,
1395                      1.3E-5,    3.4E-6 };
1396     double ysp[] = { 0.0025,    8.1E-4,
1397                      4.4E-4,    4.9E-4,
1398                      4.6E-4,    4.5E-4,
1399                      4.6E-4,    4.4E-4,
1400                      4.3E-4,    4.3E-4,
1401                      4.2E-4,    4.0E-4,
1402                      3.9E-4,    3.9E-4,
1403                      3.9E-4,    3.8E-4,
1404                      3.7E-4,    3.6E-4,
1405                      3.4E-4,    3.1E-4,
1406                      3.0E-4,    2.9E-4,
1407                      2.9E-4,    2.9E-4,
1408                      2.9E-4,    2.8E-4,
1409                      2.7E-4,    2.6E-4,
1410                      2.5E-4,    2.5E-4,
1411                      2.4E-4,    2.3E-4,
1412                      2.3E-4,    2.2E-4,
1413                      2.2E-4,    2.1E-4,
1414                      2.0E-4,    1.9E-4,
1415                      1.9E-4,    1.8E-4,
1416                      1.8E-4,    1.8E-4,
1417                      1.7E-4,    1.6E-4,
1418                      1.5E-4,    1.5E-4,
1419                      1.4E-4,    1.4E-4,
1420                      1.3E-4,    1.3E-4,
1421                      1.2E-4,    1.2E-4,
1422                      1.1E-4,    1.0E-4,
1423                      1.0E-4,    1.0E-4,
1424                      9.4E-5,    6.6E-5,
1425                      3.7E-5,    1.9E-5,
1426                      1.3E-5,    3.4E-6 };
1427     int np = 62;
1428     TGraphAsymmErrors* g = new TGraphAsymmErrors(np,
1429                                                  x,
1430                                                  y,
1431                                                  xem,
1432                                                  xep,
1433                                                  yem,
1434                                                  yep);
1435     g->SetName("/HepData/8068/d5x1y1");
1436     g->SetTitle("/HepData/8068/d5x1y1");
1437     return g;
1438   }
1439   TGraphAsymmErrors* CMSsqrts900eta20()
1440   {
1441     // Plot: p8068_d6x1y1
1442     double x[] = { 0.0, 1.0,
1443                    2.0, 3.0,
1444                    4.0, 5.0,
1445                    6.0, 7.0,
1446                    8.0, 9.0,
1447                    10.0,        11.0,
1448                    12.0,        13.0,
1449                    14.0,        15.0,
1450                    16.0,        17.0,
1451                    18.0,        19.0,
1452                    20.0,        21.0,
1453                    22.0,        23.0,
1454                    24.0,        25.0,
1455                    26.0,        27.0,
1456                    28.0,        29.0,
1457                    30.0,        31.0,
1458                    32.0,        33.0,
1459                    34.0,        35.0,
1460                    36.0,        37.0,
1461                    38.0,        39.0,
1462                    40.0,        41.0,
1463                    42.0,        43.0,
1464                    44.0,        45.0,
1465                    46.0,        47.0,
1466                    48.0,        49.0,
1467                    50.0,        51.0,
1468                    52.0,        53.0,
1469                    54.0,        55.0,
1470                    56.0,        57.0,
1471                    58.0,        59.0,
1472                    60.0,        61.0,
1473                    62.5,        64.5,
1474                    67.5,        74.5,
1475                    84.5,        94.5 };
1476     double xem[] = { 0.5,       0.5,
1477                      0.5,       0.5,
1478                      0.5,       0.5,
1479                      0.5,       0.5,
1480                      0.5,       0.5,
1481                      0.5,       0.5,
1482                      0.5,       0.5,
1483                      0.5,       0.5,
1484                      0.5,       0.5,
1485                      0.5,       0.5,
1486                      0.5,       0.5,
1487                      0.5,       0.5,
1488                      0.5,       0.5,
1489                      0.5,       0.5,
1490                      0.5,       0.5,
1491                      0.5,       0.5,
1492                      0.5,       0.5,
1493                      0.5,       0.5,
1494                      0.5,       0.5,
1495                      0.5,       0.5,
1496                      0.5,       0.5,
1497                      0.5,       0.5,
1498                      0.5,       0.5,
1499                      0.5,       0.5,
1500                      0.5,       0.5,
1501                      0.5,       0.5,
1502                      0.5,       0.5,
1503                      0.5,       0.5,
1504                      0.5,       0.5,
1505                      0.5,       0.5,
1506                      0.5,       0.5,
1507                      1.0,       1.0,
1508                      2.0,       5.0,
1509                      5.0,       5.0 };
1510     double xep[] = { 0.5,       0.5,
1511                      0.5,       0.5,
1512                      0.5,       0.5,
1513                      0.5,       0.5,
1514                      0.5,       0.5,
1515                      0.5,       0.5,
1516                      0.5,       0.5,
1517                      0.5,       0.5,
1518                      0.5,       0.5,
1519                      0.5,       0.5,
1520                      0.5,       0.5,
1521                      0.5,       0.5,
1522                      0.5,       0.5,
1523                      0.5,       0.5,
1524                      0.5,       0.5,
1525                      0.5,       0.5,
1526                      0.5,       0.5,
1527                      0.5,       0.5,
1528                      0.5,       0.5,
1529                      0.5,       0.5,
1530                      0.5,       0.5,
1531                      0.5,       0.5,
1532                      0.5,       0.5,
1533                      0.5,       0.5,
1534                      0.5,       0.5,
1535                      0.5,       0.5,
1536                      0.5,       0.5,
1537                      0.5,       0.5,
1538                      0.5,       0.5,
1539                      0.5,       0.5,
1540                      0.5,       0.5,
1541                      1.0,       1.0,
1542                      2.0,       5.0,
1543                      5.0,       5.0 };
1544     double y[] = { 0.0494,      0.01789,
1545                    0.01895,     0.02174,
1546                    0.0255,      0.02961,
1547                    0.0335,      0.03646,
1548                    0.03826,     0.03906,
1549                    0.0392,      0.03868,
1550                    0.03753,     0.03596,
1551                    0.0341,      0.03206,
1552                    0.03,        0.02802,
1553                    0.02616,     0.02448,
1554                    0.023,       0.0217,
1555                    0.02058,     0.01959,
1556                    0.01866,     0.01776,
1557                    0.01685,     0.01595,
1558                    0.01504,     0.01415,
1559                    0.01326,     0.01241,
1560                    0.01161,     0.01087,
1561                    0.01015,     0.00948,
1562                    0.00887,     0.00829,
1563                    0.00777,     0.00734,
1564                    0.00681,     0.00624,
1565                    0.00578,     0.00535,
1566                    0.00494,     0.00457,
1567                    0.00422,     0.00388,
1568                    0.00356,     0.00326,
1569                    0.00298,     0.00274,
1570                    0.00253,     0.00234,
1571                    0.00212,     0.00189,
1572                    0.00167,     0.0015,
1573                    0.00136,     0.00123,
1574                    0.00112,     0.001041,
1575                    9.17E-4,     7.64E-4,
1576                    4.92E-4,     2.45E-4,
1577                    9.9E-5,      1.64E-5 };
1578     double yem[] = { 0.031045933711196384,      0.0025678006153126453,
1579                      0.003808017857100988,      0.004928792955683978,
1580                      0.005475372133471842,      0.005444713031923721,
1581                      0.004928792955683978,      0.0041622710147226115,
1582                      0.003405994715204356,      0.0030985964564621835,
1583                      0.0029811742652854096,     0.002811547616527239,
1584                      0.0026404734423962684,     0.002492308167141455,
1585                      0.0023525518060183073,     0.0021654098919142305,
1586                      0.001967053634245899,      0.0017886866690396059,
1587                      0.0016107451691686056,     0.0014552319402761885,
1588                      0.001326989073052224,      0.001225275479229059,
1589                      0.001164817582284883,      0.0011168258592994702,
1590                      0.0010756393447619887,     0.001027861858422619,
1591                      9.7082439194738E-4,        9.202716990106781E-4,
1592                      8.825531145489205E-4,      8.509406559801923E-4,
1593                      8.228000972289684E-4,      8.099382692526635E-4,
1594                      7.912016177940992E-4,      7.725283166331187E-4,
1595                      7.316419889536139E-4,      6.815423684555495E-4,
1596                      6.407807737440318E-4,      5.950630218724736E-4,
1597                      5.636488268416782E-4,      5.636488268416782E-4,
1598                      5.322593352868506E-4,      4.919349550499538E-4,
1599                      4.7853944456021594E-4,     4.7423622805517506E-4,
1600                      4.651881339845203E-4,      4.428317965096906E-4,
1601                      4.248529157249601E-4,      3.9824615503479755E-4,
1602                      3.671511950137164E-4,      3.3615472627943223E-4,
1603                      3.138470965295043E-4,      3.138470965295043E-4,
1604                      3.176476034853718E-4,      3.3541019662496844E-4,
1605                      3.3105890714493693E-4,     2.996664812754339E-4,
1606                      2.641968962724581E-4,      2.3853720883753126E-4,
1607                      2.1633307652783938E-4,     1.9416487838947602E-4,
1608                      1.6401219466856724E-4,     1.5181897114655994E-4,
1609                      1.5966527487215246E-4,     1.3961733416735901E-4,
1610                      9.740636529508736E-5,      6.800735254367721E-5,
1611                      3.733630940518893E-5,      9.437160589923222E-6 };
1612     double yep[] = { 0.027627884464793896,      0.0038148263394288343,
1613                      0.004395600072800072,      0.005347317084295637,
1614                      0.005874325493194942,      0.0058935897380119695,
1615                      0.005446999173857106,      0.004729587719875803,
1616                      0.004031935019317648,      0.0037237615390892046,
1617                      0.0035759474269066098,     0.00339607125955861,
1618                      0.0032050585018061684,     0.003026549190084311,
1619                      0.0028468403537957655,     0.00266865134478073,
1620                      0.002469412885687608,      0.0022703523955544874,
1621                      0.0020813697413001857,     0.0019043371550227129,
1622                      0.00175524927004685,       0.001643471934655411,
1623                      0.0015533190271158081,     0.001475127113166862,
1624                      0.0014046351839534703,     0.0013267252918370102,
1625                      0.0012490796611905903,     0.0011691449867317568,
1626                      0.0011208925015361642,     0.0011472575996697516,
1627                      9.932774033471214E-4,      9.52102935611481E-4,
1628                      9.139474820797965E-4,      8.75956619930462E-4,
1629                      8.34865258589672E-4,       7.749193506423748E-4,
1630                      7.244998274671983E-4,      6.685057965343307E-4,
1631                      6.092618484691126E-4,      5.727128425310541E-4,
1632                      5.412947441089743E-4,      5.280151512977634E-4,
1633                      5.147815070493501E-4,      5.015974481593781E-4,
1634                      4.924428900898052E-4,      4.792702786528704E-4,
1635                      4.7010637094172637E-4,     4.428317965096906E-4,
1636                      4.204759208325728E-4,      3.8910152916687437E-4,
1637                      3.6674241641784496E-4,     3.488552708502481E-4,
1638                      3.2649655434629013E-4,     3.0886890422961E-4,
1639                      3.04138126514911E-4,       2.996664812754339E-4,
1640                      2.9068883707497264E-4,     2.641968962724581E-4,
1641                      2.418677324489565E-4,      2.1095023109728988E-4,
1642                      1.972308292331602E-4,      1.739482681718907E-4,
1643                      1.4475496537252186E-4,     1.2083045973594572E-4,
1644                      1.097679370308106E-4,      6.992138442565336E-5,
1645                      3.54682957019364E-5,       9.078546139112804E-6 };
1646     double ysm[] = { 0.0063,    8.0E-4,
1647                      3.7E-4,    4.3E-4,
1648                      4.1E-4,    4.0E-4,
1649                      4.3E-4,    4.3E-4,
1650                      4.2E-4,    4.2E-4,
1651                      4.3E-4,    4.2E-4,
1652                      4.0E-4,    4.0E-4,
1653                      3.9E-4,    3.9E-4,
1654                      3.8E-4,    3.7E-4,
1655                      3.6E-4,    3.6E-4,
1656                      3.5E-4,    3.3E-4,
1657                      3.2E-4,    3.2E-4,
1658                      3.1E-4,    3.1E-4,
1659                      3.1E-4,    3.0E-4,
1660                      3.0E-4,    2.9E-4,
1661                      2.9E-4,    2.8E-4,
1662                      2.8E-4,    2.8E-4,
1663                      2.7E-4,    2.6E-4,
1664                      2.5E-4,    2.5E-4,
1665                      2.4E-4,    2.4E-4,
1666                      2.3E-4,    2.2E-4,
1667                      2.1E-4,    2.0E-4,
1668                      2.0E-4,    1.9E-4,
1669                      1.9E-4,    1.9E-4,
1670                      1.8E-4,    1.7E-4,
1671                      1.6E-4,    1.6E-4,
1672                      1.5E-4,    1.5E-4,
1673                      1.4E-4,    1.3E-4,
1674                      1.3E-4,    1.3E-4,
1675                      1.2E-4,    1.1E-4,
1676                      1.0E-4,    9.3E-5,
1677                      7.3E-5,    5.8E-5,
1678                      3.2E-5,    2.0E-5,
1679                      1.3E-5,    4.1E-6 };
1680     double ysp[] = { 0.0063,    8.0E-4,
1681                      3.7E-4,    4.3E-4,
1682                      4.1E-4,    4.0E-4,
1683                      4.3E-4,    4.3E-4,
1684                      4.2E-4,    4.2E-4,
1685                      4.3E-4,    4.2E-4,
1686                      4.0E-4,    4.0E-4,
1687                      3.9E-4,    3.9E-4,
1688                      3.8E-4,    3.7E-4,
1689                      3.6E-4,    3.6E-4,
1690                      3.5E-4,    3.3E-4,
1691                      3.2E-4,    3.2E-4,
1692                      3.1E-4,    3.1E-4,
1693                      3.1E-4,    3.0E-4,
1694                      3.0E-4,    2.9E-4,
1695                      2.9E-4,    2.8E-4,
1696                      2.8E-4,    2.8E-4,
1697                      2.7E-4,    2.6E-4,
1698                      2.5E-4,    2.5E-4,
1699                      2.4E-4,    2.4E-4,
1700                      2.3E-4,    2.2E-4,
1701                      2.1E-4,    2.0E-4,
1702                      2.0E-4,    1.9E-4,
1703                      1.9E-4,    1.9E-4,
1704                      1.8E-4,    1.7E-4,
1705                      1.6E-4,    1.6E-4,
1706                      1.5E-4,    1.5E-4,
1707                      1.4E-4,    1.3E-4,
1708                      1.3E-4,    1.3E-4,
1709                      1.2E-4,    1.1E-4,
1710                      1.0E-4,    9.3E-5,
1711                      7.3E-5,    5.8E-5,
1712                      3.2E-5,    2.0E-5,
1713                      1.3E-5,    4.1E-6 };
1714     int np = 68;
1715     TGraphAsymmErrors* g = new TGraphAsymmErrors(np,
1716                                                  x,
1717                                                  y,
1718                                                  xem,
1719                                                  xep,
1720                                                  yem,
1721                                                  yep);
1722     g->SetName("/HepData/8068/d6x1y1");
1723     g->SetTitle("/HepData/8068/d6x1y1");
1724     return   g;
1725   }
1726   TGraphAsymmErrors* GetALICE(Double_t eta, UShort_t sNN)
1727   {
1728     Double_t aEta = TMath::Abs(eta);
1729     TGraphAsymmErrors* g = 0;
1730     switch (sNN) { 
1731     case 900:
1732       if      (aEta <= 0.51) g = ALICEsqrts900eta05();
1733       else if (aEta <= 1.01) g = ALICEsqrts900eta10();
1734       else if (aEta <= 1.31) g = ALICEsqrts900eta13();
1735       break;
1736     }
1737     if (g) { 
1738       g->SetMarkerColor(kALICEColor);
1739     }
1740     return g;
1741   }
1742   TGraphAsymmErrors* ALICEsqrts900eta05()
1743   {
1744     // Plot: p7742_d8x1y1
1745     double x[] = { 0.0, 1.0,
1746                    2.0, 3.0,
1747                    4.0, 5.0,
1748                    6.0, 7.0,
1749                    8.0, 9.0,
1750                    10.0,        11.0,
1751                    12.0,        13.0,
1752                    14.0,        15.0,
1753                    16.0,        17.0,
1754                    18.0,        19.0,
1755                    20.0,        21.5,
1756                    23.5,        25.5 };
1757     double xem[] = { 0.5,       0.5,
1758                      0.5,       0.5,
1759                      0.5,       0.5,
1760                      0.5,       0.5,
1761                      0.5,       0.5,
1762                      0.5,       0.5,
1763                      0.5,       0.5,
1764                      0.5,       0.5,
1765                      0.5,       0.5,
1766                      0.5,       0.5,
1767                      0.5,       1.0,
1768                      1.0,       1.0 };
1769     double xep[] = { 0.5,       0.5,
1770                      0.5,       0.5,
1771                      0.5,       0.5,
1772                      0.5,       0.5,
1773                      0.5,       0.5,
1774                      0.5,       0.5,
1775                      0.5,       0.5,
1776                      0.5,       0.5,
1777                      0.5,       0.5,
1778                      0.5,       0.5,
1779                      0.5,       1.0,
1780                      1.0,       1.0 };
1781     double y[] = { 0.179767,    0.155985,
1782                    0.140806,    0.120933,
1783                    0.097273,    0.075258,
1784                    0.057395,    0.043794,
1785                    0.033212,    0.024939,
1786                    0.018642,    0.013927,
1787                    0.010337,    0.007693,
1788                    0.005665,    0.004134,
1789                    0.002994,    0.002144,
1790                    0.001527,    0.001093,
1791                    8.03E-4,     4.82E-4,
1792                    2.56E-4,     1.02E-4 };
1793     double yem[] = { 0.028627623478032542,      0.006826681770816624,
1794                      0.004736912179891031,      0.005286866936097409,
1795                      0.004605827830043151,      0.003753897441326814,
1796                      0.003172958871463669,      0.0023132784095305087,
1797                      0.0017387768689512751,     0.0012885437516824954,
1798                      9.891637882575362E-4,      7.64476945368531E-4,
1799                      5.769662035162892E-4,      4.500277769204919E-4,
1800                      3.7107950630558943E-4,     3.1458703088334716E-4,
1801                      2.7004073766748605E-4,     2.210701246211256E-4,
1802                      1.7819090885900997E-4,     1.3576450198781714E-4,
1803                      1.2447088012864694E-4,     9.762171889492625E-5,
1804                      6.095900261651268E-5,      3.4828149534536E-5 };
1805     double yep[] = { 0.028627623478032542,      0.006826681770816624,
1806                      0.004736912179891031,      0.005286866936097409,
1807                      0.004605827830043151,      0.003753897441326814,
1808                      0.003172958871463669,      0.0023132784095305087,
1809                      0.0017387768689512751,     0.0012885437516824954,
1810                      9.891637882575362E-4,      7.64476945368531E-4,
1811                      5.769662035162892E-4,      4.500277769204919E-4,
1812                      3.7107950630558943E-4,     3.1458703088334716E-4,
1813                      2.7004073766748605E-4,     2.210701246211256E-4,
1814                      1.7819090885900997E-4,     1.3576450198781714E-4,
1815                      1.2447088012864694E-4,     9.762171889492625E-5,
1816                      6.095900261651268E-5,      3.4828149534536E-5 };
1817     double ysm[] = { 0.003595,  0.00312,
1818                      0.002816,  0.002419,
1819                      0.001945,  0.001505,
1820                      0.001148,  8.76E-4,
1821                      6.64E-4,   4.99E-4,
1822                      3.97E-4,   3.57E-4,
1823                      3.03E-4,   2.66E-4,
1824                      2.34E-4,   2.01E-4,
1825                      1.71E-4,   1.46E-4,
1826                      1.26E-4,   9.6E-5,
1827                      9.7E-5,    7.1E-5,
1828                      4.6E-5,    2.7E-5 };
1829     double ysp[] = { 0.003595,  0.00312,
1830                      0.002816,  0.002419,
1831                      0.001945,  0.001505,
1832                      0.001148,  8.76E-4,
1833                      6.64E-4,   4.99E-4,
1834                      3.97E-4,   3.57E-4,
1835                      3.03E-4,   2.66E-4,
1836                      2.34E-4,   2.01E-4,
1837                      1.71E-4,   1.46E-4,
1838                      1.26E-4,   9.6E-5,
1839                      9.7E-5,    7.1E-5,
1840                      4.6E-5,    2.7E-5 };
1841     int np = 24;
1842     TGraphAsymmErrors* g = new TGraphAsymmErrors(np,
1843                                                  x,
1844                                                  y,
1845                                                  xem,
1846                                                  xep,
1847                                                  yem,
1848                                                  yep);
1849     g->SetName("/HepData/7742/d8x1y1");
1850     g->SetTitle("/HepData/7742/d8x1y1");
1851     return g;
1852   }
1853   TGraphAsymmErrors* ALICEsqrts900eta10()
1854   {
1855     // Plot: p7742_d9x1y1
1856     double x[] = { 0.0, 1.0,
1857                    2.0, 3.0,
1858                    4.0, 5.0,
1859                    6.0, 7.0,
1860                    8.0, 9.0,
1861                    10.0,        11.0,
1862                    12.0,        13.0,
1863                    14.0,        15.0,
1864                    16.0,        17.0,
1865                    18.0,        19.0,
1866                    20.0,        21.0,
1867                    22.0,        23.0,
1868                    24.0,        25.0,
1869                    26.0,        27.0,
1870                    28.0,        29.0,
1871                    30.0,        31.0,
1872                    32.0,        33.0,
1873                    34.0,        35.0,
1874                    36.0,        37.0,
1875                    38.0,        39.0,
1876                    40.0,        41.5 };
1877     double xem[] = { 0.5,       0.5,
1878                      0.5,       0.5,
1879                      0.5,       0.5,
1880                      0.5,       0.5,
1881                      0.5,       0.5,
1882                      0.5,       0.5,
1883                      0.5,       0.5,
1884                      0.5,       0.5,
1885                      0.5,       0.5,
1886                      0.5,       0.5,
1887                      0.5,       0.5,
1888                      0.5,       0.5,
1889                      0.5,       0.5,
1890                      0.5,       0.5,
1891                      0.5,       0.5,
1892                      0.5,       0.5,
1893                      0.5,       0.5,
1894                      0.5,       0.5,
1895                      0.5,       0.5,
1896                      0.5,       0.5,
1897                      0.5,       1.0 };
1898     double xep[] = { 0.5,       0.5,
1899                      0.5,       0.5,
1900                      0.5,       0.5,
1901                      0.5,       0.5,
1902                      0.5,       0.5,
1903                      0.5,       0.5,
1904                      0.5,       0.5,
1905                      0.5,       0.5,
1906                      0.5,       0.5,
1907                      0.5,       0.5,
1908                      0.5,       0.5,
1909                      0.5,       0.5,
1910                      0.5,       0.5,
1911                      0.5,       0.5,
1912                      0.5,       0.5,
1913                      0.5,       0.5,
1914                      0.5,       0.5,
1915                      0.5,       0.5,
1916                      0.5,       0.5,
1917                      0.5,       0.5,
1918                      0.5,       1.0 };
1919     double y[] = { 0.092396,    0.076087,
1920                    0.073233,    0.078506,
1921                    0.080885,    0.077084,
1922                    0.070058,    0.062258,
1923                    0.054437,    0.047195,
1924                    0.040978,    0.035352,
1925                    0.03048,     0.026336,
1926                    0.022788,    0.019725,
1927                    0.017071,    0.014674,
1928                    0.012509,    0.010593,
1929                    0.008935,    0.007527,
1930                    0.006361,    0.005416,
1931                    0.004665,    0.004041,
1932                    0.003519,    0.00306,
1933                    0.002637,    0.002234,
1934                    0.001856,    0.001512,
1935                    0.001213,    9.62E-4,
1936                    7.61E-4,     6.02E-4,
1937                    4.84E-4,     3.93E-4,
1938                    3.27E-4,     2.76E-4,
1939                    2.37E-4,     1.7E-4 };
1940     double yem[] = { 0.021888152137629163,      0.0066076761421849355,
1941                      0.004451948000594796,      0.0034909631908686747,
1942                      0.002952765483407038,      0.0028889466938661224,
1943                      0.0029957812002881653,     0.0032637882897026274,
1944                      0.002922475833946279,      0.0026227742945209753,
1945                      0.0023487871338203465,     0.002091141554271255,
1946                      0.0017347841364273539,     0.0014762689456870655,
1947                      0.0012594490859101847,     0.0010506721658062519,
1948                      9.019456746389995E-4,      7.836938177630343E-4,
1949                      6.432239112470866E-4,      5.679656679765071E-4,
1950                      4.967293025381128E-4,      4.475187146924696E-4,
1951                      4.040519768544636E-4,      3.3646693745448454E-4,
1952                      2.9206163733020465E-4,     2.820017730440715E-4,
1953                      2.6982401672201087E-4,     2.5470178640912594E-4,
1954                      2.3519353732617736E-4,     2.1914607000811127E-4,
1955                      1.9727392123643713E-4,     1.7402586014727813E-4,
1956                      1.5060212481900778E-4,     1.3009611831257687E-4,
1957                      1.1269871339105873E-4,     9.693812459502196E-5,
1958                      8.48528137423857E-5,       7.427651041883969E-5,
1959                      6.726812023536856E-5,      6.030754513325841E-5,
1960                      5.544366510251645E-5,      4.601086828130936E-5 };
1961     double yep[] = { 0.021888152137629163,      0.0066076761421849355,
1962                      0.004451948000594796,      0.0034909631908686747,
1963                      0.002952765483407038,      0.0028889466938661224,
1964                      0.0029957812002881653,     0.0032637882897026274,
1965                      0.002922475833946279,      0.0026227742945209753,
1966                      0.0023487871338203465,     0.002091141554271255,
1967                      0.0017347841364273539,     0.0014762689456870655,
1968                      0.0012594490859101847,     0.0010506721658062519,
1969                      9.019456746389995E-4,      7.836938177630343E-4,
1970                      6.432239112470866E-4,      5.679656679765071E-4,
1971                      4.967293025381128E-4,      4.475187146924696E-4,
1972                      4.040519768544636E-4,      3.3646693745448454E-4,
1973                      2.9206163733020465E-4,     2.820017730440715E-4,
1974                      2.6982401672201087E-4,     2.5470178640912594E-4,
1975                      2.3519353732617736E-4,     2.1914607000811127E-4,
1976                      1.9727392123643713E-4,     1.7402586014727813E-4,
1977                      1.5060212481900778E-4,     1.3009611831257687E-4,
1978                      1.1269871339105873E-4,     9.693812459502196E-5,
1979                      8.48528137423857E-5,       7.427651041883969E-5,
1980                      6.726812023536856E-5,      6.030754513325841E-5,
1981                      5.544366510251645E-5,      4.601086828130936E-5 };
1982     double ysm[] = { 0.001848,  0.001522,
1983                      0.001465,  0.00157,
1984                      0.001618,  0.001542,
1985                      0.001401,  0.001245,
1986                      0.001089,  9.44E-4,
1987                      8.2E-4,    7.07E-4,
1988                      6.1E-4,    5.27E-4,
1989                      4.56E-4,   3.94E-4,
1990                      3.41E-4,   3.0E-4,
1991                      2.76E-4,   2.56E-4,
1992                      2.38E-4,   2.23E-4,
1993                      2.07E-4,   1.91E-4,
1994                      1.8E-4,    1.7E-4,
1995                      1.59E-4,   1.47E-4,
1996                      1.3E-4,    1.25E-4,
1997                      1.14E-4,   1.02E-4,
1998                      9.1E-5,    8.2E-5,
1999                      7.4E-5,    6.6E-5,
2000                      6.0E-5,    5.4E-5,
2001                      5.0E-5,    4.6E-5,
2002                      4.3E-5,    3.4E-5 };
2003     double ysp[] = { 0.001848,  0.001522,
2004                      0.001465,  0.00157,
2005                      0.001618,  0.001542,
2006                      0.001401,  0.001245,
2007                      0.001089,  9.44E-4,
2008                      8.2E-4,    7.07E-4,
2009                      6.1E-4,    5.27E-4,
2010                      4.56E-4,   3.94E-4,
2011                      3.41E-4,   3.0E-4,
2012                      2.76E-4,   2.56E-4,
2013                      2.38E-4,   2.23E-4,
2014                      2.07E-4,   1.91E-4,
2015                      1.8E-4,    1.7E-4,
2016                      1.59E-4,   1.47E-4,
2017                      1.3E-4,    1.25E-4,
2018                      1.14E-4,   1.02E-4,
2019                      9.1E-5,    8.2E-5,
2020                      7.4E-5,    6.6E-5,
2021                      6.0E-5,    5.4E-5,
2022                      5.0E-5,    4.6E-5,
2023                      4.3E-5,    3.4E-5 };
2024     int np = 42;
2025     TGraphAsymmErrors* g = new TGraphAsymmErrors(np,
2026                                                  x,
2027                                                  y,
2028                                                  xem,
2029                                                  xep,
2030                                                  yem,
2031                                                  yep);
2032     g->SetName("/HepData/7742/d9x1y1");
2033     g->SetTitle("/HepData/7742/d9x1y1");
2034     return g;
2035   }
2036   TGraphAsymmErrors* ALICEsqrts900eta13()
2037   {
2038     // Plot: p7742_d10x1y1
2039     double x[] = { 0.0, 1.0,
2040                    2.0, 3.0,
2041                    4.0, 5.0,
2042                    6.0, 7.0,
2043                    8.0, 9.0,
2044                    10.0,        11.0,
2045                    12.0,        13.0,
2046                    14.0,        15.0,
2047                    16.0,        17.0,
2048                    18.0,        19.0,
2049                    20.0,        21.0,
2050                    22.0,        23.0,
2051                    24.0,        25.0,
2052                    26.0,        27.0,
2053                    28.0,        29.0,
2054                    30.0,        31.0,
2055                    32.0,        33.0,
2056                    34.0,        35.0,
2057                    36.0,        37.0,
2058                    38.0,        39.0,
2059                    40.0,        41.5,
2060                    43.5,        45.5,
2061                    47.5,        49.5,
2062                    51.5,        53.5 };
2063     double xem[] = { 0.5,       0.5,
2064                      0.5,       0.5,
2065                      0.5,       0.5,
2066                      0.5,       0.5,
2067                      0.5,       0.5,
2068                      0.5,       0.5,
2069                      0.5,       0.5,
2070                      0.5,       0.5,
2071                      0.5,       0.5,
2072                      0.5,       0.5,
2073                      0.5,       0.5,
2074                      0.5,       0.5,
2075                      0.5,       0.5,
2076                      0.5,       0.5,
2077                      0.5,       0.5,
2078                      0.5,       0.5,
2079                      0.5,       0.5,
2080                      0.5,       0.5,
2081                      0.5,       0.5,
2082                      0.5,       0.5,
2083                      0.5,       1.0,
2084                      1.0,       1.0,
2085                      1.0,       1.0,
2086                      1.0,       1.0 };
2087     double xep[] = { 0.5,       0.5,
2088                      0.5,       0.5,
2089                      0.5,       0.5,
2090                      0.5,       0.5,
2091                      0.5,       0.5,
2092                      0.5,       0.5,
2093                      0.5,       0.5,
2094                      0.5,       0.5,
2095                      0.5,       0.5,
2096                      0.5,       0.5,
2097                      0.5,       0.5,
2098                      0.5,       0.5,
2099                      0.5,       0.5,
2100                      0.5,       0.5,
2101                      0.5,       0.5,
2102                      0.5,       0.5,
2103                      0.5,       0.5,
2104                      0.5,       0.5,
2105                      0.5,       0.5,
2106                      0.5,       0.5,
2107                      0.5,       1.0,
2108                      1.0,       1.0,
2109                      1.0,       1.0,
2110                      1.0,       1.0 };
2111     double y[] = { 0.068695,    0.056382,
2112                    0.049828,    0.056116,
2113                    0.063345,    0.066198,
2114                    0.065598,    0.061117,
2115                    0.055042,    0.04927,
2116                    0.044132,    0.039615,
2117                    0.035906,    0.03262,
2118                    0.029489,    0.026657,
2119                    0.023839,    0.021302,
2120                    0.018884,    0.016732,
2121                    0.014707,    0.012944,
2122                    0.01137,     0.009982,
2123                    0.008753,    0.007661,
2124                    0.006711,    0.005891,
2125                    0.005179,    0.004572,
2126                    0.004064,    0.003636,
2127                    0.003278,    0.002968,
2128                    0.002677,    0.002392,
2129                    0.002111,    0.001829,
2130                    0.001561,    0.001319,
2131                    0.001115,    7.93E-4,
2132                    5.24E-4,     3.51E-4,
2133                    2.2E-4,      1.56E-4,
2134                    1.27E-4,     8.5E-5 };
2135     double yem[] = { 0.021322725646595934,      0.007630831737104416,
2136                      0.004038016592338372,      0.0036354708085748677,
2137                      0.0035003511252444373,     0.0030936373413831173,
2138                      0.0026374775828431228,     0.002920906195001818,
2139                      0.00276560481631053,       0.002864668392676542,
2140                      0.0026843833556330957,     0.0022856071403458645,
2141                      0.002325611317481922,      0.002006865217198205,
2142                      0.0017203360136903488,     0.0014989629748596194,
2143                      0.0012394615766533467,     0.0011637718848640398,
2144                      9.151568171630477E-4,      9.078199160626517E-4,
2145                      7.98723982361867E-4,       6.967302203866285E-4,
2146                      6.308502199413107E-4,      5.846990678973245E-4,
2147                      5.4516236113657E-4,        5.460009157501477E-4,
2148                      4.930608481719068E-4,      4.3796118549478783E-4,
2149                      3.4394330928221294E-4,     3.2323366161339073E-4,
2150                      3.0869078379504626E-4,     2.9443165590676553E-4,
2151                      2.756320010448714E-4,      2.630304164920856E-4,
2152                      2.5628889948649746E-4,     2.4142286552851616E-4,
2153                      2.245551157288562E-4,      2.0678491240900531E-4,
2154                      1.8828170383762728E-4,     1.7255723688098393E-4,
2155                      1.5911316727411343E-4,     1.3023056476879765E-4,
2156                      1.0761505470890214E-4,     8.62670273047588E-5,
2157                      6.129437168288782E-5,      6.037383539249432E-5,
2158                      3.535533905932738E-5,      3.8078865529319545E-5 };
2159     double yep[] = { 0.021322725646595934,      0.007630831737104416,
2160                      0.004038016592338372,      0.0036354708085748677,
2161                      0.0035003511252444373,     0.0030936373413831173,
2162                      0.0026374775828431228,     0.002920906195001818,
2163                      0.00276560481631053,       0.002864668392676542,
2164                      0.0026843833556330957,     0.0022856071403458645,
2165                      0.002325611317481922,      0.002006865217198205,
2166                      0.0017203360136903488,     0.0014989629748596194,
2167                      0.0012394615766533467,     0.0011637718848640398,
2168                      9.151568171630477E-4,      9.078199160626517E-4,
2169                      7.98723982361867E-4,       6.967302203866285E-4,
2170                      6.308502199413107E-4,      5.846990678973245E-4,
2171                      5.4516236113657E-4,        5.460009157501477E-4,
2172                      4.930608481719068E-4,      4.3796118549478783E-4,
2173                      3.4394330928221294E-4,     3.2323366161339073E-4,
2174                      3.0869078379504626E-4,     2.9443165590676553E-4,
2175                      2.756320010448714E-4,      2.630304164920856E-4,
2176                      2.5628889948649746E-4,     2.4142286552851616E-4,
2177                      2.245551157288562E-4,      2.0678491240900531E-4,
2178                      1.8828170383762728E-4,     1.7255723688098393E-4,
2179                      1.5911316727411343E-4,     1.3023056476879765E-4,
2180                      1.0761505470890214E-4,     8.62670273047588E-5,
2181                      6.129437168288782E-5,      6.037383539249432E-5,
2182                      3.535533905932738E-5,      3.8078865529319545E-5 };
2183     double ysm[] = { 0.012402,  0.001128,
2184                      9.97E-4,   0.001122,
2185                      0.001267,  0.001324,
2186                      0.001312,  0.001222,
2187                      0.001101,  9.85E-4,
2188                      8.83E-4,   7.92E-4,
2189                      7.18E-4,   6.52E-4,
2190                      5.9E-4,    5.33E-4,
2191                      4.77E-4,   4.26E-4,
2192                      3.94E-4,   3.81E-4,
2193                      3.58E-4,   3.33E-4,
2194                      3.16E-4,   3.08E-4,
2195                      2.91E-4,   2.71E-4,
2196                      2.55E-4,   2.39E-4,
2197                      2.24E-4,   2.12E-4,
2198                      2.07E-4,   1.99E-4,
2199                      1.82E-4,   1.72E-4,
2200                      1.72E-4,   1.62E-4,
2201                      1.49E-4,   1.38E-4,
2202                      1.27E-4,   1.2E-4,
2203                      1.14E-4,   9.6E-5,
2204                      8.5E-5,    7.1E-5,
2205                      5.1E-5,    5.4E-5,
2206                      2.5E-5,    3.3E-5 };
2207     double ysp[] = { 0.012402,  0.001128,
2208                      9.97E-4,   0.001122,
2209                      0.001267,  0.001324,
2210                      0.001312,  0.001222,
2211                      0.001101,  9.85E-4,
2212                      8.83E-4,   7.92E-4,
2213                      7.18E-4,   6.52E-4,
2214                      5.9E-4,    5.33E-4,
2215                      4.77E-4,   4.26E-4,
2216                      3.94E-4,   3.81E-4,
2217                      3.58E-4,   3.33E-4,
2218                      3.16E-4,   3.08E-4,
2219                      2.91E-4,   2.71E-4,
2220                      2.55E-4,   2.39E-4,
2221                      2.24E-4,   2.12E-4,
2222                      2.07E-4,   1.99E-4,
2223                      1.82E-4,   1.72E-4,
2224                      1.72E-4,   1.62E-4,
2225                      1.49E-4,   1.38E-4,
2226                      1.27E-4,   1.2E-4,
2227                      1.14E-4,   9.6E-5,
2228                      8.5E-5,    7.1E-5,
2229                      5.1E-5,    5.4E-5,
2230                      2.5E-5,    3.3E-5 };
2231     int np = 48;
2232     TGraphAsymmErrors* g = new TGraphAsymmErrors(np,
2233                                                  x,
2234                                                  y,
2235                                                  xem,
2236                                                  xep,
2237                                                  yem,
2238                                                  yep);
2239     g->SetName("/HepData/7742/d10x1y1");
2240     g->SetTitle("/HepData/7742/d10x1y1");
2241     return g;
2242   }
2243   ClassDef(Unfolder,1);
2244 };
2245 void UnfoldMultDists(const char* realFile="forward_multdists.root",
2246                      const char* mcFile="forward_mcmultdists.root")
2247 {
2248   Unfolder* u = new Unfolder;
2249   u->Run();
2250   
2251   u->DrawAll();
2252 }
2253 #endif