25#include "HepMC3/Attribute.h"
26#include "HepMC3/GenEvent.h"
27#include "HepMC3/GenParticle.h"
28#include "marley/DecayScheme.hh"
29#include "marley/Level.hh"
30#include "marley/MassTable.hh"
31#include "marley/MatrixElement.hh"
32#include "marley/Reaction.hh"
33#include "marley/StructureDatabase.hh"
52 int pdg_d,
int q_d,
const std::string&
source_file );
93 const std::shared_ptr< HepMC3::GenParticle >& residue,
115 double KEa,
double pc_cm,
double cos_theta_c_cm,
double phi_c_cm,
116 double Ec_cm,
double Ed_cm,
double E_level,
int twoJ,
130 double KEa,
const std::shared_ptr< HepMC3::GenParticle >& ejectile,
131 const std::shared_ptr< HepMC3::GenParticle >& residue,
The MARLEY Event generator.
int Ai_
Target mass number.
double weak_nuclear_charge() const
void set_nuclear_residue_attributes(const std::shared_ptr< HepMC3::GenParticle > &residue, double E_level, int twoJ, const marley::Parity &P) const
Helper function that adds the nuclear level attributes ( , , and parity) needed to keep track of the ...
double threshold_kinetic_energy() const override
Get the minimum lab-frame kinetic energy (MeV) of the projectile that allows this reaction to proceed...
virtual std::shared_ptr< HepMC3::GenEvent > make_nuclear_event_object(double KEa, double pc_cm, double cos_theta_c_cm, double phi_c_cm, double Ec_cm, double Ed_cm, double E_level, int twoJ, const marley::Parity &P) const
Helper function that makes a complete event object for a nuclear reaction.
virtual void set_description()
Creates the description string based on the PDG code values for the initial and final particles.
double max_level_energy(double KEa) const
Get the maximum possible excitation energy (MeV) of the final-state residue that is kinematically all...
int q_d_
Net charge of the residue (in units of the proton charge) following this reaction.
NuclearReaction(ProcessType pt, int pdg_a, int pdg_b, int pdg_c, int pdg_d, int q_d, const std::string &source_file)
int Zi_
Target atomic number.
virtual marley::TargetAtom atomic_target() const override final
Returns the target atom involved in this reaction.
int Af_
Residue mass number.
double KEa_threshold_
Lab-frame kinetic energy of the projectile at threshold for this reaction (i.e., the residue is produ...
int Zf_
Residue atomic number.
double md_gs_
Ground state mass (MeV) of the residue.
void set_charge_attributes(std::shared_ptr< HepMC3::GenEvent > &event) const
Helper function that sets the charges of the target and residue in an otherwise complete event record...
Type-safe representation of a parity value (either +1 or -1)
Reaction(const std::string &source_file)
Construct a Reaction with the resolved path of the data file.
ProcessType
Enumerated type describing the kind of scattering process represented by a Reaction.
const std::string & source_file() const
Get the resolved path of the reaction data file used to construct this Reaction.
int pdg_a() const
Get the projectile PDG code.
int pdg_b_
PDG code for the target.
int pdg_b() const
Get the target PDG code.
An atomic target for a lepton scattering reaction.