42#include <lal/LALConstants.h>
43#include <lal/LALgetopt.h>
45#include <lal/TimeSeries.h>
46#include <lal/LALFrStream.h>
47#include <lal/LALSimulation.h>
48#include <lal/NRWaveInject.h>
49#include <lal/LALInspiral.h>
50#include <lal/LALFrameIO.h>
72 ts = stream->
file->toc->adc;
78 ts = stream->
file->toc->sim;
85 ts = stream->
file->toc->proc;
106 INT4 modeL, modeM, modeLlo, modeLhi;
107 INT4 len, lenPlus, lenCross, k;
108 CHAR *channel_name_plus;
109 CHAR *channel_name_cross;
115 REAL8 massMpc, timeStep;
137 for ( modeL = modeLlo; modeL <= modeLhi; modeL++ ) {
140 for ( modeM = -modeL; modeM <= modeL; modeM++ ) {
167 if ( (lenPlus <= 0) || (lenCross <= 0) || (lenPlus != lenCross) ) {
191 if (*seriesPlus == NULL) {
193 memset((*seriesPlus)->data->data, 0, (*seriesPlus)->data->length*
sizeof(
REAL8));
194 (*seriesPlus)->deltaT = modePlus->
deltaT;
197 if (*seriesCross == NULL) {
199 memset((*seriesCross)->data->data, 0, (*seriesCross)->data->length*
sizeof(
REAL8));
200 (*seriesCross)->deltaT = modeCross->
deltaT;
205 for (k = 0; k < len; k++) {
206 (*seriesPlus)->data->data[k] += massMpc * modePlus->
data->
data[k];
207 (*seriesCross)->data->data[k] += massMpc * modeCross->
data->
data[k];
215 (*seriesPlus)->deltaT *= timeStep;
216 (*seriesCross)->deltaT *= timeStep;
250 if (*hplus == NULL || *hcross == NULL)
314 for ( j = 0 ; j < tempChan->
data->
length ; ++j )
320 for ( thisInj = events; thisInj; thisInj = thisInj->
next )
323 for ( j = 0 ; j < tempStrain->
data->
length ; ++j )
325 tempStrain->
data->
data[j] *= dynRange;
333 for ( j = 0 ; j < tempChan->
data->
length ; ++j )
int XLALAddNumRelStrainModesREAL8(REAL8TimeSeries **seriesPlus, REAL8TimeSeries **seriesCross, SimInspiralTable *thisinj)
int XLALNRInjectionFromSimInspiral(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, SimInspiralTable *thisRow, REAL8 deltaT)
int XLALCheckFrameHasChannel(CHAR *name, LALFrStream *stream)
void XLALSimInjectNinjaSignals(REAL4TimeSeries *chan, const char *ifo, REAL8 dynRange, SimInspiralTable *events)
REAL8TimeSeries * XLALNRInjectionStrain(const char *ifo, SimInspiralTable *inj)
int XLALFrStreamClose(LALFrStream *stream)
LALFrStream * XLALFrStreamCacheOpen(LALCache *cache)
int XLALFrStreamRewind(LALFrStream *stream)
int XLALFrStreamGetREAL8TimeSeries(REAL8TimeSeries *series, LALFrStream *stream)
int XLALFrStreamGetVectorLength(const char *chname, LALFrStream *stream)
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)
INT4 XLALFindNRCoalescencePlusCrossREAL8(REAL8 *tc, const REAL8TimeSeries *plus, const REAL8TimeSeries *cross)
CHAR * XLALGetNinjaChannelName(const CHAR *polarisation, UINT4 l, INT4 m)
construct the channel name corresponding to a particular mode and polarization in frame file containi...
void XLALOrientNRWaveTimeSeriesREAL8(REAL8TimeSeries *plus, REAL8TimeSeries *cross, UINT4 modeL, INT4 modeM, REAL4 inclination, REAL4 coa_phase)
Takes a (sky averaged) numerical relativity waveform and returns the waveform appropriate for given c...
REAL8TimeSeries * XLALInterpolateNRWaveREAL8(REAL8TimeSeries *in, INT4 sampleRate)
Function for interpolating time series to a given sampling rate.
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
REAL8TimeSeries * XLALCreateREAL8TimeSeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaT, const LALUnit *sampleUnits, size_t length)
const LALUnit lalADCCountUnit
const LALUnit lalDimensionlessUnit
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)
LIGOTimeGPS geocent_end_time
struct tagSimInspiralTable * next
CHAR numrel_data[LIGOMETA_STRING_MAX]