4#include "impact_parameter_distribution.h"
25 if (par[0] == 0)
return 0;
29 if (
x[0] <= par[1])
return par[0] *
x[0];
33 return par[0] *
x[0] / (1. +
TMath::Exp((
x[0] - par[1]) / par[2]));
70 if (b0 <= 0)
return 0;
78 double exp_b_minus_b0_over_db =
TMath::Exp((
b - b0) / db);
79 double db_sqr = db * db;
82 + (
b *
b - b0 * b0) / 2. / db_sqr
97 fIPdist(
"smooth_pb",
smooth_pb, 0., 20., 3),
120 fIPdist(
Form(
"%s_smooth_pb",
h->GetName()),
smooth_pb, 0., 50., 3),
233 TH1 *centb_histo =
nullptr;
240 else Warning(
"GetCentralityFromHisto",
"histogram containing impact parameter distribution is EMPTY");
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t b
char * Form(const char *fmt,...)
Class implementing parametrizable impact parameter distributions.
TF1 fIPdist
impact parameter distribution
TH1 * fHisto
! last fitted histogram
Double_t GetDeltaB() const
void SetDeltaB(Double_t x)
TF1 fSigmaR
total reaction cross section
Double_t Calculate_b(Double_t centrality) const
TF1 fCentrality
centrality as function of impact parameter
TH1 * GetCentralityFromHisto()
Double_t GetCrossSectionPerEvent() const
Double_t GetCrossSection() const
impact_parameter_distribution()
void SetDeltaB_WithConstantCrossSection(Double_t deltab, Double_t sigmaR=0)
virtual Double_t GetBinLowEdge(Int_t bin) const
virtual Double_t GetBinUpEdge(Int_t bin) const
virtual void SetParLimits(Int_t ipar, Double_t parmin, Double_t parmax)
virtual Double_t GetX(Double_t y, Double_t xmin=0, Double_t xmax=0, Double_t epsilon=1.E-10, Int_t maxiter=100, Bool_t logx=false) const
virtual void SetParName(Int_t ipar, const char *name)
virtual void SetParameters(const Double_t *params)
virtual void SetParNames(const char *name0="p0", const char *name1="p1", const char *name2="p2", const char *name3="p3", const char *name4="p4", const char *name5="p5", const char *name6="p6", const char *name7="p7", const char *name8="p8", const char *name9="p9", const char *name10="p10")
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 Double_t GetBinCenter(Int_t bin) const
TH1 * GetCumulative(Bool_t forward=kTRUE, const char *suffix="_cumulative") const
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
virtual Double_t GetEntries() const
virtual Double_t Integral(Int_t binx1, Int_t binx2, Option_t *option="") const
virtual Int_t GetMaximumBin() const
virtual void Scale(Double_t c1=1, Option_t *option="")
TObject * Clone(const char *newname="") const override
virtual void Warning(const char *method, const char *msgfmt,...) const
Double_t sigma_inel(Double_t *x, Double_t *p)
double ana_centrality(double *x, double *par)
Double_t smooth_pb(Double_t *x, Double_t *par)
Double_t DiLog(Double_t x)
Double_t Power(Double_t x, Double_t y)
constexpr Double_t TwoPi()