Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
PoPI::DecayMode Class Reference

#include <PoPI.hpp>

Public Member Functions

 DecayMode (HAPI::Node const &a_node, DecayData const *a_decayData)
 ~DecayMode ()
std::string const & label () const
std::string const & mode () const
PQ_suite const & probability () const
PQ_suite const & photonEmissionProbabilities () const
Suite< Decay, DecayMode > const & decayPath () const
void calculateNuclideGammaBranchStateInfo (PoPI::Database const &a_pops, NuclideGammaBranchStateInfo &a_nuclideGammaBranchStateInfo) const
void toXMLList (std::vector< std::string > &a_XMLList, std::string const &a_indent1) const

Detailed Description

Definition at line 773 of file PoPI.hpp.

Constructor & Destructor Documentation

◆ DecayMode()

PoPI::DecayMode::DecayMode ( HAPI::Node const & a_node,
DecayData const * a_decayData )

Definition at line 83 of file PoPI_decayData.cc.

83 :
84 m_label( a_node.attribute( PoPI_labelChars ).value( ) ),
85 m_mode( a_node.attribute( PoPI_modeChars ).value( ) ),
86 m_probability( a_node.child( PoPI_probabilityChars ) ),
87 m_photonEmissionProbabilities( a_node.child( PoPI_photonEmissionProbabilitiesChars ) ),
88 m_decayPath( PoPI_decayPathChars ) {
89
90 m_decayPath.appendFromParentNode2( a_node.child( PoPI_decayPathChars ), this );
91}
#define PoPI_labelChars
Definition PoPI.hpp:90
#define PoPI_modeChars
#define PoPI_probabilityChars
#define PoPI_photonEmissionProbabilitiesChars
#define PoPI_decayPathChars

◆ ~DecayMode()

PoPI::DecayMode::~DecayMode ( )

Definition at line 95 of file PoPI_decayData.cc.

95 {
96
97}

Member Function Documentation

◆ calculateNuclideGammaBranchStateInfo()

void PoPI::DecayMode::calculateNuclideGammaBranchStateInfo ( PoPI::Database const & a_pops,
NuclideGammaBranchStateInfo & a_nuclideGammaBranchStateInfo ) const

Definition at line 102 of file PoPI_decayData.cc.

102 {
103
104 if( m_mode == PoPI_decayModeElectroMagnetic ) {
105 double _probability = getPhysicalQuantityOfSuiteAsDouble( probability( ) );
106 double _photonEmissionProbabilities = getPhysicalQuantityOfSuiteAsDouble( photonEmissionProbabilities( ), true, 1.0 );
107
108 std::string residualState( "" );
109 Decay const &decay = m_decayPath[0];
110 Suite<Product, Decay> const &products = decay.products( );
111 for( std::size_t i1 = 0; i1 < products.size( ); ++i1 ) {
112 Product const &product = products[i1];
113
114 if( product.pid( ) != IDs::photon ) residualState = product.pid( );
115 }
116
117 Particle const &initialState = a_pops.get<Particle>( a_nuclideGammaBranchStateInfo.state( ) );
118 Particle const &finalState = a_pops.get<Particle>( residualState );
119 double gammaEnergy = PoPI_AMU2MeV_c2 * ( initialState.massValue( "amu" ) - finalState.massValue( "amu" ) );
120
121 NuclideGammaBranchInfo nuclideGammaBranchInfo( _probability, _photonEmissionProbabilities, gammaEnergy, residualState );
122 a_nuclideGammaBranchStateInfo.add( nuclideGammaBranchInfo );
123 }
124}
#define PoPI_AMU2MeV_c2
Definition PoPI.hpp:30
#define PoPI_decayModeElectroMagnetic
Definition PoPI.hpp:87
PQ_suite const & photonEmissionProbabilities() const
Definition PoPI.hpp:789
PQ_suite const & probability() const
Definition PoPI.hpp:788
ParticleList decay(Cluster *const c)
Carries out a cluster decay.
double getPhysicalQuantityOfSuiteAsDouble(PQ_suite const &a_suite, bool a_allowEmpty=false, double a_emptyValue=0.0)
Definition PoPI_misc.cc:435
static std::string const photon
Definition PoPI.hpp:162

Referenced by PoPI::DecayData::calculateNuclideGammaBranchStateInfo().

◆ decayPath()

Suite< Decay, DecayMode > const & PoPI::DecayMode::decayPath ( ) const
inline

Definition at line 790 of file PoPI.hpp.

790{ return( m_decayPath ); }

◆ label()

std::string const & PoPI::DecayMode::label ( ) const
inline

Definition at line 786 of file PoPI.hpp.

786{ return( m_label ); }

◆ mode()

std::string const & PoPI::DecayMode::mode ( ) const
inline

Definition at line 787 of file PoPI.hpp.

787{ return( m_mode ); }

◆ photonEmissionProbabilities()

PQ_suite const & PoPI::DecayMode::photonEmissionProbabilities ( ) const
inline

Definition at line 789 of file PoPI.hpp.

789{ return( m_photonEmissionProbabilities ); }

Referenced by calculateNuclideGammaBranchStateInfo().

◆ probability()

PQ_suite const & PoPI::DecayMode::probability ( ) const
inline

Definition at line 788 of file PoPI.hpp.

788{ return( m_probability ); }

Referenced by calculateNuclideGammaBranchStateInfo().

◆ toXMLList()

void PoPI::DecayMode::toXMLList ( std::vector< std::string > & a_XMLList,
std::string const & a_indent1 ) const

Adds the contents of this to a_XMLList where each item in a_XMLList is one line (without linefeeds) to output as an XML representation of this.

Parameters
a_XMLList[in] The list to add an XML output representation of this to.
a_indent1[in] The amount of indentation to added to each line added to a_XMLList.

Definition at line 133 of file PoPI_decayData.cc.

133 {
134
135 std::string header = a_indent1 + "<decayMode label=\"" + m_label + "\" mode=\"" + m_mode + "\">";
136 a_XMLList.push_back( std::move( header ) );
137
138 std::string indent2 = a_indent1 + " ";
139 m_probability.toXMLList( a_XMLList, indent2 );
140 m_decayPath.toXMLList( a_XMLList, indent2 );
141
142 appendXMLEnd( a_XMLList, PoPI_decayModeChars );
143}
#define PoPI_decayModeChars
void appendXMLEnd(std::vector< std::string > &a_XMLList, std::string const &a_label)
Definition PoPI_misc.cc:53

The documentation for this class was generated from the following files: