MURE
|
A ZAI defined a (Z, A, Isomere) for a Nucleus. More...
#include <ZAI.hxx>
Public Member Functions | |
ZAI (int aZ, int aA, int aI) | |
Normal Constructor. | |
ZAI () | |
Default constructor. | |
ZAI (const ZAI &zai) | |
Copy constructor. | |
~ZAI () | |
destructor | |
ZAI main attributes | |
int | Z () |
int | A () |
int | I () |
int | N () |
void | SetZ (int aZ) |
void | SetA (int aA) |
void | SetI (int aI) |
void | SetMass (double m) |
double | GetMass () |
get the molar mass of a ZAI (g/mol) | |
void | SetName (string Name) |
string | GetName () |
string | GetFullName () |
returns the fule name (A, name, Isomeroc state) | |
Decay related methods | |
void | SetHalfLifeTime (double T_12) |
double | GetHalfLifeTime () |
void | SetDecayConstant (double lambda) |
double | GetDecayConstant () |
int | GetDecayDaughterSize () |
ZAI * | GetDecayDaughter (int i) |
vector< ZAI * > & | GetDecayDaughter () |
int | GetDecayParentSize () |
vector< double > & | GetDecayBranchingRatio () |
double | GetDecayBranchingRatio (int i) |
void | SetDecayBranchingRatio (int i, double BR) |
ZAI * | GetDecayParent (int i) |
vector< ZAI * > & | GetDecayParent () |
void | AddDecayDaughter (ZAI *Daughter, double BR, int DecayMode) |
Add decay Daughter with Branching Ratio BR &Decay mode. | |
void | AddDecayParent (ZAI *Parent) |
Add decay Parent. | |
void | CutFromMammaDecay (ZAI *mamma) |
Suppress Decay references of ZAI from mamma. | |
string | GetAllDecays () |
void | SetAllDecays (string decays) |
vector< int > & | GetDecayMode () |
int | GetDecayMode (int i) |
void | Stable () |
bool | IsStable () |
Reaction related methods | |
void | SetReactionList (ReactionList *l) |
Set the allowed Reactions for an ZAI. | |
ReactionList * | GetReactionList () |
int | GetReactionDaughterSize () |
int | GetReactionParentSize () |
ZAI * | GetReactionParent (int i) |
vector< ZAI * > & | GetReactionParent () |
ZAI * | GetReactionDaughter (int i) |
vector< ZAI * > & | GetReactionDaughter () |
void | AddReactionDaughter (ZAI *Daughter, int code, double weight, bool replace=false) |
Add reaction Daughter. | |
void | AddReactionParent (ZAI *Parent) |
Add reaction Parent. | |
void | CutFromMammaReaction (ZAI *mamma) |
Suppress Reaction references of ZAI from mamma. | |
vector< ZAIReaction * > & | GetZAIReaction () |
int | GetReactionCode (int i) |
double | GetReactionWeight (int i) |
void | RemoveReactionDaugther () |
Remove reaction daugther of a ZAI. | |
Fission related methods | |
void | SetCanFission (bool state=true) |
bool | CanFission () |
void | SetIsRealFissile (bool state=true) |
bool | IsRealFissile () |
double | ApproximateNubar () |
void | SetApproximateNubar (double nu) |
void | FindApproximateNubar () |
find approximate value for mean number of neutron/fission (enter by pto's hand from ENDF B VII) | |
void | FissionProduct () |
bool | IsFissionProduct () |
void | SetEnergyReleasedFromFission (double Energy) |
double | GetEnergyReleasedFromFission () |
Printing methods | |
string | Print (string tab="", bool WithDaughter=true, bool FirstGeneration=false, double BR=0) |
Print a ZAI. | |
string | PrintDecay (string tab="", bool WithDaughter=true, bool FirstGeneration=false, double BR=0) |
Print a ZAI and its Decay Daughter. | |
string | PrintReaction (string tab="", bool WithDaughter=true, bool FirstGeneration=false) |
Print a ZAI and its Reaction Daughter. | |
string | PrintParent () |
Print the Parents of a ZAI. | |
string | PrintInfo () |
Print all known Information of a ZAI. | |
string | PrintName () |
Print only Name, A, I. | |
Find ZAI in data base methods | |
void | ResetDummy () |
Reset all fHaveBeenHere to false to allow other recursive method calls. | |
void | SetInDataBase (int state) |
Set the fInbase attribute to state-1. | |
bool | IsInDataBase () |
return whether or not a nucleus is in BaseSummary file. | |
XSDIRLine * | GetSaveXSDIRLine () |
XSDIRLine * | FindXSDIRLine (int &other_isomer) |
Find the XSDIRLine for a ZAI. | |
Miscellaneous methods | |
string | fName |
Name of the ZAI. | |
int | fZ |
number of protons | |
int | fA |
number of nucleons (A=0 means natural isotopes) | |
int | fI |
Isomeric state (Ground State, ith excited) | |
double | fMass |
Mass of a ZAI. | |
double | fHalfLifeTime |
Decay Half life constant. | |
string | fAllDecays |
All possible decays string. | |
bool | fAllowedReactionWasSet |
ReactionList * | fAllowedReaction |
The allowed reaction list for this ZAI (if fEvolved) | |
vector< ZAI * > | fDecayDaughter |
vector of decay Daughter | |
vector< ZAI * > | fDecayParent |
vector of decay parent | |
vector< double > | fDecayBranchingRatio |
vector of decay Branching Ratio. | |
vector< int > | fDecayMode |
vector of decay modes | |
vector< ZAI * > | fReactionDaughter |
vector of reaction Daughter | |
vector< ZAI * > | fReactionParent |
vector of reaction Parent | |
vector< ZAIReaction * > | fReactionCode |
vector of the reaction codes | |
bool | fNonEvolvingZai |
to for a zai to not evolve but be present in MCNP composition | |
bool | fUsed |
whether a ZAI is really used in a Material | |
bool | fDelete |
whether a ZAI is deleted | |
bool | fStable |
whether a ZAI is stable | |
int | fInbase |
flag to know IsInDataBase status | |
bool | fHasIsomer |
flag to show if another state(s) exists | |
bool | fFissionProduct |
whether a ZAI is produced directly from ANY fission | |
bool | fCanFission |
flag to show if it can fission | |
bool | fIsRealFissile |
flag to show if it is a REAL fissile nucleus | |
bool | fCanEmitBeta |
flag to show if it can emit a beta- | |
bool | fCanEmitDelayedNeutron |
flag to show if it is a delayed neutron precursor | |
bool | fIsMotherOfBetaDecayer |
Is ZAI a mother of a beta decaying nucleus? | |
double | fEnergyReleasedFromFission |
The energy released from the fission of this isotope (default = 200 MeV only makes sense for fissile isotopes) | |
ZAI * | fAlternateZAI |
If no XS data, gives alternate ZAI i.e G.S. ZAI if isomer. | |
XSDIRLine * | fSaveXSDIRLine |
the xsdir line for a given ZAI | |
vector< ZAI * > | fCutBetaDaughters |
List of the ZAI that were cut. | |
vector< double > | fCutBetaBR |
The branching ratios of the cut beta decayers. | |
static vector< ZAI * > | fExploredZAI = dummy |
bool | fHaveBeenHere |
flag used in recursive method to avoid infinit loop. | |
double | fNubar |
approximate value for mean number of neutron/fission | |
bool | IsZAIInMyFamilly (int Z, int A, int I, ZAI *&ZaiOfMyFamilly) |
return true if the ZAI(Z, A, I) belong to this. | |
void | Used () |
void | NotUsed () |
bool | IsUsed () |
double | BranchingRatioSum () |
returns the total sum of BR (normally >=1 && <=2) | |
void | Delete () |
bool | IsDelete () |
void | AddedToMaterial () |
bool | IsAddedToMaterial () |
void | FindMass () |
find mass when no evolution required | |
void | SetCanEmitBeta () |
bool | CanEmitBeta () |
void | SetCanEmitDelayedNeutron () |
bool | CanEmitDelayedNeutron () |
void | SetHasIsomer () |
bool | HasIsomer () |
void | SetAlternateZAI (ZAI *zai) |
ZAI * | GetAlternateZAI () |
bool | operator== (ZAI zai) |
return true if Z, A and I are the same | |
void | ForceNonEvolvingZai () |
bool | IsForceNonEvolvingZai () |
void | SetIsMotherOfCutBetaDecayer (ZAI *daughter, double BR) |
Fill vector of nuclei cut from tree. | |
void | IncrementBR (int num, double BR) |
Increment a Branching Ratio. | |
bool | PrivateIsZAIInMyFamilly (int Z, int A, int I, ZAI *&ZaiOfMyFamilly) |
return true if the ZAI(Z, A, I) belong to this. | |
string | PrivatePrintReaction (string tab="", bool WithDaughter=true, bool FirstGeneration=false, bool firstcall=true) |
Print a ZAI and its Reaction Daughter. | |
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 | aZ, |
int | aA, | ||
int | aI | ||
) |
Normal Constructor.
Default: No parent
aZ | : number of protons |
aA | : number of nucleons (A=0 means natural isotopes) |
aI | : Isomeric state (0=ground state, 1 =first excited, ...) |
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, | ||
bool | replace = false |
||
) |
Add reaction Daughter.
void ZAI::AddReactionParent | ( | ZAI * | Parent | ) |
Add reaction Parent.
|
inline |
< return approximate value for mean number of neutron/fission
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 daughter vector
|
inline |
< returns the ith daughter
|
inline |
< size of decay Daughter vector
|
inline |
< returns the decay mode code vector
|
inline |
< returns ith decay mode code
|
inline |
< returns parent vector
|
inline |
< returns ith parent
|
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 daughter vector
|
inline |
< returns the ith daughter
|
inline |
< size of Reaction Daughter vector
|
inline |
< Set the allowed Reactions for an ZAI
|
inline |
< returns reaction parent vector
|
inline |
< returns ith reaction parent
|
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
bool ZAI::IsZAIInMyFamilly | ( | int | Z, |
int | A, | ||
int | I, | ||
ZAI *& | ZaiOfMyFamilly | ||
) |
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 |
ZaiOfMyFamilly | : set to 0 if Z, A, I is not the the tree of this ZAI, else points on the ZAI(Z, A, I) |
|
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 | FirstGeneration = 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 |
FirstGeneration | : if true, print only first generation |
string ZAI::PrintDecay | ( | string | tab = "" , |
bool | WithDaughter = true , |
||
bool | FirstGeneration = 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 |
FirstGeneration | : 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 | FirstGeneration = false |
||
) |
|
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 |
ZaiOfMyFamilly | : 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 |
|
protected |
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
|
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 |
|
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 |
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