int main(int argc, char *argv[]){ //#define default_command_line_len 18 //char * const default_command_line[default_command_line_len]; //"--psdlength","1000","--psdstart","1","--seglen","64","--srate","4096","--trigtime","0","--ifo","H1","--H1-channel","LALSimAdLIGO","--H1-cache","LALSimAdLIGO","--dataseed","1234"}; ProcessParamsTable *procParams = NULL; LALInferenceRunState *runState=NULL; procParams=LALInferenceParseCommandLine(argc,argv); runState = LALInferenceInitRunState(procParams); if(runState) { LALInferenceInjectInspiralSignal(runState->data,runState->commandLine); /* Simulate calibration errors */ LALInferenceApplyCalibrationErrors(runState->data,runState->commandLine); } /* Set up the template and likelihood functions */ LALInferenceInitCBCThreads(runState,1); LALInferenceInitLikelihood(runState); /* Disable waveform caching */ runState->threads[0]->model->waveformCache=NULL; int result = compare_template(runState); return(result); }
CAMLprim value wrapLALInferenceIFOData(value options) { CAMLparam1(options); CAMLlocal2(data, option); LALInferenceIFOData *d = NULL; ProcessParamsTable *ppt = NULL; /* Set srate. */ option = Field(options, 0); ppt = addCommandLineOption(ppt, "--srate", String_val(option)); /* Flow's */ option = Field(options, 1); if (caml_string_length(option) == 0) { /* Do nothing. */ } else { ppt = addCommandLineOption(ppt, "--flow", String_val(option)); } /* Fhigh's */ option = Field(options, 2); if (caml_string_length(option) == 0) { /* Do nothing. */ } else { ppt = addCommandLineOption(ppt, "--fhigh", String_val(option)); } option = Field(options, 3); ppt = addCommandLineOption(ppt, "--cache", String_val(option)); option = Field(options, 4); ppt = addCommandLineOption(ppt, "--IFO", String_val(option)); option = Field(options, 5); ppt = addCommandLineOption(ppt, "--dataseed", String_val(option)); option = Field(options, 6); ppt = addCommandLineOption(ppt, "--PSDstart", String_val(option)); option = Field(options, 7); ppt = addCommandLineOption(ppt, "--trigtime", String_val(option)); option = Field(options, 8); ppt = addCommandLineOption(ppt, "--PSDlength", String_val(option)); option = Field(options, 9); ppt = addCommandLineOption(ppt, "--seglen", String_val(option)); option = Field(options, 10); if (Is_block(option)) { ppt = addCommandLineOption(ppt, "--injXML", String_val(Field(option,0))); } d = LALInferenceReadData(ppt); LALInferenceInjectInspiralSignal(d,ppt); LALInferenceIFOData *dElt = d; while (dElt != NULL) { /*If two IFOs have the same sampling rate, they should have the same timeModelh*, freqModelh*, and modelParams variables to avoid excess computation in model waveform generation in the future*/ LALInferenceIFOData * dEltCompare=d; int foundIFOwithSameSampleRate=0; while (dEltCompare != NULL && dEltCompare!=dElt) { if(dEltCompare->timeData->deltaT == dElt->timeData->deltaT){ dElt->timeModelhPlus=dEltCompare->timeModelhPlus; dElt->freqModelhPlus=dEltCompare->freqModelhPlus; dElt->timeModelhCross=dEltCompare->timeModelhCross; dElt->freqModelhCross=dEltCompare->freqModelhCross; dElt->modelParams=dEltCompare->modelParams; foundIFOwithSameSampleRate=1; break; } dEltCompare = dEltCompare->next; } if(!foundIFOwithSameSampleRate){ dElt->timeModelhPlus = XLALCreateREAL8TimeSeries("timeModelhPlus", &(dElt->timeData->epoch), 0.0, dElt->timeData->deltaT, &lalDimensionlessUnit, dElt->timeData->data->length); dElt->timeModelhCross = XLALCreateREAL8TimeSeries("timeModelhCross", &(dElt->timeData->epoch), 0.0, dElt->timeData->deltaT, &lalDimensionlessUnit, dElt->timeData->data->length); dElt->freqModelhPlus = XLALCreateCOMPLEX16FrequencySeries("freqModelhPlus", &(dElt->freqData->epoch), 0.0, dElt->freqData->deltaF, &lalDimensionlessUnit, dElt->freqData->data->length); dElt->freqModelhCross = XLALCreateCOMPLEX16FrequencySeries("freqModelhCross", &(dElt->freqData->epoch), 0.0, dElt->freqData->deltaF, &lalDimensionlessUnit, dElt->freqData->data->length); dElt->modelParams = calloc(1, sizeof(LALInferenceVariables)); } dElt = dElt->next; } deletePPT(ppt); data = alloc_ifo_data(d); CAMLreturn(data); }