Structure of the Inspiral Code
Since the LSC and Virgo have joined forces on data analysis activities, these pages are now frozen. Ongoing searches for gravitational waves from compact binary systems are performed under the Compact Binary Coalescence group. Please look at that web site for more information about the group, mail lists, and cvs access and other resources.
Overview
The following table contains a brief overview of the files used in the inspiral code and what should be done when changing them. All changes should be associated with a change request in the gnats bug reporting system. A list of bug reports:
Change Protocols
The code in LAL and lalapps is currently in various stages ranging from initial development to final production code. The table below describing the code is color coded depending on the protocol required to change the code. The color codes used are as follows:
| Code State | Change Protocol |
| Critical Production Code | The code contained in this file is used in
production analyses. Code should not be changed without submitting a change-request bug report to the LAL bug tracking system. Change requests must be reviewed by key developers before any code is committed. Similarly any bugs found in this code should be immediately reported to the LAL problem tracking system and fixes reviewed before being commited to CVS. |
| Code in debugging process | The code is currently undergoing development
and debugging but is not yet finalized for production analysis. Code changes and bug fixes should be in LAL problem tracking system, but it is not necessary to have changes reviewed before commiting fixes and new code to CVS. |
| Development Code | The code is not yet mature and being actively
developed. Changes to code in CVS can be made without reporting to the bug tracking system. Please ensure that code checked into CVS does not break the LAL or LALApps build (object code, linking, tests and documentation). There is now a nightly test build of LAL and LALApps at: Nightly Test Builds |
Code in lalapps/src/inspiral/
| File Name | Executable Name | Description |
| inspiral_hipe.in | lalapps_inspiral_hipe | Script to generate DAGs to execute the inspiral search pipeline and background estimations. |
| inspiral_hipe.ini | inspiral_hipe.ini | Sample configuration file for the lalapps_inspiral_hipe script. |
| inspiral.py | inspiral.pyc | Python wrapper for creating DAG generation scripts from inspiral pipeline. |
| tmpltbank.c | lalapps_tmpltbank | Inspiral template bank generation. |
| inspiral.c | lalapps_inspiral | Inspiral search code. |
| thinca.c | lalapps_thinca | Performs coincidence part of inspiral pipeline. |
| trigbank.c | lalapps_trigbank | Creates triggered banks. |
| sire.c | lalapps_sire | sngl_inspiral reader code. Also performs injection efficency measurement using injection and trigger files. |
| coire.c | lalapps_coire | Coincident inspiral reader code. Also performs injection efficency measurement using injection and trigger files. |
| inspinj.c | lalapps_inspinj | Generates XML files containg populations of inspiral signals for Monte Carlo simulations. |
| coherentbank.c | lalapps_coherentbank | Code to generate a template bank for the coherent search. |
| coherent_inspiral.c | lalapps_coherent_inspiral | Multi interferometer coherent inspiral search code. |
| splitbank.c | lalapps_splitbank | Splits an XML inspiral template bank into several smaller XML template bank files. |
Code in lal/packages/findchirp/
| File Name | Function Name(s) | Description |
| FindChirp.h | Header file | Function protoypes for common findchirp functions (i.e. those not specific to SP, TD, BCV, BCVSpin) |
| FindChirpMemory.c |
LALInitializeDataSegmentVector() LALFinalizeDataSegmentVector() LALCreateDataSegmentVector() LALDestroyDataSegmentVector() LALCreateFindChirpSegmentVector() LALDestroyFindChirpSegmentVector() |
Functions to create, destroy and populate data containers. |
| FindChirpLinkedList.c |
LALFindChirpCreateTmpltNode() LALFindChirpDestroyTmpltNode() |
Functions to create and destroy the linked list of inspiral template node structures for flat and heirarchical search management. |
| FindChirpLinkedList.c |
LALFindChirpCreateTmpltNode() LALFindChirpDestroyTmpltNode() |
Functions to create and destroy the linked list of inspiral template node structures for flat and heirarchical search management. |
| FindChirpSimulation.c |
LALFindChirpInjectSignals() |
Function to inject an arbitrary linked list of injections from a linked list of SimInspiralTable structures into data. Calls functions to compute correct AS_Q waveform given sky position, detector site, calibration, etc. |
| FindChirpData.c |
LALFindChirpDataInit() LALFindChirpDataFinalize() |
Common functions to initialize the data conditioning for the various filters. Code in here is used by all methods, SP, TD, BCV and BCVSpin. |
| FindChirpTemplate.c |
LALFindChirpTemplateInit() LALFindChirpTemplateFinalize() |
Common functions to initialize the template genetaion for the various filters. Code in here is used by all methods, SP, TD, BCV and BCVSpin. |
| FindChirpFilterInit.c |
LALCreateFindChirpInput() LALDestroyFindChirpInput() LALFindChirpFilterInit() LALFindChirpFilterFinalize() |
Common functions to initialize the filtering code for the various filters. Code in here is used by all methods, SP, TD, BCV and BCVSpin. |
| FindChirpFilter.c |
LALFindChirpFilterSegment() |
Function that performs matched filtering and trigger generation for stationary phase chirps. |
| FindChirpChisq.h | Header file | Function protoypes for the various implementations of the chisq veto. |
| FindChirpChisqInit.c |
LALFindChirpChisqVetoInit() LALFindChirpChisqVetoFinalize() |
Common functions to initialize the chisq veto code for the various filters. Code in here is used by all methods, SP, TD, BCV and BCVSpin. |
| FindChirpChisq.c |
LALFindChirpChisqVeto() |
Chisq veto for stationary phase chirps. |
| FindChirpBCVChisq.c |
LALFindChirpBCVChisqVeto() |
Chisq veto for non-spinning BCV chirps. |
| FindChirpBCVSpinChisq.c |
|
Chisq veto for spinning BCV chirps. |
| FindChirpChisq.h | Header file | Function protoypes for the various implementations of the chisq veto. |
| FindChirpSP.h | Header file | Function protoypes for the stationary phase specific filtering functions. |
| FindChirpSPData.c |
LALFindChirpSPData() |
Data conditioning for stationary phase filtering. |
| FindChirpSPTemplate.c |
LALFindChirpSPTemplate() |
Template generation for stationary phase filtering. |
| FindChirpBCV.h | Header file | Function protoypes for the non-spinning BCV specific filtering functions. |
| FindChirpBCVData.c |
LALFindChirpBCVData() |
Data conditioning for non-spinning BCV filtering. |
| FindChirpBCVTemplate.c |
LALFindChirpBCVTemplate() |
Template generation for non-spinning BCV filtering. |
| FindChirpBCVFilter.c |
LALFindChirpBCVFilterSegment() |
Filtering code and trigger generation for non-spinning BCV filtering. |
| FindChirpBCVSpin.h | Header file | Function protoypes for the spinning BCV specific filtering functions. |
| FindChirpBCVSpinData.c |
LALFindChirpBCVSpinData() |
Data conditioning for spinning BCV filtering. |
| FindChirpBCVSpinTemplate.c |
LALFindChirpBCVSpinTemplate() |
Template generation for spinning BCV filtering. |
| FindChirpBCVSpinFilter.c |
LALFindChirpBCVSpinFilterSegment() |
Filtering code and trigger generation for spinning BCV filtering. |
| TwoInterfFindChirp.h | Header file | Function protoypes for the two interferometer coherent code. |
| TwoInterfFindChirpMemory.c |
LALCreateTwoInterfDataSegmentVector() LALDestroyTwoInterfDataSegmentVector() LALCreateTwoInterfFindChirpSegmentVector() LALDestroyTwoInterfFindChirpSegmentVector() |
Functions used by two interferometer coherent code. |
| TwoInterfFindChirpSPData.c |
LALTwoInterfFindChirpSPDataInit() LALTwoInterfFindChirpSPDataFinalize() LALTwoInterfFindChirpSPData() |
Functions used by two interferometer coherent code. |
| TwoInterfFindChirpFilter.c |
LALCreateTwoInterfFindChirpInputVector() LALDestroyTwoInterfFindChirpInputVector() LALTwoInterfFindChirpFilterInit() LALTwoInterfFindChirpFilterFinalize() LALTwoInterfFindChirpFilterSegment() LALCoherentFindChirpFilterSegment() |
Functions used by two interferometer coherent code. |
| TwoInterfFindChirpChisq.c |
LALTwoInterfFindChirpChisqVetoInit() LALTwoInterfFindChirpChisqVetoFinalize() LALTwoInterfFindChirpChisqVeto() |
Functions used by two interferometer coherent code. |
Code in lal/packages/tools/
| File Name | Function Name(s) | Description |
| LIGOMetaDataUtils.h | Header file | Function protoypes for table manipulation functions. |
| LIGOMetaDataUtils.c | A bunch of functions to manipulate process params and search summary tables. | |
| SnglInspiralUtils.c | A bunch of functions to manipulate single inspiral tables. | |
| SimInspiralUtils.c | A bunch of functions to manipulate sim inspiral tables. | |
| CoincInspiralUtils.c | A bunch of functions to manipulate coinc inspiral tables. |