16 #include "KVParticle.h"
17 #include "KVNumberList.h"
18 #include "tknucleus.h"
159 return (
Int_t)fMassFormula;
183 return !(fZ == 0 && fA == 0);
230 void CheckZAndA(std::optional<Int_t>& z, std::optional<Int_t>& a)
const;
250 Bool_t IsKnown(std::optional<int> z = {}, std::optional<int>
a = {})
const;
253 std::optional<double>
GetWidth(std::optional<int> z = {}, std::optional<int>
a = {})
const;
271 tkn::tknucleus
GetTkNucleus(std::optional<int> z = {}, std::optional<int>
a = {})
const;
273 std::optional<double>
GetLifeTime(std::optional<int> z = {}, std::optional<int>
a = {})
const;
274 std::optional<double>
GetSpin(std::optional<int> z = {}, std::optional<int>
a = {})
const;
275 std::optional<int>
GetParity(std::optional<int> z = {}, std::optional<int>
a = {})
const;
276 std::optional<double>
GetAbundance(std::optional<int> z = {}, std::optional<int>
a = {})
const;
#define ClassDefOverride(name, id)
Description of properties and kinematics of atomic nuclei.
Double_t ShimaChargeStatePrecision() const
std::optional< double > GetAbundance(std::optional< int > z={}, std::optional< int > a={}) const
static Double_t hbar
hbar*c in MeV.fm
Double_t GetBindingEnergyPerNucleon(std::optional< int > z={}, std::optional< int > a={}) const
Returns binding energy in MeV/A for this nucleus.
const Char_t * GetSymbol(Option_t *opt="") const
void Copy(TObject &) const override
Copy this KVNucleus into the KVNucleus object referenced by "obj".
void SetExcitEnergy(Double_t e)
Double_t GetExtraMassExcess(std::optional< int > z={}, std::optional< int > a={}) const
static Double_t LiquidDrop_BrackGuet(UInt_t A, UInt_t Z)
void Clear(Option_t *opt="") override
Double_t GetMassExcess(std::optional< int > z={}, std::optional< int > a={}) const
void CheckZAndA(std::optional< Int_t > &z, std::optional< Int_t > &a) const
std::optional< int > GetMostAbundantA(std::optional< int > z={}) const
Double_t GetBindingEnergy(std::optional< int > z={}, std::optional< int > a={}) const
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).
static Int_t GetNFromZ(Double_t, Char_t mt)
Calculate neutron number from the element's atomic number Z.
void Print(Option_t *t="") const override
Display nucleus parameters.
static Double_t GetRealAFromZ(Double_t, Char_t mt)
Double_t GetExcitEnergy() const
std::optional< double > GetLifeTime(std::optional< int > z={}, std::optional< int > a={}) const
Double_t GetFissionTKE(const KVNucleus *nuc=0, Int_t formula=kDefaultFormula) const
Int_t GetAWithMaxBindingEnergy(std::optional< int > z={})
static Double_t GetRealNFromZ(Double_t, Char_t mt)
KVNucleus operator+(const KVNucleus &rhs)
void SetZandN(Int_t z, Int_t n)
Set atomic number and mass number.
static Int_t IsMassGiven(const Char_t *)
KVNucleus & operator=(const KVNucleus &rhs)
KVNucleus assignment operator.
Double_t GetMassGS() const
static Double_t kMe
electron mass in MeV/c2
void SetZ(Int_t z, Char_t mt=-1)
Double_t LiquidDrop_Weizsacker()
Double_t GetExtraChargeRadius(std::optional< int > a={}, Int_t rct=2) const
KVNucleus & operator+=(const KVNucleus &rhs)
KVNucleus addition and assignment operator.
Double_t GetLiquidDropBindingEnergy(std::optional< int > z={}, std::optional< int > a={}) const
Double_t GetFissionVelocity(KVNucleus *nuc=0, Int_t formula=kDefaultFormula)
static Double_t TKE_Itkis1998(Double_t z, Double_t a)
std::optional< double > GetSpin(std::optional< int > z={}, std::optional< int > a={}) const
Double_t GetNsurZ() const
Double_t GetAtomicMass(std::optional< int > z={}, std::optional< int > a={}) const
static Double_t e2
e^2/(4.pi.epsilon_0) in MeV.fm
Bool_t IsKnown(std::optional< int > z={}, std::optional< int > a={}) const
Returns kTRUE if this nucleus or (z,a) is known.
Bool_t IsElement(Int_t Z) const
tkn::tknucleus GetTkNucleus(std::optional< int > z={}, std::optional< int > a={}) const
Double_t GetAsurZ() const
Double_t GetRelativeVelocity(KVNucleus *nuc)
Return the reltive velocity between nuc and this in cm/ns.
Int_t GetN() const
Return the number of neutron.
Double_t GetNaturalA(std::optional< int > z={}) const
KVNucleus & operator-=(const KVNucleus &rhs)
KVNucleus subtraction and assignment operator.
Bool_t IsIsotope(Int_t Z, Int_t A) const
Int_t Compare(const TObject *obj) const override
KVNumberList GetMeasuredARange(std::optional< int > z={}) const
returns range of a measured mass for a given element
Double_t DeduceEincFromBrho(Double_t Brho, Int_t ChargeState=0)
TH2F* GetKnownNucleiChart(KVString method="GetBindingEnergyPerNucleon");.
Double_t ShimaChargeState(Int_t) const
static Double_t kAMU
atomic mass unit in MeV
int SetZFromSymbol(const Char_t *)
void SetZandA(Int_t z, Int_t a)
Set atomic number and mass number.
const Char_t * GetLatexSymbol(Option_t *opt="") const
Int_t GetNpairs(Int_t type=kNN) const
const Char_t * GetIsotopesList(Int_t zmin, Int_t zmax, std::optional< double > tmin={}) const
void SetZAandE(Int_t z, Int_t a, Double_t ekin)
Set atomic number, mass number, and kinetic energy in MeV.
Double_t GetQFasymTKE(KVNucleus *target)
static Double_t TKE_Hinde1987(Double_t z1, Double_t a1, Double_t z2, Double_t a2)
Double_t GetChargeRadius(std::optional< int > z={}, std::optional< int > a={}) const
KVNumberList GetKnownARange(std::optional< int > z={}, std::optional< double > tmin={}) const
static Int_t GetZFromSymbol(const Char_t *)
Double_t GetEnergyPerNucleon() const
void SetMassFormula(UChar_t mt)
Double_t GetChargeAsymmetry() const
std::optional< int > GetParity(std::optional< int > z={}, std::optional< int > a={}) const
static Int_t GetAFromZ(Double_t, Char_t mt)
Bool_t IsSortable() const override
Bool_t IsStable(Double_t min_lifetime=1.0e+15) const
Int_t GetZ() const
Return the number of proton / atomic number.
Bool_t IsResonance(std::optional< int > z={}, std::optional< int > a={}) const
static Double_t TKE_Viola1966(Double_t z, Double_t a)
from: V. E. Viola, Jr., Nuclear Data Sheets. Section A 1, 391 (1965).
std::optional< double > GetWidth(std::optional< int > z={}, std::optional< int > a={}) const
static Double_t TKE_Kozulin2014(Double_t zp, Double_t zt, Double_t ap, Double_t at)
Int_t GetMassFormula() const
Strings used to represent a set of ranges of values.
Base class for relativistic kinematics of massive particles.
TLorentzVector operator-() const