KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel > Class Template Reference

Detailed Description

template<class FittingFunction, class FluctuationKernel>
class KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >

Impact parameter distribution reconstruction from experimental data.

Template Parameters
FittingFunctionClass implementing a parameterization of the relationship between mean value of observables as a function of centrality, \(\bar{X}(c_b)\)
FluctuationKernelClass implementing fluctuations of the observable according to a given PDF

Implementation of the method of estimating impact parameter distributions for experimental data presented in the articles Das et al., Phys. Rev. C 97, 014905(2018) and Rogly et al., Phys. Rev. C 98, 024902(2018).

The aim is to reproduce the inclusive distribution \(P(X)\) of an observable assumed to have a monotonic dependence on impact parameter by adjusting the parameters of a fitting function defined by

\[ P(X) = \int P(X|b) P(b) db = \int P(X|c_b) dc_b \]

where \(c_b\) is the centrality defined by

\[ c_b = \int_0^b P(b) db \]

\(P(X|c_b)\) is the probability distribution of the observable as a function of the centrality, which is given by some FluctuationKernel which is a PDF for any value of \(X\) given the expected mean \(\bar{X}\) and reduced variance \(\sigma^2/\bar{X}\).

The FittingFunction class has to provide the functions

double meanX(double c) const
double redVar(double c) const

which describe how \(\bar{X}\) and \(\sigma^2/\bar{X}\). depend on centrality. It must also provide the following methods:

FittingFunction::FittingFunction() default constructor
FittingFunction::FittingFunction(const FittingFunction&) copy constructor, copy parameter values
constexpr int FittingFunction::npar() const number of parameters of function
void FittingFunction::fill_params_from_array(double*) takes values of parameters from array
void FittingFunction::fill_array_from_params(double*) const puts values of parameters in array
void FittingFunction::set_par_names(TF1&) const set names of parameters in TF1
void FittingFunction::set_initial_parameters(TH1*,TF1&) set initial values and limits on parameters to fit histogram
void FittingFunction::print_fit_params() const set initial values and limits on parameters to fit histogram
void FittingFunction::backup_params() const store current values of fit parameters (internally)
void FittingFunction::restore_params() const restore previously backed up values of fit parameters
void FittingFunction::normalise_shape_function() const normalize shape parameters

We provide the following FittingFunctions and FluctuationKernels:

FittingFunction Function
algebraic_fitting_function \(k(c_b) = (k_{\mathrm{max}}-k_{\mathrm{min}})\left[ 1 - {c_b}^{\alpha}\right]^{\gamma} + k_{\mathrm{min}}\)
rogly_fitting_function \(k(c_b) = k_0 \exp{\left(-\sum_{i=1}^{N} a_i c_b^i\right)}\)
FluctuationKernel Distribution Function
gamma_kernel Gamma \(f(X) = \frac{1}{\Gamma(k)\theta^k} X^{k-1} \exp{(-X/\theta)}\)
BD_kernel Binomial \(f(X) = \frac{n!}{X!(n-X)!} p^{X}(1-p)^{n-X}\)
NBD_kernel Negative binomial \(f(X) = \frac{(X+n-1)!}{X!(n-1)!} p^{n}(1-p)^{X}\)

Example of use

In all of the the following, the namespace prefix KVImpactParameters:: can be dropped if the following instruction is used:

Fitting a given inclusive P(X) distribution

First initialize the estimator with the required fitting function and kernel, such as for example:

--/ use 3rd order exponential polynomial function of Rogly et al with gamma kernel:
--/ or use algebraic function of Frankland et al with a binomial distribution kernel:
Impact parameter distribution reconstruction from experimental data.
Fluctuation kernel using gamma distribution for use with bayesian_estimator.
double gamma(double x)
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
TArc a

See rogly_fitting_function, algebraic_fitting_function, gamma_kernel and NBD_kernel for more details.

Assumng a pointer TH1* h to a histogram containing the inclusive distribution for an observable filled from data, the first step is to transform the histogram into a correctly normalized probability distribution (taking bin widths into account):

Then to begin the fitting process, call the method

(if the histogram to fit was already correctly normalised, you can skip the first method and call this one giving the histogram pointer as argument). This will prepare initial parameter values for the fit based on the histogram data, then perform a first fit attempt. As this first attempt is never successful, you should then open the Fit Panel by right-clicking on the histogram in the canvas, and continue fitting using "Previous Fit", adjusting the range of the fit, and if necessary the parameter limits, until a satisfactory fit is achieved.

Using the results of the fit

Once a fit has been successful, the bayesian_estimator object can be used to deduce impact parameter distributions etc. for the fitted observable. This can be just after performing the fit as in the previous section (after first calling update_fit_params() - otherwise the internal fit parameter values are not necessarily consistent with the last performed fit), or using the already known parameters from a previous fit. In the latter case, you should initialize the object using the appropriate FittingFunction constructor, e.g. for algebraic_fitting_function which requires 5 parameters \(\alpha,\gamma,\theta,X_{min},X_{max}\), you can initialise the estimator like so:

See the list of methods below which can then be used in order to exploit the fit result.

Definition at line 218 of file bayesian_estimator.h.

#include <bayesian_estimator.h>

Inheritance diagram for KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >:

Public Member Functions

 bayesian_estimator (Bool_t integer_variable=false)
 
 bayesian_estimator (const FittingFunction &previous_fit, Bool_t integer_variable=false)
 
virtual ~bayesian_estimator ()
 
void DrawBDistForSelection (TH1 *sel, TH1 *incl, double &mean, double &sigma, Option_t *opt="", Color_t color=kRed, const TString &title="")
 
void DrawBDistForSelectionFromIPHisto (TH1 *sel, TH1 *incl, double &mean, double &sigma, Option_t *opt="", Color_t color=kRed, const TString &title="")
 
double DrawBDistForXSelection (KVValueRange< double > Xrange, Option_t *opt="", Color_t color=kRed, const TString &title="")
 
void DrawCbDistForSelection (TH1 *sel, TH1 *incl, double &mean_cb, double &sigma_cb, Option_t *opt="", Color_t color=kRed, const TString &title="")
 
double DrawCbDistForXSelection (double X1, double X2, Option_t *opt="", Color_t color=kRed, const TString &title="")
 
void DrawFittedP_X (double norm=1.0, Option_t *opt="", Color_t color=kRed, const TString &title="")
 
void DrawMeanXvsCb (const TString &title="", Color_t color=-1, Option_t *opt="")
 
void DrawNormalisedMeanXvsb (const TString &title, Color_t color, Option_t *opt)
 
void FitHisto (TH1 *h=nullptr)
 
TF1GetB_dist_for_X_select ()
 
TF1GetFittedP_X (double norm=1.0)
 
impact_parameter_distributionGetIPDist ()
 
TF2GetJointProbabilityDistribution (KVValueRange< double > b_range, KVValueRange< double > X_range)
 
void GetMeanAndSigmaBDistForSelection (TH1 *sel, TH1 *incl, double &mean, double &sigma)
 
void GetMeanAndSigmaBDistForXSelection (double X1, double X2, double &mean, double &sigma)
 
TF1GetMeanXvsCb ()
 
TGraphGraphBDistForXSelection (KVValueRange< double > Xrange, int npts=500)
 
TGraphGraphMeanXvsb (int npts=500)
 
TGraphGraphP_XForGivenB (double b, KVValueRange< double > Xrange, int npts=500)
 
void Print (Option_t *="") const
 
void RenormaliseHisto (TH1 *h)
 
void SetIPDistFromHisto (TH1 *ip_histo)
 
void SetIPDistParams (double sigmaR, double deltab)
 
void update_fit_params ()
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor.
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type.
 
 KVBase (const KVBase &)
 copy ctor
 
virtual ~KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label.
 
virtual void Copy (TObject &) const
 Make a copy of this object.
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObjectGetObject () const
 
virtual const Char_tGetType () const
 
Bool_t HasLabel () const
 
virtual Bool_t IsCalled (const Char_t *name) const
 
Bool_t IsLabelled (const Char_t *l) const
 
virtual Bool_t IsType (const Char_t *typ) const
 
virtual void List ()
 
KVBaseoperator= (const KVBase &)
 copy assignment operator
 
Double_t ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const
 
void SetLabel (const Char_t *lab)
 
virtual void SetNumber (UInt_t num)
 
virtual void SetType (const Char_t *str)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 
void Clear (Option_t *option="") override
 
TObjectClone (const char *newname="") const override
 
Int_t Compare (const TObject *obj) const override
 
void Copy (TObject &named) const override
 
virtual void FillBuffer (char *&buffer)
 
const char * GetName () const override
 
const char * GetTitle () const override
 
ULong_t Hash () const override
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 
TNamedoperator= (const TNamed &rhs)
 
void Print (Option_t *option="") const override
 
virtual void SetName (const char *name)
 
virtual void SetNameTitle (const char *name, const char *title)
 
virtual void SetTitle (const char *title="")
 
virtual Int_t Sizeof () const
 
void Streamer (TBuffer &) override
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 
virtual ~TObject ()
 
void AbstractMethod (const char *method) const
 
virtual void AppendPad (Option_t *option="")
 
virtual void Browse (TBrowser *b)
 
ULong_t CheckedHash ()
 
virtual const char * ClassName () const
 
virtual void Delete (Option_t *option="")
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 
virtual void Draw (Option_t *option="")
 
virtual void DrawClass () const
 
virtual TObjectDrawClone (Option_t *option="") const
 
virtual void Dump () const
 
virtual void Error (const char *method, const char *msgfmt,...) const
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 
virtual TObjectFindObject (const char *name) const
 
virtual TObjectFindObject (const TObject *obj) const
 
virtual Option_tGetDrawOption () const
 
virtual const char * GetIconName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 
virtual Bool_t HandleTimer (TTimer *timer)
 
Bool_t HasInconsistentHash () const
 
virtual void Info (const char *method, const char *msgfmt,...) const
 
virtual Bool_t InheritsFrom (const char *classname) const
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 
virtual void Inspect () const
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 
virtual Bool_t IsEqual (const TObject *obj) const
 
virtual Bool_t IsFolder () const
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 
virtual Bool_t Notify ()
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, void *vp)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, void *vp)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 
virtual void Paint (Option_t *option="")
 
virtual void Pop ()
 
virtual Int_t Read (const char *name)
 
virtual void RecursiveRemove (TObject *obj)
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 
virtual void SetDrawOption (Option_t *option="")
 
virtual void SetUniqueID (UInt_t uid)
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 

Private Member Functions

double b_dist_for_arb_X_selection (double *x, double *p)
 
double b_dist_for_arb_X_selection_from_histo (double *x, double *p)
 
double b_dist_for_X_selection (double *x, double *p)
 
double cb_dist_for_arb_X_selection (double *x, double *p)
 
double cb_dist_for_X_selection (double *x, double *p)
 
double cb_integrated_P_X (double *x, double *p)
 
double mean_X_vs_b (double *x, double *par)
 
double mean_X_vs_cb (double *x, double *par)
 
double P_X_cb (double X, double cb)
 
double P_X_cb_for_integral (double *x, double *par)
 
double P_X_cb_for_TF2_obs_vs_b (double *x, double *)
 
double P_X_cb_for_X_integral (double *x, double *par)
 
double P_X_cb_for_X_integral_with_selection (double *x, double *par)
 
double P_X_from_fit (double *x, double *par)
 

Private Attributes

TF1 B_dist_for_arb_X_select
 
TF1 B_dist_for_arb_X_select_from_histo
 
TF1 B_dist_for_X_select
 
TF1 Cb_dist_for_arb_X_select
 
TF1 Cb_dist_for_X_select
 
Bool_t fIntegerVariable
 
impact_parameter_distribution fIPDist
 
TF1 fitted_P_X
 
TH1h_selection
 
TH1histo
 
TF1 mean_X_vs_b_function
 
TF1 mean_X_vs_cb_function
 
TF1 p_X_cb_integrator
 
TF1 P_X_fit_function
 
TF1 p_X_X_integrator
 
TF1 p_X_X_integrator_with_selection
 
std::vector< double > sel_rapp
 
FittingFunction theFitter
 
FluctuationKernel theKernel
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- Public Types inherited from TObject
enum  EDeprecatedStatusBits
 
enum  EStatusBits
 
- Static Public Member Functions inherited from KVBase
static Bool_t AreEqual (Double_t x, Double_t y, Long64_t maxdif=1)
 Comparison between two 64-bit floating-point values.
 
static void BackupFileWithDate (const Char_t *path)
 
static void CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE)
 
static void Deprecated (const char *method, const char *advice)
 
static Bool_t FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".")
 
static Bool_t FindExecutable (TString &exec, const Char_t *path="$(PATH)")
 
static const Char_tFindFile (const Char_t *search, TString &wfil)
 
static const Char_tGetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetDATABASEFilePath ()
 
static const Char_tGetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_tGetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval)
 
static Double_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval)
 
static const Char_tGetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.)
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date.
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build.
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time.
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...)
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build.
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build.
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string.
 
static const Char_tGetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetListOfPlugins (const Char_t *base)
 
static const Char_tGetListOfPluginURIs (const Char_t *base)
 
static const Char_tGetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_tGetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_tgitBranch ()
 Returns git branch of sources.
 
static const Char_tgitCommit ()
 Returns last git commit of sources.
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandlerLoadPlugin (const Char_t *base, const Char_t *uri="0")
 
static Bool_t OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="")
 
static void OpenTempFile (TString &base, std::ofstream &fp)
 
static void PrintSplashScreen ()
 Prints welcome message and infos on version etc.
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="")
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
 
static const Char_tWorkingDirectory ()
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 
static Bool_t GetObjectStat ()
 
static void SetDtorOnly (void *obj)
 
static void SetObjectStat (Bool_t stat)
 
- Public Attributes inherited from TObject
 kBitMask
 
 kCanDelete
 
 kCannotPick
 
 kHasUUID
 
 kInconsistent
 
 kInvalidObject
 
 kIsOnHeap
 
 kIsReferenced
 
 kMustCleanup
 
 kNoContextMenu
 
 kNotDeleted
 
 kObjInCanvas
 
 kOverwrite
 
 kSingleKey
 
 kWriteDelete
 
 kZombie
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 
void MakeZombie ()
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

Constructor & Destructor Documentation

◆ bayesian_estimator() [1/2]

template<class FittingFunction , class FluctuationKernel >
KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::bayesian_estimator ( Bool_t  integer_variable = false)
inline

Initialise estimator for fitting the inclusive distribution of an observable.

Parameters
[in]integer_variable[default:false] set true if the observable to be fitted only takes integer values

Definition at line 424 of file bayesian_estimator.h.

◆ bayesian_estimator() [2/2]

template<class FittingFunction , class FluctuationKernel >
KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::bayesian_estimator ( const FittingFunction &  previous_fit,
Bool_t  integer_variable = false 
)
inline

Initialise estimator with results of a previous fit.

Parameters
[in]previous_fitparameters of a previous fit
[in]integer_variable[default:false] set true if the observable to be fitted only takes integer values

Definition at line 450 of file bayesian_estimator.h.

◆ ~bayesian_estimator()

template<class FittingFunction , class FluctuationKernel >
virtual KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::~bayesian_estimator ( )
inlinevirtual

Definition at line 477 of file bayesian_estimator.h.

Member Function Documentation

◆ b_dist_for_arb_X_selection()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::b_dist_for_arb_X_selection ( double *  x,
double *  p 
)
inlineprivate

Function implementing the calculation of the impact parameter distribution \(P(b|\mathbb{S})\) for an arbitrary selection of events \(\mathbb{S}\)

\[ P(b|\mathbb{S})=P(b)\frac{\int P(X|b)\frac{P(X|\mathbb{S})}{P(X)}\,\mathrm{d}X}{\int P(X|\mathbb{S})\,\mathrm{d}X} \]

Returns
value of \(P(b|\mathbb{S})\) for impact parameter \(b\)
Parameters
[in]x[0]impact parameter \(b\)
[in]p[0],p[1]integration limits for \(X\), \([X_1,X_2]\)

Definition at line 390 of file bayesian_estimator.h.

◆ b_dist_for_arb_X_selection_from_histo()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::b_dist_for_arb_X_selection_from_histo ( double *  x,
double *  p 
)
inlineprivate

Function implementing the calculation of the impact parameter distribution \(P(b|\mathbb{S})\) for an arbitrary selection of events \(\mathbb{S}\)

\[ P(b|\mathbb{S})=P(b)\frac{\int P(X|b)\frac{P(X|\mathbb{S})}{P(X)}\,\mathrm{d}X}{\int P(X|\mathbb{S})\,\mathrm{d}X} \]

Returns
value of \(P(b|\mathbb{S})\) for impact parameter \(b\)
Parameters
[in]x[0]impact parameter \(b\)
[in]p[0],p[1]integration limits for \(X\), \([X_1,X_2]\)

Definition at line 405 of file bayesian_estimator.h.

◆ b_dist_for_X_selection()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::b_dist_for_X_selection ( double *  x,
double *  p 
)
inlineprivate

Function implementing the calculation of the impact parameter distribution \(P(b|X_{1}<X<X_{2})\) for events selected by cuts in \(X\), \(X_{1}<X<X_{2}\)

\[ P(b|X_{1}<X<X_{2})=\frac{P(b)}{c_{X_{1}}-c_{X_{2}}}\int_{X_{1}}^{X_{2}}P(X|b)\,\mathrm{d}X \]

Returns
value of \(P(b|X_{1}<X<X_{2})\) for impact parameter \(b\)
Parameters
[in]x[0]impact parameter \(b\)
[in]p[0],p[1]\(X_1\), \(X_2\)

Definition at line 374 of file bayesian_estimator.h.

◆ cb_dist_for_arb_X_selection()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::cb_dist_for_arb_X_selection ( double *  x,
double *  p 
)
inlineprivate

Function implementing the calculation of the centrality distribution \(P(c_b|\mathbb{S})\) for an arbitrary selection of events \(\mathbb{S}\)

\[ P(c_b|\mathbb{S})=\frac{\int P(X|c_b)\frac{P(X|\mathbb{S})}{P(X)}\,\mathrm{d}X}{\int P(X|\mathbb{S})\,\mathrm{d}X} \]

Returns
value of \(P(c_b|\mathbb{S})\) for centrality \(c_b\)
Parameters
[in]x[0]centrality \(c_b\)
[in]p[0],p[1]integration limits for \(X\), \([X_1,X_2]\)

num*=(1./histo->Integral("width"));

Definition at line 357 of file bayesian_estimator.h.

◆ cb_dist_for_X_selection()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::cb_dist_for_X_selection ( double *  x,
double *  p 
)
inlineprivate

Function implementing the calculation of the centrality distribution \(P(c_b|X_{1}<X<X_{2})\) for events selected by cuts in \(X\), \(X_{1}<X<X_{2}\)

\[ P(c_b|X_{1}<X<X_{2})=\frac{1}{c_{X_{1}}-c_{X_{2}}}\int_{X_{1}}^{X_{2}}P(X|c_b)\,\mathrm{d}X \]

Returns
value of \(P(c_b|X_{1}<X<X_{2})\) for centrality \(c_b\)
Parameters
[in]x[0]centrality \(c_b\)
[in]p[0],p[1]\(X_1\), \(X_2\)

Definition at line 339 of file bayesian_estimator.h.

◆ cb_integrated_P_X()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::cb_integrated_P_X ( double *  x,
double *  p 
)
inlineprivate

Function used to fit experimental \(P(X)\) distribution by integrating the distribution \(P(X|c_b)\)

\[ P(X)=\int P(X|c_b)\,\mathrm{d}c_b \]

Returns
value of \(P(X)\) at \(X\) for current fit parameters
Parameters
[in]x[0]\(X\)
[in]p[0],p[1],...,p[Npar-1]parameters of fitting function

Definition at line 316 of file bayesian_estimator.h.

◆ DrawBDistForSelection()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::DrawBDistForSelection ( TH1 sel,
TH1 incl,
double &  mean,
double &  sigma,
Option_t opt = "",
Color_t  color = kRed,
const TString title = "" 
)
inline

Draw impact parameter distribution (as differential cross-section) for an arbitrary selection \(\mathbb{S}\) of data,

\[ \frac{\mathrm{d}\sigma}{\mathrm{d}b}=\sigma_{\mathrm{tot}}P(b|\mathbb{S})=P(b)\frac{\int P(X|b)\frac{P(X|\mathbb{S})}{P(X)}\,\mathrm{d}X}{\int P(X|\mathbb{S})\,\mathrm{d}X} \]

Parameters
[in]selpointer to histogram containing observable distribution for selected events
[in]inclpointer to histogram containing inclusive observable distribution
[out]meanmean value of b distribution
[out]sigmastandard deviation of b distribution
[in]optdrawing option if required, e.g. "same"
[in]colorcolour to use for drawing distribution
[in]titletitle to affect to the drawn distribution
Note
Histograms sel and incl must have exactly the same axis definitions, binning etc.
To have absolute impact parameters in [fm], call SetIPDistParams() first with the total measured cross-section \(\sigma_R\) in [mb] and the desired fall-off parameter \(\Delta b\) in [fm] (see impact_parameter_distribution).

Definition at line 787 of file bayesian_estimator.h.

◆ DrawBDistForSelectionFromIPHisto()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::DrawBDistForSelectionFromIPHisto ( TH1 sel,
TH1 incl,
double &  mean,
double &  sigma,
Option_t opt = "",
Color_t  color = kRed,
const TString title = "" 
)
inline

Draw impact parameter distribution (as differential cross-section) for an arbitrary selection \(\mathbb{S}\) of data,

\[ \frac{\mathrm{d}\sigma}{\mathrm{d}b}=\sigma_{\mathrm{tot}}P(b|\mathbb{S})=P(b)\frac{\int P(X|b)\frac{P(X|\mathbb{S})}{P(X)}\,\mathrm{d}X}{\int P(X|\mathbb{S})\,\mathrm{d}X} \]

Parameters
[in]selpointer to histogram containing observable distribution for selected events
[in]inclpointer to histogram containing inclusive observable distribution
[out]meanmean value of b distribution
[out]sigmastandard deviation of b distribution
[in]optdrawing option if required, e.g. "same"
[in]colorcolour to use for drawing distribution
[in]titletitle to affect to the drawn distribution
Note
Histograms sel and incl must have exactly the same axis definitions, binning etc.
call SetIPDistFromHisto() first to set the impact parameter distribution (see impact_parameter_distribution).

Definition at line 854 of file bayesian_estimator.h.

◆ DrawBDistForXSelection()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::DrawBDistForXSelection ( KVValueRange< double >  Xrange,
Option_t opt = "",
Color_t  color = kRed,
const TString title = "" 
)
inline

Draw impact parameter distribution (as differential cross-section) for observable cuts \(X_1<X<X_2\)

\[ \frac{\mathrm{d}\sigma}{\mathrm{d}b}=\sigma_{\mathrm{tot}}P(b|X_{1}<X<X_{2})=\frac{P(b)}{c_{X_{1}}-c_{X_{2}}}\int_{X_{1}}^{X_{2}}P(X|b)\,\mathrm{d}X \]

Parameters
[in]X1lower limit for observable cut
[in]X2upper limit for observable cut
[in]optdrawing option if required, e.g. "same"
[in]colorcolour to use for drawing distribution
[in]titletitle to affect to the drawn distribution
Returns
maximum value of differential cross-section
Note
To have absolute impact parameters in [fm], call SetIPDistParams() first with the total measured cross-section \(\sigma_R\) in [mb] and the desired fall-off parameter \(\Delta b\) in [fm] (see impact_parameter_distribution).

Definition at line 721 of file bayesian_estimator.h.

◆ DrawCbDistForSelection()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::DrawCbDistForSelection ( TH1 sel,
TH1 incl,
double &  mean_cb,
double &  sigma_cb,
Option_t opt = "",
Color_t  color = kRed,
const TString title = "" 
)
inline

Draw centrality distribution for an arbitrary selection \(\mathbb{S}\) of data,

\[ P(c_b|\mathbb{S})=\frac{\int P(X|c_b)\frac{P(X|\mathbb{S})}{P(X)}\,\mathrm{d}X}{\int P(X|\mathbb{S})\,\mathrm{d}X} \]

Parameters
[in]selpointer to histogram containing observable distribution for selected events
[in]inclpointer to histogram containing inclusive observable distribution
[out]mean_cbmean value of c_b distribution
[out]sigma_cbstandard deviation of c_b distribution
[in]optdrawing option if required, e.g. "same"
[in]colorcolour to use for drawing distribution
[in]titletitle to affect to the drawn distribution
Note
Histograms sel and incl must have exactly the same axis definitions, binning etc.
  • extract first and last (not empty) bins -
  • define the P(X|S)/P(X) vector (used for integrand) -
  • set parameters -
  • fill the graph -
  • compute the standard deviation -
  • draw and options -

Definition at line 650 of file bayesian_estimator.h.

◆ DrawCbDistForXSelection()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::DrawCbDistForXSelection ( double  X1,
double  X2,
Option_t opt = "",
Color_t  color = kRed,
const TString title = "" 
)
inline

Draw centrality distribution for observable cuts \(X_1<X<X_2\)

\[ P(c_b|X_{1}<X<X_{2})=\frac{1}{c_{X_{1}}-c_{X_{2}}}\int_{X_{1}}^{X_{2}}P(X|c_b)\,\mathrm{d}X \]

Parameters
[in]X1lower limit for observable cut
[in]X2upper limit for observable cut
[in]optdrawing option if required, e.g. "same"
[in]colorcolour to use for drawing distribution
[in]titletitle to affect to the drawn distribution
Returns
maximum value of probability distribution

Definition at line 627 of file bayesian_estimator.h.

◆ DrawFittedP_X()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::DrawFittedP_X ( double  norm = 1.0,
Option_t opt = "",
Color_t  color = kRed,
const TString title = "" 
)
inline

Draw the distribution \(P(X)\) resulting from the fit to the experimental distribution

Parameters
[in]normoptional normalisation parameter e.g. if differential cross-section required: norm= \(\sigma_R\)
[in]optdrawing option if required, e.g. "same"
[in]colorcolour to use for drawing distribution
[in]titletitle to affect to the drawn distribution

Definition at line 985 of file bayesian_estimator.h.

◆ DrawMeanXvsCb()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::DrawMeanXvsCb ( const TString title = "",
Color_t  color = -1,
Option_t opt = "" 
)
inline

Draw the dependence of the mean value of the observable with centrality, \(\bar{X}(c_b)\), given by

\[ \bar{X}(c_b)=\theta k(c_b) \]

Parameters
[in]titletitle to affect to the drawn function
[in]colorcolour to use for drawing function
[in]optdrawing option if required, e.g. "same"

Definition at line 562 of file bayesian_estimator.h.

◆ DrawNormalisedMeanXvsb()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::DrawNormalisedMeanXvsb ( const TString title,
Color_t  color,
Option_t opt 
)
inline

Draw the dependence of the mean value of the observable with impact parameter, \(\bar{X}(b)\), given by

\[ \bar{X}(b)=\theta k(b) \]

but with \(\bar{X}\) normalised so that \(X_{\mathrm{min}}=0\) and \(X_{\mathrm{max}}=1\), allowing to compare shapes for different fits

Parameters
[in]titletitle to affect to the drawn function
[in]colorcolour to use for drawing function
[in]optdrawing option if required, e.g. "same"
Note
To have absolute impact parameters in [fm], call SetIPDistParams() first with the total measured cross-section \(\sigma_R\) in [mb] and the desired fall-off parameter \(\Delta b\) in [fm] (see impact_parameter_distribution).

Definition at line 1026 of file bayesian_estimator.h.

◆ FitHisto()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::FitHisto ( TH1 h = nullptr)
inline

Method used to fit a data histogram of \(P(X)\) in order to deduce the parameters of \(P(X|b)\).

Prepare initial parameter values for fit based on data in histogram, then perform a first fit attempt. As this first attempt is never successful, you should then open the Fit Panel by right-clicking on the histogram in the canvas, and continue fitting using "Previous Fit", adjusting the range of the fit, and if necessary the parameter limits, until a satisfactory fit is achieved.

Note
Call RenormaliseHisto() first if histo is not a correctly normalised probability distribution
Parameters
[in]hpointer to histogram to fit. if not given, use internal histogram set by previous call to RenormaliseHisto()

Definition at line 491 of file bayesian_estimator.h.

◆ GetB_dist_for_X_select()

template<class FittingFunction , class FluctuationKernel >
TF1 & KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetB_dist_for_X_select ( )
inline

Definition at line 757 of file bayesian_estimator.h.

◆ GetFittedP_X()

template<class FittingFunction , class FluctuationKernel >
TF1 * KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetFittedP_X ( double  norm = 1.0)
inline

Access the distribution \(P(X)\) resulting from the fit to the experimental distribution

Parameters
[in]normoptional normalisation parameter e.g. if differential cross-section required: norm= \(\sigma_R\)
Returns
pointer to TF1 function object

Definition at line 1000 of file bayesian_estimator.h.

◆ GetIPDist()

template<class FittingFunction , class FluctuationKernel >
impact_parameter_distribution & KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetIPDist ( )
inline

Access the impact parameter distribution assumed to correspond to the full inclusive distribution of \(X\), \(P(X)\).

Returns
reference to impact_parameter_distribution object
See also
impact_parameter_distribution

Definition at line 551 of file bayesian_estimator.h.

◆ GetJointProbabilityDistribution()

template<class FittingFunction , class FluctuationKernel >
TF2 * KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetJointProbabilityDistribution ( KVValueRange< double >  b_range,
KVValueRange< double >  X_range 
)
inline

Create and return a 2D function representing the joint probability \(P(X,b)\) with \(b\) on the abscissa and the observable on the ordinate

Definition at line 1057 of file bayesian_estimator.h.

◆ GetMeanAndSigmaBDistForSelection()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetMeanAndSigmaBDistForSelection ( TH1 sel,
TH1 incl,
double &  mean,
double &  sigma 
)
inline

Calculate mean and standard deviation of impact parameter distribution for an arbitrary selection \(\mathbb{S}\) of data

\[ P(b|\mathbb{S})=P(b)\frac{\int P(X|b)\frac{P(X|\mathbb{S})}{P(X)}\,\mathrm{d}X}{\int P(X|\mathbb{S})\,\mathrm{d}X} \]

Parameters
[in]selpointer to histogram containing observable distribution for selected events
[in]inclpointer to histogram containing inclusive observable distribution
[out]meanmean value of impact parameter for selection, \(\langle b\rangle\)
[out]sigmastandard deviation of impact parameter distribution
Note
Histograms sel and incl must have exactly the same axis definitions, binning etc.
To have absolute impact parameters in [fm], call SetIPDistParams() first with the total measured cross-section \(\sigma_R\) in [mb] and the desired fall-off parameter \(\Delta b\) in [fm] (see impact_parameter_distribution).

Definition at line 918 of file bayesian_estimator.h.

◆ GetMeanAndSigmaBDistForXSelection()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetMeanAndSigmaBDistForXSelection ( double  X1,
double  X2,
double &  mean,
double &  sigma 
)
inline

Calculate mean and standard deviation of impact parameter distribution for observable cuts \(X_1<X<X_2\)

\[ P(b|X_{1}<X<X_{2})=\frac{P(b)}{c_{X_{1}}-c_{X_{2}}}\int_{X_{1}}^{X_{2}}P(X|b)\,\mathrm{d}X \]

Parameters
[in]X1lower limit for observable cut
[in]X2upper limit for observable cut
[out]meanmean value of impact parameter for selection, \(\langle b\rangle\)
[out]sigmastandard deviation of impact parameter distribution
Note
To have absolute impact parameters in [fm], call SetIPDistParams() first with the total measured cross-section \(\sigma_R\) in [mb] and the desired fall-off parameter \(\Delta b\) in [fm] (see impact_parameter_distribution).

Definition at line 963 of file bayesian_estimator.h.

◆ GetMeanXvsCb()

template<class FittingFunction , class FluctuationKernel >
TF1 & KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetMeanXvsCb ( )
inline

Access the function implementing the dependence of the mean value of the observable with centrality, \(\bar{X}(c_b)\), given by

\[ \bar{X}(c_b)=\theta k(c_b) \]

Returns
reference to TF1 function object

Definition at line 575 of file bayesian_estimator.h.

◆ GraphBDistForXSelection()

template<class FittingFunction , class FluctuationKernel >
TGraph * KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GraphBDistForXSelection ( KVValueRange< double >  Xrange,
int  npts = 500 
)
inline

Graph impact parameter distribution (as differential cross-section) for observable cuts \(X_1<X<X_2\)

\[ \frac{\mathrm{d}\sigma}{\mathrm{d}b}=\sigma_{\mathrm{tot}}P(b|X_{1}<X<X_{2})=\frac{P(b)}{c_{X_{1}}-c_{X_{2}}}\int_{X_{1}}^{X_{2}}P(X|b)\,\mathrm{d}X \]

Parameters
[in]Xrangerange of X for observable cut
Returns
graph of differential cross-section
Note
To have absolute impact parameters in [fm], call SetIPDistParams() first with the total measured cross-section \(\sigma_R\) in [mb] and the desired fall-off parameter \(\Delta b\) in [fm] (see impact_parameter_distribution).

Definition at line 761 of file bayesian_estimator.h.

◆ GraphMeanXvsb()

template<class FittingFunction , class FluctuationKernel >
TGraph * KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GraphMeanXvsb ( int  npts = 500)
inline

Create a graph of the dependence of the mean value of the observable with impact parameter, \(\bar{X}(b)\), given by

\[ \bar{X}(b)=\theta k(b) \]

Note
To have absolute impact parameters in [fm], call SetIPDistParams() first with the total measured cross-section \(\sigma_R\) in [mb] and the desired fall-off parameter \(\Delta b\) in [fm] (see impact_parameter_distribution).

Definition at line 589 of file bayesian_estimator.h.

◆ GraphP_XForGivenB()

template<class FittingFunction , class FluctuationKernel >
TGraph * KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GraphP_XForGivenB ( double  b,
KVValueRange< double >  Xrange,
int  npts = 500 
)
inline

Draw conditional probability distribution of observable, \(P(X|b)\), for a single value of \(b\).

Parameters
[in]bimpact parameter
[in]Xrangerange of values of observable for graph
[in]nptsnumber of points used in graph

Definition at line 1009 of file bayesian_estimator.h.

◆ mean_X_vs_b()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::mean_X_vs_b ( double *  x,
double *  par 
)
inlineprivate

Function used to fit/draw dependence of mean observable on impact parameter, \(\bar{X}(b)\)

Parameters
[in]x[0]impact parameter \(b\)
[in]p[0],p[1],...,p[Npar-1]parameters of fitting function
Returns
mean value of \(X\) for given centrality

Definition at line 253 of file bayesian_estimator.h.

◆ mean_X_vs_cb()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::mean_X_vs_cb ( double *  x,
double *  par 
)
inlineprivate

Function used to fit/draw dependence of mean observable on centrality, \(\bar{X}(c_b)\)

Parameters
[in]x[0]centrality \(c_b\)
[in]p[0],p[1],...,p[Npar-1]parameters of fitting function
Returns
mean value of \(X\) for given centrality

Definition at line 243 of file bayesian_estimator.h.

◆ P_X_cb()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::P_X_cb ( double  X,
double  cb 
)
inlineprivate
Returns
probability of observable \(X\) for centrality \(c_b\), using FluctuationKernel
Parameters
[in]Xthe value of the observable \(X\)
[in]cbthe centrality \(c_b\)

Definition at line 263 of file bayesian_estimator.h.

◆ P_X_cb_for_integral()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::P_X_cb_for_integral ( double *  x,
double *  par 
)
inlineprivate

Function used for the integrand of

\[ P(X)=\int P(X|c_b)\,\mathrm{d}c_b \]

Parameters
[in]x[0]centrality \(c_b\)
[in]par[0]observable value, \(X\)

Definition at line 281 of file bayesian_estimator.h.

◆ P_X_cb_for_TF2_obs_vs_b()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::P_X_cb_for_TF2_obs_vs_b ( double *  x,
double *   
)
inlineprivate
Returns
conditional probability distribution \(P(X|b)\), X is ordinate, b is abscissa
Parameters
[in]x[0]impact parameter b
[in]x[1]value of observable X

Definition at line 271 of file bayesian_estimator.h.

◆ P_X_cb_for_X_integral()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::P_X_cb_for_X_integral ( double *  x,
double *  par 
)
inlineprivate

Function used for the integrand of

\[ \int P(X|c_b)\,\mathrm{d}X \]

used to calculate centrality distributions for data.

Parameters
[in]x[0]observable \(X\)
[in]par[0]centrality value \(c_b\)

Definition at line 291 of file bayesian_estimator.h.

◆ P_X_cb_for_X_integral_with_selection()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::P_X_cb_for_X_integral_with_selection ( double *  x,
double *  par 
)
inlineprivate

Function used for the integrand of

\[ \int P(X|c_b)\frac{P(X|\mathbb{S})}{P(X)}\,\mathrm{d}X \]

used to calculate centrality distributions for data selection \(\mathbb{S}\)

Parameters
[in]x[0]observable \(X\)
[in]par[0]centrality value \(c_b\)

Definition at line 302 of file bayesian_estimator.h.

◆ P_X_from_fit()

template<class FittingFunction , class FluctuationKernel >
double KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::P_X_from_fit ( double *  x,
double *  par 
)
inlineprivate

Same as cb_integrated_P_X(), but just using current values of parameters. Used to display fit result.

Parameters
[in]x[0]\(X\)
[in]par[0]normalisation factor
Returns
value of \(P(X)\) at \(X\) for current fit parameters

Definition at line 330 of file bayesian_estimator.h.

◆ Print()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::Print ( Option_t = "") const
inlinevirtual

Print informations on current values of fit parameters

Reimplemented from KVBase.

Definition at line 1021 of file bayesian_estimator.h.

◆ RenormaliseHisto()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::RenormaliseHisto ( TH1 h)
inline

Turn data histogram for observable into probability distribution \(P(X)\) (taking account of binning).

After calling this method, the histogram fitting procedure can be started by calling FitHisto().

Parameters
[in]hpointer to histogram to normalise

Definition at line 479 of file bayesian_estimator.h.

◆ SetIPDistFromHisto()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::SetIPDistFromHisto ( TH1 ip_histo)
inline

Any distributions of \(b\) deduced from data depend on the impact parameter distribution \(P(b)\) which is assumed for the full inclusive dataset, i.e. for all collisions contributing to the \(P(X)\) distribution fitted in order to deduce the parameters for \(k(c_b)\) and \(\theta\).

By default this is a triangular distribution between \(b=0\) & \(b=1\) fm with cross-section 31.4 mb, which can be treated as though it were the sharp cut-off distribution for \(\hat{b}=b/b_{\mathrm{max}}\).

Todo:
The differential cross-section in this case is incorrect, although mean values and variaces are calculated correctly

To obtain absolute impact parameters, call this method with

Parameters
[in]ip_histothe impact parameter distribution in [mb]

Definition at line 532 of file bayesian_estimator.h.

◆ SetIPDistParams()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::SetIPDistParams ( double  sigmaR,
double  deltab 
)
inline

Any distributions of \(b\) deduced from data depend on the impact parameter distribution \(P(b)\) which is assumed for the full inclusive dataset, i.e. for all collisions contributing to the \(P(X)\) distribution fitted in order to deduce the parameters for \(k(c_b)\) and \(\theta\).

By default this is a triangular distribution between \(b=0\) & \(b=1\) fm with cross-section 31.4 mb, which can be treated as though it were the sharp cut-off distribution for \(\hat{b}=b/b_{\mathrm{max}}\).

Todo:
The differential cross-section in this case is incorrect, although mean values and variaces are calculated correctly

To obtain absolute impact parameters, call this method with

Parameters
[in]sigmaRtotal reaction cross-section \(\sigma_R\) in [mb]
[in]deltabfall-off parameter for distribution \(\Delta b\) in [fm]
See also
impact_parameter_distribution

Definition at line 510 of file bayesian_estimator.h.

◆ update_fit_params()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::update_fit_params ( )
inline

Retrieve latest values of fit parameters from fitting function stored with histogram, in case the internal parameters do not correspond to them.

Note
This method may be obsolete, the problem doesn't seem to occur anymore

Definition at line 609 of file bayesian_estimator.h.

Member Data Documentation

◆ B_dist_for_arb_X_select

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::B_dist_for_arb_X_select
private

Definition at line 236 of file bayesian_estimator.h.

◆ B_dist_for_arb_X_select_from_histo

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::B_dist_for_arb_X_select_from_histo
private

Definition at line 237 of file bayesian_estimator.h.

◆ B_dist_for_X_select

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::B_dist_for_X_select
private

Definition at line 235 of file bayesian_estimator.h.

◆ Cb_dist_for_arb_X_select

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::Cb_dist_for_arb_X_select
private

Definition at line 234 of file bayesian_estimator.h.

◆ Cb_dist_for_X_select

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::Cb_dist_for_X_select
private

Definition at line 233 of file bayesian_estimator.h.

◆ fIntegerVariable

template<class FittingFunction , class FluctuationKernel >
Bool_t KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::fIntegerVariable
private

Definition at line 239 of file bayesian_estimator.h.

◆ fIPDist

template<class FittingFunction , class FluctuationKernel >
impact_parameter_distribution KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::fIPDist
private

Definition at line 241 of file bayesian_estimator.h.

◆ fitted_P_X

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::fitted_P_X
private

Definition at line 232 of file bayesian_estimator.h.

◆ h_selection

template<class FittingFunction , class FluctuationKernel >
TH1* KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::h_selection
private

Definition at line 224 of file bayesian_estimator.h.

◆ histo

template<class FittingFunction , class FluctuationKernel >
TH1* KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::histo
private

Definition at line 223 of file bayesian_estimator.h.

◆ mean_X_vs_b_function

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::mean_X_vs_b_function
private

Definition at line 229 of file bayesian_estimator.h.

◆ mean_X_vs_cb_function

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::mean_X_vs_cb_function
private

Definition at line 228 of file bayesian_estimator.h.

◆ p_X_cb_integrator

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::p_X_cb_integrator
private

Definition at line 226 of file bayesian_estimator.h.

◆ P_X_fit_function

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::P_X_fit_function
private

Definition at line 227 of file bayesian_estimator.h.

◆ p_X_X_integrator

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::p_X_X_integrator
private

Definition at line 230 of file bayesian_estimator.h.

◆ p_X_X_integrator_with_selection

template<class FittingFunction , class FluctuationKernel >
TF1 KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::p_X_X_integrator_with_selection
private

Definition at line 231 of file bayesian_estimator.h.

◆ sel_rapp

template<class FittingFunction , class FluctuationKernel >
std::vector<double> KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::sel_rapp
private

Definition at line 225 of file bayesian_estimator.h.

◆ theFitter

template<class FittingFunction , class FluctuationKernel >
FittingFunction KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::theFitter
private

Definition at line 220 of file bayesian_estimator.h.

◆ theKernel

template<class FittingFunction , class FluctuationKernel >
FluctuationKernel KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::theKernel
private

Definition at line 221 of file bayesian_estimator.h.