21#include "MassTable.hh"
39 ElectronReaction(
int pdg_a,
int target_atom_pdg,
47 virtual double total_xs(
int pdg_a,
double KEa)
const override;
50 virtual double diff_xs(
int pdg_a,
double KEa,
double cos_theta_c_cm)
54 virtual std::shared_ptr< HepMC3::GenEvent >
create_event(
58 {
return KEa_threshold_; }
60 inline double g1()
const {
return g1_; }
61 inline double g2()
const {
return g2_; }
66 marley::TargetAtom atom_;
73 double KEa_threshold_;
79 void set_coupling_constants();
85 double sample_cos_theta_c_cm(
double s, marley::Generator& gen);
virtual double threshold_kinetic_energy() const override
Get the minimum lab-frame kinetic energy (MeV) of the projectile that allows this reaction to proceed...
virtual marley::TargetAtom atomic_target() const override final
Returns the target atom involved in this reaction.
virtual double diff_xs(int pdg_a, double KEa, double cos_theta_c_cm) const
virtual std::shared_ptr< HepMC3::GenEvent > create_event(int particle_id_a, double KEa, marley::Generator &gen) const override
Create an event object for this reaction.
virtual double total_xs(int pdg_a, double KEa) const override
Compute the reaction's total cross section (MeV -2)
The MARLEY Event generator.
Abstract base class that represents a 2 → 2 scattering 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.
An atomic target for a lepton scattering reaction.