26#include <lal/LALStdlib.h>
27#include <lal/LALStdio.h>
28#include <lal/AVFactories.h>
31#include <lal/GenerateInspiral.h>
32#include <lal/LIGOLwXML.h>
33#include <lal/LIGOLwXMLRead.h>
34#include <lal/LIGOMetadataRingdownUtils.h>
35#include <lal/LIGOMetadataUtils.h>
37#include <lal/FindChirp.h>
38#include <lal/LALSimInspiral.h>
39#include <lal/LALInspiral.h>
47#define FILENAME_LENGTH 255
80 const char *injectFile,
81 const char *calCacheFile,
83 const char *channel_name
109 strncpy( injFile, injectFile,
sizeof( injFile ) - 1 );
115 verbose(
"reading simulated-ring tables from file %s\n", injFile );
116 startSec =
series->epoch.gpsSeconds;
117 stopSec = startSec + ceil( 1
e-9 *
series->epoch.gpsNanoSeconds
121 switch ( injectSignalType )
131 error(
"unrecognized injection signal type\n" );
136 epoch.gpsSeconds = startSec;
137 epoch.gpsNanoSeconds = 0;
138 verbose(
"getting response function for GPS time %d.%09d\n",
149 sampleRate, responseScale, strainData, channel_name );
155 verbose(
"injecting signal(s) into time series\n" );
157 switch ( injectSignalType )
166 response, injectSignalType ), &
status );
173 fprintf( stderr,
"could not parse approximant from sim_inspiral.waveform\n" );
186 error(
"unrecognized injection signal type\n" );
196 switch ( injectSignalType )
201 snprintf(
fname,
sizeof(
fname),
"HL-INJECTIONS_0-%d-%d.xml",
202 startSec, stopSec - startSec );
203 fprintf( stdout,
"Writing the injection details to %s\n",
fname);
221 thisInject = injectList;
222 injectList = injectList->
next;
void LALFindChirpInjectSignals(LALStatus *status, REAL4TimeSeries *chan, SimInspiralTable *events, COMPLEX8FrequencySeries *resp)
void LALFindChirpInjectIMR(LALStatus *status, REAL4TimeSeries *chan, SimInspiralTable *events, SimRingdownTable *ringdownevents, COMPLEX8FrequencySeries *resp, INT4 injectSignalType)
Provides an interface between code build from FindChirp Package and various simulation packages for i...
#define LAL_CALL(function, statusptr)
void XLALSimInjectNinjaSignals(REAL4TimeSeries *chan, const char *ifo, REAL8 dynRange, SimInspiralTable *events)
int XLALGetApproximantFromString(const char *waveform)
int XLALCloseLIGOLwXMLFile(LIGOLwXMLStream *xml)
LIGOLwXMLStream * XLALOpenLIGOLwXMLFile(const char *path)
int XLALWriteLIGOLwXMLSimRingdownTable(LIGOLwXMLStream *xml, const SimRingdownTable *sim_ringdown)
SimRingdownTable * XLALSimRingdownTableFromLIGOLw(const char *fileName)
SimInspiralTable * XLALSimInspiralTableFromLIGOLw(const char *fileName)
int error(const char *fmt,...)
COMPLEX8FrequencySeries * get_response(const char *cacheName, const char *ifoName, LIGOTimeGPS *epoch, REAL8 dataDuration, REAL8 dataSampleRate, REAL4 responseScale, int strainData, const char *channel_name)
void LALRingInjectSignals(LALStatus *stat, REAL4TimeSeries *series, SimRingdownTable *injections, COMPLEX8FrequencySeries *resp, INT4 calType)
#define XLAL_INIT_DECL(var,...)
void * XLALCalloc(size_t m, size_t n)
int XLALUnitCompare(const LALUnit *unit1, const LALUnit *unit2)
const LALUnit lalStrainUnit
const LALUnit lalADCCountUnit
void XLALDestroyCOMPLEX8Vector(COMPLEX8Vector *vector)
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)
REAL8 XLALGPSDiff(const LIGOTimeGPS *t1, const LIGOTimeGPS *t0)
static void clip_sim_ringdown_to_series(SimRingdownTable **sim, REAL4TimeSeries *series)
int ring_inject_signal(REAL4TimeSeries *series, int injectSignalType, const char *injectFile, const char *calCacheFile, REAL4 responseScale, const char *channel_name)
char name[LIGOMETA_SOURCE_MAX]
struct tagSimInspiralTable * next
CHAR waveform[LIGOMETA_WAVEFORM_MAX]
struct tagSimRingdownTable * next