Triumvirate C++ API 0.5.0.post1.dev301+g026f21751
Three-point clustering measurements in large-scale structure analyses.
Loading...
Searching...
No Matches
io.cpp
Go to the documentation of this file.
1// Triumvirate: Three-Point Clustering Measurements in LSS
2//
3// Copyright (C) 2023 Mike S Wang & Naonori S Sugiyama [GPL-3.0-or-later]
4//
5// This file is part of the Triumvirate program. See the COPYRIGHT
6// and LICENCE files at the top-level directory of this distribution
7// for details of copyright and licensing.
8//
9// This program is free software: you can redistribute it and/or modify it
10// under the terms of the GNU General Public License as published by
11// the Free Software Foundation, either version 3 of the License, or
12// (at your option) any later version.
13//
14// This program is distributed in the hope that it will be useful,
15// but WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17// See the GNU General Public License for more details.
18//
19// You should have received a copy of the GNU General Public License
20// along with this program. If not, see <https://www.gnu.org/licenses/>.
21
28
29#include "io.hpp"
30
31namespace trv {
32
33// ***********************************************************************
34// Paths
35// ***********************************************************************
36
37namespace sys {
38
39bool if_filepath_is_set(const std::string& pathstr) {
40 // Check if the string is empty.
41 if (pathstr.empty()) {return false;}
42
43 // Check if the path is a directory not file.
44 std::string endchar = "/";
45 int strcomp = pathstr.compare(
46 pathstr.length() - endchar.length(), endchar.length(), endchar
47 );
48 if (strcomp == 0) {return false;} // `pathstr` ends in "/"
49
50 // Check if the string contains non-whitespace characters. If so,
51 // the path is set, otherwise not.
52 for (std::string::size_type ichar = 0; ichar < pathstr.length(); ichar++){
53 if (!std::isspace(pathstr[ichar])) {return true;}
54 }
55
56 return false;
57}
58
59void make_write_dir(std::string dirstr) {
60 // Skip special directories.
61 if (dirstr.empty() || dirstr == "." || dirstr == "./" || dirstr == "/") {
62 return;
63 }
64
65 while (!dirstr.empty() && (dirstr.back() == '/')) {
66 dirstr.pop_back();
67 }
68
69 std::filesystem::path dir(dirstr);
70 std::error_code ec;
71 if (std::filesystem::create_directories(dir, ec)) {
72 if (trv::sys::currTask == 0) {
73 trv::sys::logger.info("Directory created: %s", dirstr.c_str());
74 }
75 } else {
76 if (ec) {
77 if (trv::sys::currTask == 0) {
78 trv::sys::logger.error(
79 "Failed to create directory: %s", dirstr.c_str()
80 );
81 }
83 "Failed to create directory: %s", dirstr.c_str()
84 );
85 }
86 }
87}
88
89} // namespace trv::sys
90
91
92// ***********************************************************************
93// Files
94// ***********************************************************************
95
96namespace io {
97
98// -----------------------------------------------------------------------
99// Pre-measurement header
100// -----------------------------------------------------------------------
101
103 std::FILE* fileptr, trv::ParameterSet& params,
104 trv::ParticleCatalogue& catalogue_data,
105 trv::ParticleCatalogue& catalogue_rand,
106 double norm_factor_part, double norm_factor_mesh, double norm_factor_meshes
107) {
108 std::fprintf(
109 fileptr,
110 "%s Data catalogue source: %s\n",
111 comment_delimiter, catalogue_data.source.c_str()
112 );
113 std::fprintf(
114 fileptr,
115 "%s Data catalogue size: ntotal = %d, wtotal = %.3f, wstotal = %.3f\n",
116 comment_delimiter,
117 catalogue_data.ntotal, catalogue_data.wtotal, catalogue_data.wstotal
118 );
119 std::fprintf(
120 fileptr,
121 "%s Data-source particle extents: "
122 "[(%.3f, %.3f), (%.3f, %.3f), (%.3f, %.3f)]\n",
123 comment_delimiter,
124 catalogue_data.pos_min[0], catalogue_data.pos_max[0],
125 catalogue_data.pos_min[1], catalogue_data.pos_max[1],
126 catalogue_data.pos_min[2], catalogue_data.pos_max[2]
127 );
128 std::fprintf(
129 fileptr,
130 "%s Random catalogue source: %s\n",
131 comment_delimiter, catalogue_rand.source.c_str()
132 );
133 std::fprintf(
134 fileptr,
135 "%s Random catalogue size: ntotal = %d, wtotal = %.3f, wstotal = %.3f\n",
136 comment_delimiter,
137 catalogue_rand.ntotal, catalogue_rand.wtotal, catalogue_rand.wstotal
138 );
139 std::fprintf(
140 fileptr,
141 "%s Random-source particle extents: "
142 "[(%.3f, %.3f), (%.3f, %.3f), (%.3f, %.3f)]\n",
143 comment_delimiter,
144 catalogue_rand.pos_min[0], catalogue_rand.pos_max[0],
145 catalogue_rand.pos_min[1], catalogue_rand.pos_max[1],
146 catalogue_rand.pos_min[2], catalogue_rand.pos_max[2]
147 );
148
149 std::fprintf(
150 fileptr,
151 "%s Box size: [%.3f, %.3f, %.3f]\n",
152 comment_delimiter,
153 params.boxsize[0], params.boxsize[1], params.boxsize[2]
154 );
155 std::fprintf(
156 fileptr,
157 "%s Box alignment: %s\n",
158 comment_delimiter,
159 params.alignment.c_str()
160 );
161 std::fprintf(
162 fileptr,
163 "%s Mesh number: [%d, %d, %d]\n",
164 comment_delimiter,
165 params.ngrid[0], params.ngrid[1], params.ngrid[2]
166 );
167 std::fprintf(
168 fileptr,
169 "%s Mesh assignment and interlacing: %s, %s\n",
170 comment_delimiter,
171 params.assignment.c_str(), params.interlace.c_str()
172 );
173
174 if (params.norm_convention == "none") {
175 std::fprintf(
176 fileptr,
177 "%s Normalisation factor: %.9e (%s)\n",
178 comment_delimiter, 1., params.norm_convention.c_str()
179 );
180 } else
181 if (params.norm_convention == "particle") {
182 std::fprintf(
183 fileptr,
184 "%s Normalisation factor: %.9e (%s)\n",
185 comment_delimiter, norm_factor_part, params.norm_convention.c_str()
186 );
187 } else
188 if (params.norm_convention == "mesh") {
189 std::fprintf(
190 fileptr,
191 "%s Normalisation factor: %.9e (%s)\n",
192 comment_delimiter, norm_factor_mesh, params.norm_convention.c_str()
193 );
194 } else
195 if (params.norm_convention == "mesh-mixed") {
196 std::fprintf(
197 fileptr,
198 "%s Normalisation factor: %.9e (%s)\n",
199 comment_delimiter, norm_factor_meshes, params.norm_convention.c_str()
200 );
201 }
202
203 std::fprintf(
204 fileptr,
205 "%s Normalisation factor alternatives: "
206 "%.9e (particle), %.9e (mesh), %.9e (mesh-mixed)\n",
207 comment_delimiter,
208 norm_factor_part, norm_factor_mesh, norm_factor_meshes
209 );
210}
211
213 std::FILE* fileptr,
214 trv::ParameterSet& params, trv::ParticleCatalogue& catalogue,
215 double norm_factor_part, double norm_factor_mesh, double norm_factor_meshes
216) {
217 std::fprintf(
218 fileptr,
219 "%s Catalogue source: %s\n",
220 comment_delimiter, catalogue.source.c_str()
221 );
222 std::fprintf(
223 fileptr,
224 "%s Catalogue size: ntotal = %d, wtotal = %.3f, wstotal = %.3f\n",
225 comment_delimiter, catalogue.ntotal, catalogue.wtotal, catalogue.wstotal
226 );
227 std::fprintf(
228 fileptr,
229 "%s Catalogue particle extents: "
230 "[(%.3f, %.3f), (%.3f, %.3f), (%.3f, %.3f)]\n",
231 comment_delimiter,
232 catalogue.pos_min[0], catalogue.pos_max[0],
233 catalogue.pos_min[1], catalogue.pos_max[1],
234 catalogue.pos_min[2], catalogue.pos_max[2]
235 );
236
237 std::fprintf(
238 fileptr,
239 "%s Box size: [%.3f, %.3f, %.3f]\n",
240 comment_delimiter,
241 params.boxsize[0], params.boxsize[1], params.boxsize[2]
242 );
243 std::fprintf(
244 fileptr,
245 "%s Box alignment: %s\n",
246 comment_delimiter,
247 params.alignment.c_str()
248 );
249 std::fprintf(
250 fileptr,
251 "%s Mesh number: [%d, %d, %d]\n",
252 comment_delimiter,
253 params.ngrid[0], params.ngrid[1], params.ngrid[2]
254 );
255 std::fprintf(
256 fileptr,
257 "%s Mesh assignment and interlacing: %s, %s\n",
258 comment_delimiter,
259 params.assignment.c_str(), params.interlace.c_str()
260 );
261
262 if (params.norm_convention == "none") {
263 std::fprintf(
264 fileptr,
265 "%s Normalisation factor: %.9e (%s)\n",
266 comment_delimiter, 1., params.norm_convention.c_str()
267 );
268 } else
269 if (params.norm_convention == "particle") {
270 std::fprintf(
271 fileptr,
272 "%s Normalisation factor: %.9e (%s)\n",
273 comment_delimiter, norm_factor_part, params.norm_convention.c_str()
274 );
275 } else
276 if (params.norm_convention == "mesh") {
277 std::fprintf(
278 fileptr,
279 "%s Normalisation factor: %.9e (%s)\n",
280 comment_delimiter, norm_factor_mesh, params.norm_convention.c_str()
281 );
282 } else
283 if (params.norm_convention == "mesh-mixed") {
284 std::fprintf(
285 fileptr,
286 "%s Normalisation factor: %.9e (%s)\n",
287 comment_delimiter, norm_factor_meshes, params.norm_convention.c_str()
288 );
289 }
290
291 std::fprintf(
292 fileptr,
293 "%s Normalisation factor alternatives: "
294 "%.9e (particle), %.9e (mesh), %.9e (mesh-mixed)\n",
295 comment_delimiter,
296 norm_factor_part, norm_factor_mesh, norm_factor_meshes
297 );
298}
299
300
301// -----------------------------------------------------------------------
302// Binning details
303// -----------------------------------------------------------------------
304
306 std::FILE* fileptr, trv::ParameterSet& params,
307 trv::BinnedVectors& binned_vectors
308) {
309 // Print header.
310 std::fprintf(
311 fileptr,
312 "%s Box size: [%.3f, %.3f, %.3f]\n",
313 comment_delimiter,
314 params.boxsize[0], params.boxsize[1], params.boxsize[2]
315 );
316 std::fprintf(
317 fileptr,
318 "%s Mesh number: [%d, %d, %d]\n",
319 comment_delimiter,
320 params.ngrid[0], params.ngrid[1], params.ngrid[2]
321 );
322 std::fprintf(
323 fileptr,
324 "%s Vector count: %d\n", comment_delimiter, binned_vectors.count
325 );
326 std::fprintf(
327 fileptr,
328 "%s Bin number: %d\n", comment_delimiter, binned_vectors.num_bins
329 );
330
331 // Print data table columns.
332 std::fprintf(
333 fileptr,
334 "%s "
335 "[0] bin_index, [1] bin_lower, [2] bin_upper, "
336 "[3] vec_x, [4] vec_y, [5] vec_z\n",
337 comment_delimiter
338 );
339
340 // Print data table.
341 for (int ivec = 0; ivec < binned_vectors.count; ivec++) {
342 std::fprintf(
343 fileptr,
344 "%d\t%.9e\t%.9e\t% .9e\t% .9e\t% .9e\n",
345 binned_vectors.indices[ivec],
346 binned_vectors.lower_edges[ivec],
347 binned_vectors.upper_edges[ivec],
348 binned_vectors.vecx[ivec],
349 binned_vectors.vecy[ivec],
350 binned_vectors.vecz[ivec]
351 );
352 }
353}
354
355
356// -----------------------------------------------------------------------
357// Two-point measurement data table
358// -----------------------------------------------------------------------
359
361 std::FILE* fileptr,
362 trv::ParameterSet& params, trv::PowspecMeasurements& meas_powspec
363) {
364 // Print data table columns.
365 std::fprintf(
366 fileptr,
367 "%s "
368 "[0] k_cen, [1] k_eff, [2] nmodes, "
369 "[3] Re{pk%d_raw}, [4] Im{pk%d_raw}, "
370 "[5] Re{pk%d_shot}, [6] Im{pk%d_shot}\n",
371 comment_delimiter,
372 params.ELL, params.ELL, params.ELL, params.ELL
373 );
374
375 // Print data table.
376 for (int idx_dv = 0; idx_dv < meas_powspec.dim; idx_dv++) {
377 std::fprintf(
378 fileptr,
379 "%.9e\t%.9e\t%10d\t% .9e\t% .9e\t% .9e\t% .9e\n",
380 meas_powspec.kbin[idx_dv],
381 meas_powspec.keff[idx_dv],
382 meas_powspec.nmodes[idx_dv],
383 meas_powspec.pk_raw[idx_dv].real(), meas_powspec.pk_raw[idx_dv].imag(),
384 meas_powspec.pk_shot[idx_dv].real(), meas_powspec.pk_shot[idx_dv].imag()
385 );
386 }
387}
388
390 std::FILE* fileptr,
392) {
393 // Print data table columns.
394 std::fprintf(
395 fileptr,
396 "%s [0] r_cen, [1] r_eff, [2] npairs, [3] Re{xi%d}, [4] Im{xi%d}\n",
397 comment_delimiter,
398 params.ELL, params.ELL
399 );
400
401 // Print data table.
402 for (int idx_dv = 0; idx_dv < meas_2pcf.dim; idx_dv++) {
403 std::fprintf(
404 fileptr,
405 "%.9e\t%.9e\t%10d\t% .9e\t% .9e\n",
406 meas_2pcf.rbin[idx_dv],
407 meas_2pcf.reff[idx_dv],
408 meas_2pcf.npairs[idx_dv],
409 meas_2pcf.xi[idx_dv].real(), meas_2pcf.xi[idx_dv].imag()
410 );
411 }
412}
413
415 std::FILE* fileptr,
417) {
418 // Print data table columns.
419 std::fprintf(
420 fileptr,
421 "%s [0] r_cen, [1] r_eff, [2] npairs, [3] Re{xi%d}, [4] Im{xi%d}\n",
422 comment_delimiter,
423 params.ELL, params.ELL
424 );
425
426 // Print data table.
427 for (int idx_dv = 0; idx_dv < meas_2pcf_win.dim; idx_dv++) {
428 std::fprintf(
429 fileptr,
430 "%.9e\t%.9e\t%10d\t% .9e\t% .9e\n",
431 meas_2pcf_win.rbin[idx_dv],
432 meas_2pcf_win.reff[idx_dv],
433 meas_2pcf_win.npairs[idx_dv],
434 meas_2pcf_win.xi[idx_dv].real(), meas_2pcf_win.xi[idx_dv].imag()
435 );
436 }
437};
438
439
440// -----------------------------------------------------------------------
441// Three-point measurement data table
442// -----------------------------------------------------------------------
443
445 std::FILE* fileptr,
446 trv::ParameterSet& params, trv::BispecMeasurements& meas_bispec
447) {
448 char multipole_str[8];
449 std::snprintf(
450 multipole_str, sizeof(multipole_str), "%d%d%d",
451 params.ell1, params.ell2, params.ELL
452 );
453
454 // Print data table columns.
455 std::fprintf(
456 fileptr,
457 "%s "
458 "[0] k1_cen, [1] k1_eff, [2] nmodes_1, "
459 "[3] k2_cen, [4] k2_eff, [5] nmodes_2, "
460 "[6] Re{bk%s_raw}, [7] Im{bk%s_raw}, "
461 "[8] Re{bk%s_shot}, [9] Im{bk%s_shot}\n",
462 comment_delimiter,
463 multipole_str, multipole_str, multipole_str, multipole_str
464 );
465
466 // Print data table.
467 for (int idx_dv = 0; idx_dv < meas_bispec.dim; idx_dv++) {
468 std::fprintf(
469 fileptr,
470 "%.9e\t%.9e\t%10d\t%.9e\t%.9e\t%10d\t% .9e\t% .9e\t% .9e\t% .9e\n",
471 meas_bispec.k1_bin[idx_dv], meas_bispec.k1_eff[idx_dv],
472 meas_bispec.nmodes_1[idx_dv],
473 meas_bispec.k2_bin[idx_dv], meas_bispec.k2_eff[idx_dv],
474 meas_bispec.nmodes_2[idx_dv],
475 meas_bispec.bk_raw[idx_dv].real(), meas_bispec.bk_raw[idx_dv].imag(),
476 meas_bispec.bk_shot[idx_dv].real(), meas_bispec.bk_shot[idx_dv].imag()
477 );
478 }
479}
480
482 std::FILE* fileptr,
484) {
485 char multipole_str[8];
486 std::snprintf(
487 multipole_str, sizeof(multipole_str), "%d%d%d",
488 params.ell1, params.ell2, params.ELL
489 );
490
491 // Print data table columns.
492 std::fprintf(
493 fileptr,
494 "%s "
495 "[0] r1_cen, [1] r1_eff, [2] npairs_1, "
496 "[3] r2_cen, [4] r2_eff, [5] npairs_2, "
497 "[6] Re{zeta%s_raw}, [7] Im{zeta%s_raw}, "
498 "[8] Re{zeta%s_shot}, [9] Im{zeta%s_shot}\n",
499 comment_delimiter,
500 multipole_str, multipole_str, multipole_str, multipole_str
501 );
502
503 // Print data table.
504 for (int idx_dv = 0; idx_dv < meas_3pcf.dim; idx_dv++) {
505 std::fprintf(
506 fileptr,
507 "%.9e\t%.9e\t%10d\t%.9e\t%.9e\t%10d\t% .9e\t% .9e\t% .9e\t% .9e\n",
508 meas_3pcf.r1_bin[idx_dv], meas_3pcf.r1_eff[idx_dv],
509 meas_3pcf.npairs_1[idx_dv],
510 meas_3pcf.r2_bin[idx_dv], meas_3pcf.r2_eff[idx_dv],
511 meas_3pcf.npairs_2[idx_dv],
512 meas_3pcf.zeta_raw[idx_dv].real(), meas_3pcf.zeta_raw[idx_dv].imag(),
513 meas_3pcf.zeta_shot[idx_dv].real(), meas_3pcf.zeta_shot[idx_dv].imag()
514 );
515 }
516}
517
519 std::FILE* fileptr,
521) {
522 char multipole_str[8];
523 std::snprintf(
524 multipole_str, sizeof(multipole_str), "%d%d%d",
525 params.ell1, params.ell2, params.ELL
526 );
527
528 // Print data table columns.
529 std::fprintf(
530 fileptr,
531 "%s "
532 "[0] r1_cen, [1] r1_eff, [2] npairs_1, "
533 "[3] r2_cen, [4] r2_eff, [5] npairs_2, "
534 "[6] Re{zeta%s_raw}, [7] Im{zeta%s_raw}, "
535 "[8] Re{zeta%s_shot}, [9] Im{zeta%s_shot}\n",
536 comment_delimiter,
537 multipole_str, multipole_str, multipole_str, multipole_str
538 );
539
540 // Print data table.
541 for (int idx_dv = 0; idx_dv < meas_3pcf_win.dim; idx_dv++) {
542 std::fprintf(
543 fileptr,
544 "%.9e\t%.9e\t%10d\t%.9e\t%.9e\t%10d\t% .9e\t% .9e\t% .9e\t% .9e\n",
545 meas_3pcf_win.r1_bin[idx_dv], meas_3pcf_win.r1_eff[idx_dv],
546 meas_3pcf_win.npairs_1[idx_dv],
547 meas_3pcf_win.r2_bin[idx_dv], meas_3pcf_win.r2_eff[idx_dv],
548 meas_3pcf_win.npairs_2[idx_dv],
549 meas_3pcf_win.zeta_raw[idx_dv].real(),
550 meas_3pcf_win.zeta_raw[idx_dv].imag(),
551 meas_3pcf_win.zeta_shot[idx_dv].real(),
552 meas_3pcf_win.zeta_shot[idx_dv].imag()
553 );
554 }
555}
556
557} // namespace trv::io
558} // namespace trv
Parameter set.
std::string alignment
box alignment: {"centre" (default), "pad"}
std::string assignment
mesh assignment scheme: {"ngp", "cic", "tsc" (default), "pcs"}
int ELL
spherical degree associated with the line of sight
std::string norm_convention
int ell1
spherical degree associated with the first wavevector
std::string interlace
interlacing switch: {"true"/"on", "false"/"off" (default)}
int ell2
spherical degree associated with the second wavevector
int ngrid[3]
grid cell number in each dimension
double boxsize[3]
box size (in Mpc/h) in each dimension
Particle catalogue.
Definition particles.hpp:78
std::string source
catalogue source
Definition particles.hpp:80
double pos_min[3]
minimum particle coordinates
Definition particles.hpp:88
int ntotal
total number of particles
Definition particles.hpp:84
double wtotal
total overall weight of particles
Definition particles.hpp:85
double wstotal
total sample weight of particles
Definition particles.hpp:86
double pos_max[3]
maximum particle coordinates
Definition particles.hpp:89
Exception raised when an input/output operation fails.
Definition monitor.hpp:707
I/O support including custom exceptions and utility functions.
void print_binned_vectors_to_file(std::FILE *fileptr, trv::ParameterSet &params, trv::BinnedVectors &binned_vectors)
Print binned vectors to a file.
Definition io.cpp:305
void print_measurement_header_to_file(std::FILE *fileptr, trv::ParameterSet &params, trv::ParticleCatalogue &catalogue_data, trv::ParticleCatalogue &catalogue_rand, double norm_factor_part, double norm_factor_mesh, double norm_factor_meshes)
Print the pre-measurement header to a file including information about the catalogue(s) and mesh grid...
Definition io.cpp:102
void print_measurement_datatab_to_file(std::FILE *fileptr, trv::ParameterSet &params, trv::PowspecMeasurements &meas_powspec)
Print measurements as a data table to a file.
Definition io.cpp:360
Logger logger
default logger (at NSET logging level)
void make_write_dir(std::string dirstr)
Make write directory.
Definition io.cpp:59
bool if_filepath_is_set(const std::string &pathstr)
Check if a file path is set.
Definition io.cpp:39
int currTask
current task
Definition monitor.cpp:92
Binned vectors.
Definition dataobjs.hpp:166
std::vector< double > vecy
y-components
Definition dataobjs.hpp:173
std::vector< double > vecz
z-components
Definition dataobjs.hpp:174
int count
number of vectors
Definition dataobjs.hpp:167
int num_bins
number of bins
Definition dataobjs.hpp:168
std::vector< double > upper_edges
upper bin edges
Definition dataobjs.hpp:171
std::vector< double > lower_edges
lower bin edges
Definition dataobjs.hpp:170
std::vector< double > vecx
x-components
Definition dataobjs.hpp:172
std::vector< int > indices
bin indices
Definition dataobjs.hpp:169
Bispectrum measurements.
Definition dataobjs.hpp:249
std::vector< std::complex< double > > bk_raw
bispectrum raw measurements (with normalisation and shot noise)
Definition dataobjs.hpp:258
std::vector< double > k2_eff
second effective wavenumber in bins
Definition dataobjs.hpp:254
std::vector< int > nmodes_2
Definition dataobjs.hpp:256
std::vector< std::complex< double > > bk_shot
bispectrum shot noise
Definition dataobjs.hpp:260
std::vector< double > k1_bin
first central wavenumber in bins
Definition dataobjs.hpp:251
std::vector< double > k1_eff
first effective wavenumber in bins
Definition dataobjs.hpp:253
std::vector< double > k2_bin
second central wavenumber in bins
Definition dataobjs.hpp:252
int dim
dimension of data vector
Definition dataobjs.hpp:250
std::vector< int > nmodes_1
number of first wavevectors in bins
Definition dataobjs.hpp:255
Power spectrum measurements.
Definition dataobjs.hpp:202
int dim
dimension of data vector
Definition dataobjs.hpp:203
std::vector< double > kbin
central wavenumber in bins
Definition dataobjs.hpp:204
std::vector< int > nmodes
Definition dataobjs.hpp:206
std::vector< std::complex< double > > pk_shot
power spectrum shot noise
Definition dataobjs.hpp:210
std::vector< double > keff
effective wavenumber in bins
Definition dataobjs.hpp:205
std::vector< std::complex< double > > pk_raw
power spectrum raw measurements (with normalisation and shot noise)
Definition dataobjs.hpp:208
Three-point correlation function measurements.
Definition dataobjs.hpp:267
std::vector< double > r2_bin
second central separation in bins
Definition dataobjs.hpp:270
std::vector< int > npairs_1
number of first separation vectors in bins
Definition dataobjs.hpp:274
std::vector< double > r1_bin
first central separation in bins
Definition dataobjs.hpp:269
std::vector< std::complex< double > > zeta_shot
three-point correlation function shot noise
Definition dataobjs.hpp:281
std::vector< double > r2_eff
Definition dataobjs.hpp:272
std::vector< std::complex< double > > zeta_raw
Definition dataobjs.hpp:279
std::vector< double > r1_eff
first effective separation in bins
Definition dataobjs.hpp:271
std::vector< int > npairs_2
number of second separation vectors in bins
Definition dataobjs.hpp:276
int dim
dimension of data vector
Definition dataobjs.hpp:268
Three-point correlation function window measurements.
Definition dataobjs.hpp:288
std::vector< std::complex< double > > zeta_shot
three-point correlation function window shot noise
Definition dataobjs.hpp:302
std::vector< int > npairs_2
number of second separation vectors in bins
Definition dataobjs.hpp:297
std::vector< int > npairs_1
number of first separation vectors in bins
Definition dataobjs.hpp:295
std::vector< double > r1_eff
first effective separation in bins
Definition dataobjs.hpp:292
std::vector< double > r2_eff
Definition dataobjs.hpp:293
int dim
dimension of data vector
Definition dataobjs.hpp:289
std::vector< double > r2_bin
second central separation in bins
Definition dataobjs.hpp:291
std::vector< double > r1_bin
first central separation in bins
Definition dataobjs.hpp:290
std::vector< std::complex< double > > zeta_raw
Definition dataobjs.hpp:300
Two-point correlation function measurements.
Definition dataobjs.hpp:217
std::vector< double > rbin
central separation in bins
Definition dataobjs.hpp:219
std::vector< int > npairs
Definition dataobjs.hpp:221
int dim
dimension of data vector
Definition dataobjs.hpp:218
std::vector< std::complex< double > > xi
two-point correlation function measurements (with normalisation)
Definition dataobjs.hpp:223
std::vector< double > reff
effective separation in bins
Definition dataobjs.hpp:220
Two-point correlation function window measurements.
Definition dataobjs.hpp:230
std::vector< std::complex< double > > xi
Definition dataobjs.hpp:237
int dim
dimension of data vector
Definition dataobjs.hpp:231
std::vector< double > reff
effective separation in bins
Definition dataobjs.hpp:233
std::vector< double > rbin
central separation in bins
Definition dataobjs.hpp:232
std::vector< int > npairs
Definition dataobjs.hpp:234