Line data Source code
1 : #ifndef SIMPLEPROPAGATION_H 2 : #define SIMPLEPROPAGATION_H 3 : 4 : #include "crpropa/Module.h" 5 : #include "crpropa/Units.h" 6 : 7 : namespace crpropa { 8 : /** 9 : * \addtogroup Propagation 10 : * @{ 11 : */ 12 : 13 : /** 14 : @class SimplePropagation 15 : @brief Simple rectilinear propagation in absence of magnetic fields. 16 : 17 : This module implements rectilinear propagation. 18 : The step size is guaranteed to be larger than minStep and smaller than maxStep. 19 : It always proposes a next step size of maxStep. 20 : */ 21 1 : class SimplePropagation: public Module { 22 : private: 23 : double minStep, maxStep; 24 : 25 : public: 26 : SimplePropagation(double minStep = (0.1 * kpc), double maxStep = (1 * Gpc)); 27 : void process(Candidate *candidate) const; 28 : void setMinimumStep(double minStep); 29 : void setMaximumStep(double maxStep); 30 : double getMinimumStep() const; 31 : double getMaximumStep() const; 32 : std::string getDescription() const; 33 : }; 34 : /** @}*/ 35 : 36 : } // namespace crpropa 37 : 38 : #endif // SIMPLEPROPAGATION_H 39 :