6 #include <gsl/gsl_rng.h>
8 #include <lal/LALStdlib.h>
9 #include <lal/LALgetopt.h>
10 #include <lal/LALConstants.h>
11 #include <lal/LALDetectors.h>
12 #include <lal/LALSimulation.h>
13 #include <lal/TimeSeries.h>
15 #include <lal/Audio.h>
16 #include <lal/LALSimBurst.h>
32 #define CAT(a,b) a ## b
33 #define FLT(i) CAT(i,.)
34 #define HMS2RAD(h,m,s) (LAL_PI * ((h) + ((m) + (s) / 60.) / 60.) / 12.0)
35 #define DMS2RAD(d,m,s) ((signbit(FLT(d)) ? -LAL_PI : LAL_PI) * (abs(d) + ((m) + (s) / 60.) / 60.) / 180.0)
37 int main(
int argc,
char *argv[])
43 double ra =
HMS2RAD( 6, 7, 47.8);
44 double dec =
DMS2RAD(-6, 22, 55);
56 rng = gsl_rng_alloc(gsl_rng_default);
68 if (*
output && 0 == strcmp(strrchr(
output,
'.'),
".wav"))
70 else if (*
output && 0 == strcmp(strrchr(
output,
'.'),
".au"))
109 char args[] =
"hd:f:F:H:o:s:t:V:";
111 int option_index = 0;
120 if (long_options[option_index].
flag)
123 fprintf(stderr,
"error parsing option %s with argument %s\n", long_options[option_index].
name,
LALoptarg);
144 fprintf(stderr,
"unrecognized detector site %s - must be 'G', 'H', 'L' or 'V'\n",
LALoptarg);
171 fprintf(stderr,
"unknown error while parsing options\n");
177 fprintf(stderr,
"extraneous command line arguments:\n");
184 fprintf(stderr,
"error: time-frequency volume must be at least 2/pi\n");
190 fprintf(stderr,
"error: must specify a detector site\n");
198 fprintf(stderr,
"error: the maximum frequency must be greater than the minimum frequency\n");
203 fprintf(stderr,
"error: the maximum frequency must be less than the Nyquist frequency\n");
214 fprintf(stderr,
"options:\n" );
215 fprintf(stderr,
"\t-h, --help \tprint this message and exit\n");
216 fprintf(stderr,
"\t-d detectorSite\t(required) detector site (G|H|L|V)\n");
217 fprintf(stderr,
"\t-f minFrequency\t(default=0) minimum frequency (Hz)\n");
218 fprintf(stderr,
"\t-F maxFrequency\t(default=Nyquist) maximum frequency (Hz)\n");
219 fprintf(stderr,
"\t-H hrss \t(default=1) root-sum-squared strain hrss (s)\n");
220 fprintf(stderr,
"\t-o outfile \t(default=stdout) output filename\n");
221 fprintf(stderr,
"\t-s sampleRate \t(default=16384) sample rate (Hz)\n");
222 fprintf(stderr,
"\t-t GPSStartTime\t(default=0) start time relative to GPS epoch (s)\n");
223 fprintf(stderr,
"\t-V TimeFreqVol \t(default=1) pixel time-frequency volume\n");
224 fprintf(stderr,
"environment:\n" );
225 fprintf(stderr,
"\tGSL_RNG_SEED \trandom number generator seed\n");
226 fprintf(stderr,
"\tGSL_RNG_TYPE \trandom number generator type\n");
void LALCheckMemoryLeaks(void)
int LALgetopt_long_only(int argc, char *const *argv, const char *options, const struct LALoption *long_options, int *opt_index)
#define required_argument
int XLALAudioAURecordREAL8TimeSeries(FILE *fp, REAL8TimeSeries *series)
int XLALAudioWAVRecordREAL8TimeSeries(FILE *fp, REAL8TimeSeries *series)
const LALDetector lalCachedDetectors[LAL_NUM_DETECTORS]
char * XLALGPSToStr(char *s, const LIGOTimeGPS *t)
int XLALSimUnicorn(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, double f_min, double f_max, double V, double hrss, double deltaT, gsl_rng *rng)
Generates a time-frequency unicorn signal.
REAL8TimeSeries * XLALSimDetectorStrainREAL8TimeSeries(const REAL8TimeSeries *hplus, const REAL8TimeSeries *hcross, REAL8 right_ascension, REAL8 declination, REAL8 psi, const LALDetector *detector)
Transforms the waveform polarizations into a detector strain.
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
void XLALAbortErrorHandler(const char *func, const char *file, int line, int errnum)
XLALErrorHandlerType * XLALSetErrorHandler(XLALErrorHandlerType *newHandler)
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)
LIGOTimeGPS * XLALGPSAddGPS(LIGOTimeGPS *epoch, const LIGOTimeGPS *dt)
LIGOTimeGPS * XLALGPSSetREAL8(LIGOTimeGPS *epoch, REAL8 t)
int main(int argc, char *argv[])
int fprintgps(FILE *fp, const LIGOTimeGPS *t)
int usage(const char *program)
int parseargs(int argc, char **argv)
char output[FILENAME_MAX]