KaliVeda
Toolkit for HIC analysis
|
Impact parameter estimation neglecting using sharp cut-off approximation.
This class implements impact parameter estimation using the method of Cavata et al., Phys. Rev. C 72, 1460(1990). Given an observable \(X\) which is assumed monotonically decreasing with impact parameter, the upper limit \(b\leq b_0\) corresponding to a cut \(X\geq X_0\) is estimated by equating the fraction of the total measured cross-section retained by the cut with the ratio of the cross-sections for the two triangular impact parameter distributions \(b\leq b_0\) and \(b\leq b_{max}\), where \(\sigma=\pi b_{max}^2\) is the total measured cross-section for all reactions:
\[ \frac{b_0}{b_{max}}=\left[\int_{X_0}^{\infty} P(X) dX \right]^{\frac{1}{2}} \]
where \(P(X)\) is the probability distribution of \(X\) for all measured reactions.
This relationship is strictly true if fluctuations of \(X\) for a fixed \(b\) are negligible, which is never the case in heavy-ion collisions at intermediate energies. The Cavata prescription implies a one-to-one correspondence between each value of \(X\) i.e. each event and a unique value of \(b\), which is clearly not true. Although for peripheral collisions this prescription gives a reasonable estimation of the mean value of impact parameter associated with selected events, it greatly underestimates the widths of the actual distributions of impact parameter, and the more "central" the event selection the more Cavata underestimates the mean impact parameters, giving a false impression that higher and higher cuts in \(X\) produce event samples with smaller and smaller \(\langle b\rangle\).
Definition at line 46 of file cavata_prescription.h.
#include <cavata_prescription.h>
Public Member Functions | |
cavata_prescription () | |
cavata_prescription (const cavata_prescription &)=delete | |
cavata_prescription (TH1 *h, Option_t *evol="D") | |
virtual | ~cavata_prescription () |
Destructor. | |
Double_t | BTransform (Double_t *, Double_t *) |
Double_t | GetCrossSection (Double_t obs) |
Double_t | GetImpactParameter (Double_t obs) |
TH1 * | GetIPDistribution (TH1 *obs, Int_t nbinx=100, Option_t *norm="") |
TGraph * | GetIPEvolution (TH2 *obscor, TString moment, TString axis="Y") |
double | GetMeanBForSCA (double bmin, double bmax) const |
Double_t | GetObservable (Double_t b) |
Double_t | GetObservableXSec (Double_t sigma) |
TGraph * | GetScale () const |
double | GetSigmaBForSCA (double bmin, double bmax) const |
TF1 * | GetTransFunc () const |
TH1 * | GetXSecDistribution (TH1 *obs, Int_t nbinx=100, Option_t *norm="") |
TGraph * | GetXSecEvolution (TH2 *obscor, TString moment, TString axis="Y") |
TGraph * | GetXSecScale () const |
TF1 * | GetXSecTransFunc () const |
void | MakeAbsoluteScale (Int_t npoints=100, Double_t bmax=1.0) |
void | MakeScale (Int_t npoints=100, Double_t bmax=1.0) |
std::vector< Double_t > | SliceXSec (Int_t nslices, Double_t totXsec) |
Double_t | XTransform (Double_t *, Double_t *) |
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 | Draw (Option_t *option="") |
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 |
Static Public Member Functions | |
static Double_t | GetIPFromXSec (Double_t xsec) |
static Double_t | GetXSecFromIP (Double_t bmax) |
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) |
Private Member Functions | |
void | make_scale (Int_t npoints) |
Private Attributes | |
Double_t | Bmax |
maximum of ip scale | |
TH1 * | fData |
histogram containing distribution of ip-related observable | |
TString | fEvol |
how the observable evolves with b | |
TGraph * | fIPScale |
derived relation between observable and impact-parameter | |
TF1 * | fObsTransform |
function for transforming observable into impact parameter | |
TF1 * | fObsTransformXSec |
function for transforming observable into cross-section | |
TGraph * | fXSecScale |
derived relation between observable and cross-section | |
KVHistoManipulator | HM |
for scaling transormations of histograms, graphs, etc. | |
Double_t | Smax |
maximum of cross-section scale | |
Additional Inherited Members | |
Public Types inherited from KVBase | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
Public Types inherited from TObject | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
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 | |
|
delete |
|
inline |
Definition at line 65 of file cavata_prescription.h.
Constructor for impact parameter estimator
[in] | h | Histogram containing distribution of the observable used to calculate impact parameter. |
[in] | evol | Determine whether observable is monotonically decreasing ("D") or increasing ("C") |
Definition at line 12 of file cavata_prescription.cpp.
|
virtual |
Destructor.
Definition at line 26 of file cavata_prescription.cpp.
Function using the TGraph calculated with MakeScale() or MakeAbsoluteScale() in order to transform distributions of the observable histogrammed in fData into distributions of the impact parameter.
This function is used to generate the TF1 fObsTransform
[in] | x[0] | value of observable |
Definition at line 164 of file cavata_prescription.cpp.
[in] | obs | value of observable |
Definition at line 116 of file cavata_prescription.h.
[in] | obs | value of observable |
Definition at line 110 of file cavata_prescription.h.
TH1 * KVImpactParameters::cavata_prescription::GetIPDistribution | ( | TH1 * | obs, |
Int_t | nbinx = 100 , |
||
Option_t * | norm = "" |
||
) |
Transform the distribution of the observable contained in the histogram 'obs' into a distribution of the impact parameter.
[in] | obs | pointer to histogram containing observable distribution for some selected events |
[in] | nbinx | number of bins in created impact parameter histo (default = 100) |
[in] | norm |
|
Definition at line 219 of file cavata_prescription.cpp.
TGraph * KVImpactParameters::cavata_prescription::GetIPEvolution | ( | TH2 * | obscor, |
TString | moment, | ||
TString | axis = "Y" |
||
) |
Draw evolution of any observable as function of impact parameter
[in] | obscor | pointer to histogram containing bidim correlating some observable on Y axis with the observable used to calculate the impact parameter on the X axis |
[in] | moment | give moment of Y to use for evolution ("GetMean", "GetRMS", "GetKurtosis", etc. methods of TH1) |
[in] | axis |
|
Definition at line 259 of file cavata_prescription.cpp.
|
inlinestatic |
Utility function
[in] | xsec | cross-section |
Definition at line 146 of file cavata_prescription.h.
double KVImpactParameters::cavata_prescription::GetMeanBForSCA | ( | double | bmin, |
double | bmax | ||
) | const |
Calculate the mean impact parameter for b in [bmin,bmax] in sharp cut-off approximation i.e. assuming a triangular distribution:
\[ \bar{b} = \frac{2(b^3_{max}-b^3_{min})}{3(b^2_{max}-b^2_{min})} \]
Definition at line 447 of file cavata_prescription.cpp.
[in] | b | impact parameter |
Definition at line 122 of file cavata_prescription.h.
[in] | sigma | cross-section |
Definition at line 128 of file cavata_prescription.h.
|
inline |
Definition at line 84 of file cavata_prescription.h.
double KVImpactParameters::cavata_prescription::GetSigmaBForSCA | ( | double | bmin, |
double | bmax | ||
) | const |
Calculate the standard deviation of impact parameter for b in [bmin,bmax] in sharp cut-off approximation i.e. assuming a triangular distribution:
\[ \sigma^2_b = \frac{(b^4_{max}-b^4_{min})}{2(b^2_{max}-b^2_{min})} - \bar{b}^2 \]
Definition at line 467 of file cavata_prescription.cpp.
|
inline |
Definition at line 100 of file cavata_prescription.h.
TH1 * KVImpactParameters::cavata_prescription::GetXSecDistribution | ( | TH1 * | obs, |
Int_t | nbinx = 100 , |
||
Option_t * | norm = "" |
||
) |
Transform the distribution of the observable contained in the histogram obs into a distribution of cross-section
[in] | obs | pointer to histogram containing observable distribution for some selected events |
[in] | nbinx | number of bins in created impact parameter histo (default = 100) |
[in] | norm |
|
Definition at line 303 of file cavata_prescription.cpp.
TGraph * KVImpactParameters::cavata_prescription::GetXSecEvolution | ( | TH2 * | obscor, |
TString | moment, | ||
TString | axis = "Y" |
||
) |
Draw evolution of any observable as function of cross-section
[in] | obscor | pointer to histogram containing bidim correlating some observable on Y axis with the observable used to calculate the impact parameter on the X axis |
[in] | moment | give moment of Y to use for evolution ("GetMean", "GetRMS", "GetKurtosis", etc. methods of TH1) |
[in] | axis |
|
Definition at line 343 of file cavata_prescription.cpp.
|
inlinestatic |
Utility function
[in] | bmax | maximum value of impact parameter |
Definition at line 139 of file cavata_prescription.h.
|
inline |
Definition at line 91 of file cavata_prescription.h.
|
inline |
Definition at line 105 of file cavata_prescription.h.
Definition at line 85 of file cavata_prescription.cpp.
void KVImpactParameters::cavata_prescription::MakeAbsoluteScale | ( | Int_t | npoints = 100 , |
Double_t | bmax = 1.0 |
||
) |
Calculate the relationship between the impact parameter and the observable whose distribution is contained in the histogram given to the constructor.
[in] | npoints | number of points to use to calculate scale (points in generated TGraph). The greater the number of points, the more accurate the results. Default value is 100. Maximum value is number of bins in histogram of observable, fData. |
[in] | bmax | the maximum absolute impact parameter for the data in [fm] |
For a given value \(X\) of the observable \(x\), the reduced impact parameter \(\hat{b}\) is calculated from the distribution of \(x\), \(Y(x)\), using the following formula:
\[ \hat{b}^{2} = \frac{\int^{\infty}_{x=X} Y(x) dx}{\int_{0}^{\infty} Y(x) dx} \]
Definition at line 130 of file cavata_prescription.cpp.
void KVImpactParameters::cavata_prescription::MakeScale | ( | Int_t | npoints = 100 , |
Double_t | bmax = 1.0 |
||
) |
Calculate the relationship between the impact parameter and the observable whose distribution is contained in the histogram given to the constructor.
[in] | npoints | number of points to use to calculate scale (points in generated TGraph). The greater the number of points, the more accurate the results. Default value is 100. Maximum value is number of bins in histogram of observable, fData. |
[in] | bmax | the maximum reduced impact parameter for the data |
For a given value \(X\) of the observable \(x\), the reduced impact parameter \(\hat{b}\) is calculated from the distribution of \(x\), \(Y(x)\), using the following formula:
\[ \hat{b}^{2} = \frac{\int^{\infty}_{x=X} Y(x) dx}{\int_{0}^{\infty} Y(x) dx} \]
Definition at line 53 of file cavata_prescription.cpp.
std::vector< Double_t > KVImpactParameters::cavata_prescription::SliceXSec | ( | Int_t | nslices, |
Double_t | totXsec | ||
) |
Generate vector of observable values which can be used to select nslices of constant cross-section.
[in] | nslices | number of slices to generates |
[in] | totXsec | total cross-section to slice |
Example:
Definition at line 400 of file cavata_prescription.cpp.
Function using the TGraph calculated with MakeScale() or MakeAbsoluteScale() in order to transform distributions of the observable histogrammed in fData into distributions of cross-section.
This function is used to generate the TF1 fObsTransformXsec
[in] | x[0] | value of observable |
Definition at line 188 of file cavata_prescription.cpp.
|
private |
maximum of ip scale
Definition at line 54 of file cavata_prescription.h.
|
private |
histogram containing distribution of ip-related observable
Definition at line 47 of file cavata_prescription.h.
|
private |
how the observable evolves with b
Definition at line 48 of file cavata_prescription.h.
|
private |
derived relation between observable and impact-parameter
Definition at line 49 of file cavata_prescription.h.
|
private |
function for transforming observable into impact parameter
Definition at line 51 of file cavata_prescription.h.
|
private |
function for transforming observable into cross-section
Definition at line 52 of file cavata_prescription.h.
|
private |
derived relation between observable and cross-section
Definition at line 50 of file cavata_prescription.h.
|
private |
for scaling transormations of histograms, graphs, etc.
Definition at line 53 of file cavata_prescription.h.
|
private |
maximum of cross-section scale
Definition at line 55 of file cavata_prescription.h.