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.

Public Functions

SynchrotronRadiation(ref_ptr<MagneticField> field, bool havePhotons = false, double limit = 0.1)
SynchrotronRadiation(double Brms = 0, bool havePhotons = false, double limit = 0.1)
void setField(ref_ptr<MagneticField> field)
ref_ptr<MagneticField> getField()
void setBrms(double Brms)
double getBrms()
void setHavePhotons(bool havePhotons)
bool getHavePhotons()
void setLimit(double limit)
double getLimit()
void setSecondaryThreshold(double threshold)
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