49 #include <gsl/gsl_rng.h>
51 #include <lal/LALString.h>
52 #include <lal/SkyCoordinates.h>
53 #include <lal/AVFactories.h>
54 #include <lal/LALInitBarycenter.h>
55 #include <lal/UserInput.h>
56 #include <lal/LogPrintf.h>
57 #include <lal/ComputeFstat.h>
58 #include <lal/TransientCW_utils.h>
59 #include <lal/ProbabilityDensity.h>
60 #include <lal/SynthesizeCWDraws.h>
61 #include <lal/LALPulsarVCSInfo.h>
64 #define SQ(x) ((x)*(x))
65 #define CUBE(x) ((x)*(x)*(x))
66 #define QUAD(x) ((x)*(x)*(x)*(x))
70 #define min(a,b) ((a)<(b)?(a):(b))
73 #define max(a,b) ((a)>(b)?(a):(b))
96 CHAR *injectWindow_type;
97 REAL8 injectWindow_t0Days;
98 REAL8 injectWindow_t0DaysBand;
99 REAL8 injectWindow_tauDays;
100 REAL8 injectWindow_tauDaysBand;
102 CHAR *searchWindow_type;
103 REAL8 searchWindow_t0Days;
104 REAL8 searchWindow_t0DaysBand;
105 REAL8 searchWindow_tauDays;
106 REAL8 searchWindow_tauDaysBand;
107 INT4 searchWindow_dt0;
108 INT4 searchWindow_dtau;
123 CHAR *outputFstatMap;
124 CHAR *outputInjParams;
125 CHAR *outputPosteriors;
157 int main(
int argc,
char *argv[] );
175 int main(
int argc,
char *argv[] )
183 gsl_set_error_handler_off();
208 LALFILE *fpTransientStats = NULL;
209 if ( uvar.outputStats ) {
210 if ( ( fpTransientStats =
XLALFileOpen( uvar.outputStats,
"wb" ) ) == NULL ) {
221 FILE *fpInjParams = NULL;
222 if ( uvar.outputInjParams ) {
223 if ( ( fpInjParams = fopen( uvar.outputInjParams,
"wb" ) ) == NULL ) {
227 fprintf( fpInjParams,
"%s", cfg.logString );
237 for (
i = 0;
i < uvar.numDraws;
i ++ ) {
242 multiAtoms =
XLALSynthesizeTransientAtoms( &injParamsDrawn, cfg.skypos, cfg.AmpPrior, cfg.transientInjectRange, cfg.multiDetStates, cfg.SignalOnly, &multiAMBuffer, cfg.rng, -1, NULL );
243 if ( multiAtoms == NULL ) {
256 cand.doppler.Alpha = multiAMBuffer.skypos.longitude;
257 cand.doppler.Delta = multiAMBuffer.skypos.latitude;
258 cand.windowRange = cfg.transientSearchRange;
261 if ( fpTransientStats || uvar.outputFstatMap || uvar.outputPosteriors ) {
270 if ( fpTransientStats ) {
278 if ( uvar.SignalOnly ) {
279 cand.FstatMap->maxF += 2;
286 pdf1D_t *pdf_t0 = NULL;
287 pdf1D_t *pdf_tau = NULL;
288 if ( fpTransientStats || uvar.outputPosteriors ) {
312 if ( uvar.computeFtotal ) {
326 if ( uvar.SignalOnly ) {
331 cand.doppler.fkdot[3] = twoFtotal;
339 if ( uvar.outputAtoms ) {
343 UINT4 len = strlen( uvar.outputAtoms ) + 20;
344 if ( ( fnameAtoms =
XLALCalloc( 1, len ) ) == NULL ) {
348 sprintf( fnameAtoms,
"%s_%04d_of_%04d.dat", uvar.outputAtoms,
i + 1, uvar.numDraws );
350 if ( ( fpAtoms =
XLALFileOpen( fnameAtoms,
"wb" ) ) == NULL ) {
366 if ( uvar.outputFstatMap ) {
369 UINT4 len = strlen( uvar.outputFstatMap ) + 20;
370 if ( ( fnameFstatMap =
XLALCalloc( 1, len ) ) == NULL ) {
374 sprintf( fnameFstatMap,
"%s_%04d_of_%04d.dat", uvar.outputFstatMap,
i + 1, uvar.numDraws );
376 if ( ( fpFstatMap = fopen( fnameFstatMap,
"wb" ) ) == NULL ) {
377 XLALPrintError(
"%s: failed to open Fstat-map output file '%s' for writing.\n",
__func__, fnameFstatMap );
380 fprintf( fpFstatMap,
"%s", cfg.logString );
382 fprintf( fpFstatMap,
"\nFstat_mn = \\\n" );
389 fclose( fpFstatMap );
394 if ( uvar.outputPosteriors ) {
396 char *fnamePosteriors;
397 UINT4 len = strlen( uvar.outputPosteriors ) + 20;
398 if ( ( fnamePosteriors =
XLALCalloc( 1, len ) ) == NULL ) {
402 sprintf( fnamePosteriors,
"%s_%04d_of_%04d.dat", uvar.outputPosteriors,
i + 1, uvar.numDraws );
404 if ( ( fpPosteriors = fopen( fnamePosteriors,
"wb" ) ) == NULL ) {
405 XLALPrintError(
"%s: failed to open posteriors-output file '%s' for writing.\n",
__func__, fnamePosteriors );
408 fprintf( fpPosteriors,
"%s", cfg.logString );
422 fclose( fpPosteriors );
444 fclose( fpInjParams );
457 if ( cfg.logString ) {
460 gsl_rng_free( cfg.rng );
479 uvar->outputStats = NULL;
487 uvar->dataStartGPS = 814838413;
496 uvar->computeFtotal = 0;
499 uvar->fixedh0Nat = -1;
501 uvar->fixedh0NatMax = -1;
502 uvar->fixedRhohMax = -1;
504 #define DEFAULT_IFO "H1"
513 #define DEFAULT_TRANSIENT "rect"
519 uvar->injectWindow_tauDays = 1.0;
520 uvar->injectWindow_tauDaysBand = 13.0;
522 REAL8 tauMaxDays = ( uvar->injectWindow_tauDays + uvar->injectWindow_tauDaysBand );
524 uvar->injectWindow_t0Days = 0;
528 uvar->searchWindow_t0Days = uvar->injectWindow_t0Days;
529 uvar->searchWindow_t0DaysBand = uvar->injectWindow_t0DaysBand;
530 uvar->searchWindow_tauDays = uvar->injectWindow_tauDays;
531 uvar->searchWindow_tauDaysBand = uvar->injectWindow_tauDaysBand;
533 uvar->searchWindow_dt0 = uvar->TAtom;
534 uvar->searchWindow_dtau = uvar->TAtom;
544 XLALRegisterUvarMember( fixedh0NatMax,
REAL8, 0, OPTIONAL,
"Alternative 3: if >=0 draw GW amplitude h0 in [0, h0NatMax ] (FReg prior)" );
545 XLALRegisterUvarMember( fixedRhohMax,
REAL8, 0, OPTIONAL,
"Alternative 4: if >=0 draw rhoh=h0*(detM)^(1/8) in [0, rhohMax] (canonical F-stat prior)" );
551 XLALRegisterUvarMember( AmpPriorType,
INT4, 0, OPTIONAL,
"Enumeration of types of amplitude-priors: 0=physical, 1=canonical" );
557 XLALRegisterUvarMember( timestampsFiles, STRINGVector, 0, OPTIONAL,
"ALTERNATIVE: file(s) to read timestamps from (file-format: lines with <seconds> [<nanoseconds>]; nanoseconds currently ignored; only 1 detector/file currently supported)" );
563 XLALRegisterUvarMember( injectWindow_t0Days,
REAL8, 0, OPTIONAL,
"Earliest start-time of transient window to inject, as offset in days from dataStartGPS" );
564 XLALRegisterUvarMember( injectWindow_t0DaysBand,
REAL8, 0, OPTIONAL,
"Range of GPS start-time of transient window to inject, in days [Default:dataDuration-3*tauMax]" );
566 XLALRegisterUvarMember( searchWindow_type,
STRING, 0, OPTIONAL,
"Type of transient window to search with ('none', 'rect', 'exp') [Default:injectWindow]" );
567 XLALRegisterUvarMember( searchWindow_tauDays,
REAL8, 0, OPTIONAL,
"Shortest transient-window timescale to search, in days [Default:injectWindow]" );
568 XLALRegisterUvarMember( searchWindow_tauDaysBand,
REAL8, 0, OPTIONAL,
"Range of transient-window timescale to search, in days [Default:injectWindow]" );
569 XLALRegisterUvarMember( searchWindow_t0Days,
REAL8, 0, OPTIONAL,
"Earliest start-time of transient window to search, as offset in days from dataStartGPS [Default:injectWindow]" );
570 XLALRegisterUvarMember( searchWindow_t0DaysBand,
REAL8, 0, OPTIONAL,
"Range of GPS start-time of transient window to search, in days [Default:injectWindow]" );
572 XLALRegisterUvarMember( searchWindow_dtau,
INT4, 0, OPTIONAL,
"Step-size for search/marginalization over transient-window timescale, in seconds [Default:TAtom]" );
573 XLALRegisterUvarMember( searchWindow_dt0,
INT4, 0, OPTIONAL,
"Step-size for search/marginalization over transient-window start-time, in seconds [Default:TAtom]" );
583 XLALRegisterUvarMember( outputFstatMap,
STRING, 0, OPTIONAL,
"Output F-statistic over 2D parameter space {t0, tau} into file with this basename" );
586 XLALRegisterUvarMember( outputPosteriors,
STRING, 0, OPTIONAL,
"output posterior pdfs on t0 and tau (in octave format) into this file " );
589 XLALRegisterUvarMember( useFReg,
BOOLEAN, 0, OPTIONAL,
"use 'regularized' Fstat (1/D)*e^F (if TRUE) for marginalization, or 'standard' e^F (if FALSE)" );
623 const char fmt[] =
"%%%% cmdline: %s\n%%%%\n%s%%%%\n";
624 UINT4 len = strlen( vcs ) + strlen( cmdline ) + strlen(
fmt ) + 1;
655 gsl_rng_default_seed = uvar->
randSeed;
657 cfg->
rng = gsl_rng_alloc( gsl_rng_default );
665 LogPrintf(
LOG_CRITICAL,
"%s: XLALInitBarycenter failed: could not load Earth ephemeris '%s' and Sun ephemeris '%s'\n",
__func__, uvar->ephemEarth, uvar->ephemSun );
671 XLALPrintError(
"%s: Please do not use both the deprecated --IFO and the newer --IFOs option.\n",
__func__ );
674 strcpy( uvar->IFOs->
data[0], uvar->IFO );
684 XLAL_CHECK( ( have_duration && have_startTime ) || !( have_duration || have_startTime ),
XLAL_EINVAL,
"Need BOTH {--dataStartGPS,--dataDuration} or NONE\n" );
686 XLAL_CHECK( have_timestampsFiles || have_startTime,
XLAL_EINVAL,
"Need either --dataStartGPS and --dataDuration, OR --timestampsFiles}\n" );
688 XLAL_CHECK( !have_timestampsFiles || !have_startTime,
XLAL_EINVAL,
"--timestampsFiles incompatible with --dataStartGPS and --dataDuration}\n" );
693 INT4 dataDuration = 0;
695 if ( have_timestampsFiles ) {
702 numSteps =
multiTS->data[X]->length;
703 multiTS->data[X]->deltaT = uvar->TAtom;
704 dataStartGPS =
min( dataStartGPS,
multiTS->data[X]->data[0].gpsSeconds );
705 dataEndGPS =
max( dataEndGPS,
multiTS->data[X]->data[numSteps - 1].gpsSeconds );
707 dataDuration = uvar->TAtom + dataEndGPS - dataStartGPS;
712 dataStartGPS = uvar->dataStartGPS;
713 dataDuration = uvar->dataDuration;
714 numSteps = (
UINT4 ) ceil( dataDuration / uvar->TAtom );
718 multiTS->data[X]->deltaT = uvar->TAtom;
719 for (
UINT4 i = 0;
i < numSteps;
i ++ ) {
720 UINT4 ti = dataStartGPS +
i * uvar->TAtom;
721 multiTS->data[X]->data[
i].gpsSeconds = ti;
722 multiTS->data[X]->data[
i].gpsNanoSeconds = 0;
743 InjectRange.type = twtype;
749 XLALPrintError(
"%s: ERROR: injectWindow_type == NONE, but window-parameters were set! Use a different window-type!\n",
__func__ );
754 if ( uvar->injectWindow_t0DaysBand < 0 || uvar->injectWindow_tauDaysBand < 0 ) {
755 XLALPrintError(
"%s: only positive t0/tau window injection bands allowed (%f, %f)\n",
__func__, uvar->injectWindow_t0DaysBand, uvar->injectWindow_tauDaysBand );
760 InjectRange.t0 = dataStartGPS + uvar->injectWindow_t0Days *
DAY24;
762 REAL8 tauMax = ( uvar->injectWindow_tauDays + uvar->injectWindow_tauDaysBand ) *
DAY24;
764 InjectRange.t0Band = uvar->injectWindow_t0DaysBand *
DAY24;
769 InjectRange.tau = (
UINT4 )( uvar->injectWindow_tauDays *
DAY24 );
770 InjectRange.tauBand = (
UINT4 )( uvar->injectWindow_tauDaysBand *
DAY24 );
777 SearchRange.type = twtype;
781 SearchRange.type = InjectRange.type;
784 SearchRange.t0 = InjectRange.t0;
786 SearchRange.t0 = dataStartGPS + uvar->searchWindow_t0Days *
DAY24;
789 SearchRange.t0Band = InjectRange.t0Band;
791 SearchRange.t0Band = (
UINT4 )( uvar->searchWindow_t0DaysBand *
DAY24 );
794 SearchRange.tau = InjectRange.tau;
796 SearchRange.tau = (
UINT4 )( uvar->searchWindow_tauDays *
DAY24 );
799 SearchRange.tauBand = InjectRange.tauBand;
801 SearchRange.tauBand = (
UINT4 )( uvar->searchWindow_tauDaysBand *
DAY24 );
805 SearchRange.dt0 = uvar->searchWindow_dt0;
807 SearchRange.dt0 = uvar->TAtom;
811 SearchRange.dtau = uvar->searchWindow_dtau;
813 SearchRange.dtau = uvar->TAtom;
820 XLALPrintError(
"%s: ERROR: searchWindow_type == NONE, but window-parameters were set! Use a different window-type!\n",
__func__ );
824 if ( uvar->searchWindow_t0DaysBand < 0 || uvar->searchWindow_tauDaysBand < 0 ) {
825 XLALPrintError(
"%s: only positive t0/tau window injection bands allowed (%f, %f)\n",
__func__, uvar->searchWindow_t0DaysBand, uvar->searchWindow_tauDaysBand );
841 const UINT4 AmpPriorBins = 100;
844 if ( !AmpPrior || !uvar ) {
855 if ( uvar->fixedh0Nat >= 0 ) {
858 if ( uvar->fixedSNR >= 0 ) {
861 if ( uvar->fixedh0NatMax >= 0 ) {
864 if ( uvar->fixedRhohMax >= 0 ) {
867 if ( numSets != 1 ) {
868 XLALPrintError(
"%s: Specify (>=0) exactly *ONE* amplitude-prior range of {fixedh0Nat, fixedSNR, fixedh0NatMax, fixedRhohMax}\n",
__func__ );
875 if ( uvar->fixedh0Nat >= 0 )
880 if ( uvar->fixedSNR >= 0 )
885 AmpPrior->
fixedSNR = uvar->fixedSNR;
886 AmpPrior->
fixRhohMax = ( uvar->fixedRhohMax >= 0 );
907 if ( uvar->fixedh0NatMax >= 0 ) {
908 h0NatMax = uvar->fixedh0NatMax;
910 if ( uvar->fixedRhohMax >= 0 ) {
911 h0NatMax = uvar->fixedRhohMax;
914 switch ( uvar->AmpPriorType ) {
928 if ( AmpPrior->
pdf_psi == NULL )
949 for (
i = 0;
i < pdf->probDens->length;
i ++ ) {
950 REAL8 xMid = 0.5 * ( pdf->xTics->data[
i] + pdf->xTics->data[
i + 1] );
951 pdf->probDens->data[
i] =
CUBE( xMid );
963 for (
i = 0;
i < pdf->probDens->length;
i ++ ) {
964 REAL8 xMid = 0.5 * ( pdf->xTics->data[
i] + pdf->xTics->data[
i + 1] );
966 pdf->probDens->data[
i] =
CUBE(
y );
971 if ( AmpPrior->
pdf_psi == NULL )
#define __func__
log an I/O error, i.e.
void LALCheckMemoryLeaks(void)
const LALVCSInfoList lalPulsarVCSInfoList
NULL-terminated list of VCS and build information for LALPulsar and its dependencies
pdf1D_t * XLALCreateUniformPDF1D(REAL8 xMin, REAL8 xMax)
Creator function for a uniform 1D pdf over [xMin, xMax].
int XLALOutputPDF1D_to_fp(FILE *fp, const pdf1D_t *pdf, const char *name)
Function to write a pdf1D to given filepointer fp.
pdf1D_t * XLALCreateDiscretePDF1D(REAL8 xMin, REAL8 xMax, UINT4 numBins)
Creator function for a generic discrete 1D pdf over [xMin, xMax], discretized into numBins bins.
REAL8 XLALFindModeOfPDF1D(const pdf1D_t *pdf)
Find the 'mode' of the probabilty distribution, ie.
pdf1D_t * XLALCreateSingularPDF1D(REAL8 x0)
Creator function for a 'singular' 1D pdf, containing a single value with certainty,...
void XLALDestroyPDF1D(pdf1D_t *pdf)
Destructor function for 1-D pdf.
void XLALDestroyMultiFstatAtomVector(MultiFstatAtomVector *multiAtoms)
Free all memory associated with a MultiFstatAtomVector structure.
int XLALParseMultiLALDetector(MultiLALDetector *detInfo, const LALStringVector *detNames)
Parse string-vectors (typically input by user) of N detector-names for detectors ,...
void XLALDestroyMultiDetectorStateSeries(MultiDetectorStateSeries *mdetStates)
Helper function to get rid of a multi-IFO DetectorStateSeries Note, this is "NULL-robust" in the sens...
MultiDetectorStateSeries * XLALGetMultiDetectorStates(const MultiLIGOTimeGPSVector *multiTS, const MultiLALDetector *multiIFO, const EphemerisData *edat, REAL8 tOffset)
Get the detector-time series for the given MultiLIGOTimeGPSVector.
int XLALFileClose(LALFILE *file)
int XLALFilePrintf(LALFILE *file, const char *fmt,...)
LALFILE * XLALFileOpen(const char *path, const char *mode)
void XLALDestroyEphemerisData(EphemerisData *edat)
Destructor for EphemerisData struct, 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 XLALDestroyMultiAMCoeffs(MultiAMCoeffs *multiAMcoef)
Destroy a MultiAMCoeffs structure.
#define XLAL_INIT_DECL(var,...)
void * XLALCalloc(size_t m, size_t n)
void * XLALMalloc(size_t n)
char char * XLALStringDuplicate(const char *s)
char * XLALVCSInfoString(const LALVCSInfoList vcs_list, const int verbose, const char *prefix)
void void int XLALfprintfGSLmatrix(FILE *fp, const char *fmt, const gsl_matrix *gij) _LAL_GCC_VPRINTF_FORMAT_(2)
void LogPrintf(LogLevel_t, const char *format,...) _LAL_GCC_PRINTF_FORMAT_(2
@ TRANSIENT_NONE
Note: in this case the window-parameters will be ignored, and treated as rect={data},...
LIGOTimeGPSVector * XLALCreateTimestampVector(UINT4 len)
Allocate a LIGOTimeGPSVector.
void XLALDestroyMultiTimestamps(MultiLIGOTimeGPSVector *multiTS)
Destroy a MultiLIGOTimeGPSVector timestamps vector.
MultiLIGOTimeGPSVector * XLALCreateMultiLIGOTimeGPSVector(UINT4 numDetectors)
Simple creator function for MultiLIGOTimeGPSVector with numDetectors entries.
MultiLIGOTimeGPSVector * XLALReadMultiTimestampsFiles(const LALStringVector *fnames)
backwards compatible wrapper to XLALReadMultiTimestampsFilesConstrained() without GPS-time constraint...
COORDINATESYSTEM_EQUATORIAL
LALStringVector * XLALCreateStringVector(const CHAR *str1,...)
int write_InjParams_to_fp(FILE *fp, const InjParams_t *par, const UINT4 dataStartGPS, const BOOLEAN outputMmunuX, const UINT4 numDetectors)
Write an injection-parameters structure to the given file-pointer, adding one line with the injection...
MultiFstatAtomVector * XLALSynthesizeTransientAtoms(InjParams_t *injParamsOut, SkyPosition skypos, AmplitudePrior_t AmpPrior, transientWindowRange_t transientInjectRange, const MultiDetectorStateSeries *multiDetStates, BOOLEAN SignalOnly, multiAMBuffer_t *multiAMBuffer, gsl_rng *rng, INT4 lineX, const MultiNoiseWeights *multiNoiseWeights)
Generates a multi-Fstat atoms vector for given parameters, drawing random parameters wherever require...
@ AMP_PRIOR_TYPE_CANONICAL
'canonical' priors: uniform in A^mu up to h_max
@ AMP_PRIOR_TYPE_PHYSICAL
'physical' priors: isotropic pdf{cosi,psi,phi0} AND flat pdf(h0)
transientFstatMap_t * XLALComputeTransientFstatMap(const MultiFstatAtomVector *multiFstatAtoms, transientWindowRange_t windowRange, BOOLEAN useFReg)
Function to compute transient-window "F-statistic map" over start-time and timescale {t0,...
void XLALDestroyTransientFstatMap(transientFstatMap_t *FstatMap)
Standard destructor for transientFstatMap_t Fully NULL-robust as usual.
int XLALParseTransientWindowName(const char *windowName)
Parse a transient window name string into the corresponding transientWindowType.
int write_transientCandidate_to_fp(LALFILE *fp, const transientCandidate_t *thisCand, const char timeUnit)
Write one line for given transient CW candidate into output file.
#define DAY24
standard 24h day = 86400 seconds ==> this is what's used in the definition of 'tauDays'
void XLALDestroyExpLUT(void)
Destructor function for expLUT_t lookup table.
int write_MultiFstatAtoms_to_fp(LALFILE *fp, const MultiFstatAtomVector *multiAtoms)
Write multi-IFO F-stat atoms 'multiAtoms' into output stream 'fstat'.
#define TRANSIENT_EXP_EFOLDING
e-folding parameter for exponential window, after which we truncate the window for efficiency.
pdf1D_t * XLALComputeTransientPosterior_t0(transientWindowRange_t windowRange, const transientFstatMap_t *FstatMap)
Compute transient-CW posterior (normalized) on start-time t0, using given type and parameters of tran...
pdf1D_t * XLALComputeTransientPosterior_tau(transientWindowRange_t windowRange, const transientFstatMap_t *FstatMap)
Compute transient-CW posterior (normalized) on timescale tau, using given type and parameters of tran...
REAL8 XLALComputeTransientBstat(transientWindowRange_t windowRange, const transientFstatMap_t *FstatMap)
Compute transient-CW Bayes-factor B_SG = P(x|HypS)/P(x|HypG) (where HypG = Gaussian noise hypothesis)...
#define XLAL_CHECK(assertion,...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
Signal (amplitude) parameter ranges.
pdf1D_t * pdf_h0Nat
pdf for h0/sqrt{Sn}
REAL8 fixedSNR
alternative 1: adjust h0 to fix the optimal SNR of the signal
BOOLEAN fixRhohMax
alternative 2: draw h0 with fixed rhohMax = h0Max * (detM)^(1/8) <==> canonical Fstat prior
pdf1D_t * pdf_phi0
pdf(phi0)
pdf1D_t * pdf_cosi
pdf(cosi)
pdf1D_t * pdf_psi
pdf(psi)
Configuration settings required for and defining a coherent pulsar search.
gsl_rng * rng
gsl random-number generator
AmplitudePrior_t AmpPrior
amplitude-parameter priors to draw signals from
SkyPosition skypos
(Alpha,Delta,system).
CHAR * logString
logstring for file-output, containing cmdline-options + code VCS version info
BOOLEAN SignalOnly
dont generate noise-draws: will result in non-random 'signal only' values of F and B
MultiDetectorStateSeries * multiDetStates
multi-detector state series covering observation time
transientWindowRange_t transientSearchRange
transient-window range for the search (flat priors)
transientWindowRange_t transientInjectRange
transient-window range for injections (flat priors)
This structure contains all information about the center-of-mass positions of the Earth and Sun,...
Hold all (generally) randomly drawn injection parameters: skypos, amplitude-params,...
Multi-IFO time-series of DetectorStates.
A multi-detector vector of FstatAtomVector.
array of detectors definitions 'LALDetector'
A collection of (multi-IFO) LIGOTimeGPSVector time-stamps vectors.
struct for buffering of AM-coeffs, if signal for same sky-position is injected
Struct holding a transient CW candidate.
Struct holding a transient-window "F-statistic map" over start-time and timescale {t0,...
REAL8 maxF
maximal F-value obtained over transientWindowRange
Struct defining a range of transient windows.
int main(int argc, char *argv[])
MAIN function Generates samples of B-stat and F-stat according to their pdfs for given signal-params.
int XLALInitCode(ConfigVariables *cfg, const UserInput_t *uvar)
Initialize Fstat-code: handle user-input and set everything up.
int XLALInitAmplitudePrior(AmplitudePrior_t *AmpPrior, const UserInput_t *uvar)
Initialize amplitude-prior pdfs from the user-input.
int vrbflg
defined in lal/lib/std/LALError.c
#define DEFAULT_TRANSIENT
int XLALInitUserVars(UserInput_t *uvar)
Register all our "user-variables" that can be specified from cmd-line and/or config-file.