35 Double_t x = (2.0 * xx[0] - fA - fB) / (fB - fA);
36 int order = fT.size();
40 return p[0] + x * p[1];
45 fT[
i + 1] = 2 * x * fT[
i] - fT[
i - 1];
48 for (
int i = 1;
i <= order; ++
i) {
63 Double_t T3 = 4.0 * x * x * x - 3.0 * x;
64 Double_t result = p[0] * T0 + p[1] * T1 + p[2] * T2 + p[3] * T3;
78 Double_t T3 = 4.0 * x * x * x - 3.0 * x;
79 Double_t T4 = 8.0 * x * x * x * x - 8.0 * x * x + 1.0;
80 Double_t result = p[0] * T0 + p[1] * T1 + p[2] * T2 + p[3] * T3 + p[4] * T4;
94 Double_t T3 = 4.0 * x * x * x - 3.0 * x;
95 Double_t T4 = 8.0 * x * x * x * x - 8.0 * x * x + 1.0;
96 Double_t T5 = 16.0 * x * x * x * x * x - 20.0 * x * x * x + 5.0 * x;
97 Double_t T6 = 32.0 * x * x * x * x * x * x - 48.0 * x * x * x * x + 18.0 * x * x - 1.0;
98 Double_t result = p[0] * T0 + p[1] * T1 + p[2] * T2 + p[3] * T3 + p[4] * T4 + p[5] * T5 + p[6] * T6;
106 Double_t arg = (x[0] - par[1]) / par[2];
129 Form(
"Entries / (%d MeV/c^{2})", (
int)(1000 * (3.05 - 2.95) / h->
GetXaxis()->
GetNbins() + 0.5)));
151 auto leg =
new TLegend(0.2, 0.2, 0.6, 0.5);
160 leg->SetHeader(
"Parameters:",
"L");
162 leg->AddEntry((
TObject*)0,
Form(
"S / B = %4.3f #pm %4.3f", S / B, dSB),
"");
163 leg->AddEntry((
TObject*)0,
Form(
"S / #sqrt{S + 2B} = %4.1f #pm %4.1f", S / dS, dSIGN),
"");
190 vector<Float_t> values;
191 vector<Float_t> errors;
192 for (
Int_t i = leftBin;
i < rightBin;
i++) {
206 for (
Int_t i = leftBin;
i < rightBin;
i++) {
209 T += values[
i - leftBin];
243void filtrator(
TString inFileName =
"/home/merz/data/h3l/h3l_plots_25090_A_withKplus/h3l_plots.root")
247 TIter keyList(f->GetListOfKeys());
252 cout <<
"Number of total hist = " << f->GetListOfKeys()->GetSize() << endl;
263 TH1F* hMaxS =
nullptr;
264 TH1F* hMaxSB =
nullptr;
265 TH1F* hMaxSig =
nullptr;
267 TFile* fOut =
new TFile(
"/home/merz/data/h3l/h3l_plots_25090_A_withKplus/h3l_plots_filtered.root",
"recreate");
269 vector<Float_t> dSignArray;
270 vector<Float_t> dSArray;
271 vector<Float_t> dBArray;
272 vector<Float_t> signArray;
273 vector<Float_t> sArray;
274 vector<Float_t> bArray;
275 while ((key = (
TKey*)keyList())) {
287 if (T == 0 || B == 0 || sigma == 0)
294 h->
SetTitle(
Form(
"S:%4.2f_B:%4.2f_SB:%4.2f_SIGN:%4.2f", S, B, SB, SIGN));
301 hMaxS->
SetTitle(
Form(
"maxS___S:%4.2f_B:%4.2f_SB:%4.2f_SIGN:%4.2f", S, B, SB, SIGN));
309 hMaxSB->
SetTitle(
Form(
"maxSB___S:%4.2f_B:%4.2f_SB:%4.2f_SIGN:%4.2f", S, B, SB, SIGN));
317 hMaxSig->
SetTitle(
Form(
"maxSig___S:%4.2f_B:%4.2f_SB:%4.2f_SIGN:%4.2f", S, B, SB, SIGN));
333 cout << h->
GetName() <<
":\t" << sigma <<
"\t" << S <<
"\t" << SIGN <<
"\t" << SB << endl;
334 signArray.push_back(SIGN);
337 dSignArray.push_back(dSIGN);
338 dBArray.push_back(dB);
339 dSArray.push_back(dS);
345 for (
auto s : signArray) {
346 printf(
"%4.1f, ", s);
349 for (
auto s : dSignArray) {
350 printf(
"%4.1f, ", s);
353 for (
auto s : sArray) {
354 printf(
"%4.0f, ", s);
357 for (
auto s : dSArray) {
358 printf(
"%4.0f, ", s);
361 for (
auto s : bArray) {
362 printf(
"%4.0f, ", s);
365 for (
auto s : dBArray) {
366 printf(
"%4.0f, ", s);
377 cout <<
"Number of filtered histo = " << nFiltered << endl;
char * Form(const char *fmt,...)
R__EXTERN TStyle * gStyle
virtual void SetTitleOffset(Float_t offset=1)
virtual void SetTitleFont(Style_t font=62)
virtual void SetLabelFont(Style_t font=62)
virtual void SetTitleSize(Float_t size=0.04)
virtual void SetLineStyle(Style_t lstyle)
virtual void SetLineColor(Color_t lcolor)
virtual void SetMarkerColor(Color_t mcolor=1)
virtual void SetMarkerStyle(Style_t mstyle=1)
virtual void SetMarkerSize(Size_t msize=1)
virtual Double_t GetParameter(const TString &name) const
virtual void SetNpx(Int_t npx=100)
virtual void SetParLimits(Int_t ipar, Double_t parmin, Double_t parmax)
virtual Double_t GetParError(const char *name) const
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
virtual void SetParameter(const TString &name, Double_t value)
virtual void FixParameter(Int_t ipar, Double_t value)
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
virtual Double_t GetBinCenter(Int_t bin) const
void SetTitle(const char *title) override
virtual Double_t GetBinError(Int_t bin) const
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
virtual void SetBinError(Int_t bin, Double_t error)
void Draw(Option_t *option="") override
virtual void SetMinimum(Double_t minimum=-1111)
virtual void SetBinContent(Int_t bin, Double_t content)
virtual Double_t GetEntries() const
virtual TF1 * GetFunction(const char *name) const
virtual TH1 * Rebin(Int_t ngroup=2, const char *newname="", const Double_t *xbins=nullptr)
virtual Double_t GetBinContent(Int_t bin) const
virtual void SetTitle(const char *title="")
const char * GetName() const override
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
Double_t backgroundChe(Double_t *xx, Double_t *p)
void fitator(TH1F *h, Double_t &Tout, Double_t &Bout, Double_t &sigmaOut)
Double_t backgroundChe4(Double_t *xx, Double_t *p)
Double_t gausPeak(Double_t *x, Double_t *par)
Double_t backgroundChe6(Double_t *xx, Double_t *p)
void DrawNicePlot(TH1F *h, Int_t S, Float_t B)
Double_t backgroundChe3(Double_t *xx, Double_t *p)
Double_t fitFunction(Double_t *x, Double_t *par)
void filtrator(TString inFileName="/home/merz/data/h3l/h3l_plots_25090_A_withKplus/h3l_plots.root")
Double_t Sqrt(Double_t x)