Line data Source code
1 : #ifndef CRPROPA_CORDES_H
2 : #define CRPROPA_CORDES_H
3 :
4 : #include "crpropa/massDistribution/Density.h"
5 :
6 : #include <cmath>
7 : #include <string>
8 :
9 : namespace crpropa {
10 : /**
11 : @class Cordes
12 : @brief Cylindrical symetrical model of the density of ionised hydrogen (HII) of the Milky Way
13 : Cordes et al., 1991, Nature 353,737
14 : */
15 1 : class Cordes: public Density {
16 : private:
17 : // DO NOT CHANGE model type!
18 : bool isforHI = false;
19 : bool isforHII = true;
20 : bool isforH2 = false;
21 :
22 : public:
23 : /** @param position position in galactic coordinates with Earth at (-8.5kpc, 0, 0)
24 : @return density in parts/m^3 */
25 : double getDensity(const Vector3d &position) const;
26 : /** @param position position in galactic coordinates with Earth at (-8.5kpc, 0, 0)
27 : @return density of ionised hydrogen in parts/m^3, equal getDensity thus no other type is included for Cordes */
28 : double getHIIDensity(const Vector3d &position) const;
29 : /** @param position position in galactic coordinates with Earth at (-8.5kpc, 0, 0)
30 : @return density of nucleons in parts/m^3, equal getDensity thus only HII is included for Cordes */
31 : double getNucleonDensity(const Vector3d &position) const;
32 :
33 : /** @return activation status of HI */
34 : bool getIsForHI();
35 : /** @return activation status of HII */
36 : bool getIsForHII();
37 : /** @return activation status of H2 */
38 : bool getIsForH2();
39 :
40 : std::string getDescription();
41 : };
42 :
43 : } // namespace crpropa
44 :
45 : #endif // CRPROPA_CORDES_H
|