diff --git a/src/BayesLine.c b/src/BayesLine.c index f3d25237eb2019b44f3ac1a6d8d6d17d4feae734..ec5390de7596e8e77a40a2a496022ab4fd6f3442 100644 --- a/src/BayesLine.c +++ b/src/BayesLine.c @@ -2428,13 +2428,14 @@ void blstart(double *data, double *residual, int N, double dt, double fmin, int Tobs = (double)(N)*dt; // duration // Tukey window parameter. Flat for (1-alpha) of data - //t_rise = 0.4; // Standard LAL setting + //TODO: NEED TO MAKE THIS A PARAMETER WE CAN CONTROL AT THE COMMAND LINE + t_rise = 0.4; // Standard LAL setting /* t_rise increased because 0.4 was found to be insufficient. Perhaps there is an additional data conditioning step in LALInferenceReadData? */ - t_rise = 1.0; + //t_rise = 1.0; alpha = (2.0*t_rise/Tobs); df = 1.0/Tobs; // frequency resolution @@ -2865,7 +2866,8 @@ void BayesLineBurnin(struct BayesLineParams *bayesline, double *timeData, double { bayesline->priors->sigma[i] = bayesline->Snf[i]; bayesline->priors->mean[i] = bayesline->Snf[i]; - bayesline->priors->lower[i] = bayesline->Sbase[i_bucket-imin] / (PRIORSCALE*10); + if(bayesline->flatPriorFlag) bayesline->priors->lower[i] = bayesline->Sbase[i_bucket-imin] / (PRIORSCALE*10); + else bayesline->priors->lower[i] = bayesline->Sbase[i]/PRIORSCALE; //bayesline->priors->upper[i] = bayesline->Snf[i] * PRIORSCALE; bayesline->priors->upper[i] = (bayesline->Sbase[i] + bayesline->Sline[i]*100.0)*PRIORSCALE; } diff --git a/src/BayesLine.h b/src/BayesLine.h index 5aacfe5970c9377a07564d5fa68b45a1beb530af..e7378ad352b6bbf64dff0040da502fc5302f1975 100644 --- a/src/BayesLine.h +++ b/src/BayesLine.h @@ -112,6 +112,7 @@ struct BayesLineParams double *Sline; int constantLogLFlag; + int flatPriorFlag; double TwoDeltaT; gsl_rng *r; diff --git a/src/BayesWave.c b/src/BayesWave.c index 9ec4a51875bb6081867c782a4a790f55d7e8714c..bf91624580ff7b0ed7709d5869df12757a5e9bc7 100644 --- a/src/BayesWave.c +++ b/src/BayesWave.c @@ -1168,6 +1168,7 @@ void print_help_message(void) fprintf(stdout," --dimensionDecayRate e-folding time for number of wavelets (1000)\n"); fprintf(stdout," --fixIntrinsicParams hold intrinsic parameters fixed\n"); fprintf(stdout," --fixExtrinsicParams hold extrinsic parameters fixed\n"); + fprintf(stdout," --loudGlitchPrior set floor of PSD prior to .01*Sn(f=200Hz)\n"); fprintf(stdout,"\n"); fprintf(stdout," ----------------------------------------------------------------------------------\n"); fprintf(stdout," --- Parallel Tempering parameters ----------------------------------------------\n"); diff --git a/src/BayesWave.h b/src/BayesWave.h index 8fa150d05f0d37a3cd63fc0314a56e2171150915..41c939fb197423e3daad08e7c34c819eca5b018f 100644 --- a/src/BayesWave.h +++ b/src/BayesWave.h @@ -310,6 +310,7 @@ struct Data int adaptTemperatureFlag; int splineEvidenceFlag; int constantLogLFlag; + int flatBayesLinePriorFlag; int loudGlitchFlag; int gnuplotFlag; int verboseFlag; diff --git a/src/BayesWaveIO.c b/src/BayesWaveIO.c index d0ce7d9409fd12e3b51b8a6987aedd4457b90e7e..c72879514348f1a4e9d9bb547d47e7a571f4a966 100644 --- a/src/BayesWaveIO.c +++ b/src/BayesWaveIO.c @@ -1569,6 +1569,10 @@ void parse_command_line(struct Data *data, struct Chain *chain, struct Prior *pr ppt = LALInferenceGetProcParamVal(commandLine, "--prior"); if(ppt) data->constantLogLFlag = 1; else data->constantLogLFlag = 0; + + ppt = LALInferenceGetProcParamVal(commandLine, "--loudGlitchPrior"); + if(ppt) data->flatBayesLinePriorFlag = 1; + else data->flatBayesLinePriorFlag = 0; ppt = LALInferenceGetProcParamVal(commandLine, "--gnuplot"); if(ppt) data->gnuplotFlag = 1; diff --git a/src/BayesWaveModel.c b/src/BayesWaveModel.c index 9c28789109ae9d5c558e2cf494565613a9689cb2..ce24e8ad3c9ac7679d301c45ea47fd922491556e 100644 --- a/src/BayesWaveModel.c +++ b/src/BayesWaveModel.c @@ -911,6 +911,7 @@ void initialize_bayesline(struct BayesLineParams **bayesline, struct Data *data, // set default flags bayesline[ifo]->constantLogLFlag = data->constantLogLFlag; + bayesline[ifo]->flatPriorFlag = data->flatBayesLinePriorFlag; //Use initial estimate of PSD to set priors for(i=0; i<N; i++)