26 #ifndef GRALE_PROFILELENS_H
28 #define GRALE_PROFILELENS_H
30 #include "graleconfig.h"
37 class GRALE_IMPORTEXPORT ProfileLensParams :
public GravitationalLensParams
40 ProfileLensParams() { }
41 ProfileLensParams(
double endRadius,
const std::vector<double> &profile) { m_profile = profile; m_endRadius = endRadius; }
42 const std::vector<double> &getProfile()
const {
return m_profile; }
43 double getEndRadius()
const {
return m_endRadius; }
44 GravitationalLensParams *createCopy()
const;
45 bool write(serut::SerializationInterface &si)
const;
46 bool read(serut::SerializationInterface &si);
49 std::vector<double> m_profile;
52 class GRALE_IMPORTEXPORT ProfileLens :
public SymmetricLens
58 bool getProjectedPotential(
double D_s,
double D_ds, Vector2D<double> theta,
59 double *pPotentialValue)
const;
61 bool processParameters(
const GravitationalLensParams *pLensParams);
62 double getMassInside(
double thetaLength)
const;
63 double getProfileSurfaceMassDensity(
double thetaLength)
const;
65 std::vector<double> m_profile;
66 std::vector<double> m_mass;
67 std::vector<double> m_potential;
74 #endif // GRALE_PROFILELENS_H