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

#include <PoPI.hpp>

Public Member Functions

 GammaDecayData (HAPI::Node const &a_node)
 ~GammaDecayData ()
std::string const & kind () const
int rows () const
int colunms () const
std::vector< std::string > const & ids () const
std::vector< double > const & probabilities () const
std::vector< double > const & photonEmissionProbabilities () const
void calculateNuclideGammaBranchStateInfo (PoPI::Database const &a_pops, NuclideGammaBranchStateInfo &nuclideGammaBranchStateInfo) const

Detailed Description

This class stores, in a crude way, the GRIN, non-GNDS 2.0 compliant, nuclide gamma decay data.

Definition at line 823 of file PoPI.hpp.

Constructor & Destructor Documentation

◆ GammaDecayData()

PoPI::GammaDecayData::GammaDecayData ( HAPI::Node const & a_node)
Parameters
a_node[in] The HAPI node to parse.

Definition at line 232 of file PoPI_decayData.cc.

232 :
233 m_kind( a_node.attribute_as_string( "kind" ) ),
234 m_rows( 0 ),
235 m_columns( 0 ) {
236
237 if( m_kind == "" ) m_kind = PoPI_discreteChars;
238
239 if( !a_node.empty( ) ) {
240 HAPI::Node table = a_node.child( "table" );
241 m_rows = table.attribute_as_int( "rows" );
242 m_columns = table.attribute_as_int( "columns" );
243
244 HAPI::Node data = table.child( "data" );
245
246 std::string text = LUPI::Misc::stripString( data.text( ).get( ) );
247 auto cells = LUPI::Misc::splitString( text, ' ', true );
248
249 m_ids.reserve( static_cast<std::size_t>( m_rows ) );
250 m_probabilities.reserve( static_cast<std::size_t>( m_rows ) );
251 m_photonEmissionProbabilities.reserve( static_cast<std::size_t>( m_rows ) );
252 for( std::size_t cellIndex = 0; cellIndex < cells.size( ); cellIndex += 3 ) {
253 m_ids.push_back( cells[cellIndex] );
254 m_probabilities.push_back( std::stod( cells[cellIndex+1] ) );
255 m_photonEmissionProbabilities.push_back( std::stod( cells[cellIndex+2] ) );
256 }
257 }
258}
#define PoPI_discreteChars
Definition PoPI.hpp:98
Text text() const
Definition HAPI_Node.cc:164
std::string const & get() const
Definition HAPI.hpp:84
std::vector< std::string > splitString(std::string const &a_string, char a_delimiter, bool a_strip=false)
Definition LUPI_misc.cc:103
std::string stripString(std::string const &a_string, bool a_left=true, bool a_right=true)
Definition LUPI_misc.cc:68

◆ ~GammaDecayData()

PoPI::GammaDecayData::~GammaDecayData ( )

Definition at line 263 of file PoPI_decayData.cc.

263 {
264
265}

Referenced by ~GammaDecayData().

Member Function Documentation

◆ calculateNuclideGammaBranchStateInfo()

void PoPI::GammaDecayData::calculateNuclideGammaBranchStateInfo ( PoPI::Database const & a_pops,
NuclideGammaBranchStateInfo & nuclideGammaBranchStateInfo ) const

Definition at line 270 of file PoPI_decayData.cc.

270 {
271
272 Particle const &initialState = a_pops.get<Particle>( a_nuclideGammaBranchStateInfo.state( ) );
273 double initialStateMass = initialState.massValue( "amu" );
274
275 for( std::size_t index = 0; index < static_cast<std::size_t>( m_rows ); ++index ) {
276 std::string residualState( m_ids[index] );
277 double _probability = m_probabilities[index];
278 double _photonEmissionProbabilities = m_photonEmissionProbabilities[index];
279
280 Particle const &finalState = a_pops.get<Particle>( residualState );
281 double gammaEnergy = PoPI_AMU2MeV_c2 * ( initialStateMass - finalState.massValue( "amu" ) );
282
283 NuclideGammaBranchInfo nuclideGammaBranchInfo( _probability, _photonEmissionProbabilities, gammaEnergy, residualState );
284 a_nuclideGammaBranchStateInfo.add( nuclideGammaBranchInfo );
285 }
286}
#define PoPI_AMU2MeV_c2
Definition PoPI.hpp:30

Referenced by calculateNuclideGammaBranchStateInfo().

◆ colunms()

int PoPI::GammaDecayData::colunms ( ) const
inline

Definition at line 839 of file PoPI.hpp.

839{ return( m_columns ); }

◆ ids()

std::vector< std::string > const & PoPI::GammaDecayData::ids ( ) const
inline

Definition at line 840 of file PoPI.hpp.

840{ return( m_ids ); }

Referenced by MCGIDI::GRIN_captureToCompound::GRIN_captureToCompound().

◆ kind()

std::string const & PoPI::GammaDecayData::kind ( ) const
inline

Returns a const reference to the m_kind member.

Definition at line 837 of file PoPI.hpp.

◆ photonEmissionProbabilities()

std::vector< double > const & PoPI::GammaDecayData::photonEmissionProbabilities ( ) const
inline

Definition at line 842 of file PoPI.hpp.

842{ return( m_photonEmissionProbabilities ); }

◆ probabilities()

std::vector< double > const & PoPI::GammaDecayData::probabilities ( ) const
inline

Definition at line 841 of file PoPI.hpp.

841{ return( m_probabilities ); }

Referenced by MCGIDI::GRIN_captureToCompound::GRIN_captureToCompound().

◆ rows()

int PoPI::GammaDecayData::rows ( ) const
inline

Definition at line 838 of file PoPI.hpp.

838{ return( m_rows ); }

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