Program Listing for File Cordes.cpp

Return to documentation for file (src/massDistribution/Cordes.cpp)

#include "crpropa/massDistribution/Cordes.h"
#include "crpropa/Common.h"

#include <sstream>

namespace crpropa {

double Cordes::getHIIDensity(const Vector3d &position) const {
        double n=0;  // in m^-3

        double z=position.z;
        double R = sqrt(position.x*position.x+position.y*position.y);  //radius in galactic disk

        n += 0.025/ccm*exp(-fabs(z)/(1*kpc))*exp(-pow_integer<2>(R/(20*kpc)));  // galactocentric component
        n += 0.2/ccm*exp(-fabs(z)/(0.15*kpc))*exp(-pow_integer<2>((R-4*kpc)/(2*kpc)));  // anular component

        return n;
}

double Cordes::getDensity(const Vector3d &position) const {
        return Cordes::getHIIDensity(position);
}

double Cordes::getNucleonDensity(const Vector3d &position) const {
        return getHIIDensity(position);
}

bool Cordes::getIsForHI() {
        return isforHI;
}

bool Cordes::getIsForHII() {
        return isforHII;
}

bool Cordes::getIsForH2() {
        return isforH2;
}

std::string Cordes::getDescription() {
        std::stringstream s;
        s << "Density Cordes: includes only an HII component";
        return s.str();
}

}  // namespace crpropa