![]() |
KaliVeda
Toolkit for HIC analysis
|
Description of properties and kinematics of atomic nuclei.
Create an alpha particle, and find its binding energy, mass, and mass excess:
Using the same object we can also obtain binding energies and mass excesses for all other nuclei:
We can also create nuclei by only specifying the atomic number Z. In this case the mass number A is calculated from Z:
Z and A can be specified separately:
The value of the atomic mass unit, u, is given by KVNucleus::kAMU or KVNucleus::u() It is 931.494 043 x 10**6 eV, as per the 2002 CODATA recommended values (Reviews of Modern Physics 77, 1-107 (2005)).
The '+', '-' and '=' operators have been redefined for the KVNucleus class. One can therefore perform "nuclear arithmetic". Example:
The Z, A, momentum and excitation energy of 'c' are calculated from the appropriate conservation laws. The mass excesses of the 3 nuclei are obviously taken into consideration.
If 'a' and 'b' are projectile and target, 'c' is the compound nucleus after fusion.
In order to perform calorimetry (calculation of source characteristics from daughter nuclei) one need only sum all nuclei associated with the source. The resulting nucleus is the source nucleus with its Z, A, momentum and excitation energy.
The subtraction operator allows to perform energy balance for a binary splitting of a nucleus. Example:
In this case, the resulting nucleus 'd' should be identical to 'a' in the first example. One could also imagine
where 'alpha' is a KVNucleus alpha-particle, for which we specify the momentum after emission. The resulting nucleus 'e' is the residue of the fusion compound after evaporation of an alpha particle.
The operators '+=' and '-=' also exist. 'a+=b' means 'a = a + b' etc.
Definition at line 108 of file KVNucleus.h.
#include <KVNucleus.h>

Public Types | |
| enum | { kBetaMass , kVedaMass , kEALMass , kEALResMass , kEPAXMass } |
| enum | { kLDModel , kEMPFunc , kELTON } |
| enum | { kDefaultFormula , kItkis1998 , kHinde1987 , kViola1985 , kViola1966 } |
| enum | { kNN , knn , kpp , knp } |
Public Types inherited from KVParticle | |
| enum | { kIsOK = BIT(14) , kIsOKSet = BIT(15) , kIsDetected = BIT(16) } |
Public Types inherited from TLorentzVector | |
| typedef Double_t | Scalar |
Public Types inherited from TObject | |
| enum | EDeprecatedStatusBits |
| enum | EStatusBits |
Public Member Functions | |
| KVNucleus () | |
| KVNucleus (const Char_t *, Double_t EperA=0) | |
| KVNucleus (const KVNucleus &) | |
| copy ctor More... | |
| KVNucleus (Int_t z, Double_t t, const TVector3 &p) | |
| KVNucleus (Int_t z, Int_t a, const TVector3 &p) | |
| KVNucleus (Int_t z, Int_t a=0, Double_t ekin=0) | |
| virtual | ~ KVNucleus () |
| void | CheckZAndA (std::optional< Int_t > &z, std::optional< Int_t > &a) const |
| void | Clear (Option_t *opt="") override |
| Int_t | Compare (const TObject *obj) const override |
| void | Copy (TObject &) const override |
| Copy this KVNucleus into the KVNucleus object referenced by "obj". More... | |
| Double_t | DeduceEincFromBrho (Double_t Brho, Int_t ChargeState=0) |
| TH2F* GetKnownNucleiChart(KVString method="GetBindingEnergyPerNucleon");. More... | |
| Int_t | GetA () const |
| std::optional< double > | GetAbundance (std::optional< int > z={}, std::optional< int > a={}) const |
| Double_t | GetAMeV () const |
| Double_t | GetAsurZ () const |
| Double_t | GetAtomicMass (std::optional< int > z={}, std::optional< int > a={}) const |
| Int_t | GetAWithMaxBindingEnergy (std::optional< int > z={}) |
| Double_t | GetBindingEnergy (std::optional< int > z={}, std::optional< int > a={}) const |
| Double_t | GetBindingEnergyPerNucleon (std::optional< int > z={}, std::optional< int > a={}) const |
| Returns binding energy in MeV/A for this nucleus. More... | |
| Double_t | GetChargeAsymmetry () const |
| Double_t | GetChargeRadius (std::optional< int > z={}, std::optional< int > a={}) const |
| Double_t | GetEnergyPerNucleon () const |
| Double_t | GetExcitEnergy () const |
| Double_t | GetExtraChargeRadius (std::optional< int > a={}, Int_t rct=2) const |
| Double_t | GetExtraMassExcess (std::optional< int > z={}, std::optional< int > a={}) const |
| Double_t | GetFissionTKE (const KVNucleus *nuc=0, Int_t formula=kDefaultFormula) const |
| Double_t | GetFissionVelocity (KVNucleus *nuc=0, Int_t formula=kDefaultFormula) |
| const Char_t * | GetIsotopesList (Int_t zmin, Int_t zmax, std::optional< double > tmin={}) const |
| KVNumberList | GetKnownARange (std::optional< int > z={}, std::optional< double > tmin={}) const |
| const Char_t * | GetLatexSymbol (Option_t *opt="") const |
| std::optional< double > | GetLifeTime (std::optional< int > z={}, std::optional< int > a={}) const |
| Double_t | GetLiquidDropBindingEnergy (std::optional< int > z={}, std::optional< int > a={}) const |
| Double_t | GetMassExcess (std::optional< int > z={}, std::optional< int > a={}) const |
| Int_t | GetMassFormula () const |
| Double_t | GetMassGS () const |
| KVNumberList | GetMeasuredARange (std::optional< int > z={}) const |
| returns range of a measured mass for a given element More... | |
| std::optional< int > | GetMostAbundantA (std::optional< int > z={}) const |
| Int_t | GetN () const |
| Return the number of neutron. More... | |
| Double_t | GetNaturalA (std::optional< int > z={}) const |
| Int_t | GetNpairs (Int_t type=kNN) const |
| Double_t | GetNsurZ () const |
| std::optional< int > | GetParity (std::optional< int > z={}, std::optional< int > a={}) const |
| Double_t | GetQFasymTKE (KVNucleus *target) |
| Double_t | GetRelativeVelocity (KVNucleus *nuc) |
| Return the reltive velocity between nuc and this in cm/ns. More... | |
| std::optional< double > | GetSpin (std::optional< int > z={}, std::optional< int > a={}) const |
| const Char_t * | GetSymbol (Option_t *opt="") const |
| tkn::tknucleus | GetTkNucleus (std::optional< int > z={}, std::optional< int > a={}) const |
| std::optional< double > | GetWidth (std::optional< int > z={}, std::optional< int > a={}) const |
| Int_t | GetZ () const |
| Return the number of proton / atomic number. More... | |
| void | init () |
| Bool_t | IsDefined () const |
| Bool_t | IsElement (Int_t Z) const |
| Bool_t | IsIsotope (Int_t Z, Int_t A) const |
| Bool_t | IsKnown (std::optional< int > z={}, std::optional< int > a={}) const |
| Returns kTRUE if this nucleus or (z,a) is known. More... | |
| Bool_t | IsResonance (std::optional< int > z={}, std::optional< int > a={}) const |
| Bool_t | IsSortable () const override |
| Bool_t | IsStable (Double_t min_lifetime=1.0e+15) const |
| Double_t | LiquidDrop_Weizsacker () |
| KVNucleus | operator+ (const KVNucleus &rhs) |
| KVNucleus & | operator+= (const KVNucleus &rhs) |
| KVNucleus addition and assignment operator. More... | |
| KVNucleus | operator- (const KVNucleus &rhs) |
| KVNucleus & | operator-= (const KVNucleus &rhs) |
| KVNucleus subtraction and assignment operator. More... | |
| KVNucleus & | operator= (const KVNucleus &rhs) |
| KVNucleus assignment operator. More... | |
| void | Print (Option_t *t="") const override |
| Display nucleus parameters. More... | |
| void | Set (const Char_t *) |
| void | SetA (Int_t a) |
| void | SetExcitEnergy (Double_t e) |
| void | SetMassFormula (UChar_t mt) |
| void | SetN (Int_t n) |
| void | SetZ (Int_t z, Char_t mt=-1) |
| void | SetZAandE (Int_t z, Int_t a, Double_t ekin) |
| Set atomic number, mass number, and kinetic energy in MeV. More... | |
| void | SetZandA (Int_t z, Int_t a) |
| Set atomic number and mass number. More... | |
| void | SetZandN (Int_t z, Int_t n) |
| Set atomic number and mass number. More... | |
| int | SetZFromSymbol (const Char_t *) |
| Double_t | ShimaChargeState (Int_t) const |
| Double_t | ShimaChargeStatePrecision () const |
Public Member Functions inherited from KVParticle | |
| KVParticle () | |
| KVParticle (const KVParticle &) | |
| copy ctor More... | |
| KVParticle (Double_t m, const TVector3 &p) | |
| create particle with given mass and momentum vector More... | |
| KVParticle (Double_t m, Double_t px, Double_t py, Double_t pz) | |
| create particle with given mass and momentum vector More... | |
| virtual | ~ KVParticle () |
| void | AddGroup (const Char_t *groupname, const Char_t *from="") const |
| Bool_t | BelongsToGroup (const Char_t *groupname) const |
| void | ChangeDefaultFrame (const Char_t *, const Char_t *defname="") |
| void | ChangeFrame (const KVFrameTransform &, const KVString &="") |
| void | Clear (Option_t *opt="") override |
| Reset particle properties i.e. before creating/reading a new event. More... | |
| void | Copy (TObject &) const override |
| Double_t | GetCosTheta () const |
| const KVParticle * | GetCurrentDefaultKinematics () const |
| Double_t | GetE () const |
| Double_t | GetElong () const |
| Double_t | GetEnergy () const |
| Double_t | GetEtran () const |
| KVParticle const * | GetFrame (const Char_t *frame, Bool_t warn_and_return_null_if_unknown=kTRUE) const |
| const Char_t * | GetFrameName (void) const |
| KVUniqueNameList * | GetGroups () const |
| Double_t | GetKE () const |
| KVList * | GetListOfFrames () const |
| Double_t | GetLongitudinalEnergy () const |
| Double_t | GetMass () const |
| TVector3 | GetMomentum () const |
| const Char_t * | GetName () const override |
| return the field fName More... | |
| Int_t | GetNumberOfDefinedFrames () const |
| Int_t | GetNumberOfDefinedGroups () const |
| KVNameValueList * | GetParameters () const |
| Double_t | GetPhi () const |
| TVector3 * | GetPInitial () const |
| Double_t | GetREtran () const |
| Double_t | GetRTransverseEnergy () const |
| Double_t | GetThermalWaveLength (Double_t temp) const |
| Double_t | GetTheta () const |
| Double_t | GetTransverseEnergy () const |
| TVector3 | GetTransverseMomentum () const |
| TVector3 | GetV () const |
| TVector3 | GetVelocity () const |
| returns velocity vector in cm/ns units More... | |
| Double_t | GetVpar () const |
| Double_t | GetVperp () const |
| Double_t | GetWaveLength () const |
| Bool_t | HasFrame (const Char_t *frame) const |
| KVParticle | InFrame (const KVFrameTransform &) const |
| void | init () |
| default initialisation More... | |
| Bool_t | IsDefaultKinematics () const |
| Bool_t | IsDetected () const |
| Bool_t | IsOK () const |
| void | ListGroups () const |
| List all stored groups. More... | |
| void | ls (Option_t *option="") const override |
| KVParticle & | operator= (const KVParticle &rhs) |
| KVParticle assignment operator. More... | |
| void | Print (Option_t *t="") const override |
| print out characteristics of particle More... | |
| void | RemoveAllGroups () |
| Remove all groups. More... | |
| void | RemoveGroup (const Char_t *groupname) |
| Remove group from list of groups. More... | |
| void | ResetEnergy () |
| void | ResetIsOK () |
| void | Set4Mom (const TLorentzVector &p) |
| void | SetE (Double_t a) |
| void | SetE0 (TVector3 *e=0) |
| void | SetEnergy (Double_t e) |
| void | SetFrame (const Char_t *frame, const KVFrameTransform &) |
| void | SetFrame (const Char_t *newframe, const Char_t *oldframe, const KVFrameTransform &) |
| void | SetFrameName (const Char_t *framename) |
| void | SetIsDetected () |
| void | SetIsOK (Bool_t flag=kTRUE) |
| void | SetKE (Double_t ecin) |
| virtual void | SetMass (Double_t m) |
| void | SetMomentum (const TVector3 &v) |
| void | SetMomentum (Double_t px, Double_t py, Double_t pz, Option_t *opt="cart") |
| void | SetMomentum (Double_t T, const TVector3 &dir) |
| void | SetName (const Char_t *nom) |
| Set Name of the particle. More... | |
| template<typename ValType > | |
| void | SetParameter (const Char_t *name, ValType value) const |
| void | SetPhi (Double_t phi) |
| void | SetRandomMomentum (Double_t T, Double_t thmin, Double_t thmax, Double_t phmin, Double_t phmax, Option_t *opt="isotropic") |
| void | SetTheta (Double_t theta) |
| void | SetVelocity (const TVector3 &) |
| Set velocity of particle (in cm/ns units) More... | |
| void | UpdateAllFrames () |
Public Member Functions inherited from TLorentzVector | |
| TLorentzVector () | |
| TLorentzVector (const Double_t *carray) | |
| TLorentzVector (const Float_t *carray) | |
| TLorentzVector (const TLorentzVector &lorentzvector) | |
| TLorentzVector (const TVector3 &vector3, Double_t t) | |
| TLorentzVector (Double_t x, Double_t y, Double_t z, Double_t t) | |
| ~TLorentzVector () override | |
| Double_t | Angle (const TVector3 &v) const |
| Double_t | Beta () const |
| void | Boost (const TVector3 &) |
| void | Boost (Double_t, Double_t, Double_t) |
| TVector3 | BoostVector () const |
| Double_t | CosTheta () const |
| Double_t | DeltaPhi (const TLorentzVector &) const |
| Double_t | DeltaR (const TLorentzVector &, Bool_t useRapidity=kFALSE) const |
| Double_t | Dot (const TLorentzVector &) const |
| Double_t | DrEtaPhi (const TLorentzVector &) const |
| Double_t | DrRapidityPhi (const TLorentzVector &) const |
| Double_t | E () const |
| Double_t | Energy () const |
| Double_t | Et () const |
| Double_t | Et (const TVector3 &) const |
| Double_t | Et2 () const |
| Double_t | Et2 (const TVector3 &) const |
| Double_t | Eta () const |
| TVector2 | EtaPhiVector () |
| Double_t | Gamma () const |
| void | GetXYZT (Double_t *carray) const |
| void | GetXYZT (Float_t *carray) const |
| TClass * | IsA () const override |
| Double_t | M () const |
| Double_t | M2 () const |
| Double_t | Mag () const |
| Double_t | Mag2 () const |
| Double_t | Minus () const |
| Double_t | Mt () const |
| Double_t | Mt2 () const |
| operator ROOT::Math::PxPyPzEVector () const | |
| Bool_t | operator!= (const TLorentzVector &) const |
| Double_t & | operator() (int i) |
| Double_t | operator() (int i) const |
| Double_t | operator* (const TLorentzVector &) const |
| TLorentzVector | operator* (Double_t a) const |
| TLorentzVector & | operator*= (const TLorentzRotation &) |
| TLorentzVector & | operator*= (const TRotation &) |
| TLorentzVector & | operator*= (Double_t a) |
| TLorentzVector | operator+ (const TLorentzVector &) const |
| TLorentzVector & | operator+= (const TLorentzVector &) |
| TLorentzVector | operator- () const |
| TLorentzVector | operator- (const TLorentzVector &) const |
| TLorentzVector & | operator-= (const TLorentzVector &) |
| TLorentzVector & | operator= (const TLorentzVector &) |
| Bool_t | operator== (const TLorentzVector &) const |
| Double_t & | operator[] (int i) |
| Double_t | operator[] (int i) const |
| Double_t | P () const |
| Double_t | Perp () const |
| Double_t | Perp (const TVector3 &v) const |
| Double_t | Perp2 () const |
| Double_t | Perp2 (const TVector3 &v) const |
| Double_t | Phi () const |
| Double_t | Plus () const |
| Double_t | PseudoRapidity () const |
| Double_t | Pt () const |
| Double_t | Pt (const TVector3 &v) const |
| Double_t | Px () const |
| Double_t | Py () const |
| Double_t | Pz () const |
| Double_t | Rapidity () const |
| Double_t | Rho () const |
| void | Rotate (Double_t, const TVector3 &) |
| void | RotateUz (const TVector3 &newUzVector) |
| void | RotateX (Double_t angle) |
| void | RotateY (Double_t angle) |
| void | RotateZ (Double_t angle) |
| void | SetE (Double_t a) |
| void | SetPerp (Double_t) |
| void | SetPhi (Double_t phi) |
| void | SetPtEtaPhiE (Double_t pt, Double_t eta, Double_t phi, Double_t e) |
| void | SetPtEtaPhiM (Double_t pt, Double_t eta, Double_t phi, Double_t m) |
| void | SetPx (Double_t a) |
| void | SetPxPyPzE (Double_t px, Double_t py, Double_t pz, Double_t e) |
| void | SetPy (Double_t a) |
| void | SetPz (Double_t a) |
| void | SetRho (Double_t rho) |
| void | SetT (Double_t a) |
| void | SetTheta (Double_t theta) |
| void | SetVect (const TVector3 &vect3) |
| void | SetVectM (const TVector3 &spatial, Double_t mass) |
| void | SetVectMag (const TVector3 &spatial, Double_t magnitude) |
| void | SetX (Double_t a) |
| void | SetXYZM (Double_t x, Double_t y, Double_t z, Double_t m) |
| void | SetXYZT (Double_t x, Double_t y, Double_t z, Double_t t) |
| void | SetY (Double_t a) |
| void | SetZ (Double_t a) |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| Double_t | T () const |
| Double_t | Theta () const |
| TLorentzVector & | Transform (const TLorentzRotation &) |
| TLorentzVector & | Transform (const TRotation &) |
| TVector3 | Vect () const |
| Double_t | X () const |
| Double_t | Y () const |
| Double_t | Z () const |
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 TObject * | Clone (const char *newname="") 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 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) |
| 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 Int_t | GetAFromZ (Double_t, Char_t mt) |
| static Int_t | GetNFromZ (Double_t, Char_t mt) |
| Calculate neutron number from the element's atomic number Z. More... | |
| static Double_t | GetRealAFromZ (Double_t, Char_t mt) |
| static Double_t | GetRealNFromZ (Double_t, Char_t mt) |
| static Int_t | GetZFromSymbol (const Char_t *) |
| static Int_t | IsMassGiven (const Char_t *) |
| static Double_t | LiquidDrop_BrackGuet (UInt_t A, UInt_t Z) |
| static Double_t | TKE_Hinde1987 (Double_t z1, Double_t a1, Double_t z2, Double_t a2) |
| static Double_t | TKE_Itkis1998 (Double_t z, Double_t a) |
| static Double_t | TKE_Kozulin2014 (Double_t zp, Double_t zt, Double_t ap, Double_t at) |
| static Double_t | TKE_Viola1966 (Double_t z, Double_t a) |
| from: V. E. Viola, Jr., Nuclear Data Sheets. Section A 1, 391 (1965). More... | |
| static Double_t | TKE_Viola1985 (Double_t z, Double_t a) |
| from: V. E. Viola, K. Kwiatkowski, and M. Walker, Physical Review C 31, 1550 (1985). More... | |
| static Double_t | u (void) |
Static Public Member Functions inherited from KVParticle | |
| static Double_t | C () |
Static Public Member Functions inherited from TLorentzVector | |
| 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) |
Static Public Attributes | |
| static Double_t | e2 = KVNucleus::hbar / 137.035999074 |
| e^2/(4.pi.epsilon_0) in MeV.fm More... | |
| static Double_t | hbar = TMath::Hbarcgs() * TMath::Ccgs() / TMath::Qe() |
| hbar*c in MeV.fm More... | |
| static Double_t | kAMU = 9.31494043e02 |
| atomic mass unit in MeV More... | |
| static Double_t | kMe = 0.510998 |
| electron mass in MeV/c2 More... | |
Additional Inherited Members | |
Public Attributes inherited from TLorentzVector | |
| kNUM_COORDINATES | |
| kSIZE | |
| kT | |
| kX | |
| kY | |
| kZ | |
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 | |
| anonymous enum |
| Enumerator | |
|---|---|
| kBetaMass | |
| kVedaMass | |
| kEALMass | |
| kEALResMass | |
| kEPAXMass | |
Definition at line 122 of file KVNucleus.h.
| anonymous enum |
| Enumerator | |
|---|---|
| kLDModel | |
| kEMPFunc | |
| kELTON | |
Definition at line 129 of file KVNucleus.h.
| anonymous enum |
| Enumerator | |
|---|---|
| kDefaultFormula | |
| kItkis1998 | |
| kHinde1987 | |
| kViola1985 | |
| kViola1966 | |
Definition at line 135 of file KVNucleus.h.
| anonymous enum |
| Enumerator | |
|---|---|
| kNN | |
| knn | |
| kpp | |
| knp | |
Definition at line 143 of file KVNucleus.h.
| KVNucleus::KVNucleus | ( | ) |
Default constructor.
Definition at line 269 of file KVNucleus.cpp.
| KVNucleus::KVNucleus | ( | const KVNucleus & | obj | ) |
copy ctor
Definition at line 283 of file KVNucleus.cpp.
Create a nucleus with atomic number Z.
If the mass number A is not given, A is calculated using the parametrisation determined by the value of fMassFormula (see KVNucleus::GetAFromZ).
ekin is the kinetic energy in MeV
Definition at line 316 of file KVNucleus.cpp.
Create nucleus with given Z, kinetic energy t and direction p (p is a unit vector in the desired direction. See KVPosition for methods for generating such vectors). The mass number A is calculated from Z. See KVNucleus::GetAFromZ.
Definition at line 367 of file KVNucleus.cpp.
Create nucleus with given Z, A, and 3-momentum p
Definition at line 388 of file KVNucleus.cpp.
Create a nucleus defined by symbol e.g. "12C", "34Mg", "42Si" etc. etc.
If symbol is not valid, will be made a zombie (IsZombie() returns kTRUE)
The second argument is the kinetic energy per nucleon (E/A) in MeV/A unit
Definition at line 345 of file KVNucleus.cpp.
|
virtual |
Definition at line 854 of file KVNucleus.cpp.
Reset nucleus' properties: set A and Z to zero. For other properties, see KVParticle::Clear
Reimplemented from TObject.
Reimplemented in KVINDRAReconNuc, and KVFAZIAReconNuc.
Definition at line 296 of file KVNucleus.cpp.
For sorting lists of nuclei according to their Z Largest Z appears first in list
Reimplemented from TObject.
Definition at line 1636 of file KVNucleus.cpp.
Copy this KVNucleus into the KVNucleus object referenced by "obj".
Reimplemented from TObject.
Reimplemented in KVSimNucleus, KVINDRAReconNuc, and KVFAZIAReconNuc.
Definition at line 839 of file KVNucleus.cpp.
TH2F* GetKnownNucleiChart(KVString method="GetBindingEnergyPerNucleon");.
Retourne l'energie cintetique totale (MeV) du noyau pour une valeur de Brho et d'etat de charge (Si 0-> Etat de charge=Z)
Definition at line 1714 of file KVNucleus.cpp.
| Int_t KVNucleus::GetA | ( | ) | const |
Returns mass number (A) of nucleus.
The actual member variable (fA) is a UChar_t and so limited to values 0-255. In case nuclei with larger A are needed (for example in calculations of 2-body scattering, a temporary nucleus corresponding to the sum of the entrance channel nuclei is used in order to find the outgoing target-like from the outgoing projectile-like) the flag "kIsHeavy" is set and GetA returns the value (fA+255). For this reason you should always use GetA and not fA.
Definition at line 805 of file KVNucleus.cpp.
| std::optional< double > KVNucleus::GetAbundance | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Returns relative abundance value (see KVAbundance class for unit details). If optional arguments (z,a) are given we return the value for the required nucleus.
Definition at line 1179 of file KVNucleus.cpp.
Calculate nuclear mass number from the element's atomic number Z. Used by default to set fA and fMass if fA not given. For light nuclei (Z<6) the values are given (not calculated) and correspond to: p, alpha, 7Li, 9Be, 11B. For heavier nuclei, several prescriptions are available by giving one of the following values to argument mt:
mt = KVNucleus::kVedaMass
Veda - A calculated using the formula fA = TMath::Nint(1.867*fZ+.016*fZ*fZ-1.07E-4*fZ*fZ*fZ); This corresponds to the amass.f subroutine of the old INDRA Veda calibration programme. These are the masses used in the first INDRA campaigns. For light nuclei (Z<6) the values are given (not calculated) and correspond to: p, alpha, 6Li, 8Be, 10B.
mt = KVNucleus::kBetaMass
Beta (default) - An improved parametrisation of the beta-stability valley, correct even for heavy nuclei up to 238U. The formula is the result of a fit to 8 stable nuclear masses from Ne20 up to U238. From carbon-12 onwards, the mass is calculated using fA = (Int_t) (.2875 + 1.7622 *Z + .013879 * Z * Z - .000054875 * Z * Z * Z) + 1;
mt = KVNucleus::kEALMass
EAL - parametrisation of the Evaporation Attractor Line (residue corridor) due to R.J. Charity (PRC 58(1998)1073). fA = (Int_t)(2.072*Z + 2.32E-03 * Z*Z) + 1; (eq 2)
EALRes - R.J. Charity -— improvement of EAL parametrisation for Heavy Residues (QP for instance) (PRC 58(1998)1073) (eq 7) fA = (Int_t)(2.045*Z + 3.57E-03 * Z*Z) + 1 ;
mt = any other value: A=2*Z
Definition at line 565 of file KVNucleus.cpp.
| Double_t KVNucleus::GetAMeV | ( | ) | const |
Returns kinetic energy of nucleus per nucleon (in MeV/nucleon, donc)
Definition at line 1325 of file KVNucleus.cpp.
|
inline |
Definition at line 213 of file KVNucleus.h.
| Double_t KVNucleus::GetAtomicMass | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Returns the mass of an isotope in unified atomic mass units (KVNucleus::u() MeV/c**2)
This number is also the mass in grammes of 1 mole of this isotope.
Definition at line 971 of file KVNucleus.cpp.
| Int_t KVNucleus::GetAWithMaxBindingEnergy | ( | std::optional< int > | z = {} | ) |
Definition at line 1428 of file KVNucleus.cpp.
| Double_t KVNucleus::GetBindingEnergy | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Returns ground state binding energy in MeV for this nucleus.
The convention is : binding energy is positive if nucleus is bound.
If optional arguments (z,a) are given we return the binding energy for the required nucleus.
If the nucleus is not included in the mass table, an extrapolated value using KVNucleus::LiquidDrop_BrackGuet is returned.
Definition at line 1243 of file KVNucleus.cpp.
| Double_t KVNucleus::GetBindingEnergyPerNucleon | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Returns binding energy in MeV/A for this nucleus.
Definition at line 1292 of file KVNucleus.cpp.
|
inline |
The charge asymmetry = (neutrons-protons)/nucleons
Definition at line 221 of file KVNucleus.h.
| Double_t KVNucleus::GetChargeRadius | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
If not tabulated returns the extrapolated radius calculate in GetExtraChargeRadius
If optional arguments (z,a) are given we return the value for the required nucleus.
Definition at line 1083 of file KVNucleus.cpp.
| Double_t KVNucleus::GetEnergyPerNucleon | ( | ) | const |
Returns kinetic energy of nucleus per nucleon (in MeV/nucleon, donc)
Definition at line 1309 of file KVNucleus.cpp.
|
inline |
Return the excitation energy of the nucleus in MeV.
This is the difference between the (relativistic) rest mass and the ground state mass of the nucleus
Definition at line 257 of file KVNucleus.h.
Calculate the extrapoled charge radius Three formulae taken from Atomic Data and Nuclear Data Tables 87 (2004) 185-201 are proposed: rct=2 (kELTON)take into account the finite surfacethickness This rct=2 is set by default because it has the best reproduction of exp data
rct=1 (kEMPFunc) is a purely emperical function re*A**ee rct=0 (kLDModel) is the standard Liquid Drop model approximation
Those formulae are valid for nuclei near the stability valley other parametrization for xotic nuclei are proposed in the same reference but needed extrapolation from given nuclei and I don't have time to do it now
If optional arguments (z,a) are given we return the value for the required nucleus.
Definition at line 1120 of file KVNucleus.cpp.
| Double_t KVNucleus::GetExtraMassExcess | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Calculate the extrapoled mass excess value from the LiquidDrop_BrackGuet formula
If optional arguments (z,a) are given we return the value for the required nucleus.
Definition at line 946 of file KVNucleus.cpp.
| Double_t KVNucleus::GetFissionTKE | ( | const KVNucleus * | nuc = 0, |
| Int_t | formula = kDefaultFormula |
||
| ) | const |
Average or most probable Total Kinetic Energy [MeV] expected for fission based on various systematics for fission of highly-excited nuclei produced in heavy-ion reactions. If nuc=0, this method returns the TKE for symmetric fission of this nucleus. Else, it returns the expected TKE considering that nuc and the current nucleus arise from the fisson of a compound nucleus.
Definition at line 1757 of file KVNucleus.cpp.
| Double_t KVNucleus::GetFissionVelocity | ( | KVNucleus * | nuc = 0, |
| Int_t | formula = kDefaultFormula |
||
| ) |
Average/most probable relative velocity [cm/ns] expected for fission based on various systematics for fission of highly-excited nuclei produced in heavy-ion reactions. If nuc=0, this method returns the relative velocity expected for the symmetric fission of this nucleus. Else, it returns the expected relative velocity considering that nuc and the current nucleus arise from the fisson of a compound nucleus.
Definition at line 1830 of file KVNucleus.cpp.
| const Char_t * KVNucleus::GetIsotopesList | ( | Int_t | zmin, |
| Int_t | zmax, | ||
| std::optional< double > | tmin = {} |
||
| ) | const |
returns list of isotopes separated by commas
for example: 1H,2H,3H
according to the charge range and the minimum lifetime in seconds
Definition at line 1398 of file KVNucleus.cpp.
| KVNumberList KVNucleus::GetKnownARange | ( | std::optional< int > | zz = {}, |
| std::optional< double > | tmin = {} |
||
| ) | const |
Definition at line 1342 of file KVNucleus.cpp.
Returns symbol of isotope corresponding to this nucleus, suitable for latex format in ROOT TLatex type class i.e.
etc.
Neutrons are represented by "^{1}n".
In order to have also the charge printed like this : ^{12}_{6}C call with opt="ALL" or opt="all"
if you need only the chemical symbol, set opt="EL" or opt="el"
Definition at line 97 of file KVNucleus.cpp.
| std::optional< double > KVNucleus::GetLifeTime | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
For resonances (IsResonance() returns kTRUE) we calculate the mean lifetime from the width of the resonance
\[ \tau = \hbar/\Gamma \]
Note that the half-life \(t_{1/2}\) is related to this lifetime by \(t_{1/2}=\ln(2)\tau\)
If optional arguments (z,a) are given we return the value for the required nucleus.
Definition at line 1045 of file KVNucleus.cpp.
| Double_t KVNucleus::GetLiquidDropBindingEnergy | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Returns ground state binding energy in MeV for this nucleus calculated from Brack & Guet liquid drop formula (see KVNucleus::LiquiDrop_BrackGuet). The convention is : binding energy is positive if nucleus is bound. If optional arguments (z,a) are given we return the binding energy for the required nucleus.
Definition at line 1271 of file KVNucleus.cpp.
| Double_t KVNucleus::GetMassExcess | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Returns mass excess value in MeV for this nucleus.
If optional arguments (z,a) are given we return the value for the required nucleus.
If the nucleus is not included in the mass table, an extrapolated value using KVNucleus::LiquidDrop_BrackGuet is returned.
Definition at line 911 of file KVNucleus.cpp.
|
inline |
Definition at line 157 of file KVNucleus.h.
|
inline |
Return the ground state mass of the nucleus in MeV.
Definition at line 265 of file KVNucleus.h.
| KVNumberList KVNucleus::GetMeasuredARange | ( | std::optional< int > | z = {} | ) | const |
returns range of a measured mass for a given element
Definition at line 1368 of file KVNucleus.cpp.
| std::optional< int > KVNucleus::GetMostAbundantA | ( | std::optional< int > | z = {} | ) | const |
Definition at line 1197 of file KVNucleus.cpp.
| Int_t KVNucleus::GetN | ( | ) | const |
Return the number of neutron.
Definition at line 787 of file KVNucleus.cpp.
| Double_t KVNucleus::GetNaturalA | ( | std::optional< int > | z = {} | ) | const |
Calculate and return the effective mass number of element Z taking into account the abundance of naturally-occurring isotopes
Definition at line 1998 of file KVNucleus.cpp.
Calculate neutron number from the element's atomic number Z.
Definition at line 637 of file KVNucleus.cpp.
Definition at line 824 of file KVNucleus.cpp.
|
inline |
Definition at line 217 of file KVNucleus.h.
| std::optional< int > KVNucleus::GetParity | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
If optional arguments (z,a) are given we return the value for the required nucleus.
Definition at line 1016 of file KVNucleus.cpp.
<TKE> of asymmetric QuasiFission fragments (for the fragment mass where the QFasym yield is maximal) E.M. Kozulin et al PHYSICAL REVIEW C 90, 054608 (2014) This depends on the entrance channel: this nucleus is assumed to be the projectile, while the target is given as argument.
Definition at line 1807 of file KVNucleus.cpp.
Calculate nuclear mass number from the element's atomic number Z. This value is not rounded off, we just return the result of one of the following formulae:
mt = KVNucleus::kVedaMass
Veda - A calculated using the formula fA = (1.867*fZ+.016*fZ*fZ-1.07E-4*fZ*fZ*fZ); This corresponds to the amass.f subroutine of the old INDRA Veda calibration programme. This formula was supposed to represent the Z-dependence of isotope masses in the beta-stability valley, but is in fact a rather poor approximation, especially for large Z.
mt = KVNucleus::kBetaMass
Beta (default) - An improved parametrisation of the beta-stability valley, correct even for heavy nuclei up to 238U. The formula is the result of a fit to 8 stable nuclear masses from Ne20 up to U238. fA = (.2875 + 1.7622 *Z + .013879 * Z * Z - .000054875 * Z * Z * Z);
mt = KVNucleus::kEALMass
EAL - parametrisation of the Evaporation Attractor Line (residue corridor) due to R.J. Charity (PRC 58(1998)1073) (eq 2) fA = (2.072*Z + 2.32E-03 * Z*Z) ;
EALRes - R.J. Charity -— improvement of EAL parametrisation for Heavy Residue (QP for instance) (PRC 58(1998)1073) (eq 7) fA = (2.045*Z + 3.57E-03 * Z*Z) ;
mt = any other value: A=2*Z
Definition at line 445 of file KVNucleus.cpp.
Calculate neutron number from the element's atomic number Z. This value is not rounded off, we just return the result obtain from the chosen mass formula (mt)
Definition at line 515 of file KVNucleus.cpp.
Return the reltive velocity between nuc and this in cm/ns.
Definition at line 1737 of file KVNucleus.cpp.
| std::optional< double > KVNucleus::GetSpin | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
If optional arguments (z,a) are given we return the value for the required nucleus.
Definition at line 994 of file KVNucleus.cpp.
Neutrons are represented by "n".
In order to have just the symbol of the chemical element (e.g. "Pt", "Zn", "Fe"), call with opt="el" or opt="EL"
Definition at line 43 of file KVNucleus.cpp.
| tkn::tknucleus KVNucleus::GetTkNucleus | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Definition at line 881 of file KVNucleus.cpp.
| std::optional< double > KVNucleus::GetWidth | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Definition at line 1981 of file KVNucleus.cpp.
| Int_t KVNucleus::GetZ | ( | ) | const |
Return the number of proton / atomic number.
Definition at line 776 of file KVNucleus.cpp.
Returns Z of nucleus with given symbol i.e. "C" => Z=6, "U" => Z=92 if unknown, returns -1
Definition at line 213 of file KVNucleus.cpp.
Default intialisations The mass formula is kBetaMass, i.e. the formula for the valley of beta-stability. Set up nuclear data table manager if not done already
Definition at line 251 of file KVNucleus.cpp.
|
inline |
Returns kTRUE if the Z and/or A of the nucleus have been set.
'Blank' nuclei created by the default constructor have Z=A=0 until a method such as SetZ() is called. In this case IsDefined() returns kFALSE.
Definition at line 177 of file KVNucleus.h.
Definition at line 300 of file KVNucleus.h.
Definition at line 304 of file KVNucleus.h.
| Bool_t KVNucleus::IsKnown | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
Returns kTRUE if this nucleus or (z,a) is known.
Definition at line 1222 of file KVNucleus.cpp.
test if the given string corresponds to the name of an isotope/element, and whether or not a mass is specified.
isotope = symbol for element isotope, "C", "natSn", "13N", etc.
Definition at line 149 of file KVNucleus.cpp.
| Bool_t KVNucleus::IsResonance | ( | std::optional< int > | z = {}, |
| std::optional< int > | a = {} |
||
| ) | const |
In this case GetWidth() returns the width in MeV.
Definition at line 1961 of file KVNucleus.cpp.
|
inlineoverridevirtual |
Reimplemented from TObject.
Definition at line 172 of file KVNucleus.h.
Definition of stable:
Definition at line 1939 of file KVNucleus.cpp.
Liquid drop mass formula used for nuclei not in mass table (extrapolation). Parameters are from Brack and Guet (copied from Simon code)
Definition at line 1568 of file KVNucleus.cpp.
| Double_t KVNucleus::LiquidDrop_Weizsacker | ( | ) |
Liquid drop mass formula used for nuclei not in mass table (extrapolation). Parameters are from Brack and Guet (copied from Simon code)
Definition at line 1604 of file KVNucleus.cpp.
KVNucleus addition operator.
Add two nuclei together to form a compound nucleus whose Z, A, momentum and excitation energy are calculated from energy and momentum conservation.
Definition at line 1471 of file KVNucleus.cpp.
KVNucleus addition and assignment operator.
Definition at line 1537 of file KVNucleus.cpp.
KVNucleus subtraction operator. If the LHS is a compound nucleus and the RHS an emitted nucleus (which may or may not be excited) then the result of the subtraction is the residual nucleus, with recoil and residual excitation calculated by conservation laws.
Definition at line 1502 of file KVNucleus.cpp.
KVNucleus subtraction and assignment operator.
Definition at line 1552 of file KVNucleus.cpp.
KVNucleus assignment operator.
Definition at line 1452 of file KVNucleus.cpp.
Display nucleus parameters.
Reimplemented from TLorentzVector.
Reimplemented in KVINDRAReconNuc, and KVFAZIAReconNuc.
Definition at line 763 of file KVNucleus.cpp.
Set nucleus' Z & A using chemical symbol e.g. Set("12C") or Set("233U") etc.
Any failure to deduce Z from the symbol will result in this object being made a zombie i.e. IsZombie() will return kTRUE
Definition at line 184 of file KVNucleus.cpp.
Set mass number
Be careful not to call SetZ() after SetA(), as SetZ() will reset the mass number according to one of the available parametrisations of A as a function of Z.
For A>255 the kIsHeavy flag is set. Then fA will equal A-255, and GetA will return fA+255.
If A<=255 the flag is reset.
Definition at line 658 of file KVNucleus.cpp.
Define excitation energy of nucleus in MeV.
The rest mass of the nucleus is changed: m0 -> m0 + E*
Definition at line 867 of file KVNucleus.cpp.
Set mass formula used for calculating A from Z for this nucleus
Definition at line 315 of file KVNucleus.h.
Set mass number Be careful not to call SetZ() after SetN(), as SetZ() will reset the neutron number according to one of the available parametrisations of A (N+Z) as a function of Z.
Definition at line 690 of file KVNucleus.cpp.
Set atomic number The mass number fA is automatically calculated and set using GetAFromZ(). The optional EMassType argument allows to change the default parametrisation used for calculating A from Z.
Definition at line 709 of file KVNucleus.cpp.
Set atomic number, mass number, and kinetic energy in MeV.
Definition at line 738 of file KVNucleus.cpp.
Set atomic number and mass number.
Definition at line 726 of file KVNucleus.cpp.
Set atomic number and mass number.
Definition at line 751 of file KVNucleus.cpp.
| int KVNucleus::SetZFromSymbol | ( | const Char_t * | sym | ) |
Set Z of nucleus with given symbol i.e. "C" => Z=6, "U" => Z=92
Returns Z found, or -1 if symbol is unknown
Definition at line 231 of file KVNucleus.cpp.
Nuclear Instruments and Methods 200 (1982) 605-608 Shima et al "The present formula is useful for the collision range" Zprojectile>=8 4<=Ztarget<=79 Eproj<=6 MeV/A Precision DeltaQ/Zproj <0.04.
v=sqrt((2*E*1.6022)/(A*1.66054))*10.; X=v/((3.6)*pow(Z,0.45));
Definition at line 2022 of file KVNucleus.cpp.
| Double_t KVNucleus::ShimaChargeStatePrecision | ( | ) | const |
Definition at line 2063 of file KVNucleus.cpp.
from: D. Hinde, J. Leigh, J. Bokhorst, J. Newton, R. Walsh, and J. Boldeman, Nuclear Physics A 472, 318 (1987) According to the authors, an extension to asymmetric fission based on TKE_Viola1985
Definition at line 1865 of file KVNucleus.cpp.
from: M.G. Itkis & A. Ya. Rusanov, Phys. Part. Nucl. 29, 160 (1998) Compared to Viola systematics, only heavy-ion induced fission is considered A change of slope is observed for Z**2/A**1/3 > 900
Definition at line 1903 of file KVNucleus.cpp.
<TKE> of asymmetric QuasiFission fragments (for the fragment mass where the QFasym yield is maximal) E.M. Kozulin et al PHYSICAL REVIEW C 90, 054608 (2014)
Definition at line 1921 of file KVNucleus.cpp.
from: V. E. Viola, Jr., Nuclear Data Sheets. Section A 1, 391 (1965).
Definition at line 1889 of file KVNucleus.cpp.
from: V. E. Viola, K. Kwiatkowski, and M. Walker, Physical Review C 31, 1550 (1985).
Definition at line 1877 of file KVNucleus.cpp.
Atomic mass unit in MeV
Reference: 2002 CODATA recommended values Reviews of Modern Physics 77, 1-107 (2005)
Definition at line 1699 of file KVNucleus.cpp.
|
static |
e^2/(4.pi.epsilon_0) in MeV.fm
Definition at line 154 of file KVNucleus.h.
|
static |
|
static |
|
static |
electron mass in MeV/c2
Definition at line 151 of file KVNucleus.h.