50 m_excitationEnergy( 0,
"MeV" ) {
53 std::string energyUnit(
"MeV" );
55 if( a_pops.
exists( m_id ) ) {
57 if( particleOrAlias->
isAlias( ) ) {
61 m_pid = particleOrAlias->
ID( ); }
63 if( a_requiredInGlobalPoPs )
throw Exception(
"ParticleInfo::ParticleInfo: required particle ID not in global PoPs: " + m_id );
66 if( a_internalPoPs.
exists( m_id ) ) {
68 if( particleOrAlias->
isAlias( ) ) {
70 particleOrAlias = &a_pops.
get<
PoPI::Base>( alias->pidIndex( ) );
74 if( particleOrAlias ==
nullptr )
throw Exception(
"ParticleInfo::ParticleInfo: particle ID not in global PoPs: " + m_id );
88 m_excitationEnergy =
PhysicalQuantity( nuclide.levelEnergy( energyUnit ), energyUnit );
PhysicalQuantity const & mass() const
std::string const & pid() const
PhysicalQuantity const & excitationEnergy() const
std::string const & qualifier() const
ParticleInfo & operator=(ParticleInfo const &a_rhs)
std::string const & ID() const
static std::string const qualifierPortion(std::string const &a_id)
static std::string const IDPortion(std::string const &a_id)
ParticleInfo(std::string const &a_id, std::string const &a_pid, double a_mass, double a_excitationEnergy=0.0)
virtual double massValue(char const *a_unit) const