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