MARLEY (Model of Argon Reaction Low Energy Yields)  v1.2.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Public Member Functions | List of all members
marley::ElectronReaction Class Reference
Inheritance diagram for marley::ElectronReaction:
marley::Reaction

Public Member Functions

 ElectronReaction (int pdg_a, int target_atom_pdg)
 
virtual marley::TargetAtom atomic_target () const override final
 Returns the target atom involved in this reaction. More...
 
virtual marley::Event create_event (int particle_id_a, double KEa, marley::Generator &gen) const override
 Create an event object for this reaction. More...
 
virtual double diff_xs (int pdg_a, double KEa, double cos_theta_c_cm) const override
 Differential cross section \(d\sigma/d\cos\theta_{c}^{\mathrm{CM}}\) (MeV -2) More...
 
double g1 () const
 
double g2 () const
 
virtual double threshold_kinetic_energy () const override
 Get the minimum lab-frame kinetic energy (MeV) of the projectile that allows this reaction to proceed via a transition to the residue's ground state.
 
virtual double total_xs (int pdg_a, double KEa) const override
 Compute the reaction's total cross section (MeV -2) More...
 
- Public Member Functions inherited from marley::Reaction
const std::string & get_description () const
 Get a string that contains the formula for this reaction.
 
int pdg_a () const
 Get the projectile PDG code.
 
int pdg_b () const
 Get the target PDG code.
 
ProcessType process_type () const
 Get the process type for this reaction.
 

Additional Inherited Members

- Public Types inherited from marley::Reaction
enum  ProcessType { NeutrinoCC = 0 , AntiNeutrinoCC = 1 , NC = 2 , NuElectronElastic = 3 }
 Enumerated type describing the kind of scattering process represented by a Reaction. More...
 
- Static Public Member Functions inherited from marley::Reaction
static int get_ejectile_pdg (int pdg_a, ProcessType proc_type)
 
static std::vector< std::unique_ptr< Reaction > > load_from_file (const std::string &filename, marley::StructureDatabase &db)
 
static std::string proc_type_to_string (const ProcessType &pt)
 
- Protected Member Functions inherited from marley::Reaction
virtual marley::Event make_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 an event object. More...
 
void two_two_scatter (double KEa, double &s, double &Ec_cm, double &pc_cm, double &Ed_cm) const
 Helper function that handles CM frame kinematics for the reaction. More...
 
- Static Protected Member Functions inherited from marley::Reaction
static const std::vector< int > & get_projectiles (ProcessType proc_type)
 
- Protected Attributes inherited from marley::Reaction
std::string description_
 String that contains a formula describing the reaction.
 
double ma_
 Projectile mass (MeV)
 
double mb_
 Target mass (MeV)
 
double mc_
 Ejectile mass (MeV)
 
double md_
 Residue mass (MeV)
 
int pdg_a_
 PDG code for the projectile.
 
int pdg_b_
 PDG code for the target.
 
int pdg_c_
 PDG code for the ejectile.
 
int pdg_d_
 PDG code for the residue.
 
ProcessType process_type_
 Type of scattering process (CC, NC) represented by this reaction.
 

Member Function Documentation

◆ atomic_target()

virtual marley::TargetAtom marley::ElectronReaction::atomic_target ( ) const
inlinefinaloverridevirtual

Returns the target atom involved in this reaction.

For nuclear reactions, this is identical to the pdg_b_ member variable. For electron reactions, it is distinct (since particle b is the initial struck electron).

Implements marley::Reaction.

◆ create_event()

marley::Event marley::ElectronReaction::create_event ( int  pdg_a,
double  KEa,
marley::Generator gen 
) const
overridevirtual

Create an event object for this reaction.

Parameters
pdg_aPDG code for the incident projectile
KEaLab-frame kinetic energy of the projectile
genReference to the Generator to use for random sampling
Note
Functions that override create_event() should throw an Error if pdg_a != pdg_a_.

Implements marley::Reaction.

◆ diff_xs()

double marley::ElectronReaction::diff_xs ( int  pdg_a,
double  KEa,
double  cos_theta_c_cm 
) const
overridevirtual

Differential cross section \(d\sigma/d\cos\theta_{c}^{\mathrm{CM}}\) (MeV -2)

Parameters
pdg_aPDG code for the projectile
KEaLab-frame kinetic energy (MeV) of the projectile
cos_theta_c_cmCM frame scattering cosine of the ejectile
Note
Functions that override diff_xs() should always return zero if pdg_a != pdg_a_.
Todo:
Take into account effects of electron binding energy

Implements marley::Reaction.

◆ total_xs()

double marley::ElectronReaction::total_xs ( int  pdg_a,
double  KEa 
) const
overridevirtual

Compute the reaction's total cross section (MeV -2)

Parameters
pdg_aProjectile's PDG code
KEaLab-frame kinetic energy of the incident projectile
Returns
Reaction total cross section (MeV -2)
Note
Functions that override total_xs() should always return zero if pdg_a != pdg_a_.
Todo:
Take into account effects of electron binding energy

Implements marley::Reaction.


The documentation for this class was generated from the following files: