A ZAI defined a (Z,A,Isomere) for a Nucleus. More...
#include <ZAI.hxx>
Public Member Functions | |
| ZAI (int Z, int A, int I, bool decay=true) | |
| Normal Constructor. More... | |
| ZAI () | |
| Default constructor. More... | |
| ZAI (const ZAI &zai) | |
| Copy constructor. More... | |
| ~ZAI () | |
| destructor More... | |
ZAI main attributes | |
| int | Z () |
| returns the number of protons More... | |
| int | A () |
| returns the number of nucleons More... | |
| int | I () |
| returns the Isomeric state (Ground State, ith excited) More... | |
| int | N () |
| returns the number of neutrons More... | |
| void | SetZ (short Z) |
| Set the proton number. More... | |
| void | SetA (short A) |
| Set the nucleon number. More... | |
| void | SetI (short I) |
| Set the isomeric state (0=gs,...) More... | |
| void | SetMass (double m) |
| set the mass of a ZAI (g/mol) More... | |
| double | GetMass () |
| get the molar mass of a ZAI (g/mol) More... | |
| void | SetName (string Name) |
| Set the name of the ZAI (e.g. Pu) More... | |
| string | GetName () |
| returns the name of a ZAI More... | |
| string | GetFullName () |
| returns the fule name (A,name, Isomeroc state) More... | |
Decay related methods | |
| void | SetHalfLifeTime (double T_12) |
| Set the Decay Half life [s]. More... | |
| double | GetHalfLifeTime () |
| returns the Decay Half life [s] More... | |
| void | SetDecayConstant (double lambda) |
| Set the Decay Constant. More... | |
| double | GetDecayConstant () |
| returns the Decay Half life More... | |
| int | GetDecayDaughterSize () |
| size of decay Daughter vector More... | |
| ZAI * | GetDecayDaughter (int i) |
| returns the ith daughter More... | |
| vector< ZAI * > & | GetDecayDaughter () |
| returns daughter vector More... | |
| int | GetDecayParentSize () |
| size of decay Parent vector More... | |
| vector< double > & | GetDecayBranchingRatio () |
| returns branching ratio vector More... | |
| double | GetDecayBranchingRatio (int i) |
| returns ith branching ratio More... | |
| void | SetDecayBranchingRatio (int i, double BR) |
| sets the ith branching ratio More... | |
| ZAI * | GetDecayParent (int i) |
| returns ith parent More... | |
| vector< ZAI * > & | GetDecayParent () |
| returns parent vector More... | |
| void | AddDecayDaughter (ZAI *Daughter, double BR, int DecayMode) |
| Add decay Daughter with Branching Ratio BR & Decay mode. More... | |
| void | AddDecayParent (ZAI *Parent) |
| Add decay Parent. More... | |
| void | CutFromMammaDecay (ZAI *mamma) |
| Suppress Decay references of ZAI from mamma. More... | |
| string | GetAllDecays () |
| Get all possible decay string. More... | |
| void | SetAllDecays (string decays) |
| Set all possible decay string. More... | |
| vector< int > & | GetDecayMode () |
| returns the decay mode code vector More... | |
| int | GetDecayMode (int i) |
| returns ith decay mode code More... | |
| void | Stable () |
| Set that a ZAI is stable to decay. More... | |
| bool | IsStable () |
| Return whether a ZAI is stable. More... | |
Reaction related methods | |
| void | SetReactionList (ReactionList *l) |
| Set the allowed Reactions for an ZAI. More... | |
| ReactionList * | GetReactionList () |
| Set the allowed Reactions for an ZAI. More... | |
| int | GetReactionDaughterSize () |
| size of Reaction Daughter vector More... | |
| int | GetReactionParentSize () |
| size of Reaction Parent vector More... | |
| ZAI * | GetReactionParent (int i) |
| returns ith reaction parent More... | |
| vector< ZAI * > & | GetReactionParent () |
| returns reaction parent vector More... | |
| ZAI * | GetReactionDaughter (int i) |
| returns the ith daughter More... | |
| vector< ZAI * > & | GetReactionDaughter () |
| returns daughter vector More... | |
| void | AddReactionDaughter (ZAI *Daughter, int code, double weight) |
| Add reaction Daughter. More... | |
| void | AddReactionParent (ZAI *Parent) |
| Add reaction Parent. More... | |
| void | CutFromMammaReaction (ZAI *mamma) |
| Suppress Reaction references of ZAI from mamma. More... | |
| vector< ZAIReaction * > & | GetZAIReaction () |
| returns the "reaction code & weight" More... | |
| int | GetReactionCode (int i) |
| returns the ith reaction code More... | |
| double | GetReactionWeight (int i) |
| returns the ith reaction weight More... | |
| void | RemoveReactionDaugther () |
| Remove reaction daugther of a ZAI. More... | |
Fission related methods | |
| void | SetCanFission (bool state=true) |
| Say that ZAI is fissionable nucleus. More... | |
| bool | CanFission () |
| Whether ZAI is fissionable or not. More... | |
| void | SetIsRealFissile (bool state=true) |
| Say that ZAI is a real fissile nucleus-only long halflives and high fission xs. More... | |
| bool | IsRealFissile () |
| Whether ZAI is real fissile nucleus. More... | |
| double | ApproximateNubar () |
| return approximate value for mean number of neutron/fission More... | |
| void | SetApproximateNubar (double nu) |
| set approximate value for mean number of neutron/fission More... | |
| void | FindApproximateNubar () |
| find approximate value for mean number of neutron/fission (enter by pto's hand from ENDF B VII) More... | |
| void | FissionProduct () |
| Set that a ZAI is a fission product. More... | |
| bool | IsFissionProduct () |
| Return whether a ZAI is a fission product. More... | |
| void | SetEnergyReleasedFromFission (double Energy) |
| Set Energy in eV. More... | |
| double | GetEnergyReleasedFromFission () |
| Get Energy in eV. More... | |
Printing methods | |
| string | Print (string tab="", bool WithDaughter=true, bool FirtsGeneration=false, double BR=0) |
| Print a ZAI. More... | |
| string | PrintDecay (string tab="", bool WithDaughter=true, bool FirtsGeneration=false, double BR=0) |
| Print a ZAI and its Decay Daughter. More... | |
| string | PrintReaction (string tab="", bool WithDaughter=true, bool FirtsGeneration=false) |
| Print a ZAI and its Reaction Daughter. More... | |
| string | PrintParent () |
| Print the Parents of a ZAI. More... | |
| string | PrintInfo () |
| Print all known Information of a ZAI. More... | |
| string | PrintName () |
| Print only Name,A,I. More... | |
Find ZAI in data base methods | |
| void | ResetDummy () |
| Reset all fHaveBeenHere to false to allow other recursive method calls. More... | |
| void | SetInDataBase (int state) |
| Set the fInbase attribute to state-1. More... | |
| bool | IsInDataBase () |
| return whether or not a nucleus is in BaseSummary file. More... | |
| XSDIRLine * | GetSaveXSDIRLine () |
| get save XSDIRLine for a ZAI More... | |
| XSDIRLine * | FindXSDIRLine (int &other_isomer) |
| Find the XSDIRLine for a ZAI. More... | |
Miscellaneous methods | |
| bool | ShowZAI (int Z, int A, int I, ZAI *&TheZai) |
| return true if the ZAI(Z,A,I) belong to this. More... | |
| void | Used () |
| Say that a ZAI is really used in a Material. More... | |
| void | NotUsed () |
| Say that a ZAI is not used in a Material. More... | |
| bool | IsUsed () |
| Whether or not a ZAI is really used in a Material. More... | |
| double | BranchingRatioSum () |
| returns the total sum of BR (normally >=1 && <=2) More... | |
| double | BranchingRatio (int i) |
| returns the ith decay branching ratio More... | |
| void | Delete () |
| Say that a ZAI is deleted. More... | |
| bool | IsDelete () |
| Whether or not a ZAI is deleted. More... | |
| void | AddedToMaterial () |
| Say that a ZAI is added to a Material. More... | |
| bool | IsAddedToMaterial () |
| Whether or not a ZAI is added to a Material. More... | |
| void | FindMass () |
| find mass when no evolution required More... | |
| void | SetCanEmitBeta () |
| Say that ZAI is Emits a beta-. More... | |
| bool | CanEmitBeta () |
| Whether ZAI is Emits a beta-. More... | |
| void | SetCanEmitDelayedNeutron () |
| Say that ZAI is delayed neutron precursor. More... | |
| bool | CanEmitDelayedNeutron () |
| Whether ZAI is delayed neutron precursor. More... | |
| void | SetHasIsomer () |
| Say that ZAI has another isomeric state. More... | |
| bool | HasIsomer () |
| Whether or not another ZAI exists which is an isomeric state. More... | |
| void | SetAlternateZAI (ZAI *zai) |
| Set the Alternate ZAI for an isomer nucleus. More... | |
| ZAI * | GetAlternateZAI () |
| returns the Alternate ZAI of an isomer nucleus More... | |
| bool | operator== (ZAI zai) |
| return true if Z,A and I are the same More... | |
| void | ForceNonEvolvingZai () |
| Force a ZAI to not evolve. More... | |
| bool | IsForceNonEvolvingZai () |
| Force a ZAI to not evolve. More... | |
| void | SetIsMotherOfCutBetaDecayer (ZAI *daughter, double BR) |
| Fill vector of nuclei cut from tree. More... | |
Public Attributes | |
| bool | fHaveBeenHere |
| flag used in recursive method to avoid infinit loop. More... | |
| double | fNubar |
| approximate value for mean number of neutron/fission More... | |
Protected Member Functions | |
| void | IncrementBR (int num, double BR) |
| Increment a Branching Ratio. More... | |
| bool | PrivateShowZAI (int Z, int A, int I, ZAI *&TheZai) |
| return true if the ZAI(Z,A,I) belong to this. More... | |
| string | PrivatePrintReaction (string tab="", bool WithDaughter=true, bool FirtsGeneration=false, bool firstcall=true) |
| Print a ZAI and its Reaction Daughter. More... | |
Protected Attributes | |
| string | fName |
| Name of the ZAI. More... | |
| short | fZ |
| number of protons More... | |
| short | fA |
| number of nucleons (A=0 means natural isotopes) More... | |
| short | fI |
| Isomeric state (Ground State, ith excited) More... | |
| double | fMass |
| Mass of a ZAI. More... | |
| double | fHalfLifeTime |
| Decay Half life constant. More... | |
| string | fAllDecays |
| All possible decays string. More... | |
| ReactionList * | fAllowedReaction |
| The allowed reaction list for this ZAI (if fEvolved) More... | |
| vector< ZAI * > | fDecayDaughter |
| vector of decay Daughter More... | |
| vector< ZAI * > | fDecayParent |
| vector of decay parent More... | |
| vector< double > | fDecayBranchingRatio |
| vector of decay Branching Ratio. More... | |
| vector< int > | fDecayMode |
| vector of decay modes More... | |
| vector< ZAI * > | fReactionDaughter |
| vector of reaction Daughter More... | |
| vector< ZAI * > | fReactionParent |
| vector of reaction Parent More... | |
| vector< ZAIReaction * > | fReactionCode |
| vector of the reaction codes More... | |
| bool | fUsed |
| whether a ZAI is really used in a Material More... | |
| bool | fDelete |
| whether a ZAI is deleted More... | |
| bool | fStable |
| whether a ZAI is stable More... | |
| bool | fFissionProduct |
| whether a ZAI is produced directly from ANY fission More... | |
| int | fInbase |
| flag to know IsInDataBase status More... | |
| bool | fHasIsomer |
| flag to show if another state(s) exists More... | |
| bool | fCanFission |
| flag to show if it can fission More... | |
| bool | fIsRealFissile |
| flag to show if it is a REAL fissile nucleus More... | |
| bool | fCanEmitBeta |
| flag to show if it can emit a beta- More... | |
| bool | fCanEmitDelayedNeutron |
| flag to show if it is a delayed neutron precursor More... | |
| ZAI * | fAlternateZAI |
| If no XS data, gives alternate ZAI i.e G.S. ZAI if isomer. More... | |
| XSDIRLine * | fSaveXSDIRLine |
| the xsdir line for a given ZAI More... | |
| double | fEnergyReleasedFromFission |
| The energy released from the fission of this isotope (default = 200 MeV only makes sense for fissile isotopes) More... | |
| bool | fNonEvolvingZai |
| to for a zai to not evolve but be present in MCNP composition More... | |
| vector< ZAI * > | fCutBetaDaughters |
| bool | fIsMotherOfBetaDecayer |
| Is ZAI a mother of a beta decaying nucleus? More... | |
| vector< double > | fCutBetaBR |
| The branching ratios of the cut beta decayers. More... | |
Static Protected Attributes | |
| static vector< ZAI * > | fExploredZAI =dummy |
A ZAI defined a (Z,A,Isomere) for a Nucleus.
The aim of this class is to handle all independant information of a Nucleus. Thus a given ZAI could (and generally does) belong to more than one Nucleus. I, for Isomeric state is 0 for Ground State and "i" for the ith excited state. ZAI know (if NucleiTree class has been invoked) its reaction daughters and its decay daughters. They are store in 2 vectors (ZAI::GetDecayDaughter and ZAI::GetReactionDaughter). Analog methods are defined for ZAI parents. Its has a Name (e.g. Pu for Z=94), a mass (in atomic mass unit) and a decay half life constant (if it is not stable).
| ZAI::ZAI | ( | int | Z, |
| int | A, | ||
| int | I, | ||
| bool | decay = true |
||
| ) |
| ZAI::ZAI | ( | ) |
Default constructor.
| ZAI::ZAI | ( | const ZAI & | zai | ) |
Copy constructor.
| ZAI::~ZAI | ( | ) |
destructor
|
inline |
returns the number of nucleons
| void ZAI::AddDecayDaughter | ( | ZAI * | Daughter, |
| double | BR, | ||
| int | DecayMode | ||
| ) |
Add decay Daughter with Branching Ratio BR & Decay mode.
| void ZAI::AddDecayParent | ( | ZAI * | Parent | ) |
Add decay Parent.
| void ZAI::AddReactionDaughter | ( | ZAI * | Daughter, |
| int | code, | ||
| double | weight | ||
| ) |
Add reaction Daughter.
| void ZAI::AddReactionParent | ( | ZAI * | Parent | ) |
Add reaction Parent.
|
inline |
return approximate value for mean number of neutron/fission
|
inline |
returns the ith decay branching ratio
| double ZAI::BranchingRatioSum | ( | ) |
returns the total sum of BR (normally >=1 && <=2)
|
inline |
Whether ZAI is Emits a beta-.
|
inline |
Whether ZAI is delayed neutron precursor.
|
inline |
Whether ZAI is fissionable or not.
|
inline |
Say that a ZAI is deleted.
| void ZAI::FindApproximateNubar | ( | ) |
find approximate value for mean number of neutron/fission (enter by pto's hand from ENDF B VII)
| void ZAI::FindMass | ( | ) |
find mass when no evolution required
| XSDIRLine * ZAI::FindXSDIRLine | ( | int & | other_isomer | ) |
|
inline |
Set that a ZAI is a fission product.
|
inline |
Force a ZAI to not evolve.
|
inline |
Get all possible decay string.
|
inline |
returns branching ratio vector
|
inline |
returns ith branching ratio
|
inline |
returns the Decay Half life
|
inline |
returns the ith daughter
|
inline |
returns daughter vector
|
inline |
size of decay Daughter vector
|
inline |
returns the decay mode code vector
|
inline |
returns ith decay mode code
|
inline |
returns ith parent
|
inline |
returns parent vector
|
inline |
size of decay Parent vector
|
inline |
Get Energy in eV.
| string ZAI::GetFullName | ( | ) |
returns the fule name (A,name, Isomeroc state)
|
inline |
returns the Decay Half life [s]
| double ZAI::GetMass | ( | ) |
get the molar mass of a ZAI (g/mol)
|
inline |
returns the name of a ZAI
|
inline |
returns the ith reaction code
|
inline |
returns the ith daughter
|
inline |
returns daughter vector
|
inline |
size of Reaction Daughter vector
|
inline |
Set the allowed Reactions for an ZAI.
|
inline |
returns ith reaction parent
|
inline |
returns reaction parent vector
|
inline |
size of Reaction Parent vector
|
inline |
returns the ith reaction weight
|
inline |
returns the "reaction code & weight"
|
inline |
Whether or not another ZAI exists which is an isomeric state.
|
inline |
returns the Isomeric state (Ground State, ith excited)
|
inlineprotected |
Increment a Branching Ratio.
When ading a daughter to a ZAI, check first if the Daughter exists ; if it is the case only increment the BR with the value
| num | : vector position of the existing daughter |
| BR | : the new branching ratio to add to the existing daughter |
|
inline |
Whether or not a ZAI is deleted.
|
inline |
Return whether a ZAI is a fission product.
|
inline |
Force a ZAI to not evolve.
| bool ZAI::IsInDataBase | ( | ) |
return whether or not a nucleus is in BaseSummary file.
|
inline |
Whether ZAI is real fissile nucleus.
|
inline |
Return whether a ZAI is stable.
|
inline |
returns the number of neutrons
| bool ZAI::operator== | ( | ZAI | zai | ) |
return true if Z,A and I are the same
| string ZAI::Print | ( | string | tab = "", |
| bool | WithDaughter = true, |
||
| bool | FirtsGeneration = false, |
||
| double | BR = 0 |
||
| ) |
Print a ZAI.
| tab | : a string to indent the Print |
| WithDaughter | : if true Print also the decay daughters |
| BR | : the branching ratio of the daughter |
| FirtsGeneration | : if true, print only first generation |
| string ZAI::PrintDecay | ( | string | tab = "", |
| bool | WithDaughter = true, |
||
| bool | FirtsGeneration = false, |
||
| double | BR = 0 |
||
| ) |
Print a ZAI and its Decay Daughter.
| tab | : a string to indent the Print |
| WithDaughter | : if true Print also the decay daughters |
| FirtsGeneration | : if true, print only first generation |
| BR | : the branching ratio of the daughter |
| string ZAI::PrintInfo | ( | ) |
Print all known Information of a ZAI.
| string ZAI::PrintName | ( | ) |
Print only Name,A,I.
| string ZAI::PrintParent | ( | ) |
Print the Parents of a ZAI.
| string ZAI::PrintReaction | ( | string | tab = "", |
| bool | WithDaughter = true, |
||
| bool | FirtsGeneration = false |
||
| ) |
|
protected |
|
protected |
return true if the ZAI(Z,A,I) belong to this.
This method is called by the public one.
| Z | : proton number of the wanted ZAI |
| A | : nucleon number of the wanted ZAI |
| I | : isomeric state of the wanted ZAI |
| TheZai | : set to 0 if Z,A,I is not the the tree of this, else points on the ZAI(Z,A,I) return a ZAI(Z,A,I) (if exists) from the ZAI tree |
| void ZAI::RemoveReactionDaugther | ( | ) |
Remove reaction daugther of a ZAI.
| void ZAI::ResetDummy | ( | ) |
Reset all fHaveBeenHere to false to allow other recursive method calls.
|
inline |
Set the nucleon number.
|
inline |
Set all possible decay string.
|
inline |
set approximate value for mean number of neutron/fission
|
inline |
Say that ZAI is Emits a beta-.
|
inline |
Say that ZAI is delayed neutron precursor.
|
inline |
Say that ZAI is fissionable nucleus.
|
inline |
sets the ith branching ratio
|
inline |
Set the Decay Constant.
|
inline |
Set Energy in eV.
|
inline |
Set the Decay Half life [s].
|
inline |
Say that ZAI has another isomeric state.
|
inline |
Set the isomeric state (0=gs,...)
|
inline |
Set the fInbase attribute to state-1.
The fInbase attribute is used to no if reaction data are availlable ; if =-1 no data reactions; if =0 data reaction may exist but we don't know yet the right xsdirline ; if =1 data exist and we know the right xsdir line
| state | : if reaction data are availlable state=1 else state=0 |
| void ZAI::SetIsMotherOfCutBetaDecayer | ( | ZAI * | daughter, |
| double | BR | ||
| ) |
Fill vector of nuclei cut from tree.
|
inline |
Say that ZAI is a real fissile nucleus-only long halflives and high fission xs.
|
inline |
set the mass of a ZAI (g/mol)
|
inline |
Set the name of the ZAI (e.g. Pu)
| void ZAI::SetReactionList | ( | ReactionList * | l | ) |
Set the allowed Reactions for an ZAI.
|
inline |
Set the proton number.
| bool ZAI::ShowZAI | ( | int | Z, |
| int | A, | ||
| int | I, | ||
| ZAI *& | TheZai | ||
| ) |
return true if the ZAI(Z,A,I) belong to this.
Usefull to know if a Z,A,I is in the tree (decay and/or reaction) of this. If it is the case TheZai is non 0 and points on the Z,A,I.
| Z | : proton number of the wanted ZAI |
| A | : nucleon number of the wanted ZAI |
| I | : isomeric state of the wanted ZAI |
| TheZai | : set to 0 if Z,A,I is not the the tree of this, else points on the ZAI(Z,A,I) |
|
inline |
Set that a ZAI is stable to decay.
|
inline |
returns the number of protons
|
protected |
number of nucleons (A=0 means natural isotopes)
|
protected |
All possible decays string.
|
protected |
The allowed reaction list for this ZAI (if fEvolved)
|
protected |
flag to show if it can emit a beta-
|
protected |
flag to show if it is a delayed neutron precursor
|
protected |
flag to show if it can fission
|
protected |
The branching ratios of the cut beta decayers.
|
protected |
|
protected |
vector of decay Branching Ratio.
|
protected |
vector of decay Daughter
|
protected |
vector of decay modes
|
protected |
vector of decay parent
|
protected |
whether a ZAI is deleted
|
protected |
The energy released from the fission of this isotope (default = 200 MeV only makes sense for fissile isotopes)
|
protected |
whether a ZAI is produced directly from ANY fission
|
protected |
Decay Half life constant.
|
protected |
flag to show if another state(s) exists
| bool ZAI::fHaveBeenHere |
flag used in recursive method to avoid infinit loop.
|
protected |
Isomeric state (Ground State, ith excited)
|
protected |
flag to know IsInDataBase status
|
protected |
Is ZAI a mother of a beta decaying nucleus?
|
protected |
flag to show if it is a REAL fissile nucleus
|
protected |
Mass of a ZAI.
|
protected |
Name of the ZAI.
|
protected |
to for a zai to not evolve but be present in MCNP composition
| double ZAI::fNubar |
approximate value for mean number of neutron/fission
|
protected |
vector of the reaction codes
|
protected |
vector of reaction Daughter
|
protected |
vector of reaction Parent
|
protected |
whether a ZAI is stable
|
protected |
number of protons