AliPhysics  85eb05e (85eb05e)
SysErrorAdder.C
Go to the documentation of this file.
1 #ifndef __CINT__
2 # include <TString.h>
3 # include <TH1.h>
4 # include "GraphSysErr.C"
5 # include <TLegend.h>
6 # include <TLegendEntry.h>
7 # include <TObjString.h>
8 # include <TColor.h>
9 #else
10 class GraphSysErr;
11 class TH1;
12 class TLegend;
13 #endif
14 
16 {
20  enum {
21  kTriggerFill = 1001, // 0, // 3144
22  kMergingFill = 3001, // 0, // 3001,
23  kDensityFill = 3002, // 0, // 3002,
24  kEmpiricalFill = 3144, // 0, // 3244
25  kHadronFill = 3244, // 0,
26  kEMFill = 3344,
27  kDiffRatFill = 3001,
28  kDiffMassFill = 3002,
30  };
44  SysErrorAdder(const TString& sys,
45  UShort_t sNN,
46  const TString& trig)
47  : fSys(sys), fSNN(sNN), fTrig(trig)
48  {}
52  virtual ~SysErrorAdder() {}
58  virtual const char* GetTriggerName() const { return "Trigger"; }
59  virtual const char* GetTriggerString() const { return fTrig; }
60  Int_t ModColor(Color_t n, UShort_t off) const
61  {
62  ULong_t max = 0xff;
63  ULong_t pixel = TColor::Number2Pixel(n);
64  ULong_t r = TMath::Min((((pixel >> 16) & max) + off), max);
65  ULong_t g = TMath::Min((((pixel >> 8) & max) + off), max);
66  ULong_t b = TMath::Min((((pixel >> 0) & max) + off), max);
67  ULong_t next = (r << 16) | (g << 8) | (b << 0);
68  // Printf("0x%08x -> 0x%08x", pixel, next);
69  return TColor::GetColor(next);
70  }
71 
81  void ModError(GraphSysErr* gse, Int_t id, Style_t fill,
82  TLegend* l, UShort_t off=64) const
83  {
84  // UShort_t off = 64; // (id-1) * 32;
85  // switch (fill) {
86  // case kMergingFill: off = 16; break;
87  // case kDensityFill: off = 32; break;
88  // case kEmpiricalFill: off = 48; break;
89  // case kHadronFill: off = 64; break;
90  // }
91  Color_t c = gse->GetMarkerColor(); // ModColor(gse->GetMarkerColor(), off);
92 
93  gse->SetSysFillColor(id, c);
94  gse->SetSysLineColor(id, c);
95  gse->SetSysLineWidth(id, 1);
96  gse->SetSysLineStyle(id, id);
97  gse->SetSysFillStyle(id, fill);
98  // gse->SetSysOption(id, GraphSysErr::kBox);
100 
101  AddLegend(l, id, gse->GetSysTitle(id), fill);
102  }
111  void AddLegend(TLegend* l, Int_t id, const char* title, Style_t fill) const
112  {
113  if (!l) return;
114  TLegendEntry* e = l->AddEntry(Form("sys%02d", id), title, "f");
115  e->SetFillStyle(fill);
116  e->SetFillColor(kBlack);
117  e->SetLineColor(kBlack);
118  e->SetLineStyle(id);
119  e->SetLineWidth(1);
120  }
129  virtual Int_t MakeTrigger(GraphSysErr* gse, TLegend* l) const
130  {
131  Double_t low = 0,high = 0;
132  GetTrigger(low,high);
133  if (low == 0 && high == 0) return -1;
134 
135  Int_t id = gse->DefineCommon(GetTriggerName(), true, low, high);
136  ModError(gse, id, kTriggerFill, l, 0);
137  return id;
138  }
147  Int_t MakeMerging(GraphSysErr* gse, TLegend* l) const
148  {
149  if (GetMerging(-1) <= 0 && GetMerging(+1) <= 0) return -1;
150  Int_t id = gse->DeclarePoint2Point("Merging", true);
151  ModError(gse, id, kMergingFill, l);
152  return id;
153  }
162  Int_t MakeDensity(GraphSysErr* gse, TLegend* l) const
163  {
164  if (GetDensity(-1) <= 0 && GetDensity(+1) <= 0) return -1;
165  Int_t id = gse->DeclarePoint2Point("Density", true);
166  ModError(gse, id, kDensityFill, l);
167  return id;
168  }
177  virtual Int_t MakeEmpirical(GraphSysErr* gse, TLegend* l) const
178  {
179  if (GetEmpirical() <= 0) return -1;
180  Int_t id = gse->DeclarePoint2Point("Empirical", true);
181  ModError(gse, id, kEmpiricalFill, l);
182  return id;
183  }
192  virtual Int_t MakeHadron(GraphSysErr* gse, TLegend* l) const
193  {
194  if (GetHadron(4) <= 0) return -1;
195  Int_t id = gse->DeclarePoint2Point("Hadron chemistry", true);
196  ModError(gse, id, kHadronFill, l);
197  return id;
198  }
199  virtual const char* MakeName(Double_t eff) const
200  {
201  return GetTriggerString();
202  }
206  virtual Double_t GetMerging(Short_t ) const { return 0.01; }
210  virtual Double_t GetDensity(Short_t w) const { return (w<0?0.02:0.01); }
214  virtual Double_t GetEmpirical() const { return 0.061; }
218  virtual Double_t GetHadron(Double_t eta) const
219  {
220  Double_t ret = (eta >= 3.6 ? 0.02 : 0);
222  return ret;
223  }
230  virtual void GetTrigger(Double_t& low, Double_t& high) const = 0;
241  virtual GraphSysErr* Make(TH1* h, TLegend* l, Double_t eff=1,
242  Bool_t verb=false)
243  {
244  // --- Reaction key ------------------------------------------------
245  if (verb) Info("", "Making graph from %s %p eff=%f", h->GetName(), l, eff);
246  TString reac = fSys;
247  reac.ToUpper();
248  reac.Insert(reac.Index("P", 1, 1, TString::kIgnoreCase), " ");
249  reac.Append(" --> CHARGED X");
250 
251  GraphSysErr* gse = new GraphSysErr(10);
252  gse->SetName(MakeName(eff));
253  gse->SetSumLineColor(kRed+2);
254  gse->SetSumLineWidth(2);
255  gse->SetSumTitle("All errors");
257  gse->SetLineColor(h->GetLineColor());
258  gse->SetMarkerColor(h->GetMarkerColor());
259  gse->SetFillColor(h->GetFillColor());
260  gse->SetMarkerStyle(h->GetMarkerStyle());
261  gse->SetFillStyle(h->GetFillStyle());
262  gse->SetXTitle("\\mathit{\\eta}");
263  gse->SetYTitle("\\mathrm{d}N_{ch}/\\mathrm{d}\\eta");
264  gse->SetKey("laboratory", "CERN");
265  gse->SetKey("accelerator", "LHC");
266  gse->SetKey("detector", "FORWARD");
267  gse->SetKey("reackey", reac);
268  gse->SetKey("obskey", "DN/DETARAP");
269  gse->SetKey("title", "Systematic study of dNch/deta over widest "
270  "possible eta region at the LHC");
271  gse->SetKey("author", "CHRISTENSEN");
272  gse->SetKey("abstract", "We present dNch/deta over widest "
273  "possible eta region at the LHC");
274  gse->SetKey("dscomment", "The pseudo-rapidity density of charged particle");
275  gse->AddQualifier(Form("SQRT(S)%s IN GEV",
276  fSys.EqualTo("pp",TString::kIgnoreCase) ?
277  "" : "/NUCLEON"), Form("%d", fSNN));
278 
279  MakeTrigger(gse, l);
280  Int_t idMerge = MakeMerging(gse, l);
281  Int_t idDens = MakeDensity(gse, l);
282  Int_t idEmp = MakeEmpirical(gse, l);
283  Int_t idHad = MakeHadron(gse, l);
284 
285  Int_t cnt = 0;
286  if (verb)
287  Info("", "Looping over histogram w/%d bins", h->GetNbinsX());
288  for (Int_t i = 1; i <= h->GetNbinsX(); i++) {
289  Double_t y = h->GetBinContent(i);
290  if (y < 1e-6) continue;
291  Double_t ey = h->GetBinError(i);
292  Double_t ex = h->GetXaxis()->GetBinWidth(i)/2;
293  Double_t x = h->GetXaxis()->GetBinCenter(i);
294 
295  gse->SetPoint(cnt, x, eff*y);
296  gse->SetPointError(cnt, ex);
297  gse->SetStatError(cnt, eff*ey);
298 
299  if (idMerge>=0)
300  gse->SetSysError(idMerge, cnt, ex, ex, GetMerging(-1), GetMerging(1));
301  if (idDens >=0)
302  gse->SetSysError(idDens, cnt, ex, ex, GetDensity(-1), GetDensity(1));
303  if (idEmp >=0)
304  gse->SetSysError(idEmp, cnt, ex, GetEmpirical());
305  if (idHad >=0)
306  gse->SetSysError(idHad, cnt, ex, GetHadron(x));
307  cnt++;
308  }
309  return gse;
310  }
321  static SysErrorAdder* Create(const TString& t,
322  const TString& s,
323  UShort_t e,
324  const TString& c);
325 };
331 {
338  OfflineAdder(const TString& sys, UShort_t sNN)
339  : SysErrorAdder(sys, sNN, "OFFLINE")
340  {
341  }
348  virtual void GetTrigger(Double_t& low, Double_t& high) const
349  {
350  low = 0;
351  high = 0;
352  }
353  Int_t MakeTrigger(GraphSysErr* gse, TLegend* l) const
354  {
355  return -1;
356  }
357 };
358 
359 struct BareAdder : public SysErrorAdder
360 {
361  BareAdder(const TString& sys, UShort_t sNN, TString& trig)
362  : SysErrorAdder(sys,sNN,trig)
363  {}
370  virtual void GetTrigger(Double_t& low, Double_t& high) const
371  {
372  low = high = 0;
373  }
374  Int_t MakeTrigger(GraphSysErr* gse, TLegend* l) const
375  {
376  gse->AddQualifier("TRIGGER", fTrig);
377  return SysErrorAdder::MakeTrigger(gse, l);
378  }
379 };
380 
385 struct INELAdder : public SysErrorAdder
386 {
397  INELAdder(const TString& sys, UShort_t sNN, Double_t low=-1, Double_t high=-1)
398  : SysErrorAdder(sys, sNN, "INEL"), fLow(low), fHigh(high)
399  {
400  if (low > 0 && high > 0) return;
401  if (fSys.EqualTo("pp", TString::kIgnoreCase)) {
402  switch (fSNN) {
403  case 900: fLow = 0.001; fHigh = 0.003; break;
404  case 2760: fLow = 0.0035; fHigh = 0.006; break;
405  case 5023: fLow = fHigh = 0.028; break;
406  case 7000:
407  case 8000: fLow = 0.003; fHigh = 0.006; break;
408  case 13000: fLow = fHigh = 0.028; break;
409  default: break;
410  }
411  }
412  }
419  virtual void GetTrigger(Double_t& low, Double_t& high) const
420  {
421  low = fLow;
422  high = fHigh;
423  }
424  Int_t MakeTrigger(GraphSysErr* gse, TLegend* l) const
425  {
426  gse->AddQualifier("TRIGGER", "INEL");
427  Int_t id = SysErrorAdder::MakeTrigger(gse, l);
428 
429  if (fSNN == 5023) {
430  Int_t rId = gse->DefineCommon("Diff. ratio",true,
431  0.023,0.034,GraphSysErr::kBox);
432  Int_t mId = gse->DefineCommon("Diff. mass",true,
433  0,0.065,GraphSysErr::kBox);
434  ModError(gse, rId, kDiffRatFill, l);
435  ModError(gse, mId, kDiffMassFill, l);
436  }
437  return id;
438  }
439 };
445 {
452  INELGt0Adder(const TString& sys, UShort_t sNN)
453  : SysErrorAdder(sys, sNN, "INEL>0"), fLow(0), fHigh(0)
454  {
455  switch (sNN) {
456  case 5023: fLow = fHigh = 0.023; break;
457  case 13000: fLow = fHigh = 0.023; break;
458  }
459  }
460  const char* MakeName(Double_t) const { return "INELGt0"; }
467  virtual void GetTrigger(Double_t& low, Double_t& high) const
468  {
469  low = fLow; high = fHigh;
470  }
471  Int_t MakeTrigger(GraphSysErr* gse, TLegend* l) const
472  {
473  gse->AddQualifier("TRIGGER", "INEL>0");
474  gse->AddQualifier("N", ">0");
475  Int_t id = SysErrorAdder::MakeTrigger(gse, l);
476  if (fSNN == 5023) {
477  Int_t rId = gse->DefineCommon("Diff. ratio",true,
478  0.005,0.005,GraphSysErr::kBox);
479  Int_t mId = gse->DefineCommon("Diff. mass",true,
480  0.005,0,GraphSysErr::kBox);
481  ModError(gse, rId, kDiffRatFill, l);
482  ModError(gse, mId, kDiffMassFill, l);
483  }
484  return id;
485  }
488 };
493 struct NSDAdder : public SysErrorAdder
494 {
503  NSDAdder(const TString& sys, UShort_t sNN, Double_t value=-1)
504  : SysErrorAdder(sys, sNN, "NSD"), fValue(value)
505  {
506  if (value > 0) return;
507  if (fSys.EqualTo("pp", TString::kIgnoreCase)) {
508  switch (fSNN) {
509  case 900: fValue = 0.02; break;
510  case 2760: fValue = 0.03; break;
511  case 5023: fValue = 0.044; break;
512  case 7000:
513  case 8000:
514  case 13000: fValue = 0.02; break;
515  default: break;
516  }
517  }
518  }
519  const char* MakeName(Double_t e) const
520  {
521  // if (e < 1e-3 || TMath::Abs(e - 1) < 1e-3) return "V0AND";
522  return "NSD";
523  }
530  virtual void GetTrigger(Double_t& low, Double_t& high) const
531  {
532  low = high = fValue;
533  }
534  Int_t MakeTrigger(GraphSysErr* gse, TLegend* l) const
535  {
536  if (TString(gse->GetName()).EqualTo("V0AND")) {
537  gse->AddQualifier("TRIGGER", "V0AND");
538  return -1;
539  }
540  gse->AddQualifier("TRIGGER", "NSD");
541  Int_t id = SysErrorAdder::MakeTrigger(gse, l);
542  if (fSNN == 5023) {
543  Int_t rId = gse->DefineCommon("Diff. ratio",true,
544  0.008,0.014,GraphSysErr::kBox);
545  Int_t mId = gse->DefineCommon("Diff. mass",true,
546  0,0.043,GraphSysErr::kBox);
547  ModError(gse, rId, kDiffRatFill, l);
548  ModError(gse, mId, kDiffMassFill, l);
549  }
550  return id;
551  }
552 
553 };
558 struct CENTAdder : public SysErrorAdder
559 {
562  // Double_t fMin;
563  // Double_t fMax;
576  CENTAdder(const TString& sys, UShort_t sNN, const TString& method)
577  : SysErrorAdder(sys, sNN, method),
578  fCent(0),
579  fValue(0),
580  fCMin(0),
581  fCMax(0),
582  fEM1(0),
583  fEM2(0),
584  fLookup(0)
585  {
586  Double_t off = .1;
587  if (fSys.EqualTo("pPb", TString::kIgnoreCase) ||
588  fSys.EqualTo("Pbp", TString::kIgnoreCase)) {
589  TString m;
590  if (!method.BeginsWith("CENT")) m = "CENT";
591  m.Append(method);
592  Double_t cent[] = { 0, 5, 10, 20, 40, 60, 80, 100+off };
593  Double_t zna[] = { 1.5, 1.5, 1.5, 1.5, 2., 2., 3. };
594  Double_t v0a[] = { 1.5, 1.5, 1.5, 1.5, 2., 2., 2. };
595  Double_t v0m[] = { 1.5, 1.5, 1.5, 1.5, 2., 2., 4. };
596  Double_t cl1[] = { 2.5, 2.5, 2.5, 4.0, 6., 10., 11. };
597  Double_t* est = 0;
598  if (m.Contains("CENTZNA") || m.Contains("CENTZNC")) est = zna;
599  else if (m.Contains("CENTV0A") || m.Contains("CENTV0C")) est = v0a;
600  else if (m.Contains("CENTV0M")) est = v0m;
601  else if (m.Contains("CENTCL1")) est = cl1;
602  if (!est) {
603  Warning("","Couldn't find estimator from %s", method.Data());
604  return;
605  }
606  fTrig = m;
607  fLookup = new TH1D("lookup", "Centrality error lookup", 7, cent);
608  for (Int_t i = 1; i <= 7; i++) fLookup->SetBinContent(i,est[i-1]/100);
609  }
610  else {
611  fTrig = "CENT";
612  fLookup = new TH1D("lookup", "Centrality error lookup", 100, 0, 100);
613  Double_t min = 0.004, max = 0.062, top = 100; // 0.02
614  if (sNN == 5023) {
615  min = 0.005;
616  max = 0.095;
617  top = 90;
618  fEM1 = 0.04;
619  fEM2 = 0.04;
620  // max = (7.5-min)/TMath::Power(80,2) * TMath::Power(100,2) + min;
621  }
622  else if (sNN == 5440 || sNN == 5100) { // Preliminary values for Xe-Xe
623  min = 0.00086;
624  max = 0.042;
625  top = 90;
626  fEM1 = 0.014;
627  fEM2 = 0.040;
628  }
629  for (Int_t i = 1; i <= 100; i++) {
630  Double_t c = fLookup->GetXaxis()->GetBinCenter(i);
631  Double_t e = max * TMath::Power(c/top,2)+min;
632  fLookup->SetBinContent(i, e);
633  }
634  }
635  if (fLookup) fLookup->SetDirectory(0);
636 
637  }
638  const char* GetTriggerName() const
639  {
640  // static TString n;
641  // n = fTrig;
642  // n.ReplaceAll("CENT", "Centrality (");
643  // n.Append(")");
644  return "Centrality";
645  }
646  virtual const char* GetTriggerString() const
647  {
648  return Form("%s_%03dd%02d_%03dd%02d",
649  fTrig.Data(),
650  Int_t(fCMin), Int_t(fCMin*100)%100,
651  Int_t(fCMax), Int_t(fCMax*100)%100);
652  }
659  virtual void GetTrigger(Double_t& low, Double_t& high) const
660  {
661  if (!fLookup) { low = high = 0; return; }
662  Int_t bin = fLookup->FindBin(fCent);
663  low = high = fLookup->GetBinContent(bin);
664  }
665  Int_t MakeTrigger(GraphSysErr* gse, TLegend* l) const
666  {
667  gse->AddQualifier("TRIGGER", fTrig);
668  gse->AddQualifier("CENTRALITY IN PCT", Form("%6.2f TO %6.2f",fCMin,fCMax));
669 
670  Int_t ret = SysErrorAdder::MakeTrigger(gse, l);
671 
672  Double_t em = fCMax > 80 ? fEM2 : fCMax > 70 ? fEM1 : 0;
673  Int_t ei = gse->DefineCommon("EM contamination", true, em, em);
674  ModError(gse, ei, kEMFill, l, 0);
675 
676  return ret;
677  }
686  Double_t GetCentrality(TH1* h, Bool_t verb=false)
687  {
688  TString name(h->GetName());
689  if (verb)
690  Info("", "Extracting centrality from %s", name.Data());
691  Int_t idx = name.Index("_cent");
692  if (idx == kNPOS) {
693  Warning("GetCentrality", "Don't know how to parse %s",
694  name.Data());
695  return -1;
696  }
697  name.Remove(0,idx+5);
698  name.ReplaceAll("d", ".");
699  name.ReplaceAll("_", " ");
700  TObjArray* tokens = name.Tokenize(" ");
701  TObjString* first = static_cast<TObjString*>(tokens->At(0));
702  TObjString* second = static_cast<TObjString*>(tokens->At(1));
703  fCMin = first->String().Atof();
704  fCMax = second->String().Atof();
705  fCent = (fCMin+fCMax)/2;
706  return fCent;
707  }
716  virtual Int_t MakeEmpirical(GraphSysErr* gse, TLegend* l) const
717  {
718  if (GetEmpirical() <= 0) return -1;
719  if (fCent >= 0)
720  return SysErrorAdder::MakeEmpirical(gse, l);
721 
722  AddLegend(l, 0, "Empirical", kEmpiricalFill);
723  return -1;
724  }
725 
736  virtual GraphSysErr* Make(TH1* h,
737  TLegend* l,
738  Double_t eff=1,
739  Bool_t verb=false)
740  {
741  fCent = GetCentrality(h, verb);
742  if (fCent < 0) return 0;
743  return SysErrorAdder::Make(h, l, eff, verb);
744  }
745 };
746 
747 
750  const TString& s,
751  UShort_t e,
752  const TString& c)
753 {
754  TString tt(t);
755  tt.ToUpper();
756 
757  SysErrorAdder* a = 0;
758  if (tt.EqualTo("OFFLINE")) a=new OfflineAdder(s,e);
759  else if (tt.EqualTo("UNKNOWN")) a=new OfflineAdder(s,e);
760  else if (tt.EqualTo("INEL")) a=new INELAdder(s,e);
761  else if (tt.EqualTo("INEL>0")) a=new INELGt0Adder(s,e);
762  else if (tt.EqualTo("INELGT0")) a=new INELGt0Adder(s,e);
763  else if (tt.EqualTo("NSD")) a=new NSDAdder(s,e);
764  else if (tt.EqualTo("MBOR")) a=new BareAdder(s,e,tt);
765  else if (tt.EqualTo("V0AND")) a=new BareAdder(s,e,tt);
766  else if (tt.EqualTo("VISX")) a=new BareAdder(s,e,tt);
767  else a=new CENTAdder(s,e,c);
768  Info("Create", "Created %s adder for %s/%s/%hu/%s: %p",
769  a->GetTriggerString(), t.Data(), s.Data(), e, c.Data(), a);
770  return a;
771 }
772 
773 
774 //
775 // EOF
776 //
const char * GetTriggerName() const
virtual Int_t MakeTrigger(GraphSysErr *gse, TLegend *l) const
void SetSysLineColor(Int_t id, Color_t color)
Definition: GraphSysErr.C:4359
void SetYTitle(const char *title)
Definition: GraphSysErr.C:3598
virtual Double_t GetDensity(Short_t w) const
static SysErrorAdder * Create(const TString &t, const TString &s, UShort_t e, const TString &c)
double Double_t
Definition: External.C:58
void SetSysLineStyle(Int_t id, Style_t style)
Definition: GraphSysErr.C:4371
virtual GraphSysErr * Make(TH1 *h, TLegend *l, Double_t eff=1, Bool_t verb=false)
OfflineAdder(const TString &sys, UShort_t sNN)
virtual Double_t GetMerging(Short_t) const
const char * title
Definition: MakeQAPdf.C:27
Double_t fValue
virtual const char * GetTriggerName() const
Definition: SysErrorAdder.C:58
NSDAdder(const TString &sys, UShort_t sNN, Double_t value=-1)
virtual void GetTrigger(Double_t &low, Double_t &high) const =0
virtual Double_t GetHadron(Double_t eta) const
void SetSysOption(Int_t id, EDrawOption_t opt)
Definition: GraphSysErr.C:4431
Double_t fEM1
Int_t MakeTrigger(GraphSysErr *gse, TLegend *l) const
void SetKey(const char *key, const char *value, Bool_t replace=false)
Definition: GraphSysErr.C:4587
Double_t fCMax
void SetPointError(Int_t i, Double_t ex)
Definition: GraphSysErr.C:3468
virtual void GetTrigger(Double_t &low, Double_t &high) const
void SetSysFillStyle(Int_t id, Style_t style)
Definition: GraphSysErr.C:4407
void SetSysLineWidth(Int_t id, Width_t width)
Definition: GraphSysErr.C:4383
void SetSysError(Int_t id, Double_t eyl, Double_t eyh)
Definition: GraphSysErr.C:3528
virtual void GetTrigger(Double_t &low, Double_t &high) const
TCanvas * c
Definition: TestFitELoss.C:172
void AddQualifier(const TString &key, const TString &value, Bool_t replace=false)
Definition: GraphSysErr.C:4759
const char * GetSysTitle(Int_t id) const
Definition: GraphSysErr.C:3761
void AddLegend(TLegend *l, Int_t id, const char *title, Style_t fill) const
Double_t fCMin
Int_t MakeTrigger(GraphSysErr *gse, TLegend *l) const
void SetStatError(Int_t i, Double_t ey)
Definition: GraphSysErr.C:3505
virtual void GetTrigger(Double_t &low, Double_t &high) const
virtual GraphSysErr * Make(TH1 *h, TLegend *l, Double_t eff=1, Bool_t verb=false)
void SetPoint(Int_t i, Double_t x, Double_t y)
Definition: GraphSysErr.C:3457
virtual void GetTrigger(Double_t &low, Double_t &high) const
UInt_t DefineCommon(const char *title, Bool_t relative, Double_t ey, EDrawOption_t option=kFill)
Definition: GraphSysErr.C:3350
virtual void GetTrigger(Double_t &low, Double_t &high) const
int Int_t
Definition: External.C:63
UInt_t DeclarePoint2Point(const char *title, Bool_t relative, EDrawOption_t option=kBar)
Definition: GraphSysErr.C:3393
const char * MakeName(Double_t) const
Double_t fLow
Int_t method
virtual ~SysErrorAdder()
Definition: SysErrorAdder.C:52
Int_t MakeTrigger(GraphSysErr *gse, TLegend *l) const
Definition: External.C:212
Double_t fHigh
void SetSysFillColor(Int_t id, Color_t color)
Definition: GraphSysErr.C:4395
An (X,Y) graph with configurable errors.
Int_t ModColor(Color_t n, UShort_t off) const
Definition: SysErrorAdder.C:60
unsigned long ULong_t
Definition: External.C:38
const char * MakeName(Double_t e) const
virtual Int_t MakeEmpirical(GraphSysErr *gse, TLegend *l) const
virtual void GetTrigger(Double_t &low, Double_t &high) const
void SetSumOption(EDrawOption_t opt)
Definition: GraphSysErr.C:4449
void SetSumLineWidth(Width_t width)
Definition: GraphSysErr.C:4473
short Short_t
Definition: External.C:23
INELAdder(const TString &sys, UShort_t sNN, Double_t low=-1, Double_t high=-1)
Double_t GetCentrality(TH1 *h, Bool_t verb=false)
void ModError(GraphSysErr *gse, Int_t id, Style_t fill, TLegend *l, UShort_t off=64) const
Definition: SysErrorAdder.C:81
SysErrorAdder(const TString &sys, UShort_t sNN, const TString &trig)
Definition: SysErrorAdder.C:44
virtual Double_t GetEmpirical() const
Int_t MakeMerging(GraphSysErr *gse, TLegend *l) const
void SetSumTitle(const char *title)
Definition: GraphSysErr.C:4455
Int_t MakeTrigger(GraphSysErr *gse, TLegend *l) const
virtual const char * GetTriggerString() const
TH1 * fLookup
INELGt0Adder(const TString &sys, UShort_t sNN)
virtual Int_t MakeEmpirical(GraphSysErr *gse, TLegend *l) const
Double_t fCent
Int_t MakeTrigger(GraphSysErr *gse, TLegend *l) const
virtual Int_t MakeHadron(GraphSysErr *gse, TLegend *l) const
virtual const char * MakeName(Double_t eff) const
Int_t MakeTrigger(GraphSysErr *gse, TLegend *l) const
unsigned short UShort_t
Definition: External.C:28
virtual const char * GetTriggerString() const
Definition: SysErrorAdder.C:59
Double_t fEM2
BareAdder(const TString &sys, UShort_t sNN, TString &trig)
bool Bool_t
Definition: External.C:53
Double_t fHigh
UShort_t fSNN
Definition: SysErrorAdder.C:34
Int_t MakeDensity(GraphSysErr *gse, TLegend *l) const
void SetSumLineColor(Color_t color)
Definition: GraphSysErr.C:4461
void SetXTitle(const char *title)
Definition: GraphSysErr.C:3592
Double_t fLow
Double_t fValue
Definition: External.C:196
CENTAdder(const TString &sys, UShort_t sNN, const TString &method)