47#include <lal/AVFactories.h>
48#include <lal/SeqFactories.h>
49#include <lal/FrequencySeries.h>
50#include <lal/LALInitBarycenter.h>
51#include <lal/Random.h>
52#include <gsl/gsl_math.h>
54#include <lal/UserInput.h>
55#include <lal/SFTfileIO.h>
56#include <lal/GeneratePulsarSignal.h>
57#include <lal/SimulatePulsarSignal.h>
58#include <lal/TimeSeries.h>
59#include <lal/BinaryPulsarTiming.h>
60#include <lal/Window.h>
61#include <lal/LALString.h>
62#include <lal/LALCache.h>
64#include <lal/TransientCW_utils.h>
65#include <lal/CWMakeFakeData.h>
66#include <lal/LALPulsarVCSInfo.h>
68#ifdef HAVE_LIBLALFRAME
69#include <lal/LALFrameIO.h>
70#include <lal/LALFrStream.h>
189 if ( uvar.injectionSources ) {
197 DataParams.randSeed = uvar.randSeed;
198 DataParams.SFTWindowType =
GV.window_type;
199 DataParams.SFTWindowParam =
GV.window_param;
200 DataParams.sourceDeltaT = uvar.sourceDeltaT;
201 DataParams.inputMultiTS =
GV.inputMultiTS;
202 DataParams.fMin =
GV.fminOut;
203 DataParams.Band =
GV.BandOut;
211 if (
GV.multiNoiseCatalogView ) {
225#ifdef HAVE_LIBLALFRAME
227 XLAL_CHECK( uvar.outFrChannels->length == mTseries->
length,
XLAL_EINVAL,
"--outFrChannels: number of channel names (%d) must agree with number of IFOs (%d)\n",
228 uvar.outFrChannels->length, mTseries->
length );
239#ifdef HAVE_LIBLALFRAME
241 written = snprintf( buffer,
sizeof( buffer ),
"%s", uvar.outFrChannels->data[X] );
242 if ( buffer[2] ==
':' ) {
244 "Possible IFO mismatch: outFrChannel[%d] = '%s', IFO = '%c%c': be careful about --outFrChannel ordering\n", X, buffer, Tseries->
name[0], Tseries->
name[1] );
247 written = snprintf( buffer,
sizeof( buffer ),
"%s-%s", uvar.inFrChannels->data[X], uvar.outLabel );
250 written = snprintf( buffer,
sizeof( buffer ),
"%c%c:%s", Tseries->
name[0], Tseries->
name[1], uvar.outLabel );
257 if ( uvar.outSFTdir ) {
268 const char *
window_type = (
GV.window_type != NULL ) ?
GV.window_type :
"rectangular";
269 const REAL8 window_param = (
GV.window_type != NULL ) ?
GV.window_param : 0;
277 spec.window_param = window_param;
279 if ( uvar.outPubObsRun > 0 ) {
282 const char *channelName = outChannelNames->
data[X];
285 "Possible IFO mismatch: output channel[%d] = '%s', IFO = '%c%c': be careful about output channel ordering\n", X, channelName, sft0->
name[0], sft0->
name[1] );
289 spec.pubObsRun = uvar.outPubObsRun;
290 spec.pubRevision = uvar.outPubRevision;
307 if ( uvar.TDDfile ) {
313 sprintf( fname,
"%c%c-%s", TS->
name[0], TS->
name[1], uvar.TDDfile );
322#ifdef HAVE_LIBLALFRAME
323 if (
GV.outFrameDir != NULL ) {
326 len = strlen(
GV.outFrameDir ) + strlen( uvar.outLabel ) + 100;
335 char IFO[2] = { Tseries->
name[0], Tseries->
name[1] };
339 size_t written = snprintf( fname, len,
"%s/%c-%c%c_%s-%d-%d.gwf",
341 XLAL_CHECK( written < len,
XLAL_ESIZE,
"Frame-filename exceeds expected maximal length (%zu): '%s'\n", len, fname );
348 strcpy( Tseries->
name, outChannelNames->
data[X] );
410 XLAL_CHECK( !( have_frames || have_channels ) || ( have_frames && have_channels ),
XLAL_EINVAL,
"Need both --inFrames and --inFrChannels, or NONE\n" );
415 XLAL_CHECK( have_frames || have_IFOs || have_noiseSFTs,
XLAL_EINVAL,
"Need one of --IFOs, --noiseSFTs or --inFrChannels to determine detectors\n" );
418 XLAL_CHECK( !have_IFOs && !have_noiseSFTs,
XLAL_EINVAL,
"If --inFrames given, cannot handle --IFOs or --noiseSFTs input\n" );
421 XLAL_CHECK( !( have_IFOs && have_noiseSFTs ),
XLAL_EINVAL,
"Cannot handle both --IFOs and --noiseSFTs input\n" );
432 XLAL_CHECK( ( have_duration && have_startTime ) || !( have_duration || have_startTime ),
XLAL_EINVAL,
"Need BOTH {--startTime,--duration} or NONE\n" );
434 XLAL_CHECK( have_timestampsFiles || have_startTime || have_noiseSFTs || have_frames,
XLAL_EINVAL,
"Need at least one of {--timestampsFiles, --startTime+duration, --noiseSFTs, --inFrames}\n" );
436 XLAL_CHECK( !have_timestampsFiles || !( have_startTime || have_noiseSFTs ),
XLAL_EINVAL,
"--timestampsFiles incompatible with {--noiseSFTs or --startTime+duration}\n" );
443 XLAL_CHECK( !haveOverlap || !( have_noiseSFTs || have_timestampsFiles ),
XLAL_EINVAL,
"--SFToverlap incompatible with {--noiseSFTs or --timestampsFiles}\n" );
448 XLAL_CHECK( ( nSetfminBand == 2 ) || ( ( nSetfminBand == 0 ) && have_noiseSFTs ),
XLAL_EINVAL,
"Need either 'noiseSFTs' or BOTH of 'fmin' and 'Band'!\n" );
449 if ( nSetfminBand == 2 ) {
458 if ( have_noiseSFTs ) {
460 if ( have_startTime && have_duration ) {
465 constraints.minStartTime = &minStartTime;
466 constraints.maxStartTime = &maxStartTime;
467 char bufGPS1[32], bufGPS2[32];
485 REAL8 noise_band = noise_numBins * noise_dFreq;
491 else if ( have_timestampsFiles ) {
501 else if ( have_startTime && have_duration ) {
506 if ( uvar->
sqrtSX != NULL ) {
522 if ( have_noiseSFTs ) {
527 if ( have_window_type_from_noiseSFTs && have_window ) {
528 XLAL_CHECK(
XLALCompareSFTWindows( window_type_from_noiseSFTs, window_param_from_noiseSFTs, window_type_from_uvar, window_param_from_uvar ) ==
XLAL_SUCCESS,
XLAL_EFUNC,
"Inconsistent SFT window between --noiseSFTs and user input: [%s,%f] vs [%s,%f].", window_type_from_noiseSFTs, window_param_from_noiseSFTs, window_type_from_uvar, window_param_from_uvar );
531 }
else if ( have_window_type_from_noiseSFTs ) {
534 }
else if ( have_window ) {
538 XLAL_ERROR(
XLAL_EINVAL,
"When --noiseSFTs is given and have unknown window, --SFTWindowType is required.\n" );
540 }
else if ( have_window ) {
546#ifdef HAVE_LIBLALFRAME
577 REAL8 frames_span = frames_end - frames_start;
586 XLAL_CHECK( tStart >= frames_start &&
tEnd <= frames_end,
XLAL_EINVAL,
"Detector X=%d: Requested timestamps-range [%.0f, %.0f]s outside of cache range [%.0f,%.0f]s\n",
587 X, tStart,
tEnd, frames_start, frames_end );
589 ts_duration = (
tEnd - tStart );
592 ts_startGPS = frames_startGPS;
593 ts_duration = frames_span;
607 XLAL_EFUNC,
"Frame reading failed for stream created for '%s': ts_start = {%d,%d}, duration=%.0f\n",
612 XLALPrintWarning(
"Note: Input timeseries has dimensions 'ADC count' [count] instead of strain.\n" );
616 "Failed to express time-series units as a string\n" );
618 "Timeseries input data has invalid units '%s': must be either strain or dimensionless!", unitName );
619 XLALPrintWarning(
"Note: Input timeseries is dimensionless instead of strain units.\n" );
657#define MISC_DEFAULT "mfdv5"
665 XLALRegisterUvarMember( outPubObsRun,
UINT4,
'O', OPTIONAL,
"if >0, names SFTs using the public filename convention with this observing run number" );
666 XLALRegisterUvarMember( outPubRevision,
UINT4,
'R', OPTIONAL,
"if " UVAR_STR( outPubObsRun )
">0, names SFTs using the public filename convention with this revision number" );
681 XLALRegisterUvarMember( timestampsFiles, STRINGVector, 0, OPTIONAL,
"ALTERNATIVE: File to read timestamps from (file-format: lines with <seconds> <nanoseconds>)" );
684 XLALRegisterUvarMember(
fmin,
REAL8, 0, NODEFAULT,
"Lowest frequency (Hz) of output SFT, and heterodyning frequency of time series written to frames; REQUIRED unless --noiseSFTs given.\n\nNote that, since the output time series written to frames are heterodyned at this frequency, signals at frequency 'f' will be shifted to frequency 'f - fmin'." );
685 XLALRegisterUvarMember(
Band,
REAL8, 0, NODEFAULT,
"Bandwidth (Hz) of output SFT, and of time series written to frames (i.e. half the time series sampling frequency); REQUIRED unless --noiseSFTs given." );
689 XLALRegisterUvarMember( SFToverlap,
REAL8, 0, OPTIONAL,
"Overlap between successive SFTs in seconds (conflicts with --noiseSFTs or --timestampsFiles)" );
690 XLALRegisterUvarMember( SFTWindowType,
STRING, 0, OPTIONAL,
"Window function to apply to the SFTs ('rectangular', 'hann', 'tukey', etc.); when --noiseSFTs is given, required ONLY if noise SFTs have unknown window" );
699 " - '<SFT file>;<SFT file>;...', where <SFT file> may contain wildcards\n - 'list:<file containing list of SFT files>'\n"
700 "(Used also to set IFOs and timestamps, and frequency range unless separately specified.)" );
704#ifdef HAVE_LIBLALFRAME
706 XLALRegisterUvarMember( inFrames, STRINGVector,
'C', OPTIONAL,
"CSV list (one per IFO) of input frame cache files" );
707 XLALRegisterUvarMember( inFrChannels, STRINGVector,
'N', OPTIONAL,
"CSV list (one per IFO) of frame channels to read timeseries from" );
708 XLALRegisterUvarMember( outFrChannels, STRINGVector, 0, NODEFAULT,
"CSV list (one per IFO) of output frame channel names [default: <inFrChannels>-<outLabel> or <IFO>:<outLabel>]" );
711 XLALRegisterUvarMember( inFrames, STRINGVector,
'C', DEPRECATED,
"Need to compile with lalframe support for this option to work" );
712 XLALRegisterUvarMember( inFrChannels, STRINGVector,
'N', DEPRECATED,
"Need to compile with lalframe support for this option to work" );
713 XLALRegisterUvarMember( outFrChannels, STRINGVector, 0, DEPRECATED,
"Need to compile with lalframe support for this option to work" );
771 FILE *fplog = fopen( logfile,
"wb" );
772 XLAL_CHECK( fplog != NULL,
XLAL_EIO,
"Failed to fopen log-file '%s' for writing ('wb').\n", logfile );
778 fprintf( fplog,
"## LOG-FILE of Makefakedata run\n\n" );
779 fprintf( fplog,
"# User-input: [formatted as config-file]\n" );
780 fprintf( fplog,
"# ----------------------------------------------------------------------\n\n" );
781 fprintf( fplog,
"%s", logstr );
788 fprintf( fplog,
"\n\n# User-input: [formatted as commandline]\n" );
789 fprintf( fplog,
"# ----------------------------------------------------------------------\n\n" );
790 fprintf( fplog,
"%s", logstr );
794 fprintf( fplog,
"\n\n# VCS-versions of executable:\n" );
795 fprintf( fplog,
"# ----------------------------------------------------------------------\n" );
807 struct stat stat_buf;
809 if (
stat( fname, &stat_buf ) ) {
813 if ( ! S_ISDIR( stat_buf.st_mode ) ) {
void LALCheckMemoryLeaks(void)
const LALVCSInfoList lalPulsarVCSInfoList
NULL-terminated list of VCS and build information for LALPulsar and its dependencies
ConfigVariables GV
global container for various derived configuration settings
PulsarParamsVector * XLALPulsarParamsFromUserInput(const LALStringVector *UserInput, const LIGOTimeGPS *refTimeDef)
Function to determine the PulsarParamsVector input from a user-input defining CW sources.
const char *const InjectionSourcesHelpString
void XLALDestroyPulsarParamsVector(PulsarParamsVector *ppvect)
Destructor for PulsarParamsVector type.
int XLALCWMakeFakeMultiData(MultiSFTVector **multiSFTs, MultiREAL8TimeSeries **multiTseries, const PulsarParamsVector *injectionSources, const CWMFDataParams *dataParams, const EphemerisData *edat)
Generate fake 'CW' data, returned either as SFTVector or REAL4Timeseries or both, for given CW-signal...
char * XLALGPSToStr(char *s, const LIGOTimeGPS *t)
int XLALParseMultiLALDetector(MultiLALDetector *detInfo, const LALStringVector *detNames)
Parse string-vectors (typically input by user) of N detector-names for detectors ,...
int XLALMultiLALDetectorFromMultiSFTCatalogView(MultiLALDetector *multiIFO, const MultiSFTCatalogView *multiView)
Extract multi detector-info from a given multi SFTCatalog view.
int XLALParseMultiNoiseFloor(MultiNoiseFloor *multiNoiseFloor, const LALStringVector *sqrtSX, UINT4 numDetectors)
Parse string-vectors (typically input by user) of N detector noise-floors for detectors ,...
void XLALDestroyMultiREAL8TimeSeries(MultiREAL8TimeSeries *multiTS)
Destroy a MultiREAL8TimeSeries, NULL-robust.
EphemerisData * XLALInitBarycenter(const CHAR *earthEphemerisFile, const CHAR *sunEphemerisFile)
XLAL interface to reading ephemeris files 'earth' and 'sun', and return ephemeris-data in old backwar...
void XLALDestroyEphemerisData(EphemerisData *edat)
Destructor for EphemerisData struct, NULL robust.
void XLALDestroyCache(LALCache *cache)
LALCache * XLALCacheImport(const char *fname)
#define XLAL_INIT_DECL(var,...)
int XLALFrStreamSeekO(LALFrStream *stream, double dt, int whence)
int XLALFrStreamTell(LIGOTimeGPS *epoch, LALFrStream *stream)
int XLALFrStreamClose(LALFrStream *stream)
LALFrStream * XLALFrStreamCacheOpen(LALCache *cache)
REAL8TimeSeries * XLALFrStreamInputREAL8TimeSeries(LALFrStream *stream, const char *chname, const LIGOTimeGPS *start, double duration, size_t lengthlimit)
LALFrameUFrameH LALFrameH
int XLALFrameAddFrHistory(LALFrameH *frame, const char *name, const char *comment)
int XLALFrameWrite(LALFrameH *frame, const char *fname)
LALFrameH * XLALFrameNew(const LIGOTimeGPS *epoch, double duration, const char *project, int run, int frnum, INT8 detectorFlags)
void XLALFrameFree(LALFrameH *frame)
int XLALFrameAddREAL8TimeSeriesProcData(LALFrameH *frame, const REAL8TimeSeries *series)
void * XLALCalloc(size_t m, size_t n)
char char * XLALStringDuplicate(const char *s)
int XLALStringCaseCompare(const char *s1, const char *s2)
char * XLALVCSInfoString(const LALVCSInfoList vcs_list, const int verbose, const char *prefix)
int XLALdumpREAL8TimeSeries(const char *fname, const REAL8TimeSeries *series)
void XLALDestroySFTCatalog(SFTCatalog *catalog)
Free an 'SFT-catalogue'.
LIGOTimeGPSVector * XLALMakeTimestamps(LIGOTimeGPS tStart, REAL8 Tspan, REAL8 Tsft, REAL8 Toverlap)
Given a start-time, Tspan, Tsft and Toverlap, returns a list of timestamps covering this time-stretch...
void XLALDestroyMultiSFTCatalogView(MultiSFTCatalogView *multiView)
Destroys a MultiSFTCatalogView, without freeing the original catalog that the 'view' was referring to...
void XLALDestroyMultiSFTVector(MultiSFTVector *multvect)
Destroy a multi SFT-vector.
MultiLIGOTimeGPSVector * XLALMakeMultiTimestamps(LIGOTimeGPS tStart, REAL8 Tspan, REAL8 Tsft, REAL8 Toverlap, UINT4 numDet)
Same as XLALMakeTimestamps() just for several detectors, additionally specify the number of detectors...
MultiSFTCatalogView * XLALGetMultiSFTCatalogView(const SFTCatalog *catalog)
Return a MultiSFTCatalogView generated from an input SFTCatalog.
MultiLIGOTimeGPSVector * XLALTimestampsFromMultiSFTCatalogView(const MultiSFTCatalogView *multiView)
Given a multi-SFTCatalogView, return a MultiLIGOTimeGPSVector holding the SFT timestamps.
MultiSFTVector * XLALLoadMultiSFTsFromView(const MultiSFTCatalogView *multiCatalogView, REAL8 fMin, REAL8 fMax)
This function loads a MultiSFTVector from a given input MultiSFTCatalogView, otherwise the documentat...
int XLALCompareSFTWindows(const CHAR *type1, const REAL8 param1, const CHAR *type2, const REAL8 param2)
Check whether two SFT windows, each defined by a type name and parameter value, match.
SFTCatalog * XLALSFTdataFind(const CHAR *file_pattern, const SFTConstraints *constraints)
Find the list of SFTs matching the file_pattern and satisfying the given constraints,...
int XLALCheckValidDescriptionField(const char *desc)
Check whether given string qualifies as a valid 'description' field of a FRAME filename (per ) or SFT...
int XLALMultiSFTVectorAdd(MultiSFTVector *a, const MultiSFTVector *b)
Adds SFT-data from MultiSFTvector 'b' to elements of MultiSFTVector 'a'.
int XLALWriteSFTVector2StandardFile(const SFTVector *sftVect, SFTFilenameSpec *SFTfnspec, const CHAR *SFTcomment, const BOOLEAN merged)
Write the given SFTVector to SFT file(s) with a standard () filename(s).
void XLALDestroyMultiTimestamps(MultiLIGOTimeGPSVector *multiTS)
Destroy a MultiLIGOTimeGPSVector timestamps vector.
int XLALFillSFTFilenameSpecStrings(SFTFilenameSpec *spec, const CHAR *path, const CHAR *extn, const CHAR *detector, const CHAR *window_type, const CHAR *privMisc, const CHAR *pubObsKind, const CHAR *pubChannel)
Convenience function for filling out the string fields in a SFTFilenameSpec.
MultiLIGOTimeGPSVector * XLALReadMultiTimestampsFiles(const LALStringVector *fnames)
backwards compatible wrapper to XLALReadMultiTimestampsFilesConstrained() without GPS-time constraint...
void XLALDestroyStringVector(LALStringVector *vect)
LALStringVector * XLALCreateEmptyStringVector(UINT4 length)
int XLALUnitIsDimensionless(const LALUnit *unit)
int XLALUnitCompare(const LALUnit *unit1, const LALUnit *unit2)
const LALUnit lalStrainUnit
char * XLALUnitAsString(char *string, UINT4 length, const LALUnit *input)
const LALUnit lalADCCountUnit
int XLALCheckNamedWindow(const char *windowName, const BOOLEAN haveBeta)
#define XLAL_CHECK(assertion,...)
int int XLALPrintWarning(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
LIGOTimeGPS * XLALGPSSetREAL8(LIGOTimeGPS *epoch, REAL8 t)
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)
REAL8 XLALGPSGetREAL8(const LIGOTimeGPS *epoch)
int main(int argc, char *argv[])
BOOLEAN is_directory(const CHAR *fname)
int XLALWriteREAL4TimeSeries2fp(FILE *fp, const REAL4TimeSeries *TS)
Write a REAL4TimeSeries in a 2-column ASCII format (lines of "GPS_i data_i") into an open file 'fp'.
int XLALInitUserVars(UserVariables_t *uvar, int argc, char *argv[])
Register all "user-variables", and initialized them from command-line and config-files.
int XLALInitMakefakedata(ConfigVars_t *cfg, UserVariables_t *uvar)
Handle user-input and set up shop accordingly, and do all consistency-checks on user-input.
int XLALWriteMFDlog(const char *logfile, const ConfigVars_t *cfg)
Log the all relevant parameters of this run into a log-file.
int XLALFreeMem(ConfigVars_t *cfg)
This routine frees up all the memory.
A vector of COMPLEX8FrequencySeries.
COMPLEX8FrequencySeries * data
Pointer to the data array.
Struct controlling all the aspects of the fake data (time-series + SFTs) to be produced by XLALCWMake...
MultiLALDetector multiIFO
detectors to generate data for (if provided by user and not via noise files)
CHAR * VCSInfoString
Git version string.
MultiNoiseFloor multiNoiseFloor
... and corresponding noise-floors to be used as weights
MultiLIGOTimeGPSVector * multiTimestamps
a vector of timestamps (only set if provided from dedicated time stamp files)
EphemerisData * edat
ephemeris data
configuration-variables derived from user-variables
REAL8 fminOut
Lowest frequency in output SFT (= heterodyning frequency)
REAL8 window_param
parameter of window function
REAL8 BandOut
bandwidth of output SFT in Hz (= 1/2 sampling frequency)
CHAR * VCSInfoString
Git version string.
CHAR * window_type
name of window function
MultiNoiseFloor multiNoiseFloor
... and corresponding noise-floors to generate Gaussian white noise for
CHAR * outFrameDir
output frame directory
MultiREAL8TimeSeries * inputMultiTS
'input' time-series to add other stuff to, and output as frames or SFTs
MultiLIGOTimeGPSVector * multiTimestamps
a vector of timestamps to generate time-series/SFTs for
MultiSFTCatalogView * multiNoiseCatalogView
multi-IFO 'view' of noise-SFT catalogs
SFTCatalog * noiseCatalog
catalog of noise-SFTs
MultiLALDetector multiIFO
detectors to generate data for
const CHAR * window_type
name of window function
EphemerisData * edat
ephemeris-data
This structure contains all information about the center-of-mass positions of the Earth and Sun,...
A vector of 'timestamps' of type LIGOTimeGPS.
REAL8 deltaT
'length' of each timestamp (e.g.
LIGOTimeGPS * data
array of timestamps
UINT4 length
number of timestamps
array of detectors definitions 'LALDetector'
UINT4 length
number of detectors
LALDetector sites[PULSAR_MAX_DETECTORS]
array of site information
A collection of (multi-IFO) LIGOTimeGPSVector time-stamps vectors.
UINT4 length
number of timestamps vectors or ifos
LIGOTimeGPSVector ** data
timestamps vector for each ifo
array of detector-specific 'noise floors' (ie PSD values), assumed constant over the frequency-band o...
UINT4 length
number of detectors
A collection of (multi-IFO) REAL8 time-series.
REAL8TimeSeries ** data
Pointer to the data array.
UINT4 length
Number of elements in array.
A multi-SFT-catalogue "view": a multi-IFO vector of SFT-catalogs.
SFTCatalog * data
array of SFT-catalog pointers
A collection of SFT vectors – one for each IFO in a multi-IFO search.
UINT4 length
number of ifos
SFTVector ** data
sftvector for each ifo
Straightforward vector type of N PulsarParams structs.
An "SFT-catalogue": a vector of SFTdescriptors, as returned by XLALSFTdataFind()
SFTDescriptor * data
array of data-entries describing matched SFTs
UINT4 length
number of SFTs in catalog
'Constraints' for SFT-matching: which detector, within which time-stretch and which timestamps exactl...
A 'descriptor' of an SFT: basically containing the header-info plus an opaque description of where ex...
const char * window_type
window function applied to SFT
REAL8 window_param
parameter of window function, if required
Structure specifying an SFT file name, following the convention in .
LALStringVector * outFrChannels
list of output frame channel names to write (one per IFO)
INT4 duration
Duration of requested signal in seconds.
CHAR * ephemSun
Sun ephemeris file to use.
REAL8 SFTWindowParam
parameter required for certain window-types
CHAR * ephemEarth
Earth ephemeris file to use.
CHAR * outFrameDir
directory for writing output timeseries in frame files
CHAR * outSFTdir
Output directory for SFTs.
REAL8 fmin
Lowest frequency in output SFT (= heterodyning frequency)
REAL8 Band
bandwidth of output SFT in Hz (= 1/2 sampling frequency)
UINT4 outPubObsRun
if >0, names SFTs using the public filename convention with this observing run number
LALStringVector * injectionSources
Source parameters to inject: comma-separated list of file-patterns and/or direct config-strings ('{....
CHAR * SFTWindowType
Windowing function to apply to the SFT time series.
LALStringVector * inFrChannels
list of frame channels to read time-series data from (one per IFO)
LIGOTimeGPS startTime
Start-time of requested signal in detector-frame (GPS seconds)
REAL8 SFToverlap
overlap SFTs by this many seconds
CHAR * logfile
name of logfile
UINT4 outPubRevision
if outPubObsRun>0, names SFTs using the public filename convention with this revision number
LALStringVector * timestampsFiles
Names of numDet timestamps files.
REAL8 Tsft
SFT time baseline Tsft.
LALStringVector * IFOs
list of detector-names "H1,H2,L1,.." or single detector
LALStringVector * sqrtSX
Add Gaussian noise: list of respective detectors' noise-floors sqrt{Sn}".
LALStringVector * inFrames
frame glob-patterns or cache files of time-series data to be added to output (one per IFO)
BOOLEAN outSingleSFT
use to output a single concatenated SFT
CHAR * noiseSFTs
Glob-like pattern specifying noise-SFTs to be added to signal.
CHAR * outLabel
'misc' entry in SFT-filenames, and description entry of output frame filenames
Struct defining one transient window instance.