Class EMPairProduction

Inheritance Relationships

Base Type

Class Documentation

class EMPairProduction : public Module

Electron-pair production of photons with background photons.

This module simulates electron-pair production of cosmic ray photons with background photons: gamma + gamma_b –> e+ + e- (Breit-Wheeler process). The resulting electron positron pair is optionally created (default = false). The module limits the propagation step size to a fraction of the mean free path (default = 0.1). Thinning is available. A thinning of 0 means that all particles are tracked. For the maximum thinning of 1, only a few representative particles are added to the list of secondaries. Note that for thinning>0 the output must contain the column “weights”, which should be included in the post-processing.

Public Functions

EMPairProduction(ref_ptr<PhotonField> photonField, bool haveElectrons = false, double thinning = 0, double limit = 0.1)


  • photonField – target photon field

  • haveElectrons – if true, add secondary electrons as candidates

  • thinning – weighted sampling of secondaries (0: all particles are tracked; 1: maximum thinning)

  • 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


limit – fraction of the mean free path

void setThinning(double thinning)

Apply thinning with a given thinning factor


thinning – factor of thinning (0: no thinning, 1: maximum thinning)

void setInteractionTag(std::string tag)

set a custom interaction tag to trace back this interaction


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

std::string getInteractionTag() const
void initRate(std::string filename)
void initCumulativeRate(std::string filename)
void performInteraction(Candidate *candidate) const
virtual void process(Candidate *candidate) const
virtual std::string getDescription() const
void setDescription(const std::string &description)
inline void process(ref_ptr<Candidate> candidate) const
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