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