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