Class EMDoublePairProduction
Defined in File EMDoublePairProduction.h
Inheritance Relationships
Base Type
public Module
(Class Module)
Class Documentation
-
class EMDoublePairProduction : public Module
Electron double pair production of photons with background photons.
This module simulates electron double pair production of photons 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
-
EMDoublePairProduction(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)
-
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
-
EMDoublePairProduction(ref_ptr<PhotonField> photonField, bool haveElectrons = false, double thinning = 0, double limit = 0.1)