Commit bda59aed authored by Miroslav Shaltev's avatar Miroslav Shaltev
Browse files

Compile against lalpulsar 1.17.0.1 and NOMAD 3.9.1.

parent 2f076e7a
......@@ -2,45 +2,35 @@ CWSeaOptiFol - Continuous Waves Search Optimization and Follow-up
Synopsis:
A collection of programs for optimization and follow-up of
semicoherent searches for continuous gravitational waves.
A collection of programs for follow-up of semicoherent searches for
continuous gravitational waves. The search optimization part has been
moved to attic in early 2019.
CWSeaOptiFol has been forked from a branch of LALAPPS and
contain pieces of code developed inside LALAPPS. Thus you
may find code and documentaion written by various LIGO
collaborators.
contain pieces of code developed inside LALAPPS. Thus you
may find code and documentaion written by various LIGO
collaborators.
Notice:
We request that any academic report, publication, or other
academic disclosure of results derived from the use of this
software acknowledge the use of the software by an appropriate
acknowledgment or citation.
We request that any academic report, publication, or other
academic disclosure of results derived from the use of this
software acknowledge the use of the software by an appropriate
acknowledgment or citation.
Installation:
CWSeaOptiFol requires various pieces of software which can be installed
by following these directions:
http://www.lsc-group.phys.uwm.edu/daswg/docs/howto/lscsoft-install.html
Binary versions of these software packages, can be obtained from:
http://www.lsc-group.phys.uwm.edu/daswg/download/repositories.html
Follow these directions to build LAL from source:
http://www.lsc-group.phys.uwm.edu/daswg/docs/howto/lal-install.html
NOMAD is available from
https://www.gerad.ca/nomad/
or for convenience (using autotools)
https://gitlab.aei.uni-hannover.de/ms-public/nomad
Other resources:
CWSeaOptiFol requires among others
LALSuite - https://git.ligo.org/lscsoft/lalsuite
NOMAD - https://www.gerad.ca/nomad/
Binary releases of LALApps for various platforms:
http://www.lsc-group.phys.uwm.edu/daswg/download/repositories.html
For convenience you can use an autotooled version of NOMAD found under
https://github.com/cvscpp/sgtelib
https://github.com/cvscpp/nomad
Please see the LALApps webpage for more information:
http://www.lsc-group.phys.uwm.edu/daswg/projects/lalapps.html
Typical installation steps
1. Install and source LALSuite (minimal required lal and lalpulsar)
2. Install sgtelib and nomad (preferably the autotooled version)
3. Configure and install CWSeaOptiFol
AC_PREREQ([2.63])
AC_INIT([cwseaoptifol],[6.17.0.1],[miroslav.shaltev@aei.mpg.de])
AC_INIT([cwseaoptifol],[6.22.0.1],[miroslav.shaltev@shaltev.de])
AC_CONFIG_HEADERS([src/config.h])
AC_CONFIG_SRCDIR([src/lalapps/lalapps.c])
AC_CONFIG_AUX_DIR([misc])
......@@ -14,8 +14,7 @@ AC_CONFIG_FILES([\
src/GoodiesAndClones/Makefile \
src/FollowUp/Gsl/Makefile \
src/FollowUp/Nomad/Makefile \
src/FollowUp/AfterMath/Makefile \
src/SearchOptimization/Makefile
src/FollowUp/AfterMath/Makefile
])
AM_INIT_AUTOMAKE([1.11 foreign color-tests parallel-tests])
AH_TOP([
......@@ -26,8 +25,8 @@ AH_BOTTOM([
])
# version requirements
MIN_LAL_VERSION="6.17.0"
MIN_LALPULSAR_VERSION="1.15.0"
MIN_LAL_VERSION="6.19.0"
MIN_LALPULSAR_VERSION="1.17.0"
AC_SUBST([MIN_LAL_VERSION])
AC_SUBST([MIN_LALPULSAR_VERSION])
......
......@@ -5,7 +5,7 @@
%define _pkgpyexecdir %{_libdir}/python2.6/site-packages/cwseaoptifol
Name: cwseaoptifol
Version: 6.17.0.1
Version: 6.22.0.1
Release: 1
Summary: LSC Algorithm Library Applications
License: GPL
......
......@@ -106,7 +106,6 @@ INT4 AFTERMath::XLALInitUserVars ( int argc, char *argv[] )
}
/* register user input variables */
XLALRegisterUvarMember( version,BOOLEAN, 'V', SPECIAL, "Output version information.");
XLALRegisterUvarMember( fnamein, STRING, 0, OPTIONAL, "Input filename.");
XLALRegisterUvarMember( fnameout, STRING, 0, OPTIONAL, "Output filename.");
XLALRegisterUvarMember( ephemEarth, STRING, 0, OPTIONAL, "Location of Earth ephemeris file.");
......@@ -119,7 +118,7 @@ INT4 AFTERMath::XLALInitUserVars ( int argc, char *argv[] )
XLALRegisterUvarMember( distanceLimit, REAL8, 0, OPTIONAL, "Distance limit.");
/* read cmdline & cfgfile */
BOOLEAN should_exit = 0;
XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
if ( should_exit ) {
exit (1);
}
......
......@@ -1991,7 +1991,6 @@ INT4 FCGridSearch::read_CL(int argc, char *argv[]) {
strcpy(uvar_ephemS, SUNEPHEMERIS);
/* register user input variables */
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_version, "version", BOOLEAN, 'V', SPECIAL, "Output version information") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_SNRthType, "SNRthType", INT4, 0, OPTIONAL, "Type of SNRth computation: 0 - constant, 1 - numerical, 2 - Gaussian, 3 - WSG Eq. 38 PRD85 084010, 4 - KW Eq. 3.31 PRD85 042003") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_ConstSNRth, "ConstSNRth", REAL8, 0, OPTIONAL, "SNRth value used with SNRthType = 0") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_pFA, "pFA", REAL8, 0, OPTIONAL, "False-alarm probability") == XLAL_SUCCESS, XLAL_EFUNC);
......@@ -2059,10 +2058,10 @@ INT4 FCGridSearch::read_CL(int argc, char *argv[]) {
/* read cmdline & cfgfile */
BOOLEAN should_exit = 0;
XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
if ( should_exit ) {
exit (1);
}
}
/* set log level */
// LogSetLevel((LogLevel_t)uvar_loglevel);
......
......@@ -286,7 +286,6 @@ REAL8 fc_ds_eval_x(const gsl_vector *v, void *param) {
MFCSearch->trials_add();
p.F = fx;
MFCSearch->wkvector.push_back(p);
}
......@@ -960,7 +959,7 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_tStack, "tStack",REAL8, 0, OPTIONAL, "Duration of segments (sec)") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_segmentList, "segmentList",STRING, 0, OPTIONAL, "File containing a segment list used to compute Fisher ellipsoid: lines of form <startGPS endGPS duration[h] NumSFTs>") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_TargetedSearch, "TargetedSearch",BOOLEAN, 0, SPECIAL, "Do targeted search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_TargetedSearch, "TargetedSearch",BOOLEAN, 0, OPTIONAL, "Do targeted search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_StartPointFreq, "StartPointFreq",REAL8, 0, OPTIONAL, "Freq") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_StartPointAlpha, "StartPointAlpha",REAL8, 0, OPTIONAL, "RA") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_StartPointDelta, "StartPointDelta",REAL8, 0, OPTIONAL, "Dec") == XLAL_SUCCESS, XLAL_EFUNC);
......@@ -999,7 +998,6 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_RandomSearchRadius, "RandomSearchRadius", INT4, 0, OPTIONAL, "Radius in percent of the search band per direction to randomize around the starting point") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_ResamplingSearch, "ResamplingSearch", BOOLEAN, 0, OPTIONAL, "Use resampling for searc, i.e. search only in alpha and delta") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_FixedSpindownSearch, "FixedSpindownSearch",BOOLEAN, 0, OPTIONAL, "Constant spindown search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_version, "version",BOOLEAN, 'V', SPECIAL, "Output version information") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_BreakASAP, "BreakASAP",BOOLEAN, 0, OPTIONAL, "Break the search if we are within the expectation") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_NoiseLimit, "NoiseLimit",REAL8, 0, OPTIONAL, "Minimal acceptable fully-coherent 2F") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_AcceptDev, "AcceptDev",REAL8, 0, OPTIONAL, "Number of standard deviations from the expectation to break the search if BreakASAP is used") == XLAL_SUCCESS, XLAL_EFUNC);
......@@ -1026,11 +1024,11 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_Signalf3dot, "Signalf3dot",REAL8, 0, OPTIONAL, "Signal f3dot") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_ComputeStartingPointStatistics, "ComputeStartingPointStatistics",BOOLEAN, 0, OPTIONAL, "Compute the semi-coherent and fully-coherent 2F value of the starting point") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_ComputeDTS, "ComputeDTS",BOOLEAN, 0, OPTIONAL, "Compute the distance to the signal in FStatSearchType=2 mode, using the Fisher matrix") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_FstatMethod, "FstatMethod",STRING, 0, OPTIONAL, XLALFstatMethodHelpString()) == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_FstatMethod, "FstatMethod", INT4, 0, OPTIONAL, "F-statistic method to use" ) == XLAL_SUCCESS, XLAL_EFUNC);
/* read cmdline & cfgfile */
BOOLEAN should_exit = 0;
XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
if ( should_exit ) {
exit (1);
}
......@@ -1146,10 +1144,7 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
usefulParams.refTime = -1;
}
if ( XLALParseFstatMethodString ( &usefulParams.Fmethod, uvar_FstatMethod ) != XLAL_SUCCESS ) {
XLALPrintError ("XLALParseFstatMethodString() failed.\n");
return( FSTATGSL_EBAD );
}
usefulParams.Fmethod = uvar_FstatMethod;
StartStepAlpha(uvar_StartStepAlpha);
StartStepDelta(uvar_StartStepDelta);
......@@ -1252,7 +1247,6 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
}
}
LogPrintf(LOG_NORMAL,"Search %d dimensions\n",ndim);
}
......@@ -1396,7 +1390,7 @@ FCSearch::FCSearch(int argc, char *argv[]) {
uvar_Cost = 1;
uvar_ConTol = 1e-6;
uvar_FstatMethod = XLALStringDuplicate("DemodBest");
uvar_FstatMethod = FMETHOD_DEMOD_BEST;
// for (INT4 i = 0; i < 6; i++) extends[i] = 0;
......
......@@ -212,7 +212,7 @@ extern "C" {
INT4 uvar_Cost;
REAL8 uvar_ConTol;
CHAR *uvar_FstatMethod;
int uvar_FstatMethod;
};
......
......@@ -745,7 +745,7 @@ void FStatGsl::SetUpSFTs( LALStatus *status, /**< pointer to LALStatus structu
optionalArgs.SSBprec = in->SSBprec;
optionalArgs.Dterms = in->Dterms;
optionalArgs.runningMedianWindow = in->blocksRngMed;
optionalArgs.FstatMethod = in->Fmethod;
optionalArgs.FstatMethod = (FstatMethodType)in->Fmethod;
for (k = 0; k < in->nStacks; k++) {
......
......@@ -64,7 +64,7 @@
#include <lal/LALInitBarycenter.h>
#include <lal/Velocity.h>
#include <lal/ExtrapolatePulsarSpins.h>
#include <lal/EstimateAmplitudeParams.h>
#include <lal/FstatisticTools.h>
#include <lal/Date.h>
#include <lal/LALHough.h>
#include <lal/NormalizeSFTRngMed.h>
......@@ -241,7 +241,7 @@ extern "C" {
UINT4 extraBinsFstat; /**< Extra bins required for Fstat calculation */
SSBprecision SSBprec; /**< SSB transform precision */
BOOLEAN useResamp; /**< user-input switch whether to use resampling */
FstatMethodType Fmethod; //!< which Fstat-method/algorithm to use
int Fmethod; //!< which Fstat-method/algorithm to use
BOOLEAN useWholeSFTs; /**< special switch: load all given frequency bins from SFTs */
REAL8 mismatch1; /**< 'mismatch1' user-input needed here internally ... */
UINT4 nSFTs; /**< total number of SFTs */
......@@ -454,10 +454,10 @@ extern "C" {
return var_Type;
};
REAL8 comp_exp2F() {
void comp_exp2F() {
var_exp2F = ( 4. + RNseg * ( var_avg2F - 4. ) );
};
REAL8 comp_sigma2F() {
void comp_sigma2F() {
var_sigma2F = sqrt( 2. * ( 4. + 2. * (RNseg * ( var_avg2F - 4.) ) ) );
};
......
......@@ -1357,15 +1357,13 @@ INT4 FCSearch::XLALInitUserVars ( int argc, char *argv[] )
uvar->HybridSearch = FALSE;
uvar->HybridSearchLatticeAtOnce = FALSE;
uvar->HybridSearchMismatch = 0.1;
uvar->HybridSearchLattice = (char*)LALCalloc( 16, sizeof(CHAR) );
strcpy(uvar->HybridSearchLattice, "an-star");
uvar->HybridSearchLattice = TILING_LATTICE_ANSTAR;
uvar->HybridSearchPoints = 16;
uvar->FinalHybridSearch = FALSE;
uvar->FinalHybridSearchLatticeAtOnce = FALSE;
uvar->FinalHybridSearchMismatch = 0.8;
uvar->FinalHybridSearchLattice = (char*)LALCalloc( 16, sizeof(CHAR) );
strcpy(uvar->FinalHybridSearchLattice, "an-star");
uvar->FinalHybridSearchLattice = TILING_LATTICE_ANSTAR;
uvar->FinalHybridSearchPoints = 16;
......@@ -1373,7 +1371,7 @@ INT4 FCSearch::XLALInitUserVars ( int argc, char *argv[] )
SignalIsKnown = FALSE;
uvar->FstatMethod = XLALStringDuplicate("DemodBest");
uvar->FstatMethod = FMETHOD_DEMOD_BEST;
if ( (uvar->Alpha = XLALCreateStringVector("0,0,0,0,0,0,0",NULL)) == NULL) {
LogPrintf (LOG_CRITICAL, "Call to XLALCreateStringVector() failed with xlalErrno = %d\n", xlalErrno );
......@@ -1428,119 +1426,118 @@ INT4 FCSearch::XLALInitUserVars ( int argc, char *argv[] )
}
/* register user input variables */
XLALRegisterUvarMember( Signal, STRINGVector, 0, OPTIONAL, "Signal parameters [alpha,delta,freq,f1dot,f2dot,f3dot,cosi,psi,phi0,h0,asini,argp,ecc,tpssb,period]");
XLALRegisterUvarMember( Alpha, STRINGVector, 0, OPTIONAL, "Direction Alpha [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( Delta, STRINGVector, 0, OPTIONAL, "Direction Delta [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( Freq, STRINGVector, 0, OPTIONAL, "Direction Freq [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( f1dot, STRINGVector, 0, OPTIONAL, "Direction f1dot [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( f2dot, STRINGVector, 0, OPTIONAL, "Direction f2dot [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( f3dot, STRINGVector, 0, OPTIONAL, "Direction f3dot [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( TpSSB, STRINGVector, 0, OPTIONAL, "Direction TpSSB [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( Argp, STRINGVector, 0, OPTIONAL, "Direction Argp [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( asini, STRINGVector, 0, OPTIONAL, "Direction asini [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( ecc, STRINGVector, 0, OPTIONAL, "Direction ecc [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( Period, STRINGVector, 0, OPTIONAL, "Direction Period [startpoint,min,max,startstep,scale,fixed,desc]");
XLALRegisterUvarMember( DataFiles, STRING, 0, REQUIRED, "1st SFT file pattern");
XLALRegisterUvarMember( fnameout, STRING, 0, OPTIONAL, "Output filename");
XLALRegisterUvarMember( outputLoudest, BOOLEAN, 0, OPTIONAL, "Output loudest F-statistic candidate + estimated MLE amplitudes");
XLALRegisterUvarMember( outputTiming, BOOLEAN , 0, OPTIONAL, "Output timing information");
XLALRegisterUvarMember( refTime, REAL8, 0, OPTIONAL, "Ref. time for pulsar pars [Default: mid-time]");
XLALRegisterUvarMember( ephemEarth, STRING, 0, OPTIONAL, "Location of Earth ephemeris file");
XLALRegisterUvarMember( ephemSun, STRING, 0, OPTIONAL, "Location of Sun ephemeris file");
XLALRegisterUvarMember( minStartTime, REAL8, 0, OPTIONAL, "1st stage min start time of observation");
XLALRegisterUvarMember( maxEndTime, REAL8, 0, OPTIONAL, "1st stage max end time of observation");
XLALRegisterUvarMember( tStack, REAL8, 0, OPTIONAL, "Duration of segments (sec)");
XLALRegisterUvarMember( segmentList, STRING, 0, OPTIONAL, "File containing a segment list used to compute Fisher ellipsoid: lines of form <startGPS endGPS duration[h] NumSFTs>");
XLALRegisterUvarMember( TargetedSearch, BOOLEAN, 0, SPECIAL, "Do targeted search");
XLALRegisterUvarMember( avg2F, REAL8, 0, OPTIONAL, "average 2F of candidate");
XLALRegisterUvarMember( Type, INT4, 0, OPTIONAL, "0=UNDEFINED_DIRECTION, 1=MODEL_SEARCH_DIR, 2=NO_DIRECTION, 3=ORTHO_1, 4=ORTHO_2, 5=ORTHO_NP1_QUAD, 6=ORTHO_NP1_NEG, 7=ORTHO_NP1_UNI, 8=DYN_ADDED, 9=ORTHO_2N, 10=LT_1, 11=LT_2, 12=LT_2N, 13=LT_NP1, 14=GPS_BINARY, 15=GPS_2N_STATIC, 16=GPS_2N_RAND, 17=GPS_NP1_STATIC_UNIFORM, 18=GPS_NP1_STATIC, 19=GPS_NP1_RAND_UNIFORM, 20=GPS_NP1_RAND, 21=PROSPECT_DIR");
XLALRegisterUvarMember( FinalType, INT4, 0, OPTIONAL, "Type for the coherent stage in a chain search.");
XLALRegisterUvarMember( LTMADS, INT4, 0, OPTIONAL, "Regardless of Type also do Type=LT_NP1 search AFTER the regular search");
XLALRegisterUvarMember( FinalLTMADS, INT4, 0, OPTIONAL, "LTMADS for the coherent stage");
XLALRegisterUvarMember( DisplayDegree, INT4, 0, DEVELOPER, "0=empty,[1]=normal,[2]=verbose");
XLALRegisterUvarMember( Epsilon, REAL8, 0, DEVELOPER, "Precision on reals");
XLALRegisterUvarMember( MinMeshSize, REAL8, 0, DEVELOPER, "Miminmal mesh size");
XLALRegisterUvarMember( MinPollSize, REAL8, 0, DEVELOPER, "Miminmal pol size");
XLALRegisterUvarMember( MaxIterations, INT4, 0, DEVELOPER, "Maximal iterations");
XLALRegisterUvarMember( ModelSearch, INT4, 0, OPTIONAL, "Model search");
XLALRegisterUvarMember( ModelEvalSort, INT4, 0, OPTIONAL, "Model evaluation sort");
XLALRegisterUvarMember( VnsSearch, REAL8, 0, OPTIONAL, "VNS search");
XLALRegisterUvarMember( MaxBBEval, INT4, 0, OPTIONAL, "Black box evaluation");
XLALRegisterUvarMember( MeshCoarseningExponent, INT4, 0, OPTIONAL, "Mesh coarsening exponent");
XLALRegisterUvarMember( LoopMeshCoarseningExponent, BOOLEAN, 0, OPTIONAL, "Loop over mesh coarsening exponents");
XLALRegisterUvarMember( MinMeshCoarseningExponent, INT4, 0, OPTIONAL, "Minimal mesh coarsening exponent");
XLALRegisterUvarMember( MaxMeshCoarseningExponent, INT4, 0, OPTIONAL, "Maxmimal mesh coarsening exponent");
XLALRegisterUvarMember( StepMeshCoarseningExponent, INT4, 0, OPTIONAL, "Mesh coarsening exponent step size");
XLALRegisterUvarMember( FinalMinMeshCoarseningExponent, INT4, 0, OPTIONAL, "Minimal mesh coarsening exponent of the final fully-coherent stage");
XLALRegisterUvarMember( FinalMaxMeshCoarseningExponent, INT4, 0, OPTIONAL, "Maxmimal mesh coarsening exponent of the final fully-coherent stage");
XLALRegisterUvarMember( FinalStepMeshCoarseningExponent, INT4, 0, OPTIONAL, "Mesh coarsening exponent step size of the final fully-coherent stage");
XLALRegisterUvarMember( MeshRefiningExponent, INT4, 0, OPTIONAL, "Mesh refining exponent");
XLALRegisterUvarMember( MeshType, INT4, 0, OPTIONAL, "Mesh type: 0 = XMesh, 1 = SMesh");
XLALRegisterUvarMember( MeshUpdateBasis, REAL8, 0, OPTIONAL, "Mesh update basis, user with SMesh");
XLALRegisterUvarMember( FinalMeshUpdateBasis, REAL8, 0, OPTIONAL, "Mesh update basis of the final fully-coherent stage, used with SMesh");
XLALRegisterUvarMember( PollUpdateBasis, REAL8, 0, OPTIONAL, "Poll update basis, used with XMesh");
XLALRegisterUvarMember( FinalPollUpdateBasis, REAL8, 0, OPTIONAL, "Poll update basis of the final fully-coherent stage, used with XMesh");
XLALRegisterUvarMember( UseMetric, BOOLEAN, 0, OPTIONAL, "Use metric to restrict the search volume");
XLALRegisterUvarMember( MetricIFO, STRINGVector, 0, OPTIONAL, "Use this IFOs to compute metric");
XLALRegisterUvarMember( nB, REAL8, 0, OPTIONAL, "Fisher distance (e.g. for 1D: 1 = 1sigma, 2 = 2sigma, 3 = 3sigma, for 2D: 1.52 = 1sigma, 2.49 = 2sigma, 3.44 = 3sigma, for 3D: 1.88 = 1sigma, 2.83 = 2sigma, 3.76 = 3sigma, for 4D: 2.17 = 1sigma, 3.12 = 2sigma, 4.03 = 3sigma)");
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Signal, STRINGVector, 0, OPTIONAL, "Signal parameters [alpha,delta,freq,f1dot,f2dot,f3dot,cosi,psi,phi0,h0,asini,argp,ecc,tpssb,period]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Alpha, STRINGVector, 0, OPTIONAL, "Direction Alpha [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Delta, STRINGVector, 0, OPTIONAL, "Direction Delta [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Freq, STRINGVector, 0, OPTIONAL, "Direction Freq [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( f1dot, STRINGVector, 0, OPTIONAL, "Direction f1dot [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( f2dot, STRINGVector, 0, OPTIONAL, "Direction f2dot [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( f3dot, STRINGVector, 0, OPTIONAL, "Direction f3dot [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( TpSSB, STRINGVector, 0, OPTIONAL, "Direction TpSSB [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Argp, STRINGVector, 0, OPTIONAL, "Direction Argp [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( asini, STRINGVector, 0, OPTIONAL, "Direction asini [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ecc, STRINGVector, 0, OPTIONAL, "Direction ecc [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Period, STRINGVector, 0, OPTIONAL, "Direction Period [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( DataFiles, STRING, 0, REQUIRED, "1st SFT file pattern") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( fnameout, STRING, 0, OPTIONAL, "Output filename") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( outputLoudest, BOOLEAN, 0, OPTIONAL, "Output loudest F-statistic candidate + estimated MLE amplitudes") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( outputTiming, BOOLEAN , 0, OPTIONAL, "Output timing information") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( refTime, REAL8, 0, OPTIONAL, "Ref. time for pulsar pars [Default: mid-time]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ephemEarth, STRING, 0, OPTIONAL, "Location of Earth ephemeris file") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ephemSun, STRING, 0, OPTIONAL, "Location of Sun ephemeris file") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( minStartTime, REAL8, 0, OPTIONAL, "1st stage min start time of observation") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( maxEndTime, REAL8, 0, OPTIONAL, "1st stage max end time of observation") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( tStack, REAL8, 0, OPTIONAL, "Duration of segments (sec)") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( segmentList, STRING, 0, OPTIONAL, "File containing a segment list used to compute Fisher ellipsoid: lines of form <startGPS endGPS duration[h] NumSFTs>") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( TargetedSearch, BOOLEAN, 0, OPTIONAL, "Do targeted search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( avg2F, REAL8, 0, OPTIONAL, "average 2F of candidate") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Type, INT4, 0, OPTIONAL, "0=UNDEFINED_DIRECTION, 1=MODEL_SEARCH_DIR, 2=NO_DIRECTION, 3=ORTHO_1, 4=ORTHO_2, 5=ORTHO_NP1_QUAD, 6=ORTHO_NP1_NEG, 7=ORTHO_NP1_UNI, 8=DYN_ADDED, 9=ORTHO_2N, 10=LT_1, 11=LT_2, 12=LT_2N, 13=LT_NP1, 14=GPS_BINARY, 15=GPS_2N_STATIC, 16=GPS_2N_RAND, 17=GPS_NP1_STATIC_UNIFORM, 18=GPS_NP1_STATIC, 19=GPS_NP1_RAND_UNIFORM, 20=GPS_NP1_RAND, 21=PROSPECT_DIR") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalType, INT4, 0, OPTIONAL, "Type for the coherent stage in a chain search.") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( LTMADS, INT4, 0, OPTIONAL, "Regardless of Type also do Type=LT_NP1 search AFTER the regular search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalLTMADS, INT4, 0, OPTIONAL, "LTMADS for the coherent stage") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( DisplayDegree, INT4, 0, DEVELOPER, "0=empty,[1]=normal,[2]=verbose") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Epsilon, REAL8, 0, DEVELOPER, "Precision on reals") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MinMeshSize, REAL8, 0, DEVELOPER, "Miminmal mesh size") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MinPollSize, REAL8, 0, DEVELOPER, "Miminmal pol size") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MaxIterations, INT4, 0, DEVELOPER, "Maximal iterations") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelSearch, INT4, 0, OPTIONAL, "Model search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelEvalSort, INT4, 0, OPTIONAL, "Model evaluation sort") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( VnsSearch, REAL8, 0, OPTIONAL, "VNS search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MaxBBEval, INT4, 0, OPTIONAL, "Black box evaluation") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MeshCoarseningExponent, INT4, 0, OPTIONAL, "Mesh coarsening exponent") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( LoopMeshCoarseningExponent, BOOLEAN, 0, OPTIONAL, "Loop over mesh coarsening exponents") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MinMeshCoarseningExponent, INT4, 0, OPTIONAL, "Minimal mesh coarsening exponent") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MaxMeshCoarseningExponent, INT4, 0, OPTIONAL, "Maxmimal mesh coarsening exponent") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( StepMeshCoarseningExponent, INT4, 0, OPTIONAL, "Mesh coarsening exponent step size") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalMinMeshCoarseningExponent, INT4, 0, OPTIONAL, "Minimal mesh coarsening exponent of the final fully-coherent stage") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalMaxMeshCoarseningExponent, INT4, 0, OPTIONAL, "Maxmimal mesh coarsening exponent of the final fully-coherent stage") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalStepMeshCoarseningExponent, INT4, 0, OPTIONAL, "Mesh coarsening exponent step size of the final fully-coherent stage") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MeshRefiningExponent, INT4, 0, OPTIONAL, "Mesh refining exponent") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MeshType, INT4, 0, OPTIONAL, "Mesh type: 0 = XMesh, 1 = SMesh") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MeshUpdateBasis, REAL8, 0, OPTIONAL, "Mesh update basis, user with SMesh") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalMeshUpdateBasis, REAL8, 0, OPTIONAL, "Mesh update basis of the final fully-coherent stage, used with SMesh") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( PollUpdateBasis, REAL8, 0, OPTIONAL, "Poll update basis, used with XMesh") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalPollUpdateBasis, REAL8, 0, OPTIONAL, "Poll update basis of the final fully-coherent stage, used with XMesh") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( UseMetric, BOOLEAN, 0, OPTIONAL, "Use metric to restrict the search volume") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( MetricIFO, STRINGVector, 0, OPTIONAL, "Use this IFOs to compute metric") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( nB, REAL8, 0, OPTIONAL, "Fisher distance (e.g. for 1D: 1 = 1sigma, 2 = 2sigma, 3 = 3sigma, for 2D: 1.52 = 1sigma, 2.49 = 2sigma, 3.44 = 3sigma, for 3D: 1.88 = 1sigma, 2.83 = 2sigma, 3.76 = 3sigma, for 4D: 2.17 = 1sigma, 3.12 = 2sigma, 4.03 = 3sigma)") == XLAL_SUCCESS, XLAL_EFUNC);
/* developer user variables */
XLALRegisterUvarMember( blocksRngMed, INT4, 0, DEVELOPER, "RngMed block size");
XLALRegisterUvarMember( SSBprecision, INT4, 0, DEVELOPER, "Precision for SSB transform");
XLALRegisterUvarMember( FstatMethod, STRING, 0, OPTIONAL, XLALFstatMethodHelpString());
XLALRegisterUvarMember( Dterms, INT4, 0, DEVELOPER, "No. of terms to keep in Dirichlet Kernel");
XLALRegisterUvarMember( dopplermax, REAL8, 0, DEVELOPER, "Max Doppler shift");
XLALRegisterUvarMember( SaveNomadStat, BOOLEAN, 0, OPTIONAL, "Save Nomad statistic files");
XLALRegisterUvarMember( Seed, INT4, 0, OPTIONAL, "Random seed, use -1 for a random number based on PID");
XLALRegisterUvarMember( ReSearch, BOOLEAN, 0, OPTIONAL, "Repeat the search starting from the best found point");
XLALRegisterUvarMember( FinalReSearch, BOOLEAN, 0, OPTIONAL, "Final repeat of the search starting from the best found point");
XLALRegisterUvarMember( RandomSearch, INT4, 0, OPTIONAL, "Search starting from random point inside the box, except for the first trial");
XLALRegisterUvarMember( RandomSearchRadius, INT4, 0, OPTIONAL, "Radius in percent of the search band per direction to randomize around the starting point");
XLALRegisterUvarMember( FixedSpindownSearch, BOOLEAN, 0, OPTIONAL, "Constant spindown search");
XLALRegisterUvarMember( ClearCache, BOOLEAN, 0, DEVELOPER, "Clear the internal cache between runs");
XLALRegisterUvarMember( ModelSearchMaxTrialPts, INT4, 0, DEVELOPER, "Limit on the number of points for one model search");
XLALRegisterUvarMember( ModelQuadMinYSize, INT4, 0, DEVELOPER, "Inf. limit on the size of interpolation sets for quadratic models");
XLALRegisterUvarMember( ModelQuadMaxYSize, INT4, 0, DEVELOPER, "Sup. limit on the size of interpolation sets for quadratic models");
XLALRegisterUvarMember( ModelQuadRadiusFactor, REAL8, 0, DEVELOPER, "Quadratic model search radius factor");
XLALRegisterUvarMember( ModelQuadUseWP, BOOLEAN, 0, DEVELOPER, "Enable the strategy to maintain well-poisedness with quadratic models");
XLALRegisterUvarMember( ModelSearchOptimistic, BOOLEAN, 0, DEVELOPER, "If model search is optimistic or not");
XLALRegisterUvarMember( ModelSearchProjToMesh, BOOLEAN, 0, DEVELOPER, "If model search trial points are projected to the mesh");
XLALRegisterUvarMember( OpportunisticEval, BOOLEAN, 0, DEVELOPER, "Opportunistic strategy");
XLALRegisterUvarMember( OpportunisticLuckyEval, BOOLEAN, 0, DEVELOPER, "Additional evaluation in opportunistic strategy");
XLALRegisterUvarMember( version,BOOLEAN, 'V', SPECIAL, "Output version information");
XLALRegisterUvarMember( log, BOOLEAN, 0, OPTIONAL, "Do logging");
XLALRegisterUvarMember( BreakASAP,BOOLEAN, 0, OPTIONAL, "Break the search if we are within the expectation");
XLALRegisterUvarMember( NoiseLimit, REAL8, 0, OPTIONAL, "Minimal acceptable fully-coherent 2F");
XLALRegisterUvarMember( AcceptDev, REAL8, 0, OPTIONAL, "Number of standard deviations from the expectation to break the search if BreakASAP is used");
XLALRegisterUvarMember( FStatSearchType, INT4, 0, OPTIONAL, "F-statistic search type: 0 - semi-coherent search, 1 - fully-coherent search, 2 - both");
XLALRegisterUvarMember( SemicoherentStages, INT4, 0, OPTIONAL, "Number of semicoherent stages");
XLALRegisterUvarMember( DumpSegments,BOOLEAN, 0, OPTIONAL, "Dump used segments at each stage");
XLALRegisterUvarMember( DumpMetric,BOOLEAN, 0, DEVELOPER, "Dump the coherent and semicoherent metric for the signal parameters and exit.");
XLALRegisterUvarMember( DumpCache,BOOLEAN, 0, DEVELOPER, "Dump all computed parameter-space points to a file.");
XLALRegisterUvarMember( PredictFStat,BOOLEAN, 0, OPTIONAL, "Predict FStat");
XLALRegisterUvarMember( ComputeStartingPointStatistics,BOOLEAN, 0, OPTIONAL, "Compute the semi-coherent and fully-coherent 2F value of the starting point");
XLALRegisterUvarMember( ComputeDTS,BOOLEAN, 0, OPTIONAL, "Compute the squared Fisher distance to the signal in FStatSearchType=2 mode, using the Fisher matrix");
XLALRegisterUvarMember( RoundStat,BOOLEAN, 0, OPTIONAL, "Round the F-value to RoundStatDigit");
XLALRegisterUvarMember( RoundStatDigit,INT4, 0, OPTIONAL, "Rounding precision");
XLALRegisterUvarMember( FinalRoundStatDigit,INT4, 0, OPTIONAL, "Final rounding precision");
XLALRegisterUvarMember( BinarySearch,BOOLEAN, 0, OPTIONAL, "Do binary search");
XLALRegisterUvarMember( BNSLEL,BOOLEAN, 0, DEVELOPER, "Use low-eccentricity approximation to compute BNS metric [only TRUE is supported for now!]");
XLALRegisterUvarMember( HybridSearch,BOOLEAN, 0, OPTIONAL, "Do hybrid search (grid search in the Nomad search step)");
XLALRegisterUvarMember( HybridSearchLatticeAtOnce,BOOLEAN, 0, OPTIONAL, "Compute the lattice for the hybrid search at once");
XLALRegisterUvarMember( HybridSearchMismatch,REAL8, 0, OPTIONAL, "Hybrid search maximal mismatch");
XLALRegisterUvarMember( HybridSearchLattice,STRING, 0, OPTIONAL, "Hybrid search lattice type: 'an-star' or 'cubic'");
XLALRegisterUvarMember( HybridSearchPoints,INT4, 0, OPTIONAL, "Hybrid search number of points");
XLALRegisterUvarMember( FinalHybridSearch,BOOLEAN, 0, OPTIONAL, "Final do hybrid search (grid search in the Nomad search step)");
XLALRegisterUvarMember( FinalHybridSearchLatticeAtOnce,BOOLEAN, 0, OPTIONAL, "Final compute the lattice for the hybrid search at once");
XLALRegisterUvarMember( FinalHybridSearchMismatch,REAL8, 0, OPTIONAL, "Final hybrid search maximal mismatch");
XLALRegisterUvarMember( FinalHybridSearchLattice,STRING, 0, OPTIONAL, "Final hybrid search lattice type: 'an-star' or 'cubic'");
XLALRegisterUvarMember( FinalHybridSearchPoints,INT4, 0, OPTIONAL, "Final hybrid search number of points");
XLALRegisterUvarMember( metricType, INT4, 0, OPTIONAL, "Type of metric to compute: 0=phase-metric, 1=average F-metric");
XLAL_CHECK_MAIN( XLALRegisterUvarMember( blocksRngMed, INT4, 0, DEVELOPER, "RngMed block size") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( SSBprecision, INT4, 0, DEVELOPER, "Precision for SSB transform") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FstatMethod, INT4, 0, OPTIONAL, "F-statistic method to use" ) == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Dterms, INT4, 0, DEVELOPER, "No. of terms to keep in Dirichlet Kernel") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( dopplermax, REAL8, 0, DEVELOPER, "Max Doppler shift") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( SaveNomadStat, BOOLEAN, 0, OPTIONAL, "Save Nomad statistic files") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( Seed, INT4, 0, OPTIONAL, "Random seed, use -1 for a random number based on PID") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ReSearch, BOOLEAN, 0, OPTIONAL, "Repeat the search starting from the best found point") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalReSearch, BOOLEAN, 0, OPTIONAL, "Final repeat of the search starting from the best found point") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( RandomSearch, INT4, 0, OPTIONAL, "Search starting from random point inside the box, except for the first trial") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( RandomSearchRadius, INT4, 0, OPTIONAL, "Radius in percent of the search band per direction to randomize around the starting point") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FixedSpindownSearch, BOOLEAN, 0, OPTIONAL, "Constant spindown search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ClearCache, BOOLEAN, 0, DEVELOPER, "Clear the internal cache between runs") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelSearchMaxTrialPts, INT4, 0, DEVELOPER, "Limit on the number of points for one model search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelQuadMinYSize, INT4, 0, DEVELOPER, "Inf. limit on the size of interpolation sets for quadratic models") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelQuadMaxYSize, INT4, 0, DEVELOPER, "Sup. limit on the size of interpolation sets for quadratic models") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelQuadRadiusFactor, REAL8, 0, DEVELOPER, "Quadratic model search radius factor") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelQuadUseWP, BOOLEAN, 0, DEVELOPER, "Enable the strategy to maintain well-poisedness with quadratic models") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelSearchOptimistic, BOOLEAN, 0, DEVELOPER, "If model search is optimistic or not") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelSearchProjToMesh, BOOLEAN, 0, DEVELOPER, "If model search trial points are projected to the mesh") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( OpportunisticEval, BOOLEAN, 0, DEVELOPER, "Opportunistic strategy") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( OpportunisticLuckyEval, BOOLEAN, 0, DEVELOPER, "Additional evaluation in opportunistic strategy") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( log, BOOLEAN, 0, OPTIONAL, "Do logging") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( BreakASAP,BOOLEAN, 0, OPTIONAL, "Break the search if we are within the expectation") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( NoiseLimit, REAL8, 0, OPTIONAL, "Minimal acceptable fully-coherent 2F") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( AcceptDev, REAL8, 0, OPTIONAL, "Number of standard deviations from the expectation to break the search if BreakASAP is used") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FStatSearchType, INT4, 0, OPTIONAL, "F-statistic search type: 0 - semi-coherent search, 1 - fully-coherent search, 2 - both") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( SemicoherentStages, INT4, 0, OPTIONAL, "Number of semicoherent stages") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( DumpSegments,BOOLEAN, 0, OPTIONAL, "Dump used segments at each stage") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( DumpMetric,BOOLEAN, 0, DEVELOPER, "Dump the coherent and semicoherent metric for the signal parameters and exit.") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( DumpCache,BOOLEAN, 0, DEVELOPER, "Dump all computed parameter-space points to a file.") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( PredictFStat,BOOLEAN, 0, OPTIONAL, "Predict FStat") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ComputeStartingPointStatistics,BOOLEAN, 0, OPTIONAL, "Compute the semi-coherent and fully-coherent 2F value of the starting point") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( ComputeDTS,BOOLEAN, 0, OPTIONAL, "Compute the squared Fisher distance to the signal in FStatSearchType=2 mode, using the Fisher matrix") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( RoundStat,BOOLEAN, 0, OPTIONAL, "Round the F-value to RoundStatDigit") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( RoundStatDigit,INT4, 0, OPTIONAL, "Rounding precision") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalRoundStatDigit,INT4, 0, OPTIONAL, "Final rounding precision") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( BinarySearch,BOOLEAN, 0, OPTIONAL, "Do binary search") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( BNSLEL,BOOLEAN, 0, DEVELOPER, "Use low-eccentricity approximation to compute BNS metric [only TRUE is supported for now!]") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearch,BOOLEAN, 0, OPTIONAL, "Do hybrid search (grid search in the Nomad search step)") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearchLatticeAtOnce,BOOLEAN, 0, OPTIONAL, "Compute the lattice for the hybrid search at once") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearchMismatch,REAL8, 0, OPTIONAL, "Hybrid search maximal mismatch") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearchLattice,INT4, 0, OPTIONAL, "Hybrid search lattice type: 0 - cubic, 1 - an-star, 2 - max") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearchPoints,INT4, 0, OPTIONAL, "Hybrid search number of points") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearch,BOOLEAN, 0, OPTIONAL, "Final do hybrid search (grid search in the Nomad search step)") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearchLatticeAtOnce,BOOLEAN, 0, OPTIONAL, "Final compute the lattice for the hybrid search at once") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearchMismatch,REAL8, 0, OPTIONAL, "Final hybrid search maximal mismatch") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearchLattice,INT4, 0, OPTIONAL, "Final hybrid search lattice type: 0 - cubic, 1 - an-star, 2 - max") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearchPoints,INT4, 0, OPTIONAL, "Final hybrid search number of points") == XLAL_SUCCESS, XLAL_EFUNC);
XLAL_CHECK_MAIN( XLALRegisterUvarMember( metricType, INT4, 0, OPTIONAL, "Type of metric to compute: 0=phase-metric, 1=average F-metric") == XLAL_SUCCESS, XLAL_EFUNC);
/* read cmdline & cfgfile */
BOOLEAN should_exit = 0;
XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
if ( should_exit ) {
exit (1);
}
......@@ -1645,11 +1642,8 @@ INT4 FCSearch::XLALInitUserVars ( int argc, char *argv[] )
usefulParams.nStacks = 1;
usefulParams.SSBprec = uvar->SSBprecision;
if ( XLALParseFstatMethodString ( &usefulParams.Fmethod, uvar->FstatMethod ) != XLAL_SUCCESS ) {
XLALPrintError ("XLALParseFstatMethodString() failed.\n");
return( FSTATFCNOMAD_EBAD );
}
usefulParams.Fmethod = uvar->FstatMethod;
/* set reference time for pulsar parameters */
if ( XLALUserVarWasSet(&uvar->refTime))
usefulParams.refTime = uvar->refTime;
......
......@@ -71,7 +71,7 @@ extern "C" {
CHAR *ephemEarth;
CHAR *ephemSun;
CHAR *FstatMethod;
INT4 FstatMethod;
CHAR *fnameout;
CHAR *DataFiles;
INT4 SortToplist;
......@@ -172,12 +172,12 @@ extern "C" {
BOOLEAN HybridSearch;
REAL8 HybridSearchMismatch;