MARLEY (Model of Argon Reaction Low Energy Yields)  v1.0.0
A Monte Carlo event generator for tens-of-MeV neutrino-nucleus interactions in liquid argon
 All Classes Functions Variables Enumerations Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
marley::Reaction Class Referenceabstract

Abstract base class that represents a two-two scattering reaction. More...

#include <Reaction.hh>

Inheritance diagram for marley::Reaction:
marley::NuclearReaction

Public Member Functions

virtual marley::Event create_event (int pdg_a, double KEa, marley::Generator &gen)=0
 Create an event object for this reaction. More...
 
std::string get_description ()
 Get a string that contains the formula for this reaction.
 
virtual double total_xs (int pdg_a, double KEa)=0
 Compute the reaction's total cross section (MeV -2) More...
 

Protected Member Functions

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=0.)
 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)
 Helper function that handles CM frame kinematics for the reaction. More...
 

Protected Attributes

std::string description_
 String that contains a formula describing the reaction.
 
double ma2_
 Squared projectile mass (MeV) More...
 
double ma_
 Projectile mass (MeV)
 
double mb2_
 Squared target mass (MeV)
 
double mb_
 Target mass (MeV)
 
double mc2_
 Squared ejectile mass (MeV)
 
double mc_
 Ejectile mass (MeV)
 
double md2_
 Squared residue 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.
 

Detailed Description

Abstract base class that represents a two-two scattering reaction.

This class models a reaction of the form a + b → c + d. The projectile (particle a) is taken to have lab-frame kinetic energy KEa and to be traveling toward the target along the positive z direction. The target (particle b) is taken to be at rest in the lab frame.

Todo:
Add check that projectile kinetic energy KEa >= 0. for all relevant member functions of Reaction and NuclearReaction

Member Function Documentation

virtual marley::Event marley::Reaction::create_event ( int  pdg_a,
double  KEa,
marley::Generator gen 
)
pure virtual

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

Implemented in marley::NuclearReaction.

marley::Event marley::Reaction::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 = 0. 
)
protectedvirtual

Helper function that makes an event object.

This function should be called by marley::Reaction::create_event() after CM frame scattering angles have been sampled for the ejectile. For reactions where the residue may be left in an excited state, the excitation energy should be recorded by supplying it as the final argument.

Parameters
KEaLab-frame kinetic energy (MeV) of the projectile
pc_cmEjectile 3-momentum magnitude (MeV) in the CM frame
cos_theta_c_cmCosine of ejectile's CM frame polar angle
phi_c_cmEjectile's CM frame azimuthal angle (radians)
Ec_cmEjectile total energy (MeV) in the CM frame
Ed_cmResidue total energy (MeV) in the CM frame
E_levelResidue excitation energy (MeV)
virtual double marley::Reaction::total_xs ( int  pdg_a,
double  KEa 
)
pure virtual

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 0. if pdg_a != pdg_a_.

Implemented in marley::NuclearReaction.

void marley::Reaction::two_two_scatter ( double  KEa,
double &  s,
double &  Ec_cm,
double &  pc_cm,
double &  Ed_cm 
)
protected

Helper function that handles CM frame kinematics for the reaction.

Parameters
KEaLab-frame kinetic energy (MeV) of the projectile
[out]sMandelstam s (MeV2)
[out]Ec_cmEjectile total energy (MeV) in the CM frame
[out]pc_cmEjectile 3-momentum magnitude (MeV) in the CM frame
[out]Ed_cmResidue total energy (MeV) in the CM frame

Member Data Documentation

double marley::Reaction::ma2_
protected

Squared projectile mass (MeV)

Note
The squared masses of the particles are pre-computed for speed

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