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 :
|