GLAMERDOC++
Gravitational Lensing Code Library
Loading...
Searching...
No Matches
causticdata.h
1//
2// causticdata.h
3// SLsimLib
4//
5// Created by bmetcalf on 5/6/13.
6//
7//
8
9#ifndef __SLsimLib__causticdata__
10#define __SLsimLib__causticdata__
11
12#include <iostream>
13#include "standard.h"
14#include "utilities_slsim.h"
15#include "simpleTree.h"
16#include "simpleTreeVec.h"
17#include "grid_maintenance.h"
18
19/*
20struct CausticSummary{
21 CausticSummary(){}
22 CausticSummary(const CausticSummary &tmp){
23 redshift = tmp.redshift;
24 crit_center = tmp.crit_center;
25 crit_radius[0] = tmp.crit_radius[0];
26 crit_radius[1] = tmp.crit_radius[1];
27 crit_radius[2] = tmp.crit_radius[2];
28 crit_area = tmp.crit_area;
29 crit_type = tmp.crit_type;
30
31 caustic_center = tmp.caustic_center;
32 caustic_radius[0] = tmp.caustic_radius[0];
33 caustic_radius[1] = tmp.caustic_radius[1];
34 caustic_radius[2] = tmp.caustic_radius[2];
35 caustic_area = tmp.caustic_area;
36
37 };
38
39 CausticSummary &operator=(const CausticSummary &tmp){
40 if(&tmp==this) return *this;
41
42 redshift = tmp.redshift;
43 crit_center = tmp.crit_center;
44 crit_radius[0] = tmp.crit_radius[0];
45 crit_radius[1] = tmp.crit_radius[1];
46 crit_radius[2] = tmp.crit_radius[2];
47 crit_area = tmp.crit_area;
48 crit_type = tmp.crit_type;
49
50 caustic_center = tmp.caustic_center;
51 caustic_radius[0] = tmp.caustic_radius[0];
52 caustic_radius[1] = tmp.caustic_radius[1];
53 caustic_radius[2] = tmp.caustic_radius[2];
54 caustic_area = tmp.caustic_area;
55
56 return *this;
57 }
59 double redshift;
61 Point_2d crit_center;
63 double crit_radius[3];
65 double crit_area;
67 CritType crit_type;
69 Point_2d caustic_center;
71 double caustic_radius[3];
73 double caustic_area;
74};
75
76
85
86public:
87 CausticDataStore(std::string filename,bool verbose = false);
89 CausticDataStore(std::vector<ImageFinding::CriticalCurve> &crticurve_vec);
90 CausticDataStore(const CausticDataStore &input);
91 ~CausticDataStore();
92
93
95 void addcrits(std::vector<ImageFinding::CriticalCurve> &crticurve_vec);
96
97 double getTotalCritArea(){return totalcritarea;}
98 double getTotalCausticArea(){return totalcausticarea;}
99
101 void printfile(std::string filename,std::string paramfile,double fieldofview,double minscale);
102
104 void resize(size_t size){ data.resize(size);}
105
106 size_t numberOfCaustics(){return data.size();}
107
109 CausticSummary & operator[](size_t index){return data[index];}
110
112 CausticSummary & CritAreaOrder(size_t n){return data[crit_area_index[n]];}
114 CausticSummary & CausticAreaOrder(size_t n){return data[caus_area_index[n]];}
116 CausticSummary & CritRadiusOrder(size_t n){return data[caus_area_index[n]];}
117
119 size_t getNthIndexCritArea(size_t n){return crit_area_index[n];}
121 size_t getNthIndexCaustArea(size_t n){return caus_area_index[n];}
123 size_t getNthIndexCritRadius(size_t n){return crit_radius_index[n];}
124
125
127 //void SortByCritSize();
129 //void SortByCritArea();
131 //void SortByCausticArea();
132
134 size_t init_for_random(
135 short type /// select according to: (1) critical curve area, (2) caustic curve area
136 ,double limit = 0.0 /// minimum accepted area
137 );
138 */
178
179//std::ostream &operator<<(std::ostream &os, CausticSummary const &caust);
180
181#endif /* defined(__SLsimLib__causticdata__) */