diff --git a/src/BayesWave.c b/src/BayesWave.c index f47bd6fbc8c93a1ef03ed63a7e4c2ac2c8707bf4..67296b3e09b446353b9ec7763c044370a5a53196 100644 --- a/src/BayesWave.c +++ b/src/BayesWave.c @@ -170,21 +170,34 @@ int main(int argc, char *argv[]) ifo=0; imin = (int)(fmin*Tobs); imax = (int)(fmax*Tobs); + + bool simDataFlag = False; while(dataPtr!=NULL) { //read in time domain data from LALInference data structre for(i=0; i<N; i++) { timeData[ifo][i] = dataPtr->timeData->data->data[i]; + //timeData remains uninitialized if simulating data + if(timeData[ifo][i]!=timeData[ifo][i]) + { + simDataFlag = True; + timeData[ifo][i] = 0.0; + } } //read in frequency domain data from LALInference data structure for(i=0; i<N/2; i++) { + if(simDataFlag) + { + dataPtr->freqData->data->data[imin] = dataPtr->freqData->data->data[imin+1]; + dataPtr->oneSidedNoisePowerSpectrum->data->data[imin] = dataPtr->oneSidedNoisePowerSpectrum->data->data[imin+1]; + } if(i<imin) { - freqData[ifo][2*i] = 0.0; - freqData[ifo][2*i+1] = 0.0; - psd[ifo][i] = 1.0; + freqData[ifo][2*i] = creal(dataPtr->freqData->data->data[imin]); + freqData[ifo][2*i+1] = cimag(dataPtr->freqData->data->data[imin]); + psd[ifo][i] = dataPtr->oneSidedNoisePowerSpectrum->data->data[imin]*Tobs/2.0; } else { @@ -201,7 +214,11 @@ int main(int argc, char *argv[]) dataPtr = dataPtr->next; ifo++; } - + if(simDataFlag) + { + fprintf(stdout,"Detected run is using simulated data\n"); + fprintf(stdout,"copied d(fmin+1/t) to d(f<=fmin)\n\n"); + } /******************************************************************************/ /* */ /* Setup DATA, CHAIN, PRIOR, MODEL structures */ @@ -352,10 +369,10 @@ int main(int argc, char *argv[]) //copy frequency domain data into timeData array for inplace iFFT for(i=0; i<N; i++) timeData[ifo][i] = data->s[ifo][i]; //pad frequencies below fmin, just in case - for(i=0; i<imin; i++) + for(i=0; i<=imin; i++) { - timeData[ifo][2*i] = data->s[ifo][2*i]; - timeData[ifo][2*i+1] = data->s[ifo][2*i+1]; + timeData[ifo][2*i] = data->s[ifo][2*(imin+1)]; + timeData[ifo][2*i+1] = data->s[ifo][2*(imin+1)+1]; } fftw_wrapper(timeData[ifo],data->N,-1);