Class SynchrotronRadiation

Inheritance Relationships

Base Type

Class Documentation

class SynchrotronRadiation : public Module

Synchrotron radiation of charged particles in magnetic fields.

This module simulates the continuous energy loss of charged particles in magnetic fields, c.f. Jackson. The magnetic field is specified either by a MagneticField or by a RMS field strength value. The module limits the next step size to ensure a fractional energy loss dE/E < limit (default = 0.1). Optionally, synchrotron photons above a threshold (default E > 10^7 eV) are created as secondary particles. Note that the large number of secondary photons per propagation can cause memory problems. To mitigate this, use thinning. However, this still doesn’t solve the problem completely. For this reason, a break-condition stops tracking secondary photons and reweights the current ones.

Public Functions

SynchrotronRadiation(ref_ptr<MagneticField> field, bool havePhotons = false, double thinning = 0, int nSamples = 0, double limit = 0.1)
SynchrotronRadiation(double Brms = 0, bool havePhotons = false, double thinning = 0, int nSamples = 0, double limit = 0.1)
void setField(ref_ptr<MagneticField> field)
void setBrms(double Brms)
void setHavePhotons(bool havePhotons)
void setThinning(double thinning)
void setLimit(double limit)
void setMaximumSamples(int nmax)
void setSecondaryThreshold(double threshold)
ref_ptr<MagneticField> getField()
double getBrms()
bool getHavePhotons()
double getThinning()
double getLimit()
int getMaximumSamples()
double getSecondaryThreshold() const
void initSpectrum()
void process(Candidate *candidate) const
std::string getDescription() const
void setDescription(const std::string &description)
void process(ref_ptr<Candidate> candidate) const
size_t addReference() const
size_t removeReference() const
int removeReferenceNoDelete() const
size_t getReferenceCount() const

Protected Attributes

size_t _referenceCount