Followup
Currently work in progress; for the present state of the code see here.
Introduction
On the last stage we can precisely estimate signal parameters. At this stage we focus only on a very narrow space around a candidate. Our goal is to find the maximum of the F-statistic and the corresponding signal parameters. To increase the efficiency of the code, we use special libraries (GNU Scientific Library (GSL), YEPPP!) and parallelisation (OpenMP). We already implemented few algorithms to do this: Simplex algorithm, Mesh Adaptive Direct Search - MADS and modified MADS (called 'inverted MADS').
Compilation
To compile a code, go to the followup/src
and run: make followup
Switches
Run ./followup --help
Switch | Description |
---|---|
-d, -data | Data directory (default is .) |
-o, -output | Output directory (default is ./candidates) |
-i, -ident | Frame number |
-b, -band | Band number |
-l, -label | Custom label for the input and output files |
-c, -cwd | Change to directory [dir] |
-t, -threshold | Threshold for the F-statistic (default is 20) |
-p, -fpo | Reference band frequency fpo value |
-s, -dt | Data sampling time dt (default value: 0.5) |
-u, -usedet | Use only detectors from string (default is use all available) |
-y, -nod | Number of days |
-x, -addsig | Add signal with parameters from [file] |
-a, -candidates | As a starting point in followup use parameters from [file] |
-r, -refr | Reference frame number |
Also:
--vetolines | Veto known lines from files in data directory |
--simplex | Direct search of maximum using Nelder-Mead (simplex) algorithm |
--mads | Direct search of maximum using MADS algorithm |
--gauss | Generate Gaussian noise instead of reading data. Amplitude and sigma of the noise declared in init.c |
--neigh | Function neigh() generate area as % from initial value instead of taking it from grid.bin |
--naive | Function naive() generate area as +/- points taking it from grid.bin and divide it into smaller grid. |
--onepoint | Calculate Fstatistic only in one point taken from file with candidates (without generating any grid). |
--help | This help |
By default code is searching maximum of the F-statistic on the optimal, 4-dimensional grid (parameters of the grid, like e.g. minimal match, ale defined inside the code, in followup.c
). Main idea was to search on a denser grid than in search
code, but to focus only on a few points around candidate. Additionally, when the point (on the optimal grid) with the maximal value of the F-statistic is established, one can run one of the direct maximum search algorithm: Nelder-Mead (--simplex
switch) or MADS (--mads
switch), to determine parameters of the maximum more precisely. In the current version of the code, by using --mads
switch, one will use modified, 'inverted' MADS. To skip calculations on the optimal grid and run one of the algorithms directly from the initial point, use --onepoint
switch.
Input data
Files required to run the code: xdatc*
, DetSSB.bin
and grid.bin
. Path to the directory is taken from -data
switch; there directories named as iii/H1
,iii/L1
etc. are expected, where iii
is a frame number taken from -ident
switch.
Initial point of the calculations (switch -candidates
) is required. Usually the best result from coincidences (previous step of the pipeline) is taken. Parameters of the candidate need to be written into the file, as:
frequency spin-down declination right_ascension
Minimal example how to run a code
Run:
LD_LIBRARY_PATH=../../search/network/src-cpu/lib/yeppp-1.0.0/binaries/linux/x86_64 ./followup -data data_path/ -band 0666 -dt 16 -candidates path_to_candidate/candidate.txt -ident 001 -nod 6 --mads> output.txt
As a result (last line in the output file) one can get parameters of the found maximum:
frequency spin-down declination right_ascension F-statistic_value SNR