Class EMPairProduction
Defined in File EMPairProduction.h
Inheritance Relationships
Base Type
public Module
(Class Module)
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)
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 propagation step to a fraction of the mean free path
- Parameters:
limit – fraction of the mean free path
-
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 std::string getDescription() const
-
void setDescription(const std::string &description)
-
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
-
EMPairProduction(ref_ptr<PhotonField> photonField, bool haveElectrons = false, double thinning = 0, double limit = 0.1)