Class EMTripletPairProduction

Inheritance Relationships

Base Type

Class Documentation

class EMTripletPairProduction : public Module

Electron triplet pair production of electrons with background photons.

This module simulates electron triplet pair production of electrons with background photons for several photon fields. The secondary electrons from this interaction are 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

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

Constructor

Parameters
  • 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 step to a fraction of the mean free path

Parameters

limit – fraction of the mean free path, should be between 0 and 1

void setThinning(double thinning)

Apply thinning with a given thinning factor

Parameters

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

Parameters

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)
virtual void process(Candidate *candidate) const
void performInteraction(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