10#include "FemtoCorrFunc1D.h"
14#include "DividedHisto.h"
19#include "ObjectMatrix.h"
22#include <initializer_list>
24#include <RtypesCore.h>
35 TString path = Form(
"%s/corrfunc_%i", dir.Data(), counter);
36 gSystem->MakeDirectory(path);
37 TString filename = Form(
"%s/corrfunc.html", path.Data());
40 HtmlRow row(
"",
"dark_blue",
"");
44 for (
int i = 0; i < fArray->
GetSize(); i++) {
46 HtmlRow row1(
"",
"light_blue",
"");
58 Bool_t batch = gROOT->IsBatch();
59 gROOT->SetBatch(kTRUE);
60 TCanvas* c =
new TCanvas(
"canvas",
"canvas", 0, 0, 1000, 1500);
63 TH1D* hKt = (TH1D*)
fNumProp->Clone();
69 c->SaveAs(Form(
"%s/corrfunc_%i/kt.root", dir.Data(), counter));
71 gROOT->SetBatch(batch);
73 HtmlRow row2(
"",
"light_blue",
"");
77 file.AddContent(table);
81 return HtmlCore::GetUrl(Form(
"corrfunc_%i/corrfunc.html", counter), this->ClassName());
86 Cout::PrintInfo(Form(
"Missing histograms in %s, did you forget to set MakeHisto in c-tor?", ClassName()), EInfo::kError);
88 Int_t x_bins = fRange.
GetSize() - 1;
89 for (
int i = 0; i < x_bins; i++) {
91 TString histname = h->GetName();
92 h->SetName(Form(
"%s[%i]", histname.Data(), i));
94 for (
int i = 1; i < fRange.
GetSize(); i++) {
95 if (fRange[i] < fRange[i - 1]) {
96 Cout::PrintInfo(Form(
"Wrong order in %s %4.2f<%4.2f", this->ClassName(), fRange[i], fRange[i - 1]),
97 EInfo::kCriticalError);
104 void FemtoCorrFunc1D::SetBins(
const std::initializer_list<double>& init) {
105 if (fRange.
GetSize() != (Int_t) init.size()) {
106 Cout::PrintInfo(Form(
"Wrong size of array during call SetKtBins %i %i", fRange.
GetSize(), (
int) init.size()),
110 std::initializer_list<double>::iterator it;
112 for (it = init.begin(); it != init.end(); ++it) {
117 FemtoCorrFunc1D::FemtoCorrFunc1D(
const DividedHisto1D& h,
118 std::initializer_list<Double_t> cuts,
123 FemtoCorrFunc(h, cuts.size() - 1) {
124 auto vec = Hal::Std::GetVector(cuts);
126 for (
unsigned int i = 0; i < vec.size(); i++) {
127 fRange.
Set(i, vec[i]);
129 fNumProp =
new TH1D(nameTitle +
" num", nameTitle +
" num", bins, vec[0], vec[vec.size() - 1]);
130 fDenProp =
new TH1D(nameTitle +
" den", nameTitle +
" den", bins, vec[0], vec[vec.size() - 1]);
137 FemtoCorrFunc1D::~FemtoCorrFunc1D() {
143 Double_t val = GetPairValNum(pair);
150 void FemtoCorrFunc1D::FillDenPerfect(
FemtoPair* pair) {
151 Double_t val = GetPairValDenPerf(pair);
158 void FemtoCorrFunc1D::FillDenRotated(FemtoPair* pair) {
159 Double_t val = GetPairValDenRot(pair);
163 ((DividedHisto1D*) fArray->
At(bin))->FillDenObj(pair);
166 void FemtoCorrFunc1D::FillDenMixed(FemtoPair* pair) {
167 Double_t val = GetPairValDenMix(pair);
171 ((DividedHisto1D*) fArray->
At(bin))->FillDenObj(pair);
174 void FemtoCorrFunc1D::FillDenHemisphere(FemtoPair* pair) {
175 Double_t val = GetPairValDenHemi(pair);
179 ((DividedHisto1D*) fArray->
At(bin))->FillDenObj(pair);
182 void FemtoCorrFunc1D::FillDenCharged(FemtoPair* pair) {
183 Double_t val = GetPairValDenChar(pair);
187 ((DividedHisto1D*) fArray->
At(bin))->FillDenObj(pair);
200 const Int_t size = fRange.
GetSize();
201 if (val < fRange.
Get(0))
return -1;
202 for (
int i = 1; i < size; i++) {
203 if (val < fRange.
Get(i)) {
return i - 1; }
void Set(Int_t index, T val)
void MakeBigger(Int_t new_dim)
static void PrintInfo(TString text, Hal::EInfo status)
virtual TString HTMLExtract(Int_t counter=0, TString dir=" ") const
virtual void Add(const Object *pack)
void FillNum(FemtoPair *pair)
Int_t ConvertVal(Double_t val) const
virtual TString HTMLExtract(Int_t no, TString dir="") const
TString GetComment() const
virtual void Add(const Object *pack)
static TString GetUrl(TString adress, TString text)
static TString GetJsDiv(TString root_file, TString object_name, TString draw_opt="colz", TString draw_div_name="drawing")
static TString CheckBr(TString text)
virtual void AddContent(const HtmlObject &obj)
virtual void AddContent(const HtmlObject &obj)
TObject * At(Int_t i) const