Class AbstractAccelerationModule
Defined in File Acceleration.h
Inheritance Relationships
Base Type
public Module(Class Module)
Derived Types
public DirectedFlowScattering(Class DirectedFlowScattering)public SecondOrderFermi(Class SecondOrderFermi)
Class Documentation
-
class AbstractAccelerationModule : public Module
Core functionallity for acceleration by scattering with scatter centers moving in a velocity field.
The velocity field is implicity implemented in the derived classes for performance reasons. Models for the dependence of the step length of the scatter process are set via modifiers.
Subclassed by DirectedFlowScattering, SecondOrderFermi
Public Functions
-
AbstractAccelerationModule(double _stepLength = 1. * parsec)
The parent’s constructor need to be called on initialization!
-
void add(StepLengthModifier *modifier)
-
virtual void process(Candidate *candidate) const
Process function This is the main function to work with, it is called during every ModuleList::run step. Derived functions need to override this overload of process!
- Parameters:
candidate – Candidate raw pointer
-
virtual Vector3d scatterCenterVelocity(Candidate *candidate) const = 0
Returns the velocity vector of the scatter centers in the rest frame of the candidate. Needs to be implemented in inheriting classes.
-
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
Returns description, can be overriden by derived class.
-
void setDescription(const std::string &description)
Sets description, can be used instead of getDescription in derived class
- Parameters:
description – Description string
-
inline void process(ref_ptr<Candidate> candidate) const
Process function Overload for process function to explicitly make a conversion from ref_ptr to a raw pointer
-
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
-
AbstractAccelerationModule(double _stepLength = 1. * parsec)