Program Listing for File Ferriere.h

Return to documentation for file (include/crpropa/massDistribution/Ferriere.h)

#ifndef CRPROPA_FERRIERE_H
#define CRPROPA_FERRIERE_H

#include "crpropa/massDistribution/Density.h"

#include <cmath>
#include <string>

namespace crpropa {
class Ferriere: public Density {
private:
        // standard for all types of distribution
        bool isforHI = true;
        bool isforHII = true;
        bool isforH2 = true;
        double Rsun = 8.5 * kpc;  // distance sun-galactic center

public:
        Vector3d CMZTransformation(const Vector3d &position) const;

        Vector3d DiskTransformation(const Vector3d &position) const;

        double getDensity(const Vector3d &position) const;
        double getHIDensity(const Vector3d &position) const;
        double getHIIDensity(const Vector3d &position) const;
        double getH2Density(const Vector3d &position) const;
        double getNucleonDensity(const Vector3d &position) const;

        void setIsForHI(bool HI);
        void setIsForHII(bool HII);
        void setIsForH2(bool H2);

        bool getIsForHI();
        bool getIsForHII();
        bool getIsForH2();

        std::string getDescription();
};

}  // namespace crpropa

#endif  // CRPROPA_FERRIERE_H