KaliVeda
Toolkit for HIC analysis
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)
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:

bayesian_estimator<algebraic_fitting_function, gamma_kernel> ipd({alpha,gamma,theta,Xmin,Xmax});

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

Definition at line 221 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 ()
 
KVNameValueList GetFitParameters () const
 
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 (KVValueRange< double > Xrange, double &mean, double &sigma)
 
TF1GetMeanXvsCb ()
 
TGraphGraphBDistForXSelection (KVValueRange< double > Xrange, int npts=500)
 
TGraphErrorsGraphMeanbvsX ()
 
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)
 
TH2TransformXaxisToBaxis (const TH2 *obs_vs_X, int baxis_nbins=100, double baxis_bmin=0, double baxis_bmax=1)
 
void update_fit_params ()
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor. More...
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type. More...
 
 KVBase (const KVBase &)
 copy ctor More...
 
void Clear (Option_t *opt="") override
 Clear object properties : name, type/title, number, label. More...
 
void Copy (TObject &) const override
 Make a copy of this object. More...
 
const Char_tGetLabel () const
 
UInt_t GetNumber () 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 More...
 
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 ()
 
TObjectClone (const char *newname="") const override
 
Int_t Compare (const TObject *obj) 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)
 
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. More...
 
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 KVString &class_name, KVString &imp_file, KVString &dec_file, const KVString &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 KVString GetDataSetEnv (const KVString &dataset, const KVString &type, const char *defval)
 
template<typename ValType >
static ValType GetDataSetEnv (const KVString &dataset, const KVString &type, const ValType &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.) More...
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build. More...
 
static int GetKVMajorVersion ()
 
static int GetKVMinorVersion ()
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string. More...
 
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. More...
 
static const Char_tgitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsEnvInit ()
 
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. More...
 
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 427 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 453 of file bayesian_estimator.h.

◆ ~bayesian_estimator()

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

Definition at line 480 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 393 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 408 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 377 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 360 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 342 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 319 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 847 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 914 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 781 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 710 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 687 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 1058 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 567 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 1104 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 494 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 817 of file bayesian_estimator.h.

◆ GetFitParameters()

template<class FittingFunction , class FluctuationKernel >
KVNameValueList KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetFitParameters ( ) const
inline

Returns list of fit parameters as named values

Definition at line 1099 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 1073 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 556 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 1135 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 978 of file bayesian_estimator.h.

◆ GetMeanAndSigmaBDistForXSelection()

template<class FittingFunction , class FluctuationKernel >
void KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GetMeanAndSigmaBDistForXSelection ( KVValueRange< double >  Xrange,
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 1023 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 580 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 821 of file bayesian_estimator.h.

◆ GraphMeanbvsX()

template<class FittingFunction , class FluctuationKernel >
TGraphErrors* KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::GraphMeanbvsX ( )
inline

Produce a graph of mean impact parameter vs. X

Definition at line 642 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 594 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 1082 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 256 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 246 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 266 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 284 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 274 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 294 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 305 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 333 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 1094 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 482 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 537 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 515 of file bayesian_estimator.h.

◆ TransformXaxisToBaxis()

template<class FittingFunction , class FluctuationKernel >
TH2* KVImpactParameters::bayesian_estimator< FittingFunction, FluctuationKernel >::TransformXaxisToBaxis ( const TH2 obs_vs_X,
int  baxis_nbins = 100,
double  baxis_bmin = 0,
double  baxis_bmax = 1 
)
inline

Take a 2D histogram of some observable as a function of X. Generate a new 2D histogram of the observable's dependence on b.

From an original idea by Caterina Ciampi.

Definition at line 614 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 669 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 239 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 240 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 238 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 237 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 236 of file bayesian_estimator.h.

◆ fIntegerVariable

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

Definition at line 242 of file bayesian_estimator.h.

◆ fIPDist

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

Definition at line 244 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 235 of file bayesian_estimator.h.

◆ h_selection

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

Definition at line 227 of file bayesian_estimator.h.

◆ histo

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

Definition at line 226 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 232 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 231 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 229 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 230 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 233 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 234 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 228 of file bayesian_estimator.h.

◆ theFitter

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

Definition at line 223 of file bayesian_estimator.h.

◆ theKernel

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

Definition at line 224 of file bayesian_estimator.h.