KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVPartitionFunction Class Reference

Detailed Description

Calculates number of partitions of (A,Z,M)

Created by KVClassFactory on Thu Sep 30 16:48:24 2010 Author: John Frankland,,,,

These functions calculate the total number of partitions and the number of partitions per multiplicity either for a single component system (corresponding to the partition function of number theory, i.e. the number of ways to decompose an integer into distinct sums of other integers), or for a system made of two kinds of objects, i.e. protons and neutrons, with A=N+Z.

These are exact results, the numbers correspond to each and every partition appearing once and only once.

Single component system

The method

int Int_t
double Double_t
Double_t PartFunc(int A, int M)

calculates the total number of ways to partition an integer A into the sum of M integers ( \(1\leq M\leq A\)). We use the recursion relation given by J.P. Bondorf in Nucl. Phys. A443, 321 (1985), Eq. (2.6).

The method

returns the total number of partitions summed over all multiplicities.

Two component system

The method

calculates the total number of ways to partition Z protons and (A-Z) neutrons into M fragments, using the method given by K. Sneppen in Nucl. Phys. A470, 213 (1987), Eqs. (4)-(6).

The method

returns the total number of partitions summed over all multiplicities.

Definition at line 55 of file KVPartitionFunction.h.

#include <KVPartitionFunction.h>

Inheritance diagram for KVPartitionFunction:

Public Member Functions

 KVPartitionFunction ()
 Default constructor.
 
virtual ~KVPartitionFunction ()
 Destructor.
 
Double_t GetMaxValueNclass () const
 
Double_t GetMaxValueNp () const
 
Double_t MeanA (int A0)
 
Double_t MeanM (int A0)
 
Double_t MeanNA (int A0, int A)
 
Double_t MeanNA (int A0, int Z0, int A)
 
Double_t MeanNA_M (int A0, int A, int M)
 
Double_t MeanNAZ (int A0, int Z0, int A, int Z)
 
Double_t MeanNZ (int A0, int Z0, int Z)
 
Double_t PartFunc (int A, int M)
 
Double_t PartFunc (int A, int Z, int M)
 
Double_t PartSum (int A)
 
Double_t PartSum (int A, int Z)
 
- 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 Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 
virtual Int_t Compare (const TObject *obj) const
 
virtual void Copy (TObject &object) 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 const char * GetName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 
virtual UInt_t GetUniqueID () const
 
virtual Bool_t HandleTimer (TTimer *timer)
 
virtual ULong_t Hash () const
 
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)
 
virtual TClassIsA () const
 
Bool_t IsDestructed () const
 
virtual Bool_t IsEqual (const TObject *obj) const
 
virtual Bool_t IsFolder () const
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") 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 void Print (Option_t *option="") const
 
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)
 
virtual void Streamer (TBuffer &)
 
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_t calc_sneppen_Nclass (int A, int Z, int M, int B)
 calculates Eqs. 5a-d
 
Double_t calc_sneppen_Np (int A, int Z, int M)
 calculates Eq. 4
 
Double_t get_value (Int_t A, Int_t Z, Int_t M, Int_t B=-1)
 
const Char_tname_value (Int_t A, Int_t Z, Int_t M, Int_t B=-1)
 
Double_t sneppen_Nclass (int A, int Z, int M, int B)
 
Double_t sneppen_Np (int A, int Z, int M)
 
void store_value (Double_t val, Int_t A, Int_t Z, Int_t M, Int_t B=-1)
 

Private Attributes

THashTable fTable
 
Double_t maxvalueNclass
 
Double_t maxvalueNp
 
Double_t NvalsNcl
 
Double_t NvalsNp
 

Additional Inherited Members

- Public Types inherited from TObject
enum  EDeprecatedStatusBits
 
enum  EStatusBits
 
- 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 TObject
 kOnlyPrepStep
 

Constructor & Destructor Documentation

◆ KVPartitionFunction()

KVPartitionFunction::KVPartitionFunction ( )

Default constructor.

Definition at line 15 of file KVPartitionFunction.cpp.

◆ ~KVPartitionFunction()

KVPartitionFunction::~KVPartitionFunction ( )
virtual

Destructor.

Definition at line 26 of file KVPartitionFunction.cpp.

Member Function Documentation

◆ calc_sneppen_Nclass()

Double_t KVPartitionFunction::calc_sneppen_Nclass ( int  A,
int  Z,
int  M,
int  B 
)
private

calculates Eqs. 5a-d

Definition at line 137 of file KVPartitionFunction.cpp.

◆ calc_sneppen_Np()

Double_t KVPartitionFunction::calc_sneppen_Np ( int  A,
int  Z,
int  M 
)
private

calculates Eq. 4

Definition at line 184 of file KVPartitionFunction.cpp.

◆ get_value()

Double_t KVPartitionFunction::get_value ( Int_t  A,
Int_t  Z,
Int_t  M,
Int_t  B = -1 
)
inlineprivate

Definition at line 82 of file KVPartitionFunction.h.

◆ GetMaxValueNclass()

Double_t KVPartitionFunction::GetMaxValueNclass ( ) const
inline

Definition at line 105 of file KVPartitionFunction.h.

◆ GetMaxValueNp()

Double_t KVPartitionFunction::GetMaxValueNp ( ) const
inline

Definition at line 101 of file KVPartitionFunction.h.

◆ MeanA()

Double_t KVPartitionFunction::MeanA ( int  A0)

Calculate the mean size of clusters in all partitions of a single-component system of mass A0.

Definition at line 429 of file KVPartitionFunction.cpp.

◆ MeanM()

Double_t KVPartitionFunction::MeanM ( int  A0)

Calculate the mean multiplicity of all partitions of a single-component system of mass A0.

Definition at line 407 of file KVPartitionFunction.cpp.

◆ MeanNA() [1/2]

Double_t KVPartitionFunction::MeanNA ( int  A0,
int  A 
)

Calculate the mean number of clusters of size A when a system of size A0 fragments in all possible ways with equal probability Using Eq. (3) of K. Sneppen Nucl. Phys. A470, 213 (1987)

Correction for A=A0: there is always exactly 1 partition of M=1 composed of one fragment with A=A0 the mean multiplicity of A=A0 is therefore 1/PartSum(A0)

Definition at line 254 of file KVPartitionFunction.cpp.

◆ MeanNA() [2/2]

Double_t KVPartitionFunction::MeanNA ( int  A0,
int  Z0,
int  A 
)

Calculate the mean number of clusters of mass A when a two-component system (A0,Z0) fragments in all possible ways with equal probability This is just the sum of MeanNAZ(A0,Z0,A,Z) with 0<=Z<= min(A,Z0)

Definition at line 372 of file KVPartitionFunction.cpp.

◆ MeanNA_M()

Double_t KVPartitionFunction::MeanNA_M ( int  A0,
int  A,
int  M 
)

Calculate the mean number of clusters of size A when a system of size A0 breaks up into M fragments, each partition having equal probability Using Eqs. (2b) & (3) of K. Sneppen Nucl. Phys. A470, 213 (1987)

Correction for M=1: if A==A0, mean multiplicity is 1; otherwise 0. Correction for M=2 and even values of A0: when an odd-A0 splits into M=2, there are PartFunc(A0,M) partitions in which each A between 1 and A0-1 occurs once only, therefore the mean multiplicity for any A is 1/PartFunc(A0,M) when an even-A0 splits into M=2, one of the PartFunc(A0,M) partitions is the symmetric split (A0/2, A0/2). Therefore the mean multiplicity of A=A0/2 is twice that of the other A, i.e. 2/PartFunc(A0,M) Correction for M=A0: in this case only one partition exists, made of M=A0 monomers A=1 therefore mean multiplicity of A=1 is M, for all other A it is 0.

Definition at line 295 of file KVPartitionFunction.cpp.

◆ MeanNAZ()

Double_t KVPartitionFunction::MeanNAZ ( int  A0,
int  Z0,
int  A,
int  Z 
)

Calculate the mean number of clusters of mass A and charge Z when a two-component system (A0,Z0) fragments in all possible ways with equal probability Using Eq. (7) of K. Sneppen Nucl. Phys. A470, 213 (1987)

Definition at line 348 of file KVPartitionFunction.cpp.

◆ MeanNZ()

Double_t KVPartitionFunction::MeanNZ ( int  A0,
int  Z0,
int  Z 
)

Calculate the mean number of clusters of charge Z when a two-component system (A0,Z0) fragments in all possible ways with equal probability This is just the sum of MeanNAZ(A0,Z0,A,Z) with Z<=A<=(Z+A0-Z0)

Definition at line 390 of file KVPartitionFunction.cpp.

◆ name_value()

const Char_t * KVPartitionFunction::name_value ( Int_t  A,
Int_t  Z,
Int_t  M,
Int_t  B = -1 
)
inlineprivate

Definition at line 68 of file KVPartitionFunction.h.

◆ PartFunc() [1/2]

Double_t KVPartitionFunction::PartFunc ( int  A,
int  M 
)

recursive calculation of number of partitions of A nucleons into M fragments of size 1, 2, ..., A from Eq. (2.6) of Bondorf et al., Nucl. Phys. A443, 321 (1985): "We now consider the division of the partition space into the subsets characterized by having a common multiplicity. Let P(A,, M) be the number of partitions in one of such subsets. To compute P(A,, M) it is sufficient to observe that it should be equal to the number of partitions having at least one fragment composed of just one nucleon (which number is immediately shown to equal P(A0 - 1, M - 1)) plus those not having any unitary fragment. The number of this last portion can be computed by observing that, if we take one nucleon from each of its fragments one has the set of all partitions of A0 - M nucleons into M fragments. We thus arrive at P(A0,M) = P(A0-1,M-l) + P(A0-M, M) Eq. (2.5)" The expression below follows from recursive use of this relation.

Definition at line 48 of file KVPartitionFunction.cpp.

◆ PartFunc() [2/2]

Double_t KVPartitionFunction::PartFunc ( int  A,
int  Z,
int  M 
)

Returns the total number of partitions of Z protons and (A-Z) neutrons into M fragments, using the method given by K. Sneppen in Nucl. Phys. A470, 213 (1987), Eqs. (4)-(6).

Definition at line 211 of file KVPartitionFunction.cpp.

◆ PartSum() [1/2]

Double_t KVPartitionFunction::PartSum ( int  A)

calculate total number of partitions of A nucleons into 1, 2, ..., A fragments. from Eq. (2.7) of Bondorf et al., Nucl. Phys. A443, 321 (1985)

Definition at line 83 of file KVPartitionFunction.cpp.

◆ PartSum() [2/2]

Double_t KVPartitionFunction::PartSum ( int  A,
int  Z 
)

Returns the total number of partitions of Z protons and (A-Z) neutrons summed over all multiplicities, using the method given by K. Sneppen in Nucl. Phys. A470, 213 (1987), Eqs. (4)-(6).

Definition at line 230 of file KVPartitionFunction.cpp.

◆ sneppen_Nclass()

Double_t KVPartitionFunction::sneppen_Nclass ( int  A,
int  Z,
int  M,
int  B 
)
private

Definition at line 99 of file KVPartitionFunction.cpp.

◆ sneppen_Np()

Double_t KVPartitionFunction::sneppen_Np ( int  A,
int  Z,
int  M 
)
private

Definition at line 117 of file KVPartitionFunction.cpp.

◆ store_value()

void KVPartitionFunction::store_value ( Double_t  val,
Int_t  A,
Int_t  Z,
Int_t  M,
Int_t  B = -1 
)
inlineprivate

Definition at line 74 of file KVPartitionFunction.h.

Member Data Documentation

◆ fTable

THashTable KVPartitionFunction::fTable
private

Definition at line 56 of file KVPartitionFunction.h.

◆ maxvalueNclass

Double_t KVPartitionFunction::maxvalueNclass
private

Definition at line 59 of file KVPartitionFunction.h.

◆ maxvalueNp

Double_t KVPartitionFunction::maxvalueNp
private

Definition at line 58 of file KVPartitionFunction.h.

◆ NvalsNcl

Double_t KVPartitionFunction::NvalsNcl
private

Definition at line 61 of file KVPartitionFunction.h.

◆ NvalsNp

Double_t KVPartitionFunction::NvalsNp
private

Definition at line 60 of file KVPartitionFunction.h.