KaliVeda
Toolkit for HIC analysis
|
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.
The method
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.
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>
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 TObject * | Clone (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 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 const char * | GetName () const |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
virtual Option_t * | GetOption () 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 TClass * | IsA () 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) |
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 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_t * | name_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 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 TObject | |
kOnlyPrepStep | |
KVPartitionFunction::KVPartitionFunction | ( | ) |
Default constructor.
Definition at line 15 of file KVPartitionFunction.cpp.
|
virtual |
Destructor.
Definition at line 26 of file KVPartitionFunction.cpp.
|
private |
calculates Eqs. 5a-d
Definition at line 137 of file KVPartitionFunction.cpp.
|
private |
calculates Eq. 4
Definition at line 184 of file KVPartitionFunction.cpp.
Definition at line 82 of file KVPartitionFunction.h.
|
inline |
Definition at line 105 of file KVPartitionFunction.h.
|
inline |
Definition at line 101 of file KVPartitionFunction.h.
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.
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.
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.
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.
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.
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.
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.
|
inlineprivate |
Definition at line 68 of file KVPartitionFunction.h.
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.
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.
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.
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.
|
private |
Definition at line 99 of file KVPartitionFunction.cpp.
|
private |
Definition at line 117 of file KVPartitionFunction.cpp.
|
inlineprivate |
Definition at line 74 of file KVPartitionFunction.h.
|
private |
Definition at line 56 of file KVPartitionFunction.h.
|
private |
Definition at line 59 of file KVPartitionFunction.h.
|
private |
Definition at line 58 of file KVPartitionFunction.h.
|
private |
Definition at line 61 of file KVPartitionFunction.h.
|
private |
Definition at line 60 of file KVPartitionFunction.h.