SOLARPROP  1.0
 All Classes Functions Variables
particle.h
1 /*
2  * particle.h
3  *
4  * Author: kappl
5  */
6 
7 #ifndef PARTICLE_H_
8 #define PARTICLE_H_
9 
10 #include "Iparticle.h"
11 
15 class Particle : public IParticle
16 {
17  private:
18  void step(Random&);
19  double getDeltaT() const;
20  long getDeltaTime() const;
21 
22  protected:
26  double r;
30  double theta;
34  double phi;
38  double time;
50  double dt;
58  double perPart;
62  double kappa0;
66  double BfieldScaling;
70  int polarity;
74  double angle;
75 
76  virtual double getDeltaR(Random&) const = 0;
77  double getDeltaTheta(Random&) const;
78  double getDeltaPhi() const;
79 
80  void calculate();
81 
82  double getV() const;
83  double getP2() const;
84  double getRigidity() const;
85  double getBeta() const;
86  double getPolarity() const;
87  double getAngle() const;
88  double getTanPsi() const;
89  double convertDeg(double) const;
90  double getLarmorRadius() const;
91  double getB0OverB() const;
92  double getB() const;
93  double getTheta() const;
94  double getPhi() const;
95  double getTime() const;
96  double getMass() const;
97  double getCharge() const;
98  int getHeaviside() const;
99  double getKappaPerpendicular() const;
100  double getKappaThetaTheta() const;
101 
102  public:
103  Particle(const TmodelInformation&, const Tproperties&);
104  virtual ~Particle();
105 
106  long simulate(Random&);
107  double getR() const;
108  double getT() const;
109  double getHeliosphereBoundary() const;
110  double getISFlux(int) const;
111  double getISFlux(bool) const;
112  double getISFlux(bool, int) const;
113 };
114 
115 
116 #endif /* PARTICLE_H_ */