Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALPulsar 7.1.1.1-b246709
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
DriveNDHoughTest.c
Go to the documentation of this file.
1/*
2* Copyright (C) 2007 Badri Krishnan, Alicia Sintes Olives
3*
4* This program is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License as published by
6* the Free Software Foundation; either version 2 of the License, or
7* (at your option) any later version.
8*
9* This program is distributed in the hope that it will be useful,
10* but WITHOUT ANY WARRANTY; without even the implied warranty of
11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12* GNU General Public License for more details.
13*
14* You should have received a copy of the GNU General Public License
15* along with with program; see the file COPYING. If not, write to the
16* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17* MA 02110-1301 USA
18*/
19
20/*-----------------------------------------------------------------------
21 *
22 * File Name: TestDriveNDHough.c
23 *
24 * Authors: Sintes, A.M., Krishnan, B.
25 *
26 *
27 * History: Created by Sintes August 7, 2001
28 * Modified by Badri Krishnan Feb 2003
29 *
30 *-----------------------------------------------------------------------
31 */
32
33/*
34 * 1. An author and Id block
35 */
36
37/**
38 * \author Sintes, A. M., Krishnan, B.
39 * \file
40 * \ingroup LALHough_h
41 * \brief Tests the construction
42 *
43 * ### Program TestDriveNDHough.c ###
44 *
45 *
46 * ### Usage ###
47 *
48 * \code
49 * TestDriveNDHough [-d debuglevel] [-o outfile] [-f f0] [-p alpha delta] [-s patchSizeX patchSizeY]
50 * \endcode
51 *
52 * ### Description ###
53 *
54 * \%TO BE CHANGED
55 *
56 * This program generates a patch grid, a vector of \c luts by changing the
57 * alpha component of the velocity orientation of the detector by a fixed amount
58 * in each of them, and a vector of
59 * peak-grams (all of them containing the same information). Similar to the previous
60 * test codes the patch is set at the south pole.
61 *
62 * Then the program builds the set
63 * of \c phmd, updates the cylinder and computes a Hough map at a given
64 * frequency using only one horizontal line set of \c phmd, and outputs the
65 * result into a file.
66 *
67 * By default, running this program with no arguments simply tests the subroutines,
68 * producing an output file called <tt>OutHough.asc</tt>. All default parameters are set from
69 * <tt>\#define</tt>d constants.
70 *
71 * The <b>-d</b> option sets the debug level to the specified value
72 * \c debuglevel. The <b>-o</b> flag tells the program to print the partial Hough map
73 * derivative to the specified data file \c outfile. The
74 * <b>-f</b> option sets the intrinsic frequency \c f0 at which build the <tt>lut</tt>.
75 * The <b>-p</b> option sets the velocity orientation of the detector
76 * \c alpha, \c delta (in radians) for the first \c lut (time-stamp).
77 *
78 * ### Uses ###
79 *
80 * \code
81 * LALNDHOUGHParamPLUT()
82 * LALHOUGHConstructPLUT()
83 * LALHOUGHConstructSpacePHMD()
84 * LALHOUGHupdateSpacePHMDup()
85 * LALHOUGHInitializeHT()
86 * LALHOUGHConstructHMT()
87 * LALPrintError()
88 * LALMalloc()
89 * LALFree()
90 * LALCheckMemoryLeaks()
91 * \endcode
92 *
93 */
94
95#include <lal/LALHough.h>
96
97/* Error codes and messages */
98
99/**\name Error Codes */ /** @{ */
100#define TESTDRIVENDHOUGHC_ENORM 0
101#define TESTDRIVENDHOUGHC_ESUB 1
102#define TESTDRIVENDHOUGHC_EARG 2
103#define TESTDRIVENDHOUGHC_EBAD 3
104#define TESTDRIVENDHOUGHC_EFILE 4
105
106#define TESTDRIVENDHOUGHC_MSGENORM "Normal exit"
107#define TESTDRIVENDHOUGHC_MSGESUB "Subroutine failed"
108#define TESTDRIVENDHOUGHC_MSGEARG "Error parsing arguments"
109#define TESTDRIVENDHOUGHC_MSGEBAD "Bad argument values"
110#define TESTDRIVENDHOUGHC_MSGEFILE "Could not create output file"
111/** @} */
112
113
114/** \cond DONT_DOXYGEN */
115
116/* Default parameters. */
117
118
119#define F0 500.0 /* frequency to build the LUT. */
120#define TCOH 1800.0 /* time baseline of coherent integration. */
121#define DF (1./TCOH) /* frequency resolution. */
122#define ALPHA 0.0
123#define DELTA 0.0
124#define FILEOUT "OutHough.asc" /* file output */
125#define MOBSCOH 10
126#define NFSIZE 5
127#define STEPALPHA 0.005
128#define PIXELFACTOR 2
129/* Usage format string. */
130
131#define USAGE "Usage: %s [-d debuglevel] [-o outfile] [-f f0] [-p alpha delta] [-s patchSizeX patchSizeY]\n"
132
133/*********************************************************************/
134/* Macros for printing errors & testing subroutines (from Creighton) */
135/*********************************************************************/
136
137#define ERROR( code, msg, statement ) \
138do { \
139 if ( lalDebugLevel & LALERROR ) \
140 XLALPrintError( "Error[0] %d: program %s, file %s, line %d, %s\n" \
141 " %s %s\n", (code), *argv, __FILE__, \
142 __LINE__, "$Id$", statement ? statement : \
143 "", (msg) ); \
144} while (0)
145
146#define INFO( statement ) \
147do { \
148 if ( lalDebugLevel & LALINFO ) \
149 XLALPrintError( "Info[0]: program %s, file %s, line %d, %s\n" \
150 " %s\n", *argv, __FILE__, __LINE__, \
151 "$Id$", (statement) ); \
152} while (0)
153
154#define SUB( func, statusptr ) \
155do { \
156 if ( (func), (statusptr)->statusCode ) { \
157 ERROR( TESTDRIVENDHOUGHC_ESUB, TESTDRIVENDHOUGHC_MSGESUB, \
158 "Function call \"" #func "\" failed:" ); \
159 return TESTDRIVENDHOUGHC_ESUB; \
160 } \
161} while (0)
162/******************************************************************/
163
164/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */
165/* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv------------------------------------ */
166int main( int argc, char *argv[] )
167{
168
169 static LALStatus status; /* LALStatus pointer */
170 static HOUGHptfLUTVector lutV; /* the Look Up Table vector*/
171 static HOUGHPeakGramVector pgV;
172 static PHMDVectorSequence phmdVS; /* the partial Hough map derivatives */
173 static UINT8FrequencyIndexVector freqInd;
174
175 static HOUGHResolutionPar parRes;
176 static HOUGHPatchGrid patch; /* Patch description */
177
178 static HOUGHParamPLUT parLut; /* parameters needed to build lut */
179 static HOUGHDemodPar parDem; /* demodulation parameters */
180 static HOUGHSizePar parSize;
181
182 static HOUGHMapTotal ht; /* the total Hough map */
183 /* ------------------------------------------------------- */
184
185 UINT2 maxNBins, maxNBorders;
186
187 INT8 f0Bin; /* freq. bin to construct LUT */
188 INT8 fBin;
189
190 UINT2 xSide, ySide;
191
192 CHAR *fname = NULL; /* The output filename */
193 FILE *fp = NULL; /* Output file */
194
195 INT4 arg; /* Argument counter */
196 UINT4 i, j; /* Index counter, etc */
197 INT4 k;
198 REAL8 f0, alpha, delta, veloMod;
199 REAL8 patchSizeX, patchSizeY;
200
201 /************************************************************/
202 /* Set up the default parameters. */
203 /* **********************************************************/
204
205 lutV.length = MOBSCOH;
206 pgV.length = MOBSCOH;
207 phmdVS.length = MOBSCOH;
208 freqInd.length = MOBSCOH;
209 phmdVS.nfSize = NFSIZE;
210
211 freqInd.deltaF = DF;
212 phmdVS.deltaF = DF;
213
214 lutV.lut = NULL;
215 pgV.pg = NULL;
216 phmdVS.phmd = NULL;
217 freqInd.data = NULL;
218 ht.map = NULL;
219
220 f0 = F0;
221 f0Bin = F0 * TCOH;
222
223 parRes.f0Bin = f0Bin;
224 parRes.deltaF = DF;
225 parRes.patchSkySizeX = patchSizeX = 1.0 / ( TCOH * F0 * VEPI );
226 parRes.patchSkySizeY = patchSizeY = 1.0 / ( TCOH * F0 * VEPI );
227 parRes.pixelFactor = PIXELFACTOR;
228 parRes.pixErr = PIXERR;
229 parRes.linErr = LINERR;
230 parRes.vTotC = VTOT;
231
232 alpha = ALPHA;
233 delta = DELTA;
234 veloMod = VTOT;
235
236
237 /********************************************************/
238 /* Parse argument list. i stores the current position. */
239 /********************************************************/
240 arg = 1;
241 while ( arg < argc ) {
242 /* Parse debuglevel option. */
243 if ( !strcmp( argv[arg], "-d" ) ) {
244 if ( argc > arg + 1 ) {
245 arg++;
246 } else {
248 XLALPrintError( USAGE, *argv );
250 }
251 }
252 /* Parse output file option. */
253 else if ( !strcmp( argv[arg], "-o" ) ) {
254 if ( argc > arg + 1 ) {
255 arg++;
256 fname = argv[arg++];
257 } else {
259 XLALPrintError( USAGE, *argv );
261 }
262 }
263 /* Parse frequency option. */
264 else if ( !strcmp( argv[arg], "-f" ) ) {
265 if ( argc > arg + 1 ) {
266 arg++;
267 f0 = atof( argv[arg++] );
268 f0Bin = f0 * TCOH;
269 parRes.f0Bin = f0Bin;
270 } else {
272 XLALPrintError( USAGE, *argv );
274 }
275 }
276 /* Parse velocity position options. */
277 else if ( !strcmp( argv[arg], "-p" ) ) {
278 if ( argc > arg + 2 ) {
279 arg++;
280 alpha = atof( argv[arg++] );
281 delta = atof( argv[arg++] );
282 } else {
284 XLALPrintError( USAGE, *argv );
286 }
287 }
288 /* Parse patch size option. */
289 else if ( !strcmp( argv[arg], "-s" ) ) {
290 if ( argc > arg + 2 ) {
291 arg++;
292 parRes.patchSkySizeX = patchSizeX = atof( argv[arg++] );
293 parRes.patchSkySizeY = patchSizeY = atof( argv[arg++] );
294 } else {
296 XLALPrintError( USAGE, *argv );
298 }
299 }
300 /* Unrecognized option. */
301 else {
303 XLALPrintError( USAGE, *argv );
305 }
306 } /* End of argument parsing loop. */
307 /******************************************************************/
308
309 if ( f0 < 0 ) {
311 XLALPrintError( USAGE, *argv );
313 }
314
315
316 /******************************************************************/
317 /* create patch grid */
318 /******************************************************************/
319
320 SUB( LALHOUGHComputeNDSizePar( &status, &parSize, &parRes ), &status );
321
322 xSide = parSize.xSide;
323 ySide = parSize.ySide;
324 maxNBins = parSize.maxNBins;
325 maxNBorders = parSize.maxNBorders;
326
327 /* allocate memory based on xSide and ySide */
328 patch.xSide = xSide;
329 patch.ySide = ySide;
330
331 /* allocate memory based on xSide and ySide */
332 patch.xCoor = NULL;
333 patch.yCoor = NULL;
334 patch.xCoor = ( REAL8 * )LALMalloc( xSide * sizeof( REAL8 ) );
335 patch.yCoor = ( REAL8 * )LALMalloc( ySide * sizeof( REAL8 ) );
336
337 SUB( LALHOUGHFillPatchGrid( &status, &patch, &parSize ), &status );
338
339 /******************************************************************/
340 /* memory allocation and settings */
341 /******************************************************************/
342
343 lutV.lut = ( HOUGHptfLUT * )LALMalloc( MOBSCOH * sizeof( HOUGHptfLUT ) );
344 pgV.pg = ( HOUGHPeakGram * )LALMalloc( MOBSCOH * sizeof( HOUGHPeakGram ) );
345 phmdVS.phmd = ( HOUGHphmd * )LALMalloc( MOBSCOH * NFSIZE * sizeof( HOUGHphmd ) );
346 freqInd.data = ( UINT8 * )LALMalloc( MOBSCOH * sizeof( UINT8 ) );
347
348 for ( j = 0; j < lutV.length; ++j ) {
349 lutV.lut[j].maxNBins = maxNBins;
350 lutV.lut[j].maxNBorders = maxNBorders;
351 lutV.lut[j].border =
352 ( HOUGHBorder * )LALMalloc( maxNBorders * sizeof( HOUGHBorder ) );
353 lutV.lut[j].bin =
354 ( HOUGHBin2Border * )LALMalloc( maxNBins * sizeof( HOUGHBin2Border ) );
355 }
356
357 for ( j = 0; j < phmdVS.length * phmdVS.nfSize; ++j ) {
358 phmdVS.phmd[j].maxNBorders = maxNBorders;
359 phmdVS.phmd[j].leftBorderP =
360 ( HOUGHBorder ** )LALMalloc( maxNBorders * sizeof( HOUGHBorder * ) );
361 phmdVS.phmd[j].rightBorderP =
362 ( HOUGHBorder ** )LALMalloc( maxNBorders * sizeof( HOUGHBorder * ) );
363 }
364
365
366 ht.xSide = xSide;
367 ht.ySide = ySide;
368 ht.map = NULL;
369 ht.map = ( HoughTT * )LALMalloc( xSide * ySide * sizeof( HoughTT ) );
370
371 for ( j = 0; j < phmdVS.length * phmdVS.nfSize; ++j ) {
372 phmdVS.phmd[j].ySide = ySide;
373 phmdVS.phmd[j].firstColumn = NULL;
374 phmdVS.phmd[j].firstColumn = ( UCHAR * )LALMalloc( ySide * sizeof( UCHAR ) );
375 }
376
377 for ( j = 0; j < lutV.length ; ++j ) {
378 for ( i = 0; i < maxNBorders; ++i ) {
379 lutV.lut[j].border[i].ySide = ySide;
380 lutV.lut[j].border[i].xPixel =
381 ( COORType * )LALMalloc( ySide * sizeof( COORType ) );
382 }
383 }
384
385
386 /******************************************************************/
387 /* Case: no spins, patch at south pole */
388 /************************************************************/
389 parDem.deltaF = DF;
390 parDem.skyPatch.alpha = 0.0;
391 parDem.skyPatch.delta = -LAL_PI_2;
392
393
394 parDem.timeDiff = 0.0;
395 parDem.spin.length = 0;
396 parDem.spin.data = NULL;
397
398 /*************************************************/
399 for ( j = 0; j < MOBSCOH; ++j ) { /* create all the LUTs */
400 parDem.veloC.x = veloMod * cos( delta ) * cos( alpha );
401 parDem.veloC.y = veloMod * cos( delta ) * sin( alpha );
402 parDem.veloC.z = veloMod * sin( delta );
403
404 alpha += STEPALPHA; /* shift alpha several degrees */
405
406 /* calculate parameters needed for buiding the LUT */
407 SUB( LALNDHOUGHParamPLUT( &status, &parLut, &parSize, &parDem ), &status );
408
409 /* build the LUT */
410 SUB( LALHOUGHConstructPLUT( &status, &( lutV.lut[j] ), &patch, &parLut ),
411 &status );
412 }
413
414
415 /******************************************************************/
416 /* create Peakgrams for testing */
417 /******************************************************************/
418
419 fBin = f0Bin + 21; /* a Frequency-bin shifted from the LUT */
420
421 for ( j = 0; j < MOBSCOH; ++j ) { /* create all the peakgrams */
422 pgV.pg[j].deltaF = DF;
423 pgV.pg[j].fBinIni = ( fBin ) - maxNBins;
424 pgV.pg[j].fBinFin = ( fBin ) + 5 * maxNBins;
425 pgV.pg[j].length = maxNBins; /* could be much smaller */
426 pgV.pg[j].peak = NULL;
427 pgV.pg[j].peak = ( INT4 * )LALMalloc( ( pgV.pg[j].length ) * sizeof( INT4 ) );
428
429 for ( i = 0; i < pgV.pg[j].length; ++i ) {
430 pgV.pg[j].peak[i] = 3 * i; /* test */
431 }
432 }
433
434
435 /******************************************************************/
436 /* build the set of PHMD */
437 /******************************************************************/
438
439 phmdVS.fBinMin = fBin;
440 SUB( LALHOUGHConstructSpacePHMD( &status, &phmdVS, &pgV, &lutV ), &status );
441
442 /* shift the structure one frequency bin */
443 SUB( LALHOUGHupdateSpacePHMDup( &status, &phmdVS, &pgV, &lutV ), &status );
444
445
446 /******************************************************************/
447 /* initializing the Hough map space */
448 /******************************************************************/
449
450 SUB( LALHOUGHInitializeHT( &status, &ht, &patch ), &status );
451
452
453 /******************************************************************/
454 /* construction of a total Hough map */
455 /******************************************************************/
456
457 for ( j = 0; j < MOBSCOH; ++j ) {
458 freqInd.data[j] = fBin + 2;
459 }
460
461 SUB( LALHOUGHConstructHMT( &status, &ht, &freqInd, &phmdVS ), &status );
462
463 /******************************************************************/
464 /* printing the results into a particular file */
465 /* if the -o option was given, or into FILEOUT */
466 /******************************************************************/
467
468 if ( fname ) {
469 fp = fopen( fname, "w" );
470 } else {
471 fp = fopen( FILEOUT, "w" );
472 }
473
474 if ( !fp ) {
477 }
478
479
480 for ( k = ySide - 1; k >= 0; --k ) {
481 for ( i = 0; i < xSide; ++i ) {
482 fprintf( fp, " %f", ht.map[k * xSide + i] );
483 fflush( fp );
484 }
485 fprintf( fp, " \n" );
486 fflush( fp );
487 }
488
489 fclose( fp );
490
491
492 /******************************************************************/
493 /* Free memory and exit */
494 /******************************************************************/
495 for ( j = 0; j < MOBSCOH; ++j ) {
496 LALFree( pgV.pg[j].peak ); /* All of them */
497 }
498
499
500 for ( j = 0; j < lutV.length ; ++j ) {
501 for ( i = 0; i < maxNBorders; ++i ) {
502 LALFree( lutV.lut[j].border[i].xPixel );
503 }
504 LALFree( lutV.lut[j].border );
505 LALFree( lutV.lut[j].bin );
506 }
507
508 for ( j = 0; j < phmdVS.length * phmdVS.nfSize; ++j ) {
509 LALFree( phmdVS.phmd[j].leftBorderP );
510 LALFree( phmdVS.phmd[j].rightBorderP );
511 LALFree( phmdVS.phmd[j].firstColumn );
512 }
513
514 LALFree( lutV.lut );
515 LALFree( pgV.pg );
516 LALFree( phmdVS.phmd );
517 LALFree( freqInd.data );
518
519 LALFree( ht.map );
520
521 LALFree( patch.xCoor );
522 LALFree( patch.yCoor );
523
525
528}
529
530/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */
531
532
533
534/** \endcond */
#define SUB(func, statusptr)
#define ERROR(code, msg, statement)
#define INFO(statement)
#define NFSIZE
#define TESTDRIVENDHOUGHC_MSGEFILE
#define TESTDRIVENDHOUGHC_ENORM
#define TESTDRIVENDHOUGHC_EARG
#define TESTDRIVENDHOUGHC_MSGEBAD
#define TESTDRIVENDHOUGHC_EFILE
#define TESTDRIVENDHOUGHC_MSGEARG
#define TESTDRIVENDHOUGHC_MSGENORM
#define TESTDRIVENDHOUGHC_EBAD
#define DELTA
#define ALPHA
int j
int k
void LALCheckMemoryLeaks(void)
#define LALMalloc(n)
#define LALFree(p)
static double double delta
#define fprintf
int main(int argc, char **argv)
REAL8 HoughTT
Total Hough Map pixel type.
Definition: HoughMap.h:113
void LALHOUGHInitializeHT(LALStatus *status, HOUGHMapTotal *ht, HOUGHPatchGrid *patch)
This function initializes the total Hough map HOUGHMapTotal *ht to zero and checks consistency betwee...
Definition: HoughMap.c:74
#define LAL_PI_2
unsigned char UCHAR
uint64_t UINT8
double REAL8
int64_t INT8
uint16_t UINT2
char CHAR
uint32_t UINT4
int32_t INT4
void LALHOUGHConstructSpacePHMD(LALStatus *status, PHMDVectorSequence *phmdVS, HOUGHPeakGramVector *pgV, HOUGHptfLUTVector *lutV)
constructs the space of phmd PHMDVectorSequence *phmdVS, given a HOUGHPeakGramVector *pgV and HOUGHpt...
Definition: DriveHough.c:54
void LALHOUGHupdateSpacePHMDup(LALStatus *status, PHMDVectorSequence *phmdVS, HOUGHPeakGramVector *pgV, HOUGHptfLUTVector *lutV)
This function updates the space of phmd increasing the frequency phmdVS->fBinMin by one.
Definition: DriveHough.c:130
void LALHOUGHConstructHMT(LALStatus *status, HOUGHMapTotal *ht, UINT8FrequencyIndexVector *freqInd, PHMDVectorSequence *phmdVS)
Given PHMDVectorSequence *phmdVS, the space of phmd, and UINT8FrequencyIndexVector *freqInd,...
Definition: DriveHough.c:301
void LALNDHOUGHParamPLUT(LALStatus *status, HOUGHParamPLUT *out, HOUGHSizePar *sizePar, HOUGHDemodPar *par)
Definition: NDParamPLUT.c:72
#define VTOT
Total detector velocity/c TO BE CHANGED DEPENDING ON DETECTOR.
Definition: LUT.h:207
#define PIXERR
Maximum `‘error’' (as a fraction of the width of the thinnest annulus) which allows to consider two b...
Definition: LUT.h:195
#define LINERR
Maximum `‘error’' (as a fraction of the width of the thinnest annulus) which allows to represent a ci...
Definition: LUT.h:188
void LALHOUGHComputeNDSizePar(LALStatus *status, HOUGHSizePar *out, HOUGHResolutionPar *in)
Definition: PatchGrid.c:204
void LALHOUGHFillPatchGrid(LALStatus *status, HOUGHPatchGrid *out, HOUGHSizePar *par)
Definition: PatchGrid.c:331
#define VEPI
Earth v_epicycle/c TO BE CHANGED DEPENDING ON DETECTOR.
Definition: LUT.h:202
void LALHOUGHConstructPLUT(LALStatus *status, HOUGHptfLUT *lut, HOUGHPatchGrid *patch, HOUGHParamPLUT *par)
INT2 COORType
To be changed to {INT2 COORType} if the number of pixels in the x-direction exceeds 255.
Definition: LUT.h:218
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define F0
#define FILEOUT
#define PIXELFACTOR
double alpha
This structure stores the border indexes corresponding to one frequency bin plus the corrections to b...
Definition: LUT.h:234
This structure stores the border of a circle clipped on the projected plane.
Definition: LUT.h:221
COORType * xPixel
x pixel index to be marked
Definition: LUT.h:226
UINT2 ySide
length of xPixel
Definition: LUT.h:225
Demodulation parameters needed for the Hough transform; all coordinates are assumed to be with respec...
Definition: LUT.h:353
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: LUT.h:354
REAL8 timeDiff
: time difference
Definition: LUT.h:358
REAL8Cart3Coor veloC
(x,y,z): Relative detector velocity
Definition: LUT.h:356
REAL8Vector spin
Spin down information.
Definition: LUT.h:359
REAL8UnitPolarCoor skyPatch
(alpha, delta): position of the center of the patch
Definition: LUT.h:355
This structure stores the Hough map.
Definition: HoughMap.h:130
UINT2 ySide
number of physical pixels in the y direction
Definition: HoughMap.h:142
UINT2 xSide
number of physical pixels in the x direction
Definition: HoughMap.h:141
HoughTT * map
the pixel counts; the number of elements to allocate is ySide*xSide
Definition: HoughMap.h:143
Parameters needed to construct the partial look up table.
Definition: LUT.h:333
This structure stores patch-frequency grid information.
Definition: LUT.h:264
UINT2 ySide
Real number of pixels in the y-direction (in the projected plane).
Definition: LUT.h:275
REAL8 * xCoor
Coordinates of the pixel centers.
Definition: LUT.h:271
UINT2 xSide
Real number of pixels in the x direction (in the projected plane); it should be less than or equal to...
Definition: LUT.h:270
REAL8 * yCoor
Coordinates of the pixel centers.
Definition: LUT.h:278
This structure stores the `‘peak-gram’'.
Definition: PHMD.h:129
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: PHMD.h:131
UINT4 length
Number of peaks present in the peak-gram.
Definition: PHMD.h:134
UINT8 fBinFin
Frequency index of the last element of the spectrum covered by this peak-gram.
Definition: PHMD.h:133
UINT8 fBinIni
Frequency index of the first element of the spectrum covered by this peak-gram; it can be seen as an ...
Definition: PHMD.h:132
INT4 * peak
The peak indices relative to fBinIni, i.e., the zero peak corresponds to fBinIni.
Definition: PHMD.h:135
This structure contains a vector of peak-grams (for the different time stamps)
Definition: LALHough.h:167
UINT4 length
number of elements
Definition: LALHough.h:168
HOUGHPeakGram * pg
the Peakgrams
Definition: LALHough.h:169
parameters needed for gridding the patch
Definition: LUT.h:282
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: LUT.h:284
REAL8 pixErr
for validity of LUT as PIXERR
Definition: LUT.h:288
INT8 f0Bin
Frequency bin at which construct the grid.
Definition: LUT.h:283
REAL8 patchSkySizeY
Patch size in radians along y-axis.
Definition: LUT.h:286
REAL8 patchSkySizeX
Patch size in radians along x-axis.
Definition: LUT.h:285
REAL8 pixelFactor
number of pixel that fit in the thinnest annulus
Definition: LUT.h:287
REAL8 vTotC
estimate value of v-total/C as VTOT
Definition: LUT.h:290
REAL8 linErr
as LINERR circle ->line
Definition: LUT.h:289
required for constructing patch
Definition: LUT.h:294
UINT2 maxNBorders
maximum number of borders affecting the patch; for memory allocation
Definition: LUT.h:302
UINT2 maxNBins
maximum number of bins affecting the patch; for memory allocation
Definition: LUT.h:301
UINT2 ySide
number of pixels in the y direction
Definition: LUT.h:300
UINT2 xSide
number of pixels in the x direction (projected plane)
Definition: LUT.h:299
This structure stores a partial Hough map derivative.
Definition: PHMD.h:141
UCHAR * firstColumn
Number of elements of firstColumn.
Definition: PHMD.h:151
UINT2 ySide
number of elements of firstColumn
Definition: PHMD.h:150
HOUGHBorder ** rightBorderP
Pointers to borders.
Definition: PHMD.h:149
UINT2 maxNBorders
Maximun number of borders of each type (for memory allocation purposes), i.e. length of *leftBorderP ...
Definition: PHMD.h:145
HOUGHBorder ** leftBorderP
Pointers to borders.
Definition: PHMD.h:148
This structure stores the patch-time-frequency look up table.
Definition: LUT.h:246
UINT2 maxNBins
Maximum number of bins affecting the patch (for memory allocation purposes)
Definition: LUT.h:256
HOUGHBorder * border
The annulus borders.
Definition: LUT.h:258
HOUGHBin2Border * bin
Bin to border correspondence.
Definition: LUT.h:259
UINT2 maxNBorders
Maximum number of borders affecting the patch (for memory allocation purposes)
Definition: LUT.h:257
This structure contains a vector of partial look up tables (for the different time stamps)
Definition: LALHough.h:173
HOUGHptfLUT * lut
the partial Look Up Tables
Definition: LALHough.h:175
UINT4 length
number of elements
Definition: LALHough.h:174
This structure contains a vector sequence of partial-Hough maps derivatives (for different time stamp...
Definition: LALHough.h:189
UINT8 fBinMin
frequency index of smallest intrinsic frequency in circular buffer
Definition: LALHough.h:192
UINT4 nfSize
number of different frequencies
Definition: LALHough.h:190
REAL8 deltaF
frequency resolution
Definition: LALHough.h:193
HOUGHphmd * phmd
the partial Hough map derivatives
Definition: LALHough.h:195
UINT4 length
number of elements for each frequency
Definition: LALHough.h:191
REAL8 y
Definition: LUT.h:310
REAL8 x
Definition: LUT.h:309
REAL8 z
Definition: LUT.h:311
REAL8 alpha
any value
Definition: LUT.h:328
REAL8 delta
In the interval [ ].
Definition: LUT.h:329
REAL8 * data
This structure stores the frequency indexes of the partial-Hough map derivatives at different time st...
Definition: LALHough.h:149
UINT8 * data
the frequency indexes
Definition: LALHough.h:152
REAL8 deltaF
frequency resolution
Definition: LALHough.h:151
UINT4 length
number of elements
Definition: LALHough.h:150