Class MaterialInteractions#

Class Documentation#

class MaterialInteractions#

The MaterialInteractions class contains a set of routines for calculating common interactions of a particle with a material, for instance scattering and energy loss in the material. Many of the routines only apply to ~GeV protons. There are several material choices.

Public Functions

MaterialInteractions()#

Constructor

virtual ~MaterialInteractions()#

Destructor

Public Static Functions

static void momentumKick(double t, double p, double &dpx, double &dpy)#

Routine to generate and apply random, uniformly distributed 2D momentum kicks

static void mcsJackson(double stepsize, double z, double a, double rho, double beta, double pfac, double &x, double &y, double &px, double &py)#

Routine to apply multiple coulomb scattering kicks following JD Jackson, Chapter 13

static double ruthScattJackson(double stepsize, double z, double a, double rho, double beta, int trackit, double pfac, double &thetax, double &thetay)#

Routine to apply Rutherford scattering following JD Jackson, Chapter 13

static double elastic_t(double p, double a)#

Routine to generate a random momentum transfer for low energy elastic scattering (<= 0.4 GeV)

static double ionEnergyLoss(double beta, double z, double a)#

Routine to calculate ionization energy loss.