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