KaliVeda
Toolkit for HIC analysis
|
Class implementing parametrizable impact parameter distributions.
Unbiased impact parameter distributions are determined by simple geometric considerations,
\[ P(b)\,\mathrm{d}b=\frac{2\pi b}{\sigma_{R}}\,\mathrm{d}b \]
The sharp cut-off approximation assumes that the measured reaction cross-section \(\sigma_R\) for any selected data has a triangular distribution up to the impact parameter \(b_{\mathrm{max}}\) where \(\sigma_R=\pi b^2_{\mathrm{max}}\) and the centrality is given in this case by \(c_b=(b/b_{\mathrm{max}})^2\).
More generally, simulations of reactions detected by large multidetector arrays operating with a minimum bias multiplicity trigger indicate that the impact parameter distribution for the measured collisions is triangular with a more gradual fall-off at the largest impact parameters, and can be well-described by the distribution
\[ P(b)=\frac{2\pi b}{\sigma_{R}}\left[1+\exp\left(\frac{b-b_{0}}{\Delta b}\right)\right]^{-1} \]
In this case the total reaction cross-section is given by
\[ \sigma_{R}=-2\pi(\Delta b)^{2}\mathrm{Li}_{2}\left(-\exp\left(\frac{b_{0}}{\Delta b}\right)\right) \]
and the centrality is related to impact parameter by
\[ c_{b}=\frac{2\pi(\Delta b)^{2}}{\sigma_{R}}\left[\mathrm{-Li}_{2}\left(-\exp\left(\frac{b_{0}}{\Delta b}\right)\right)-\frac{\pi^{2}}{6}+\frac{(b^{2}-b_{0}^{2})}{2(\Delta b)^{2}}-\frac{b}{\Delta b}\ln\left(1+\exp\left((b-b_{0})/\Delta b\right)\right)-\mathrm{Li}_{2}\left(-\mathrm{e}^{(b-b_{0})/\Delta b}\right)\right] \]
Definition at line 44 of file impact_parameter_distribution.h.
#include <impact_parameter_distribution.h>
Public Member Functions | |
impact_parameter_distribution () | |
impact_parameter_distribution (TH1 *) | |
virtual | ~impact_parameter_distribution () |
Double_t | Calculate_b (Double_t centrality) const |
void | Draw (Option_t *opt="") |
void | FitIPDist (TH1 *) |
Double_t | GetB0 () const |
const TF1 & | GetCentrality () |
TH1 * | GetCentralityFromHisto () |
Double_t | GetCrossSection () const |
Double_t | GetCrossSectionPerEvent () const |
Double_t | GetDeltaB () const |
Double_t | GetDifferentialCrossSection (double b) const |
Double_t | GetDifferentialCrossSectionFromHisto (double bb) |
TF1 & | GetIPDist () |
Double_t | GetRelativeCrossSection (double b) const |
const TF1 & | GetSigmaR () |
void | MakeDifferentialCrossSection () |
void | NormalizeIPDistToCrossSection () |
void | SetB0 (Double_t x) |
void | SetDeltaB (Double_t x) |
void | SetDeltaB_WithConstantCrossSection (Double_t deltab, Double_t sigmaR=0) |
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_t * | GetLabel () const |
UInt_t | GetNumber () const |
UInt_t | GetNumberOfObjects () const |
virtual TObject * | GetObject () const |
virtual const Char_t * | GetType () 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 () |
KVBase & | operator= (const KVBase &) |
copy assignment operator | |
virtual void | Print (Option_t *option="") const |
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 |
TObject * | Clone (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 |
TClass * | IsA () const override |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
TNamed & | operator= (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 | DrawClass () const |
virtual TObject * | DrawClone (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 TObject * | FindObject (const char *name) const |
virtual TObject * | FindObject (const TObject *obj) const |
virtual Option_t * | GetDrawOption () const |
virtual const char * | GetIconName () const |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
virtual Option_t * | GetOption () 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) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (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 Attributes | |
TF1 | fCentrality |
centrality as function of impact parameter | |
TH1 * | fHisto |
! last fitted histogram | |
TF1 | fIPdist |
impact parameter distribution | |
TF1 | fSigmaR |
total reaction cross section | |
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_t * | FindFile (const Char_t *search, TString &wfil) |
static const Char_t * | GetBINDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetDATABASEFilePath () |
static const Char_t * | GetDATADIRFilePath (const Char_t *namefile="") |
static Bool_t | GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval) |
static const Char_t * | GetDataSetEnv (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_t * | GetETCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetExampleFilePath (const Char_t *library, const Char_t *namefile) |
Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) | |
static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetKVBuildDate () |
Returns KaliVeda build date. | |
static const Char_t * | GetKVBuildDir () |
Returns top-level directory used for build. | |
static const Char_t * | GetKVBuildTime () |
Returns KaliVeda build time. | |
static const Char_t * | GetKVBuildType () |
Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) | |
static const Char_t * | GetKVBuildUser () |
Returns username of person who performed build. | |
static const Char_t * | GetKVSourceDir () |
Returns top-level directory of source tree used for build. | |
static const Char_t * | GetKVVersion () |
Returns KaliVeda version string. | |
static const Char_t * | GetLIBDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetListOfPlugins (const Char_t *base) |
static const Char_t * | GetListOfPluginURIs (const Char_t *base) |
static const Char_t * | GetPluginURI (const Char_t *base, const Char_t *plugin) |
static void | GetTempFileName (TString &base) |
static const Char_t * | GetTEMPLATEDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetWORKDIRFilePath (const Char_t *namefile="") |
static const Char_t * | gitBranch () |
Returns git branch of sources. | |
static const Char_t * | gitCommit () |
Returns last git commit of sources. | |
static void | InitEnvironment () |
static bool | is_gnuinstall () |
static Bool_t | IsThisAPlugin (const TString &uri, TString &base) |
static TPluginHandler * | LoadPlugin (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_t * | WorkingDirectory () |
Static Public Member Functions inherited from TNamed | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
static TClass * | Class () |
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 | |
KVImpactParameters::impact_parameter_distribution::impact_parameter_distribution | ( | ) |
Initialize a default distribution which is triangular (sharp cut-off approximation) with \(b_0=1\) and \(\Delta b=0\).
Definition at line 95 of file impact_parameter_distribution.cpp.
KVImpactParameters::impact_parameter_distribution::impact_parameter_distribution | ( | TH1 * | h | ) |
Fit \(P(b)\) to the distribution in the histogram
[in] | h | histogram containing impact parameter distribution |
Definition at line 118 of file impact_parameter_distribution.cpp.
|
inlinevirtual |
Definition at line 55 of file impact_parameter_distribution.h.
Double_t KVImpactParameters::impact_parameter_distribution::Calculate_b | ( | Double_t | centrality | ) | const |
[in] | centrality | value of \(c_b\) |
Definition at line 214 of file impact_parameter_distribution.cpp.
Draw the impact parameter distribution (differential cross-section in [mb fm \({}^{-1}\)])
[in] | opt | Usual drawing option, passed to TF1::Draw() |
Reimplemented from TObject.
Definition at line 95 of file impact_parameter_distribution.h.
Fit impact parameter distribution given in histogram.
[in] | h | histogram containing impact parameter distribution |
Definition at line 139 of file impact_parameter_distribution.cpp.
|
inline |
Definition at line 60 of file impact_parameter_distribution.h.
|
inline |
Definition at line 107 of file impact_parameter_distribution.h.
TH1 * KVImpactParameters::impact_parameter_distribution::GetCentralityFromHisto | ( | ) |
Call this method to use the (model-dependent) histogram containing the impact parameter distribution to compute the centrality
Definition at line 228 of file impact_parameter_distribution.cpp.
Double_t KVImpactParameters::impact_parameter_distribution::GetCrossSection | ( | ) | const |
Definition at line 165 of file impact_parameter_distribution.cpp.
Double_t KVImpactParameters::impact_parameter_distribution::GetCrossSectionPerEvent | ( | ) | const |
Definition at line 179 of file impact_parameter_distribution.cpp.
|
inline |
Definition at line 65 of file impact_parameter_distribution.h.
|
inline |
Definition at line 129 of file impact_parameter_distribution.h.
|
inline |
Call this method to evaluate P(b) directly from the (model-dependent) histogram containing the impact parameter distribution
Definition at line 151 of file impact_parameter_distribution.h.
|
inline |
Definition at line 85 of file impact_parameter_distribution.h.
|
inline |
Definition at line 122 of file impact_parameter_distribution.h.
|
inline |
Definition at line 101 of file impact_parameter_distribution.h.
|
inline |
Call this method to ensure that the distribution returned by GetIPDist() is indeed the differential cross-section in [mb fm \({}^{-1}\)].
This is normally the default if parameters like \(b_0\) or \(\Delta b\) are set by hand, but not if the parameters were deduced from a fit to a histogram: in this case the distribution has an arbitrary normalization factor in order to fit the histogram.
Definition at line 138 of file impact_parameter_distribution.h.
|
inline |
Changes impact parameter distribution from differential cross-section to probability distribution \(P(b)\)
Definition at line 115 of file impact_parameter_distribution.h.
[in] | x | value of \(b_0\) |
Definition at line 71 of file impact_parameter_distribution.h.
[in] | x | value of \(\Delta b\) |
Definition at line 77 of file impact_parameter_distribution.h.
void KVImpactParameters::impact_parameter_distribution::SetDeltaB_WithConstantCrossSection | ( | Double_t | deltab, |
Double_t | sigmaR = 0 |
||
) |
Changes \(\Delta b\) and \(b_0\) for a given total cross-section.
[in] | deltab | new value of \(\Delta b\) |
[in] | sigmaR | required total cross-section \(\sigma_R\). If sigmaR=0 (default), keep current total cross section |
Definition at line 195 of file impact_parameter_distribution.cpp.
|
private |
centrality as function of impact parameter
Definition at line 50 of file impact_parameter_distribution.h.
|
private |
! last fitted histogram
Definition at line 47 of file impact_parameter_distribution.h.
|
private |
impact parameter distribution
Definition at line 48 of file impact_parameter_distribution.h.
|
private |
total reaction cross section
Definition at line 49 of file impact_parameter_distribution.h.