33#include <gsl/gsl_rng.h>
34#include <gsl/gsl_randist.h>
36#include <lal/GenerateBurst.h>
38#include <lal/LALConstants.h>
39#include <lal/LALDatatypes.h>
40#include <lal/LALDetectors.h>
41#include <lal/LALSimBurst.h>
42#include <lal/LALSimulation.h>
43#include <lal/LIGOMetadataTables.h>
44#include <lal/LIGOMetadataUtils.h>
45#include <lal/TimeFreqFFT.h>
46#include <lal/TimeSeries.h>
47#include <lal/FrequencySeries.h>
74 if(!strcmp(sim_burst->
waveform,
"BTLWNB")) {
87 gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937);
89 XLALPrintError(
"%s(): failure creating random number generator\n", __func__);
94 XLALPrintInfo(
"%s(): BTLWNB @ %9d.%09u s (GPS): f = %.16g Hz, df = %.16g Hz, dt = %.16g s, hdot^2 = %.16g\n", __func__, sim_burst->
time_geocent_gps.
gpsSeconds, sim_burst->
time_geocent_gps.
gpsNanoSeconds, sim_burst->
frequency, sim_burst->
bandwidth, sim_burst->
duration, int_hdot_squared_dt);
100 }
else if(!strcmp(sim_burst->
waveform,
"StringCusp")) {
104 }
else if(!strcmp(sim_burst->
waveform,
"StringKink")) {
108 }
else if(!strcmp(sim_burst->
waveform,
"StringKinkKink")) {
112 }
else if(!strcmp(sim_burst->
waveform,
"SineGaussian")) {
116 }
else if(!strcmp(sim_burst->
waveform,
"Gaussian")) {
120 }
else if(!strcmp(sim_burst->
waveform,
"Impulse")) {
124 }
else if(!strcmp(sim_burst->
waveform,
"Cherenkov")) {
140 XLALPrintError(
"%s(): bad geocentre time or waveform too long\n", __func__);
143 *hplus = *hcross = NULL;
176 const double injection_window = 100.0;
184 XLALPrintInfo(
"%s(): channel name is '%s', instrument appears to be '%s'\n", __func__, series->
name,
detector->frDetector.prefix);
189 for(; sim_burst; sim_burst = sim_burst->
next) {
196 if(!time_slide_row) {
197 XLALPrintError(
"%s(): cannot find time shift offset for injection 'sim_burst:simulation_id:%ld'. need 'time_slide:time_slide_id:%ld' for instrument '%s'", __func__, sim_burst->
simulation_id, sim_burst->
time_slide_id,
detector->frDetector.prefix);
221 f = fopen(
name,
"w");
237 hplus = hcross = NULL;
250 f = fopen(
name,
"w");
int XLALSimBurstSineGaussian(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 Q, REAL8 centre_frequency, REAL8 hrss, REAL8 eccentricity, REAL8 phase, REAL8 delta_t)
int XLALGenerateStringKinkKink(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 amplitude, REAL8 delta_t)
int XLALGenerateBandAndTimeLimitedWhiteNoiseBurst(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 duration, REAL8 frequency, REAL8 bandwidth, REAL8 eccentricity, REAL8 phase, REAL8 int_hdot_squared, REAL8 delta_t, gsl_rng *rng)
int XLALSimBurstGaussian(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 duration, REAL8 hrss, REAL8 delta_t)
int XLALGenerateImpulseBurst(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 hpeak, REAL8 delta_t)
int XLALGenerateStringKink(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 amplitude, REAL8 f_high, REAL8 delta_t)
int XLALGenerateStringCusp(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 amplitude, REAL8 f_high, REAL8 delta_t)
int XLALSimBurstCherenkovRadiation(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, double source_length, double dE_over_dA, double deltaT)
const LALDetector * XLALDetectorPrefixToLALDetector(const char *string)
REAL8TimeSeries * XLALSimDetectorStrainREAL8TimeSeries(const REAL8TimeSeries *hplus, const REAL8TimeSeries *hcross, REAL8 right_ascension, REAL8 declination, REAL8 psi, const LALDetector *detector)
int XLALSimAddInjectionREAL8TimeSeries(REAL8TimeSeries *target, REAL8TimeSeries *h, const COMPLEX16FrequencySeries *response)
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
int int int XLALPrintInfo(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)
REAL8 XLALGPSGetREAL8(const LIGOTimeGPS *epoch)
LIGOTimeGPS * XLALGPSAddGPS(LIGOTimeGPS *epoch, const LIGOTimeGPS *dt)
REAL8 XLALGPSDiff(const LIGOTimeGPS *t1, const LIGOTimeGPS *t0)
int XLALGenerateSimBurst(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const SimBurst *sim_burst, double delta_t)
Generate the + and x time series for a single sim_burst table row.
int XLALBurstInjectSignals(REAL8TimeSeries *series, const SimBurst *sim_burst, const TimeSlide *time_slide_table_head, const COMPLEX16FrequencySeries *response)
Wrapper to iterate over the entries in a sim_burst linked list and inject them into a time series.
char waveform[LIGOMETA_WAVEFORM_MAX]
struct tagSimBurst * next
LIGOTimeGPS time_geocent_gps
unsigned long waveform_number