Class ElectronPairProduction

Inheritance Relationships

Base Type

Class Documentation

class ElectronPairProduction : public Module

Electron-pair production of charged nuclei with background photons.

This module simulates electron-pair production as a continuous energy loss.

Several photon fields can be selected.

The production of secondary e+/e- pairs and photons can by activated.

By default, the module limits the step size to 10% of the energy loss length of the particle.

Public Functions

ElectronPairProduction(ref_ptr<PhotonField> photonField, bool haveElectrons = false, double limit = 0.1)

Constructor for the Electron Pair Production.

Parameters:
  • photonField – target photon field

  • haveElectrons – If true, secondary electrons will be added to the simulation

  • limit – step size limit as fraction of mean free path

void setPhotonField(ref_ptr<PhotonField> photonField)
void setHaveElectrons(bool haveElectrons)
void setLimit(double limit)

Limit the propagation step to a fraction of the mean free path

Parameters:

limit – fraction of the mean free path

void setInteractionTag(std::string tag)

set a custom interaction tag to trace back this interaction

Parameters:

tag – string that will be added to the candidate and output

std::string getInteractionTag() const
void initRate(std::string filename)
void initSpectrum(std::string filename)
virtual void process(Candidate *candidate) const

Process function This is the main function to work with, it is called during every ModuleList::run step. Derived functions need to override this overload of process!

Parameters:

candidateCandidate raw pointer

double lossLength(int id, double lf, double z = 0) const

Calculates the energy loss length 1/beta = -E dx/dE in [m]

The energy loss length is tabulated for protons against

CMB and IRB. Modification for nuclei and cosmological evolution of the photon background is considered with (cf. 10.1016/j.astropartphys.2012.07.010, eq. 3 and 5) beta_A,Z(E) = Z^2 / A * beta_p(E/A) beta(E,z) = (1+z)^3 beta((1+z)E).

Parameters:
  • id – PDG particle ID

  • lf – Lorentz factor

  • z – redshift

virtual std::string getDescription() const

Returns description, can be overriden by derived class.

void setDescription(const std::string &description)

Sets description, can be used instead of getDescription in derived class

Parameters:

description – Description string

inline void process(ref_ptr<Candidate> candidate) const

Process function Overload for process function to explicitly make a conversion from ref_ptr to a raw pointer

inline size_t addReference() const
inline size_t removeReference() const
inline int removeReferenceNoDelete() const
inline size_t getReferenceCount() const

Protected Attributes

mutable size_t _referenceCount