82#include <lal/AVFactories.h>
83#include <lal/SeqFactories.h>
84#include <lal/LALConfig.h>
85#include <lal/LALgetopt.h>
86#include <lal/LALDatatypes.h>
87#include <lal/LALInspiralBank.h>
88#include <lal/LALMalloc.h>
89#include <lal/LALMathematica.h>
90#include <lal/LALNoiseModels.h>
91#include <lal/LALStatusMacros.h>
92#include <lal/LALStdlib.h>
94 #include <lal/LIGOLwXMLRead.h>
100#define INSPIRALSPINBANKTESTC_ENORM 0
101#define INSPIRALSPINBANKTESTC_EMEM 1
102#define INSPIRALSPINBANKTESTC_ESUB 2
103#define INSPIRALSPINBANKTESTC_EFILE 4
108#define INSPIRALSPINBANKTESTC_MSGENORM "Normal exit"
109#define INSPIRALSPINBANKTESTC_MSGEMEM "Memory allocation error"
110#define INSPIRALSPINBANKTESTC_MSGESUB "Subroutine error"
111#define INSPIRALSPINBANKTESTC_MSGEFILE "File I/O error"
115int main(
int argc,
char *argv[] )
138 printf( INSPIRALSPINBANKTESTC_MSGEMEM );
155#if LAL_METAIO_ENABLED
156 if( (ntiles = LALSnglInspiralTableFromLIGOLw( &bankHead,
LALoptarg, 1,
159 fprintf( stderr, INSPIRALSPINBANKTESTC_MSGEFILE );
182 coarseIn.
MMax = 2*3.0;
187 while( (opt =
LALgetopt( argc, argv,
"b:n:m:x:ps" )) != -1 );
200 for( loop = 0; loop < psd->
length; loop++ )
202 if( psd->
data[loop] > 0 && psd->
data[loop] < noiseMin )
204 noiseMin = psd->
data[loop];
211 printf( INSPIRALSPINBANKTESTC_MSGESUB );
219 for( tmplt = bankHead; tmplt != NULL; tmplt = tmplt->
next )
221 list->
x = tmplt->
psi0;
222 list->
y = tmplt->
psi3;
223 list->
z = tmplt->
beta;
228 printf( INSPIRALSPINBANKTESTC_MSGEMEM );
237 printf( INSPIRALSPINBANKTESTC_MSGESUB );
#define INSPIRALSPINBANKTESTC_EFILE
File I/O error.
#define INSPIRALSPINBANKTESTC_EMEM
Memory allocation error.
#define INSPIRALSPINBANKTESTC_ESUB
Subroutine error.
#define INSPIRALSPINBANKTESTC_ENORM
Normal exit.
int LALgetopt(int argc, char *const *argv, const char *optstring)
int LALError(LALStatus *status, const char *statement)
void LALInspiralSpinBank(LALStatus *status, SnglInspiralTable **tiles, INT4 *ntiles, InspiralCoarseBankIn *coarseIn)
This function creates a bank of BCVSpin templates to search for precessing binaries.
void LALMath3DPlot(LALStatus *status, Math3DPointList *first, INT4 *ntiles, REAL4 *pointSize)
void LALNoiseSpectralDensity(LALStatus *status, REAL8Vector *psd, void(*NoisePsd)(LALStatus *status, REAL8 *shf, REAL8 f), REAL8 df)
void LALLIGOIPsd(LALStatus UNUSED *status, REAL8 *psd, REAL8 f)
void LALDCreateVector(LALStatus *, REAL8Vector **, UINT4)
Input for choosing a template bank.
REAL8 mMin
minimum mass of components to search for
REAL8FrequencySeries shf
Frequency series containing the PSD.
INT4 iflso
iflso is an integer that tells whether to compute the moments using an upper limit defined by flso; t...
REAL8 MMax
alternatively, maximum total mass of binary to search for
REAL8 fUpper
Upper frequency cutoff.
REAL8 fLower
Lower frequency cutoff.
REAL8 mmCoarse
Coarse grid minimal match.
The inspiral waveform parameter structure containing information about the waveform to be generated.
REAL8 fCutoff
upper frequency cutoff in Hz to be used in generating the waveform; If the last stable orbit frequenc...
REAL8 fLower
lower frequency cutoff of the detector in Hz (input)
struct tagMath3DPointList * next
struct tagSnglInspiralTable * next
int main(int argc, char **argv)