Class SecondOrderFermi
Defined in File Acceleration.h
Inheritance Relationships
Base Type
public AbstractAccelerationModule
(Class AbstractAccelerationModule)
Class Documentation
-
class SecondOrderFermi : public AbstractAccelerationModule
Implements scattering with centers moving in isotropic directions. All scatter centers have the same velocity.
Public Functions
-
SecondOrderFermi(double scatterVelocity = .1 * crpropa::c_light, double stepLength = 1. * crpropa::parsec, unsigned int sizeOfPitchangleTable = 10000)
Constructor
- Parameters:
scatterVelocity – velocity of scattering centers
stepLength – average mean free path
sizeOfPitchangleTable – number of precalculated pitch angles
-
virtual crpropa::Vector3d scatterCenterVelocity(crpropa::Candidate *candidate) const
Returns the velocity vector of the scatter centers in the rest frame of the candidate. Needs to be implemented in inheriting classes.
-
void add(StepLengthModifier *modifier)
-
void scatter(Candidate *candidate, const Vector3d &scatter_center_velocity) const
Scatter the candidate with a center with given scatter center velocity into a random direction. Assumes that the candidate is ultra-relativistic (m = 0).
-
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
-
SecondOrderFermi(double scatterVelocity = .1 * crpropa::c_light, double stepLength = 1. * crpropa::parsec, unsigned int sizeOfPitchangleTable = 10000)