22#include "marley/Level.hh"
52 DecayScheme(
int Z,
int A);
60 DecayScheme(
int Z,
int A,
const std::string& filename,
65 inline const std::vector<std::unique_ptr<marley::Level> >&
91 std::shared_ptr< HepMC3::GenParticle >& residue );
100 void print(std::ostream& out = std::cout)
const;
114 void print_report(std::ostream& ostr = std::cout)
const;
125 std::vector< std::unique_ptr<marley::Level> >
levels_;
137 void parse(
const std::string& filename,
145 void parse_talys(
const std::string& filename);
149 void parse_native(
const std::string& filename);
157 inline const std::vector<std::unique_ptr<marley::Level> >&
167inline std::ostream& operator<<(std::ostream& out,
Stores event-related information.
Stores particle-related information.
Discrete level and γ-ray data for a specific nuclide.
void read_from_stream(std::istream &in)
Use a std::istream to initialize this DecayScheme object, replacing any previous data.
int pdg() const
Returns the nuclear PDG code corresponding to Z and A.
std::vector< std::unique_ptr< marley::Level > > levels_
Level objects owned by this DecayScheme.
marley::Level & add_level(const marley::Level &level)
Add a level to the DecayScheme.
void print_latex_table(std::ostream &ostr=std::cout)
Print LaTeX source code that gives a tabular representation of the DecayScheme object.
void do_cascade(marley::Level &initial_level, HepMC3::GenEvent &event, marley::Generator &gen, std::shared_ptr< HepMC3::GenParticle > &residue)
Simulates nuclear de-excitation via γ-ray emission(s)
const std::vector< std::unique_ptr< marley::Level > > & get_levels() const
Get a const reference to the vector that holds the Level objects.
size_t level_lower_bound_index(double Ex)
Get the index of the first level whose energy is not less than Ex.
FileFormat
The FileFormat type is used to tell the DecayScheme class which format to assume when parsing a discr...
int A() const
Get the mass number.
int Z() const
Get the atomic number.
void print(std::ostream &out=std::cout) const
Print this DecayScheme object to a std::ostream.
void print_report(std::ostream &ostr=std::cout) const
Print a human-readable text representation of the DecayScheme object.
marley::Level * get_pointer_to_closest_level(double E_level)
Gets a pointer to the Level in the DecayScheme whose excitation energy is closest to E_level.
The MARLEY Event generator.
A discrete nuclear energy level.