24#include <lal/LALInference.h>
25#include <lal/LALInferenceInit.h>
26#include <lal/LALInferenceReadData.h>
27#include <lal/LALInferenceCalibrationErrors.h>
28#include <lal/LALInferenceTemplate.h>
29#include <lal/LALInferenceLikelihood.h>
30#include <sys/resource.h>
33#define UNUSED __attribute__ ((unused))
39"LALInferenceMultiBandTest: Unit test for consistency between multiband and regular template functions.\n\
40 Example (for 1.4-1.4 binary with seglen 32, srate 4096): \n\
41 $ ./LALInferenceMultiBandTest --psdlength 1000 --psdstart 1 --seglen 32 --srate 4096 --trigtime 0 --ifo H1 --H1-channel LALSimAdLIGO --H1-cache LALSimAdLIGO --dataseed 1324 --fix-chirpmass 1.218 --fix-q 1.0 --margphi\n\n\n\
56 REAL8 oldPhase=0.0,mbPhase=0.0;
57 REAL8 h0MatchPlus,h0MatchCross;
58 REAL8 hmbMatchPlus,hmbMatchCross;
60 REAL8 target_snr = 50;
61 REAL8 tolerance = 0.1/(target_snr*target_snr);
105 fprintf(stdout,
"Parameter values:\n");
114 int result = (1.0-cabs(innerPlus)/h0MatchPlus < tolerance) && (1.0 - cabs(innerCross)/h0MatchCross < tolerance);
117 fprintf(stdout,
"|<h0|hmb>/<h0|h0>| = %lf (+) %lf (x)\n",(cabs(innerPlus)/h0MatchPlus),(cabs(innerCross)/h0MatchCross));
118 fprintf(stdout,
"SNR = %lf (+), %lf (x)\n",sqrt(h0MatchPlus),sqrt(h0MatchCross));
119 fprintf(stdout,
"SNR mb = %lf (+), %lf (x)\n",sqrt(hmbMatchPlus),sqrt(hmbMatchCross));
120 fprintf(stdout,
"cplx <h|h0> (+): %lf*exp(%lfi), (x): %lf*exp(%lfi)\n",cabs(innerPlus),carg(innerPlus),cabs(innerCross),carg(innerCross));
122 fprintf(stdout,
"Normalised mismatch (|h0-h|/|h0|)^2: %le (+), %le (x)\n",cabs(mismatchplus)/SNRsqPlus,cabs(mismatchcross)/SNRsqCross);
123 fprintf(stdout,
"Tolerance = %le\n",tolerance);
124 fprintf(stdout,
"Test result: %s\n",result?
"passed":
"failed");
125 fprintf(stdout,
"Interpolation good up to SNR %lf (+), %lf (x)\n",
126 sqrt(tolerance*target_snr*target_snr *SNRsqPlus/ mismatchplus),
127 sqrt(tolerance*target_snr*target_snr *SNRsqCross/ mismatchplus) );
129 fprintf(stdout,
"max Like phase:\tnormal = %lf, phaseinterp = %lf\n",oldPhase,mbPhase);
143int main(
int argc,
char *argv[]){
ProcessParamsTable * LALInferenceParseCommandLine(int argc, char *argv[])
void LALInferenceApplyCalibrationErrors(LALInferenceIFOData *IFOdata, ProcessParamsTable *commandLine)
LALInferenceRunState * LALInferenceInitRunState(ProcessParamsTable *command_line)
void LALInferenceInitCBCThreads(LALInferenceRunState *run_state, INT4 nthreads)
int main(int argc, char *argv[])
void LALInferenceTemplateNoop(UNUSED LALInferenceModel *model)
COMPLEX16 compute_mismatch(LALInferenceIFOData *data, COMPLEX16FrequencySeries *a, COMPLEX16FrequencySeries *b)
int compare_template(LALInferenceRunState *runState)
void LALInferenceInjectInspiralSignal(LALInferenceIFOData *IFOdata, ProcessParamsTable *commandLine)
COMPLEX16FrequencySeries * XLALCreateCOMPLEX16FrequencySeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaF, const LALUnit *sampleUnits, size_t length)
REAL8 LALInferenceGetREAL8Variable(LALInferenceVariables *vars, const char *name)
void LALInferenceDumpWaveforms(LALInferenceModel *model, const char *basefilename)
Dump all waveforms from the ifodata structure.
void LALInferencePrintVariables(LALInferenceVariables *var)
output contents of a 'LALInferenceVariables' structure * / / * (by now only prints names and types,...
int LALInferenceCheckVariable(LALInferenceVariables *vars, const char *name)
Checks for name being present in vars returns 1(==true) or 0.
void LALInferenceInitLikelihood(LALInferenceRunState *runState)
Initialisation function which reads runState->commaneLine and sets up the likelihood function accordi...
COMPLEX16 LALInferenceComputeFrequencyDomainComplexOverlap(LALInferenceIFOData *dataPtr, COMPLEX16Vector *freqData1, COMPLEX16Vector *freqData2)
Computes the complex <x|y> overlap.
REAL8 LALInferenceComputeFrequencyDomainOverlap(LALInferenceIFOData *dataPtr, COMPLEX16Vector *freqData1, COMPLEX16Vector *freqData2)
Computes the <x|y> overlap in the Fourier domain.
void LALInferenceTemplateNullFreqdomain(LALInferenceModel *model)
Returns a frequency-domain 'null' template (all zeroes, implying no signal present).
void LALInferenceTemplateXLALSimInspiralChooseWaveformPhaseInterpolated(LALInferenceModel *model)
void LALInferenceTemplateXLALSimInspiralChooseWaveform(LALInferenceModel *model)
"XLALSimInspiralChooseWaveform{TD,FD}" wrapper.
const LALUnit lalDimensionlessUnit
Structure to contain IFO data.
Structure to constain a model and its parameters.
COMPLEX16FrequencySeries * freqhPlus
Time series model buffers.
LALSimInspiralWaveformCache * waveformCache
LALInferenceVariables * params
COMPLEX16FrequencySeries * freqhCross
LALInferenceTemplateFunction templt
Domain of model.
Structure containing inference run state This includes pointers to the function types required to run...
ProcessParamsTable * commandLine
struct tagLALInferenceIFOData * data
Log sample, i.e.
LALInferenceThreadState * threads
LALInferenceLikelihoodFunction likelihood
MultiNest prior for the parameters.
LALInferenceModel * model
Cycle of proposals to call.