19 LensPlane(
float redshift):z(redshift) {}
 
   20 virtual ~LensPlane() {} 
 
   22  virtual void force(PosType *alpha,KappaType *kappa,KappaType *gamma,KappaType *phi,PosType *xx) = 0;
 
   24 virtual void addHalo(
LensHalo* halo) = 0;
 
   25 virtual void removeHalo(
LensHalo* halo) = 0;
 
   27 virtual std::vector<LensHalo*> getHalos() = 0;
 
   28 virtual std::vector<const LensHalo*> getHalos() 
const = 0;
 
   29  virtual void getNeighborHalos(PosType ray[],PosType rmax,std::vector<LensHalo*> &neighbors)
 const{};
 
 
   35class LensPlaneTree : 
public LensPlane{
 
   38 LensPlaneTree(
float z,
LensHalo **my_halos,IndexType Nhalos,PosType my_sigma_background,PosType my_inv_screening_scale = 0);
 
   40  LensPlaneTree(
const LensPlaneTree &p);
 
   41  LensPlaneTree(LensPlaneTree &&p):LensPlane(p.z){
 
   47  LensPlaneTree & operator=(
const LensPlaneTree &p);
 
   48  LensPlaneTree & operator=(LensPlaneTree &&p);
 
   50 void force(PosType *alpha,KappaType *kappa,KappaType *gamma,KappaType *phi,PosType *xx);
 
   54 std::vector<LensHalo*> getHalos();
 
   55 std::vector<const LensHalo*> getHalos() 
const;
 
   57  void getNeighborHalos(PosType ray[],PosType rmax,std::vector<LensHalo*> &neighbors) 
const;
 
   61 std::vector<LensHalo *> halos;
 
   62  TreeQuadHalos<LensHalo> * halo_tree;
 
 
   70class LensPlaneSingular : 
public LensPlane{
 
   72 LensPlaneSingular(
float z,LensHaloHndl *my_halos, IndexType Nhalos);
 
   73  LensPlaneSingular(
const LensPlaneSingular &p):LensPlane(p.z){
 
   76  LensPlaneSingular(LensPlaneSingular &&p):LensPlane(p.z){
 
   77    std::swap(halos,p.halos);
 
   81  LensPlaneSingular & operator=(
const LensPlaneSingular &p){
 
   88  LensPlaneSingular & operator=(LensPlaneSingular &&p){
 
   91      std::swap(halos,p.halos);
 
   96  void force(PosType *alpha,KappaType *kappa,KappaType *gamma,KappaType *phi,PosType *xx);
 
  101 std::vector<LensHalo*> getHalos();
 
  102 std::vector<const LensHalo*> getHalos() 
const;
 
  103  void getNeighborHalos(PosType ray[],PosType rmax,std::vector<LensHalo*> &neighbors) 
const;
 
  106 std::vector<LensHalo*> halos;  
 
 
void force(PosType *alpha, KappaType *kappa, KappaType *gamma, KappaType *phi, PosType *xx)
returns the lensing quantities of a ray in physical coordinates
Definition planes.cpp:114
 
void getNeighborHalos(PosType ray[], PosType rmax, std::vector< LensHalo * > &neighbors) const
Get the halos on this plane that are wthin rmax of ray[].
Definition planes.cpp:88