76 throw std::invalid_argument(
"[ERROR][graphutils::reassign_x_values] reassing axis must be larger than n points");
121 g->SetFillStyle(
fill);
124 std::map<std::string, TGraphErrors *>
127 std::map<std::string, TGraphErrors *>
result;
129 std::map<double, std::vector<std::array<double, 2>>>
aggregator;
170 std::map<std::string, TGraphErrors *>
173 std::map<std::string, TGraphErrors *>
result;
196 std::map<std::string, TGraphErrors *>
200 TProfile pS(
"pS",
"", 20000, -100., 100.,
"S");
202 for (
int i = 0;
i < 20000; ++
i)
206 for (
int j = 0;
j <
g->GetN(); ++
j)
208 auto x =
g->GetX()[
j];
209 auto y =
g->GetY()[
j];
210 int ibin =
p.Fill(x, y);
224 gave->SetName(
"gave");
227 grms->SetName(
"grms");
231 gwidth->SetName(
"gwidth");
233 for (
int i = 0;
i <
p.GetNbinsX(); ++
i)
235 if (
p.GetBinError(
i + 1) <= 0)
237 auto n =
gave->GetN();
238 gave->SetPoint(n,
p.GetBinLowEdge(
i + 1),
p.GetBinContent(
i + 1));
239 gave->SetPointError(n, 0.,
p.GetBinError(
i + 1));
240 grms->SetPoint(n,
p.GetBinLowEdge(
i + 1),
p.GetBinContent(
i + 1));
241 grms->SetPointError(n, 0.,
pS.GetBinError(
i + 1));
266 for (
int i = 0;
i <
g->GetN(); ++
i)
275 for (
int i = 0;
i <
g->GetN(); ++
i)
291 for (
int i = 0;
i <
g->GetN(); ++
i)
293 h->Fill(
g->GetY()[
i]);
311 void draw(std::vector<TGraphErrors *>
vg,
const char *
opt =
"")
322 g->SetName(
gin->GetName());
323 for (
int i = 0;
i <
gin->GetN(); ++
i)
325 auto x =
gin->GetX()[
i];
326 auto ex =
gin->GetEX()[
i];
327 auto y =
gin->GetY()[
i];
328 auto ey =
gin->GetEY()[
i];
353 std::pair<double, double>
357 for (
int i = 0;
i <
g->GetN(); ++
i)
359 gval.SetPoint(
i,
g->GetX()[
i],
g->GetY()[
i]);
360 gerr.SetPoint(
i,
g->GetX()[
i],
g->GetEY()[
i]);
362 return {
gval.Eval(x),
gerr.Eval(x)};
370 g->SetName(
gin->GetName());
371 for (
int i = 0;
i <
gin->GetN(); ++
i)
373 auto x =
gin->GetX()[
i];
374 auto ex =
gin->GetEX()[
i];
375 auto y =
gin->GetY()[
i];
376 auto ey =
gin->GetEY()[
i];
377 g->SetPoint(
i, y, x);
378 g->SetPointError(
i,
ey,
ex);
388 g->SetName(
gin->GetName());
389 for (
int i = 0;
i <
gin->GetN(); ++
i)
391 auto x =
gin->GetX()[
i];
392 auto y =
gin->GetY()[
i];
393 g->SetPoint(
i, y, x);
403 g->SetName(
gin->GetName());
404 for (
int i = 0;
i <
gin->GetN(); ++
i)
406 if (
gin->GetEY()[
i] <= 0.)
411 for (
int j =
i + 1;
j <
gin->GetN(); ++
j)
413 if (
gin->GetEY()[
j] <= 0.)
426 g->SetPointError(n, 0.,
vale);
439 g->SetName(
gin->GetName());
440 for (
int i = 0;
i <
gin->GetN(); ++
i)
444 for (
int j =
i + 1;
j <
gin->GetN(); ++
j)
500 g->SetName(
gn->GetName());
501 for (
int i = 0;
i <
gn->GetN(); ++
i)
503 auto x =
gn->GetX()[
i];
504 auto y =
gn->GetY()[
i];
505 auto ex =
gn->GetEX()[
i];
506 auto ey =
gn->GetEY()[
i];
509 if (x >
gd->GetX()[
gd->GetN() - 1])
511 if (
gn->Eval(x) == 0. ||
gd->Eval(x) == 0.)
515 auto ed =
ret.second;
524 g->SetPoint(n, x, y);
525 g->SetPointError(n,
ex,
ey);
536 g->SetName(
gn->GetName());
537 for (
int i = 0;
i <
gn->GetN(); ++
i)
539 auto x =
gn->GetX()[
i];
540 auto y =
gn->GetY()[
i];
541 auto ex =
gn->GetEX()[
i];
542 auto ey =
gn->GetEY()[
i];
543 if (
gn->Eval(x) == 0. ||
gd->Eval(x) == 0.)
547 auto ed =
ret.second;
556 g->SetPoint(n, x, y);
557 g->SetPointError(n,
ex,
ey);
567 for (
int i = 0;
i <
gin->GetN(); ++
i)
569 auto x =
gin->GetX()[
i];
570 auto y =
gin->GetY()[
i];
571 auto ex =
gin->GetEX()[
i];
572 auto ey =
gin->GetEY()[
i];
573 g->SetPoint(
i, x, std::log(y));
574 g->SetPointError(
i,
ex,
ey / y);
583 for (
int i = 0;
i <
gin->GetN(); ++
i)
585 auto x =
gin->GetX()[
i];
586 auto y =
gin->GetY()[
i];
587 auto ex =
gin->GetEX()[
i];
588 auto ey =
gin->GetEY()[
i];
589 g->SetPoint(
i, x, std::log10(y));
590 g->SetPointError(
i,
ex,
ey / y);
600 g->SetName(
gin->GetName());
601 for (
int i = 0;
i <
gin->GetN(); ++
i)
603 auto x =
gin->GetX()[
i];
604 auto y =
gin->GetY()[
i];
605 auto ex =
gin->GetEX()[
i];
606 auto ey =
gin->GetEY()[
i];
607 g->SetPoint(
i, x, y -
f->Eval(x));
608 g->SetPointError(
i,
ex,
ey);
618 g->SetName(
gn->GetName());
619 for (
int i = 0;
i <
gn->GetN(); ++
i)
621 auto x =
gn->GetX()[
i];
622 auto y =
gn->GetY()[
i];
623 auto ex =
gn->GetEX()[
i];
624 auto ey =
gn->GetEY()[
i];
625 if (
gn->Eval(x) == 0. ||
gd->Eval(x) == 0.)
629 auto ed =
ret.second;
636 g->SetPoint(n, x, y);
637 g->SetPointError(n,
ex,
ey);
645 for (
int i = 0;
i <
g->GetN(); ++
i)
651 for (
int i = 0;
i <
g->GetN(); ++
i)
659 for (
int i = 0;
i <
gin->GetN(); ++
i)
661 auto x =
gin->GetX()[
i];
662 auto y =
gin->GetY()[
i];
665 if (x >
gref->GetX()[
gref->GetN() - 1])
678 for (
int i = 0;
i <
gin->GetN(); ++
i)
680 auto x =
gin->GetX()[
i] -
gin->GetX()[0];
681 auto y =
gin->GetY()[
i];
682 gout->SetPoint(
i, x, y);
691 for (
int i = 0;
i <
gin->GetN(); ++
i)
693 auto x =
gin->GetX()[
i];
694 auto y = -
gin->GetY()[
i];
695 gout->SetPoint(
i, x, y);
704 for (
int i = 0;
i <
gin->GetN(); ++
i)
706 auto x =
gin->GetX()[
i];
707 auto y = -
gin->GetY()[
i];
708 gout->SetPoint(
i, x, y);
717 for (
int i = 0;
i <
gin->GetN(); ++
i)
719 auto x = -
gin->GetX()[
i];
720 auto y =
gin->GetY()[
i];
721 gout->SetPoint(
i, x, y);
730 for (
int i = 0;
i <
gin->GetN() - n;
i += n)
734 for (
int j =
i;
j <
i + n; ++
j)
750 for (
int i = 0;
i <
gin->GetN() - n;
i += n)
754 for (
int j =
i;
j <
i + n; ++
j)
763 for (
int j =
i;
j <
i + n; ++
j)
768 gout->SetPoint(
gout->GetN(), x, std::sqrt(y));
777 for (
int i = 0;
i <
gin->GetN() - n; ++
i)
781 for (
int j =
i;
j <
i + n; ++
j)
788 gout->SetPoint(
i, x, y);
TH2_Type * build_fine_tune_raw_histogram(std::vector< TString > kInputFileNames, TString kRunTag, TString kOutputFileName, bool kRecalculate)
Functions -------------------------------------------------------------------------------------------...
Definition fine_analysis.h:80
Definition graphutils.C:5
std::map< std::string, TGraphErrors * > average_graphs(std::vector< TGraphErrors * > graphs_list)
Definition graphutils.C:171
TH1 * project(TGraphErrors *g, int nbins, double min, double max)
Definition graphutils.C:288
void x_shift(TGraphErrors *g, float val)
Definition graphutils.C:643
TGraph * moving_average(TGraph *gin, int n=2)
Definition graphutils.C:774
TGraphErrors * log10(TGraphErrors *gin)
Definition graphutils.C:580
void set_style(TGraphErrors *g, int marker, int color, int fill=0)
Definition graphutils.C:113
TGraph * invertX(TGraph *gin)
Definition graphutils.C:714
TGraph * rms(TGraph *gin, int n=2)
Definition graphutils.C:747
void x_scale(TGraphErrors *g, double scale)
Definition graphutils.C:264
TGraphErrors * ratio(TGraphErrors *gn, TGraphErrors *gd, bool propagate_error=true)
Definition graphutils.C:496
TGraphErrors * add(TGraphErrors *g_target, std::array< double, 2 > addend, bool square_err_sum=true)
Definition graphutils.C:42
std::array< float, 2 > eval_with_errors(TGraphErrors *gTarget, float _xtarget)
Definition graphutils.C:85
TGraphErrors * derivate(TGraphErrors *gin, double sign=1.)
Definition graphutils.C:399
TGraphErrors * average(TGraphErrors *target_graph, int average_over_n_points=2)
Definition graphutils.C:143
TGraphErrors * diff(TGraphErrors *gin, TF1 *f)
Definition graphutils.C:596
std::map< std::string, TGraphErrors * > make_average_rms(std::vector< TGraphErrors * > graphs, int marker=20, int color=kAzure - 3)
Definition graphutils.C:197
void reassign_x_values(TGraphErrors *gTarget, std::vector< std::array< float, 2 > > new_axis)
Definition graphutils.C:73
TGraphErrors * swapxy(TGraphErrors *gin)
Definition graphutils.C:366
std::map< std::string, TGraphErrors * > average_same_x(TGraphErrors *target_graph)
Definition graphutils.C:125
void draw(std::vector< TGraphErrors * > vg, const char *opt="")
Definition graphutils.C:311
void y_shift(TGraphErrors *g, float val)
Definition graphutils.C:649
TGraphErrors * log(TGraphErrors *gin)
Definition graphutils.C:564
TGraph * invertY(TGraph *gin)
Definition graphutils.C:688
TGraphErrors * power(TGraphErrors *target_graph, double exponent=1.)
Definition graphutils.C:16
TGraphErrors * scale(TGraphErrors *gin, double factor)
Definition graphutils.C:318
TGraph * fromZero(TGraph *gin)
Definition graphutils.C:675
void y_scale(TGraphErrors *g, double scale)
Definition graphutils.C:273
TGraphErrors * multi(TGraphErrors *gn, TGraphErrors *gd, bool propagate_error=true)
Definition graphutils.C:532
std::pair< double, double > eval(TGraphErrors *g, double x)
Definition graphutils.C:354
void remove_points(TGraphErrors *g, double min, double max)
Definition graphutils.C:249
int internal_generation_counter
Definition graphutils.C:6
std::map< std::string, std::array< T, 2 > > average(std::vector< std::array< T, 2 > > list_of_measurements, bool skip_unfit_skim=false)
Definition general_utility.h:98
void style()
Definition style.h:4