GLASS
Global LISA Analysis Software Suite
GalacticBinary.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 Tyson B. Littenberg (MSFC-ST12), Neil J. Cornish
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with with program; see the file COPYING. If not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
17 * MA 02111-1307 USA
18 */
19
20
21#include <gsl/gsl_rng.h>
22#include <gsl/gsl_randist.h>
23
29#define MAXSTRINGSIZE 1024
30
42struct Data
43{
46 int N;
47 int Nmax;
48 int NT;
50 int DMAX;
51 double logN;
53
56 long cseed;
57 long nseed;
58 long iseed;
60
63 double T;
64 double sqT;
65 double *t0;
66 double *tgap;
68
69
72 int qmin;
73 int qmax;
74 int qpad;
75
76 double fmin;
77 double fmax;
79
80 //some manipulations of f,fmin for likelihood calculation
81 double sum_log_f;
82 double logfmin;
83 double logfmax;
85
88 struct TDI **tdi;
89 struct TDI **raw;
90 struct Noise **noise;
98 char format[16];
100
101 //Spectrum proposal
102 double *p;
103 double pmax;
104 double SNR2;
106
109 int Nwave;
111
112 double ****h_rec;
113 double ****h_res;
114 double ****r_pow;
115 double ****h_pow;
116 double ****S_pow;
119
122 int NP;
123 struct Source *inj;
125
126
129 int Ncache;
130 char **cache;
131 struct Catalog *catalog;
133};
134
143struct Flags
144{
148 int quiet;
149 int NMCMC;
150 int NBURN;
151 int NINJ;
152 int NDATA;
153 int NT;
154 int NVB;
155 int DMAX;
157 int fixSky;
158 int fixFdot;
167 int orbit;
168 int prior;
169 int debug;
170 int cheat;
171 int burnin;
173 int update;
175 int match;
176 int rj;
177 int gap;
180 int resume;
183 int psd;
185
186
192 char **injFile;
203};
204
208struct Chain
209{
211 int NC;
212
214 int NP;
215
217 int *index;
218
221
223 double *acceptance;
224
226 double *temperature;
227
229 double *avgLogL;
230
232 double annealing;
233
235 double logLmax;
236
242 const gsl_rng_type **T;
243
245 gsl_rng **r;
247
252
258 FILE **noiseFile;
259 FILE **foregroundFile;
260
266 FILE **chainFile;
267
274
282
289
296
304
307
308};
309
313struct Source
314{
316 int NP;
317
319 double *params;
320
322 struct TDI *tdi;
323
324
327 double f0;
328 double dfdt;
329 double d2fdt2;
330 double amp;
332
335 double psi;
336 double cosi;
337 double phi0;
338 double phi;
339 double costheta;
341
345 double m1;
346 double m2;
347 double Mc;
348 double D;
350
354 int BW;
355 int qmin;
356 int qmax;
357 int imin;
358 int imax;
360
364 double **fisher_matrix;
365 double **fisher_evectr;
369};
370
374struct Noise
375{
377 int N;
378
381
385 double *eta;
387
391 double *f;
392
393 double ***C;
394 double ***invC;
395 double *detC;
396
397 double *transfer;
399};
400
405{
408 double dampA;
409 double dampE;
410 double dampX;
411 double dampY;
412 double dampZ;
414
417 double dphiA;
418 double dphiE;
419 double dphiX;
420 double dphiY;
421 double dphiZ;
423
426 double real_dphiA;
427 double real_dphiE;
428 double real_dphiX;
429 double real_dphiY;
430 double real_dphiZ;
431 double imag_dphiA;
432 double imag_dphiE;
433 double imag_dphiX;
434 double imag_dphiY;
435 double imag_dphiZ;
437
438};
439
443struct Model
444{
447 int NT;
448 int NP;
449 int Nmax;
450 int Nlive;
451 struct Source **source;
453
455 struct Noise **noise;
456
459
462 struct TDI **tdi;
463 struct TDI **residual;
465
468 double *t0;
469 double *t0_min;
470 double *t0_max;
472
475 double **prior;
478
481 double logL;
482 double logLnorm;
484};
485
486
#define MAXSTRINGSIZE
maximum number of characters for path+filename strings
Definition: GalacticBinary.h:29
Structure containing calibration parameters.
Definition: GalacticBinary.h:405
Prototype structure for catalog of detected sources.
Definition: GalacticBinaryCatalog.h:38
Structure containing settings and housekeeping data for each of the parallel chains.
Definition: GalacticBinary.h:209
char chkptDir[MAXSTRINGSIZE]
store checkpoint directory.
Definition: GalacticBinary.h:306
const gsl_rng_type ** T
Needed for initializing RNG.
Definition: GalacticBinary.h:242
FILE ** dimensionFile
Signal parameter chain files for discrete models, only for cold chains: chains/dimension_chain....
Definition: GalacticBinary.h:281
FILE ** parameterFile
Full signal parameter chain files: chains/dimension_chain.dat.M
Definition: GalacticBinary.h:288
double annealing
Annealing temperature for all chains used during burnin DEPRICATED
Definition: GalacticBinary.h:232
FILE * likelihoodFile
Log-likelhood values for each parallel chain.
Definition: GalacticBinary.h:295
double logLmax
Store the maximum value of encountered by the chain. Used for determining when burn-in is complete.
Definition: GalacticBinary.h:235
int NP
Number of proposals being used by chain.
Definition: GalacticBinary.h:214
gsl_rng ** r
Seed for RNGs for each parallel chain.
Definition: GalacticBinary.h:245
int NC
Number of chains.
Definition: GalacticBinary.h:211
double * temperature
Array of chain temperatures.
Definition: GalacticBinary.h:226
FILE ** noiseFile
Noise parameter chain file: chains/noise_chain.dat.M
Definition: GalacticBinary.h:258
double * avgLogL
Array storing for thermodynamic integration.
Definition: GalacticBinary.h:229
FILE ** calibrationFile
Calibration parameter chain file: chains/calibration_chain.dat.M
Definition: GalacticBinary.h:273
char chainDir[MAXSTRINGSIZE]
store chain directory.
Definition: GalacticBinary.h:305
int ** dimension
Size of model being sampled by chain. Depricated?
Definition: GalacticBinary.h:220
double * acceptance
Array tracking acceptance rate of parallel chain exchanges.
Definition: GalacticBinary.h:223
FILE * temperatureFile
Temperature of each parallel chain to monitor adaptive temperature spacing.
Definition: GalacticBinary.h:302
FILE ** chainFile
Markov chain state (iterations, likelihoods, etc.): chains/model_chain.dat.M
Definition: GalacticBinary.h:266
int * index
Array containing current order of chains in temperature ladder.
Definition: GalacticBinary.h:217
Analaysis segment and meta data about size of segment, location in full data stream,...
Definition: GalacticBinary.h:43
double **** h_pow
Store waveform power samples .
Definition: GalacticBinary.h:115
double SNR2
estimated of data
Definition: GalacticBinary.h:104
int Nmax
max size of frequency segment (for global fit)
Definition: GalacticBinary.h:47
char dataDir[MAXSTRINGSIZE]
Directory for storing data files.
Definition: GalacticBinary.h:99
double pmax
maximum power spectrial density
Definition: GalacticBinary.h:103
char ** cache
contents of cache file
Definition: GalacticBinary.h:130
int Nwave
Number of samples for computing posterior reconstructions.
Definition: GalacticBinary.h:109
double sum_log_f
appears in some normalizations
Definition: GalacticBinary.h:81
double * p
power spectral density of data
Definition: GalacticBinary.h:102
long iseed
seed for injection parameters set by [--injseed=INT; default=151012]
Definition: GalacticBinary.h:58
int N
number of frequency bins
Definition: GalacticBinary.h:46
double logfmin
appears in some normalizations
Definition: GalacticBinary.h:82
int Nchannel
number of data channels
Definition: GalacticBinary.h:49
double **** S_pow
Store noise power samples .
Definition: GalacticBinary.h:116
struct Noise ** noise
Reference noise model.
Definition: GalacticBinary.h:90
int qpad
number of frequency bins padding ends of segment
Definition: GalacticBinary.h:74
double **** r_pow
Store residual power samples .
Definition: GalacticBinary.h:114
double * tgap
time between segments
Definition: GalacticBinary.h:66
long cseed
seed for MCMC set by [--chainseed=INT; default=150914]
Definition: GalacticBinary.h:56
char fileName[MAXSTRINGSIZE]
place holder for filnames
Definition: GalacticBinary.h:117
double logfmax
appears spline setup for bayesline
Definition: GalacticBinary.h:83
double **** h_rec
Store waveform reconstruction samples .
Definition: GalacticBinary.h:112
int NT
number of time segments
Definition: GalacticBinary.h:48
struct TDI ** raw
TDI data channels unaltered from input.
Definition: GalacticBinary.h:89
struct TDI ** tdi
TDI data channels as seen by sampler.
Definition: GalacticBinary.h:88
int NP
number of parameters of injection
Definition: GalacticBinary.h:122
double logN
log total number of data points
Definition: GalacticBinary.h:51
int Ncache
number of sources in the cache file
Definition: GalacticBinary.h:129
int downsample
Downsample factor for getting the desired number of samples.
Definition: GalacticBinary.h:110
struct Catalog * catalog
data and metadata for known sources
Definition: GalacticBinary.h:131
struct Source * inj
injected source structure
Definition: GalacticBinary.h:123
double sine_f_on_fstar
Definition: GalacticBinary.h:78
double fmin
minimum frequency of segment
Definition: GalacticBinary.h:76
double sqT
Definition: GalacticBinary.h:64
double **** h_res
Store data residual samples .
Definition: GalacticBinary.h:113
char format[16]
Convention for data format.
Definition: GalacticBinary.h:98
long nseed
seed for noise realization set by [--noiseseed=INT; default=151226]
Definition: GalacticBinary.h:57
double fmax
maximum frequency of segment
Definition: GalacticBinary.h:77
int DMAX
max dimension of signal model
Definition: GalacticBinary.h:50
double T
observation time
Definition: GalacticBinary.h:63
double * t0
start times of segments
Definition: GalacticBinary.h:65
int qmin
minimum frequency bin of segment
Definition: GalacticBinary.h:72
int qmax
maximum frequency bin of segment
Definition: GalacticBinary.h:73
Run flags set or changed from default values when parsing command line for gb_mcmc and gb_catalog.
Definition: GalacticBinary.h:144
int update
[--update=FILENAME; default=FALSE]: use Gaussian Mixture Model approximation to previous posterior as...
Definition: GalacticBinary.h:173
int NINJ
[--inj=FILENAME]: number of injections = number of --inj instances in command line
Definition: GalacticBinary.h:151
char runDir[MAXSTRINGSIZE]
store DIRECTORY to serve as top level directory for output files.
Definition: GalacticBinary.h:190
int strainData
[--data=FILENAME; default=FALSE]: read data from ASCII file instead of simulate internally.
Definition: GalacticBinary.h:165
int catalog
[--catalog=FILENAME; default=FALSE]: use list of previously detected sources supplied in FILENAME to ...
Definition: GalacticBinary.h:181
int fixFreq
[--fix-freq; default=FALSE]: hold GW frequency fixed to injection parameters
Definition: GalacticBinary.h:159
char catalogFile[MAXSTRINGSIZE]
store FILENAME containing previously identified detections from Flags::catalog for cleaning padding r...
Definition: GalacticBinary.h:201
char gmmFile[MAXSTRINGSIZE]
store FILENAME of input gmm file from Flags::update.
Definition: GalacticBinary.h:195
int emPrior
[--em-prior=FILENAME]: use input data file with EM-derived parameters for priors.
Definition: GalacticBinary.h:162
int NDATA
[default=1]: number of frequency segments, equal to Flags::NINJ.
Definition: GalacticBinary.h:152
int DMAX
[--sources=INT; default=10]: max number of sources
Definition: GalacticBinary.h:155
int prior
[--prior; default=FALSE]: set log-likelihood to constant for testing detailed balance.
Definition: GalacticBinary.h:168
int match
[–match=FLOAT; default=0.8]`: match threshold for chain sample clustering in post processing.
Definition: GalacticBinary.h:175
int confNoise
[--conf-noise; default=FALSE]: include model of confusion noise in , either for simulating noise or a...
Definition: GalacticBinary.h:179
char cdfFile[MAXSTRINGSIZE]
store FILENAME of input chain file from Flags::update.
Definition: GalacticBinary.h:194
char matchInfile1[MAXSTRINGSIZE]
input waveform for computing match
Definition: GalacticBinary.h:197
int maximize
maximize over extrinsic parameter during burn in phase.
Definition: GalacticBinary.h:172
int NMCMC
[--steps=INT; default=100000]: number of MCMC samples
Definition: GalacticBinary.h:149
int debug
[--debug; default=FALSE]: coarser settings for proposals and verbose output for debugging
Definition: GalacticBinary.h:169
int rj
–no-rj; default=TRUE]`: flag for determining if trans dimensional MCMC moves (RJMCMC) are enabled.
Definition: GalacticBinary.h:176
int NT
[--segments=INT; default=1]: number of time segments
Definition: GalacticBinary.h:153
int resume
[--resume; default=FALSE]: restart sampler from run state saved during checkpointing....
Definition: GalacticBinary.h:180
int NVB
number of known binaries for vb_mcmc
Definition: GalacticBinary.h:154
int verbose
[--verbose; default=FALSE]: increases file output (all chains, less downsampling, etc....
Definition: GalacticBinary.h:147
int quiet
[--quiet; default=FALSE]: decreases file output (less diagnostic data, only what is needed for post p...
Definition: GalacticBinary.h:148
int simNoise
[--sim-noise; default=FALSE]: simulate random noise realization and add to data
Definition: GalacticBinary.h:156
char psdFile[MAXSTRINGSIZE]
store FILENAME of input psd file from Flags::psd.
Definition: GalacticBinary.h:200
int gap
[--fit-gap; default=FALSE]: flag for determining if model includes fit to time-gap in the data.
Definition: GalacticBinary.h:177
int NBURN
number of burn in samples, equals Flags::NMCMC.
Definition: GalacticBinary.h:150
int knownSource
[--known-source; default=FALSE]: injection is known binary, will need polarization and phase to be in...
Definition: GalacticBinary.h:163
int burnin
[--no-burnin; default=TRUE]: chain is in the burn in phase
Definition: GalacticBinary.h:171
char ** injFile
[--inj=FILENAME]: list of injection files. Can support up to NINJ=10 separate injections.
Definition: GalacticBinary.h:192
char pdfFile[MAXSTRINGSIZE]
store FILENAME of input priors for Flags:knownSource.
Definition: GalacticBinary.h:199
int threads
number of openMP threads for parallel tempering
Definition: GalacticBinary.h:182
int cheat
start sampler at injection values
Definition: GalacticBinary.h:170
int psd
[--psd=FILENAME; default=FALSE]: use PSD input as ASCII file from command line
Definition: GalacticBinary.h:183
int orbit
[--orbit=FILENAME; default=FALSE]: use numerical spacecraft ephemerides supplied in FILENAME....
Definition: GalacticBinary.h:167
int snrPrior
[--snr-prior; default=FALSE]: use SNR prior for amplitude
Definition: GalacticBinary.h:161
int calibration
[--calibration; default=FALSE]: flag for determining if model is marginalizing over calibration uncer...
Definition: GalacticBinary.h:178
int galaxyPrior
[--galaxy-prior; default=FALSE]: use model of galaxy for sky location prior
Definition: GalacticBinary.h:160
char matchInfile2[MAXSTRINGSIZE]
input waveform for computing match
Definition: GalacticBinary.h:198
char vbFile[MAXSTRINGSIZE]
store FILENAME of list of known binaries vb_mcmc
Definition: GalacticBinary.h:191
char noiseFile[MAXSTRINGSIZE]
file containing reconstructed noise model for gb_catalog to compute SNRs against.
Definition: GalacticBinary.h:193
char covFile[MAXSTRINGSIZE]
store FILENAME of input covariance matrix file from Flags::updateCov.
Definition: GalacticBinary.h:196
int fixSky
[--fix-sky; default=FALSE]: hold sky location fixed to injection parameters. Set to TRUE if Flags::kn...
Definition: GalacticBinary.h:157
int detached
[--detached; default=FALSE]: assume binary is detached, fdot prior becomes
Definition: GalacticBinary.h:164
int updateCov
[--update-cov=FILENAME; default=FALSE]: updating fit from covariance matrix files built from chain sa...
Definition: GalacticBinary.h:174
int hdf5Data
'[–hdf5Data=FILENAME; default=FALSE]`: read data from LDC HDF5 file (compatible w/ Sangria dataset).
Definition: GalacticBinary.h:166
Hierarchical structure of GBMCMC model.
Definition: GalacticBinary.h:444
double * t0_max
upper prior bound on start time
Definition: GalacticBinary.h:470
struct Source ** source
source structures for each signal in the model
Definition: GalacticBinary.h:451
double * t0
start time
Definition: GalacticBinary.h:468
struct TDI ** residual
joint residual
Definition: GalacticBinary.h:463
int Nmax
maximum number of signals in model
Definition: GalacticBinary.h:449
double * logPriorVolume
prior volume
Definition: GalacticBinary.h:476
struct TDI ** tdi
joint signal model
Definition: GalacticBinary.h:462
struct Calibration ** calibration
Calibration parameters.
Definition: GalacticBinary.h:458
int NP
maximum number of signal parameters
Definition: GalacticBinary.h:448
double ** prior
upper and lower bounds for uniform priors
Definition: GalacticBinary.h:475
double * t0_min
lower prior bound on start time
Definition: GalacticBinary.h:469
double logL
unnormalized log likelihood
Definition: GalacticBinary.h:481
double logLnorm
normalization of log likelihood
Definition: GalacticBinary.h:482
int NT
number of time segments
Definition: GalacticBinary.h:447
struct Noise ** noise
Noise parameters.
Definition: GalacticBinary.h:455
int Nlive
current number of signals in model
Definition: GalacticBinary.h:450
Structure containing parameters and meta data for noise model in narrow-band analysis segment.
Definition: GalacticBinary.h:375
double *** invC
Inverse covariance matrix>
Definition: GalacticBinary.h:394
int N
Number of data samples fit by noise model.
Definition: GalacticBinary.h:377
double * detC
Determinent of covariance matrix.
Definition: GalacticBinary.h:395
int Nchannel
Number of TDI channels.
Definition: GalacticBinary.h:380
double *** C
Covariance matrix.
Definition: GalacticBinary.h:393
Structure containing parameters and meta data for a single galactic binary.
Definition: GalacticBinary.h:314
int imax
Maximum frequency bin of signal relative to segment start.
Definition: GalacticBinary.h:358
double costheta
Cosine of ecliptic co-latitude.
Definition: GalacticBinary.h:339
double dfdt
First time derivitive of GW frequemcy , see galactic_binary_fdot()
Definition: GalacticBinary.h:328
int qmin
Minimum frequency bin of signal (relative to 0 Hz)
Definition: GalacticBinary.h:355
double ** fisher_evectr
Eigenvectors of covariance matrix.
Definition: GalacticBinary.h:365
int imin
Minimum frequency bin of signal relative to segment start.
Definition: GalacticBinary.h:357
double Mc
Chirp mass , see galactic_binary_Mc()
Definition: GalacticBinary.h:347
double ** fisher_matrix
Fisher approximation to inverse covariance matrix.
Definition: GalacticBinary.h:364
int NP
Number of parameters in signal model.
Definition: GalacticBinary.h:316
double f0
Gravitational wave frequency at start of observations .
Definition: GalacticBinary.h:327
double * params
Array containing parameters to be passed to galactic_binary()
Definition: GalacticBinary.h:319
double amp
Gravitational wave amplitude , see galactic_binary_Amp()
Definition: GalacticBinary.h:330
double m2
Secondary component mass .
Definition: GalacticBinary.h:346
double m1
Primary component mass .
Definition: GalacticBinary.h:345
int qmax
Maximum frequency bin of signal (relative to 0 Hz)
Definition: GalacticBinary.h:356
double cosi
Cosine of orbital inclination angle.
Definition: GalacticBinary.h:336
struct TDI * tdi
Instrument response to signal with Source::params .
Definition: GalacticBinary.h:322
int fisher_update_flag
1 if fisher needs update, 0 if not
Definition: GalacticBinary.h:367
double psi
Polarization angle.
Definition: GalacticBinary.h:335
double phi
Ecliptic longitude.
Definition: GalacticBinary.h:338
double * fisher_evalue
Eigenvalues of covariance matrix.
Definition: GalacticBinary.h:366
double D
Luminosity Distance , see galactic_binary_dL()
Definition: GalacticBinary.h:348
double d2fdt2
Second time derivitive of GW frequemcy .
Definition: GalacticBinary.h:329
int BW
Signal bandwidth in frequency bins, see galactic_binary_bandwidth()
Definition: GalacticBinary.h:354
double phi0
Gravitational wave phase at start of observations.
Definition: GalacticBinary.h:337
Structure for Time Delay Interferometry data and metadata.
Definition: LISA.h:123