28 m_photonEmissionProbability( 0.0 ),
30 m_residualStateIndex( -1 ),
31 m_residualStateKindIsContinuum( false ) {
39 std::map<std::string, int> &a_stateNamesToIndices,
bool a_makePhotonEmissionProbabilitiesOne ) :
40 m_probability( a_nuclideGammaBranchInfo.
probability( ) ),
42 m_gammaEnergy( a_nuclideGammaBranchInfo.
gammaEnergy( ) ),
43 m_residualStateIndex( -1 ),
44 m_residualStateKindIsContinuum( false ) {
46 if( a_makePhotonEmissionProbabilitiesOne ) m_photonEmissionProbability = 1.0;
47 std::map<std::string,int>::iterator iter = a_stateNamesToIndices.find( a_nuclideGammaBranchInfo.
residualState( ) );
48 if( iter != a_stateNamesToIndices.end( ) ) m_residualStateIndex = iter->second;
78 LUPI_maybeUnused std::string
const &a_energyFormat, std::string
const &a_dFormat )
const {
97 m_nuclearLevelEnergy( 0.0 ),
98 m_nuclearLevelEnergyWidth( 0.0 ),
99 m_multiplicity( 0.0 ),
100 m_averageGammaEnergy( 0.0 ) {
109 std::vector<NuclideGammaBranchInfo *> &a_nuclideGammaBranchInfos,
110 std::map<std::string, int> &a_stateNamesToIndices,
bool a_makePhotonEmissionProbabilitiesOne,
111 bool a_zeroNuclearLevelEnergyWidth ) :
112 m_intid( a_nuclideGammaBranchingInfo.
intid( ) ),
115 m_multiplicity( a_nuclideGammaBranchingInfo.
multiplicity( ) ),
118 if( a_zeroNuclearLevelEnergyWidth ) m_nuclearLevelEnergyWidth = 0.0;
120 strncpy( m_state, a_nuclideGammaBranchingInfo.
state( ).c_str( ),
sizeof( m_state ) );
121 m_state[
sizeof( m_state )-1] = 0;
123 std::vector<PoPI::NuclideGammaBranchInfo>
const &branches = a_nuclideGammaBranchingInfo.
branches( );
124 m_branchIndices.reserve( branches.size( ) );
126 for( std::size_t i1 = 0; i1 < branches.size( ); ++i1 ) {
127 m_branchIndices.push_back( a_nuclideGammaBranchInfos.size( ) );
128 a_nuclideGammaBranchInfos.push_back(
new NuclideGammaBranchInfo( branches[i1], a_stateNamesToIndices, a_makePhotonEmissionProbabilitiesOne ) );
161 LUPI_maybeUnused std::string
const &a_energyFormat, std::string
const &a_dFormat )
const {
165 for(
auto branchIter = m_branchIndices.begin( ); branchIter != m_branchIndices.end( ); ++branchIter ) {
168 std::cout << std::endl;
#define DATA_MEMBER_CAST(member, buf, mode, someType)
#define DATA_MEMBER_VECTOR_SIZE_T(member, buf, mode)
#define DATA_MEMBER_CHAR_ARRAY(member, buf, mode)
#define DATA_MEMBER_DOUBLE(member, buf, mode)
#define DATA_MEMBER_INT( member, buf, mode)
LUPI_HOST_DEVICE double probability() const
LUPI_HOST_DEVICE NuclideGammaBranchInfo()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST void print(ProtareSingle const *a_protareSingle, std::string const &a_indent, std::string const &a_iFormat, std::string const &a_energyFormat, std::string const &a_dFormat) const
LUPI_HOST_DEVICE double gammaEnergy() const
LUPI_HOST_DEVICE double photonEmissionProbability() const
LUPI_HOST_DEVICE NuclideGammaBranchStateInfo()
LUPI_HOST void print(ProtareSingle const *a_protareSingle, std::string const &a_indent, std::string const &a_iFormat, std::string const &a_energyFormat, std::string const &a_dFormat) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double nuclearLevelEnergy() const
LUPI_HOST_DEVICE double averageGammaEnergy() const
LUPI_HOST_DEVICE double multiplicity() const
LUPI_HOST_DEVICE int intid() const
LUPI_HOST_DEVICE double nuclearLevelEnergyWidth() const
std::string const & residualState() const
std::string const & state() const
std::vector< NuclideGammaBranchInfo > const & branches() const
std::string argumentsToString(char const *a_format,...)
Simple C++ string class, useful as replacement for std::string if this cannot be used,...