SOLARPROP  1.0
 All Classes Functions Variables
Iparticle.h
1 /*
2  * Iparticle.h
3  *
4  * Author: kappl
5  */
6 
7 #ifndef IPARTICLE_H_
8 #define IPARTICLE_H_
9 
10 #include "properties.h"
11 #include "stringconst.h"
12 #include "random.h"
13 
17 class IParticle
18 {
19  protected:
20  virtual void step(Random&) = 0;
21 
22  virtual long getDeltaTime() const = 0;
23  virtual double getDeltaT() const = 0;
24  virtual double getDeltaR(Random&) const = 0;
25  virtual double getDeltaTheta(Random&) const = 0;
26  virtual double getDeltaPhi() const = 0;
27 
28  virtual void calculate() = 0;
29 
30  virtual double getTheta() const = 0;
31  virtual double getPhi() const = 0;
32  virtual double getTime() const = 0;
33  virtual double getMass() const = 0;
34  virtual double getCharge() const = 0;
35  virtual double getV() const = 0;
36  virtual double getP2() const = 0;
37  virtual double getRigidity() const = 0;
38  virtual double getBeta() const = 0;
39  virtual double getPolarity() const = 0;
40  virtual double getAngle() const = 0;
41  virtual double getTanPsi() const = 0;
42  virtual double convertDeg(double) const = 0;
43  virtual double getLarmorRadius() const = 0;
44  virtual double getB0OverB() const = 0;
45  virtual double getB() const = 0;
46  virtual int getHeaviside() const = 0;
47  virtual double getKappaPerpendicular() const = 0;
48  virtual double getKappaThetaTheta() const = 0;
49 
50  public:
51  virtual ~IParticle() {};
52 
53  virtual double getHeliosphereBoundary() const = 0;
54  virtual long simulate(Random&) = 0;
55  virtual double getR() const = 0;
56  virtual double getT() const = 0;
57 
58  virtual double getISFlux(int) const = 0;
59  virtual double getISFlux(bool) const = 0;
60  virtual double getISFlux(bool, int) const = 0;
61 };
62 
63 #endif /* IPARTICLE_H_ */