| 
    GLAMERDOC++
    
   Gravitational Lensing Code Library 
   | 
 
A class that includes the MOKA lens map. More...
#include <MOKAlens.h>


Public Member Functions | |
| LensHaloMassMap (const std::string &filename, PixelMapType maptype, int pixel_map_zeropad, bool my_zeromean, const COSMOLOGY &lenscosmo) | |
| loads a mass map from a given filename  | |
| LensHaloMassMap (const PixelMap< double > &MassMap, double massconvertion, double redshift, int pixel_map_zeropad, bool my_zeromean, const COSMOLOGY &lenscosmo) | |
| Create a LensHalo from a PixelMap representing the mass.   | |
| LensHaloMassMap (const PixelMap< float > &MassMap, double massconvertion, double redshift, int pixel_map_zeropad, bool my_zeromean, const COSMOLOGY &lenscosmo) | |
| LensHaloMassMap (double mass, Point_2d center, Point_2d range, double resolution, int zeropadding, double redshift, const COSMOLOGY &cosmo) | |
| This makes a uniform rectangular mass sheat.   | |
| LensHaloMassMap (const LensHaloMassMap &h) | |
| LensHaloMassMap (LensHaloMassMap &&h) | |
| LensHaloMassMap & | operator= (LensHaloMassMap &h) | 
| LensHaloMassMap & | operator= (LensHaloMassMap &&h) | 
| void | assignParams (InputParams ¶ms) | 
| void | checkCosmology () | 
| checks the cosmology against the MOKA map parameters   | |
| void | force_halo (double *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, double const *xcm, bool subtract_point=false, PosType screening=1.0) | 
| Routine for obtaining the deflection and other lensing quantities for a LensHaloMassMap for just one ray!!   | |
| void | getDims () | 
| void | readMap () | 
| reads in the fits file for the MOKA or mass map and saves it in the structure map  | |
| template<typename T> | |
| void | setMap (const PixelMap< T > &inputmap, double convertionfactor, double z) | 
| void | writeImage (std::string fn) | 
| write the fits file of the new MOKA map from the structure map  | |
| Point_2d | getCenter () const | 
| return center in physical Mpc  | |
| double | getRangeRad () const | 
| return range of input map in rad  | |
| double | getRangeMpc () const | 
| return range of input map in physical Mpc  | |
| size_t | getN () const | 
| /// return number of pixels on a side in original map  | |
| size_t | getNx () const | 
| return number of pixels on a x-axis side in original map  | |
| size_t | getNy () const | 
| return number of pixels on a y-axis side in original map  | |
  Public Member Functions inherited from LensHalo | |
| LensHalo () | |
| Shell constructor.  | |
| LensHalo (PosType z, const COSMOLOGY &cosmo) | |
| LensHalo (const LensHalo &h) | |
| LensHalo (LensHalo &&h) | |
| LensHalo & | operator= (const LensHalo &h) | 
| LensHalo & | operator= (LensHalo &&h) | 
| float | get_Rmax () const | 
| this can be used to tag types of LensHalos   | |
| float | getRsize () const | 
| get the Rsize which is the size of the halo in Mpc  | |
| float | get_mass () const | 
| get the mass solar units  | |
| float | get_rscale () const | 
| get the scale radius in Mpc  | |
| PosType | getZlens () const | 
| get the redshift  | |
| void | getX (PosType *MyPosHalo) const | 
| get the position of the Halo in physical Mpc on the lens plane  | |
| PosType | operator[] (int i) const | 
| returns position of the Halo in physical Mpc on the lens plane  | |
| void | setTheta (PosType PosX, PosType PosY) | 
| set the position of the Halo in radians  | |
| void | setTheta (PosType *PosXY) | 
| set the position of the Halo in radians  | |
| void | setTheta (const Point_2d &p) | 
| set the position of the Halo in radians  | |
| void | getTheta (PosType *MyPosHalo) const | 
| get the position of the Halo in radians  | |
| void | setDist (COSMOLOGY &co) | 
| Set the angular size distance to the halo. This should be the distance to the lens plane.  | |
| PosType | getDist () const | 
| void | displayPos () | 
| virtual void | initFromFile (float my_mass, long *seed, float vmax, float r_halfmass) | 
| initialize from a simulation file   | |
| virtual void | initFromMassFunc (float my_mass, float my_Rsize, float my_rscale, PosType my_slope, long *seed) | 
| initialize from a mass function   | |
| virtual void | set_RsizeRmax (float my_Rsize) | 
| set Rsize (in Mpc) and reset Rmax  | |
| void | set_mass (float my_mass) | 
| set mass (in solar masses)  | |
| virtual void | set_rscale (float my_rscale) | 
| set scale radius (in Mpc)  | |
| void | setZlens (PosType my_zlens, const COSMOLOGY &cosmo) | 
| set redshift  | |
| void | setRsize (PosType R) | 
| void | setZlensDist (PosType my_zlens, const COSMOLOGY &cos) | 
| void | setMass (PosType m) | 
| virtual void | set_slope (PosType my_slope) | 
| set slope   | |
| virtual PosType | get_slope () | 
| get slope   | |
| bool | get_flag_elliptical () | 
| flag=True if halo elliptical  | |
| void | set_flag_elliptical (bool ell) | 
| bool | get_switch_flag () | 
| void | set_switch_flag (bool swt) | 
| flag permits case distinction in force_halo_asym for elliptical NFWs only (get_switch_flag==true), in latter case the mass_norm_factor^2 is used instead of mass_norm_factor.  | |
| virtual void | setCosmology (const COSMOLOGY &cosmo) | 
| used for elliptical NFWs only, in that case get_switch_flag==true   | |
| bool | compareZ (PosType z) | 
| force tree calculation for stars   | |
| EllipMethod | getEllipMethod () const | 
| stars   | |
| std::vector< double > | get_mod () | 
| get vector of Fourier modes, which are calculated in the constructors of the LensHaloes when main_ellip_method is set to 'Fourier'  | |
| virtual std::size_t | Nparams () const | 
| get the number of halo parameters  | |
| virtual PosType | getParam (std::size_t p) const | 
| get the value of a scaled halo parameter by index  | |
| virtual PosType | setParam (std::size_t p, PosType value) | 
| set the value of a scaled halo parameter by index  | |
| virtual void | printCSV (std::ostream &, bool header=false) const | 
| print the halo parameters in CSV format  | |
| PosType | MassBy2DIntegation (PosType R) | 
| Prints star parameters; if show_stars is true, prints data for single stars.   | |
| PosType | MassBy1DIntegation (PosType R) | 
| calculates the mass within radius R by integating alpha on a ring and using Gauss' law, used only for testing  | |
| PosType | test_average_gt (PosType R) | 
| calculates the average gamma_t for LensHalo::test()  | |
| PosType | test_average_kappa (PosType R) | 
| void | set_norm_factor () | 
| void | set_rsize (float my_rsize) | 
| set radius rsize beyond which interpolation values between alpha_ellip and alpha_iso are computed  | |
| float | get_rsize () | 
| bool | test () | 
| perform some basic consistancy checks for halo   | |
| size_t | getID () const | 
| void | setID (size_t id) | 
| PosType | renormalization (PosType r_max) | 
| PixelMap< double > | map_variables (LensingVariable lensvar, size_t Nx, size_t Ny, double res) | 
| Map a PixelMap of the surface, density, potential and potential gradient centred on (0,0) in LensHalo coordinates.   | |
Public Attributes | |
| std::string | MOKA_input_file | 
| int | flag_MOKA_analyze | 
| if >=1 (true), do analyzis only; if = 0 (false) change units to internal GLAMER units and prepare for ray-shooting  | |
| int | flag_background_field | 
  Public Attributes inherited from LensHalo | |
| int | tag =0 | 
Protected Member Functions | |
| LensHaloMassMap (COSMOLOGY &c) | |
  Protected Member Functions inherited from LensHalo | |
| PosType | alpha_int (PosType x) const | 
| Calculates potential (phi_int) from alpha_h. If flag is_alphah_a_table is True it takes and integrates directly the gfunction instead of alpha_h. The gfunction is used for the InterpolationTable used in alpha_h. Setting the flag to False speeds up the calculation of phi_h.  | |
| PosType | norm_int (PosType r_max) | 
| void | force_halo_sym (PosType *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, PosType const *xcm, bool subtract_point=false, PosType screening=1.0) | 
| returns the lensing quantities of a ray in center of mass coordinates for a symmetric halo   | |
| void | force_halo_asym (PosType *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, PosType const *xcm, bool subtract_point=false, PosType screening=1.0) | 
| bool | force_point (PosType *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, PosType const *xcm, PosType rcm2, bool subtract_point, PosType screening) | 
| void | assignParams (InputParams ¶ms, bool needRsize) | 
| read in parameters from a parameterfile in InputParams params  | |
| void | error_message1 (std::string name, std::string filename) | 
| read in star parameters. This is valid for all halos and not overloaded.   | |
| virtual PosType | alpha_h (PosType x) const | 
| virtual KappaType | kappa_h (PosType x) const | 
| virtual KappaType | gamma_h (PosType x) const | 
| virtual KappaType | phi_h (PosType x) const | 
| virtual KappaType | phi_int (PosType x) const | 
| virtual PosType | ffunction (PosType x) const | 
| virtual PosType | gfunction (PosType x) const | 
| virtual PosType | dgfunctiondx (PosType x) | 
| virtual PosType | bfunction (PosType x) | 
| virtual PosType | dhfunction (PosType x) const | 
| virtual PosType | ddhfunction (PosType x, bool numerical) | 
| virtual PosType | dddhfunction (PosType x, bool numerical) | 
| virtual PosType | bnumfunction (PosType x) | 
| virtual PosType | dbfunction (PosType x) | 
| virtual PosType | ddbfunction (PosType x) | 
| virtual PosType | dmoddb (int whichmod, PosType q, PosType b) | 
| virtual PosType | ddmoddb (int whichmod, PosType q, PosType b) | 
| virtual PosType | dmoddq (int whichmod, PosType q, PosType b) | 
| virtual PosType | ddmoddq (int whichmod, PosType q, PosType b) | 
| void | faxial (PosType x, PosType theta, PosType f[]) | 
| If set to true the correct normalization is applied for asymmetric NFW profiles, the mass_norm_factor is different for the other halos.   | |
| void | faxial0 (PosType theta, PosType f0[]) | 
| void | faxial1 (PosType theta, PosType f1[]) | 
| void | faxial2 (PosType theta, PosType f2[]) | 
| void | gradial (PosType r, PosType g[]) | 
| Derivatives of the potential damping factor with respect to r ... TODO: come up with a better damping faction.  | |
| void | gradial2 (PosType r, PosType mu, PosType sigma, PosType g[]) | 
| void | felliptical (PosType x, PosType q, PosType theta, PosType f[], PosType g[]) | 
| Calculate the derivatives of the G function = r*sqrt(cos(theta)^2 + q(r)^2 sin(theta))   | |
| virtual void | gamma_asym (PosType x, PosType theta, PosType gamma[]) | 
| virtual PosType | kappa_asym (PosType x, PosType theta) | 
| virtual void | alphakappagamma_asym (PosType x, PosType theta, PosType alpha[], PosType *kappa, PosType gamma[], PosType *phi) | 
| Pseudo-elliptical profiles by Phi(G)-Ansatz.   | |
| virtual void | alphakappagamma1asym (PosType x, PosType theta, PosType alpha[2], PosType *kappa, PosType gamma[], PosType *phi) | 
| Elliptical profiles by Fourier-Ansatz.   | |
| virtual void | alphakappagamma2asym (PosType x, PosType theta, PosType alpha[2], PosType *kappa, PosType gamma[], PosType *phi) | 
| virtual void | alphakappagamma3asym (PosType x, PosType theta, PosType alpha[2], PosType *kappa, PosType gamma[], PosType *phi) | 
| virtual PosType | alpha_ell (PosType x, PosType theta) | 
| double | fourier_coeff (double n, double q, double beta) | 
| Calculates fourier-coefficients for power law halo.  | |
| double | IDAXDM (double lambda, double a2, double b2, double x[], double rmax, double mo) | 
| double | IDAYDM (double lambda, double a2, double b2, double x[], double rmax, double mo) | 
| double | SCHRAMMKN (double n, double x[], double rmax) | 
| double | SCHRAMMJN (double n, double x[], double rmax) | 
| double | SCHRAMMI (double x[], double rmax) | 
| void | calcModes (double q, double beta, double rottheta, PosType newmod[]) | 
| Calculates the modes for fourier expansion of power law halo. All the modes are relative to the zero mode to conserve mass throughout the calculation of kappa etc.  | |
| void | calcModesB (PosType x, double q, double beta, double rottheta, PosType newmod[]) | 
| void | calcModesC (PosType beta_r, double q, double rottheta, PosType newmod[]) | 
| virtual PosType | InterpolateModes (int whichmod, PosType q, PosType b) | 
| void | analModes (int modnumber, PosType my_beta, PosType q, PosType amod[3]) | 
Additional Inherited Members | |
  Static Public Member Functions inherited from LensHalo | |
| static const int | get_Nmod () | 
| get length of mod array, which is Nmod. Not to be confused with getNmodes in the class LensHaloFit  | |
  Protected Attributes inherited from LensHalo | |
| float | Rsize = 0 | 
| float | mass | 
| PosType | Dist | 
| PosType | mnorm | 
| float | Rmax | 
| PosType | beta | 
| float | Rmax_to_Rsize_ratio = 1.2 | 
| The factor by which Rmax is larger than Rsize.  | |
| float | rscale | 
| scale length or core size. Different meaning in different cases. Not used in NSIE case.  | |
| EllipMethod | main_ellip_method | 
| PosType | xmax | 
| PosType | mass_norm_factor =1 | 
| This is Rsize/rscale !!  | |
| float | pa | 
| float | fratio =1.0 | 
| bool | elliptical_flag = false | 
| bool | switch_flag = false | 
| PosType | mod [Nmod] | 
| PosType | mod1 [Nmod] | 
| PosType | mod2 [Nmod] | 
| PosType | r_eps | 
  Static Protected Attributes inherited from LensHalo | |
| static const int | Nmod = 32 | 
A class that includes the MOKA lens map.
The class represents a pixelixed mass map as a lens. The mass map can come from the output of a nbody/hydro simulation or from anywhere else. 
An alternative way of using the output of a particle-based simulation is to use a LensHaloParticles.
Note: To use this class requires setting the ENABLE_FITS compiler flag and linking the cfits library.
| LensHaloMassMap::LensHaloMassMap | ( | const PixelMap< double > & | MassMap, | 
| double | massconvertion, | ||
| double | redshift, | ||
| int | pixel_map_zeropad, | ||
| bool | my_zeromean, | ||
| const COSMOLOGY & | lenscosmo ) | 
Create a LensHalo from a PixelMap representing the mass.
This is especially useful for representing the visible stars from an image in the lens model.
constructor for making lens halo directly from a mass map
The pixel map should be defined with physical Mpc dimensions.
| MassMap | mass map, resolution/range in radians, PixelMapUnits setting is ignored | 
| massconvertion | convertion factor from pixel units to solar masses | 
| redshift | redshift of lens | 
| pixel_map_zeropad | factor by which to zero pad in FFTs, ex. 4 | 
| my_zeromean | if true, subtracts average density | 
| lenscosmo | cosmology | 
| LensHaloMassMap::LensHaloMassMap | ( | const PixelMap< float > & | MassMap, | 
| double | massconvertion, | ||
| double | redshift, | ||
| int | pixel_map_zeropad, | ||
| bool | my_zeromean, | ||
| const COSMOLOGY & | lenscosmo ) | 
| MassMap | mass map, resolution/range in radians, PixelMapUnits setting is ignored | 
| massconvertion | convertion factor from pixel units to solar masses | 
| redshift | redshift of lens | 
| pixel_map_zeropad | factor by which to zero pad in FFTs, ex. 4 | 
| my_zeromean | if true, subtracts average density | 
| lenscosmo | cosmology | 
| LensHaloMassMap::LensHaloMassMap | ( | double | mass, | 
| Point_2d | center, | ||
| Point_2d | range, | ||
| double | resolution, | ||
| int | zeropadding, | ||
| double | redshift, | ||
| const COSMOLOGY & | cosmo ) | 
This makes a uniform rectangular mass sheat.
| mass | total mass in rectangle | 
| center | center of rectangle | 
| range | width and hight in radians | 
| resolution | resolution in radians | 
| zeropadding | factor by which to zero pad in FFTs, ex. 1 is no padding, 2 FFT grid is twice as big as original map | 
| redshift | redshift of plane | 
| void LensHaloMassMap::assignParams | ( | InputParams & | params | ) | 
Sets many parameters within the MOKA lens model
not really used
| void LensHaloMassMap::checkCosmology | ( | ) | 
checks the cosmology against the MOKA map parameters
checks that cosmology in the header of the input fits map is the same as the one set
      
  | 
  virtual | 
Routine for obtaining the deflection and other lensing quantities for a LensHaloMassMap for just one ray!!
| xx | position in physical Mpc | 
Reimplemented from LensHalo.