Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALInspiral 5.0.3.1-8a6b96f
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Module LALInspiralBCVBank.c

Detailed Description

BCV template bank.

Prototypes

void LALInspiralCreateBCVBank (LALStatus *status, InspiralTemplateList **list, INT4 *nlist, InspiralCoarseBankIn coarseIn)
 Lay a flat grid of BCV templates in the user specified range of the parameters \((\psi_0, \psi_3)\) in coarseIn structure. More...
 
void LALInspiralCreateFlatBank (LALStatus *status, REAL4VectorSequence *list, InspiralBankParams *bankParams)
 The code expects list->vectorLength=2 and allocates just the requisite amount of memory to list and returns the number of grid points in list->length. More...
 
void LALInspiralBCVFcutBank (LALStatus *status, InspiralTemplateList **list, INT4 *NList, InspiralCoarseBankIn coarseIn)
 Given a grid of templates with distinct values of \((\psi_0, \psi_3)\) this routine returns a new grid in which every template has numFcutTemplates partners differing from one another in the ending frequency fendBCV. More...
 
void LALPSItoMasses (LALStatus *status, InspiralTemplate *params, UINT4 *valid, REAL4 HighGM)
 UNDOCUMENTED. More...
 
void LALInspiralBCVBankFcutS3S4 (LALStatus *status, InspiralTemplateList **list, INT4 *NList, InspiralCoarseBankIn coarseIn)
 UNDOCUMENTED. More...
 
void LALInspiralBCVRegularFcutBank (LALStatus *status, InspiralTemplateList **list, INT4 *NList, InspiralCoarseBankIn coarseIn)
 UNDOCUMENTED. More...
 
void LALEmpiricalPSItoMassesConversion (LALStatus *status, InspiralTemplate *params, UINT4 *valid, REAL4 lightring)
 UNDOCUMENTED. More...
 
void LALInspiralCreateFlatBankS3S4 (LALStatus *status, REAL4VectorSequence *list, InspiralBankParams *bankParams, InspiralCoarseBankIn coarseIn)
 UNDOCUMENTED. More...
 
void LALExcludeTemplate (LALStatus *status, INT4 *valid, InspiralBankParams UNUSED *bankParams, REAL4 x, REAL4 y)
 Thomas: 31 Aug 2006. More...
 

Function Documentation

◆ LALInspiralCreateBCVBank()

void LALInspiralCreateBCVBank ( LALStatus status,
InspiralTemplateList **  list,
INT4 nlist,
InspiralCoarseBankIn  coarseIn 
)

Lay a flat grid of BCV templates in the user specified range of the parameters \((\psi_0, \psi_3)\) in coarseIn structure.

Author
Cokelaer, T

Description

Given the range of the parameters \((\psi_0, \psi_3),\) the number of templates in the fCut direction, minimalMatch, noise spectral density, upper and lower frequency cutoffs (all in the input structure coarseIn) this routine outputs the list of templates in the BCV bank for the parameters \((\psi_0, \psi_3, f_{\mathrm{cut}}).\)

Algorithm

A flat signal manifold is assumed and templates are laid uniform in the three dimensions. See below for an explanation of how templates are chosen in the fcut direction.

Parameters
statusLAL status pointer
[out]listan array containing the template bank parameters.
[out]nlistthe number of templates in bank
coarseInUNDOCUMENTED

Definition at line 61 of file LALInspiralBCVBank.c.

◆ LALInspiralCreateFlatBank()

void LALInspiralCreateFlatBank ( LALStatus status,
REAL4VectorSequence list,
InspiralBankParams bankParams 
)

The code expects list->vectorLength=2 and allocates just the requisite amount of memory to list and returns the number of grid points in list->length.

The data points list->data[2j], j=1,2, ... list->length, contain the \(x_0\)-coordinates of the grid and data points list->data[2j+1], contain the \(x_1\)-coordinates of the grid.

Description

Given the metric and the minimalMatch this routine calls bank/LALInspiralUpdateParams to get the spacings in user coordinates (which are not necessarily the eigen-directions) and lays a uniform grid of templates in the range specified in (bankParams->x0Min, bankParams->x0Max) and (bankParams->x1Min, bankParams->x1Max).

Algorithm

The algorithm to lay templates is as follows: Given the increments \(Dx_0\) and \(Dx_1\) found from calling bank/LALInspiralUpdateParams lay a rectangular grid in the space of \((x_0, x_1).\)

  • \(x_1 = x_1^{\mathrm{min}}\)
  • do while ( \(x_1 \le x_1^{\mathrm{max}}\))
    • \(x_0 = x_0^{\mathrm{min}}\)
    • do while ( \(x_0 \le x_0^{\mathrm{max}}\))
      • Add ( \(x_0, x_1\)) to list
      • numTemplates++
      • Increment \(x_0: \; x_0 = x_0 + Dx_0\)
    • Increment \(x_1: \; x_1 = x_1 + Dx_1\)

Parameters
statusLAL status pointer
[out]listan array containing the template bank parameters
[in]bankParamsIt is necessary and sufficient to input the eigenvalues of the metric and the angle between the \(x_0\) axis and the semi-major axis of the ambiguity ellipse, that is, bankParams.metric.g00, bankParams.metric.g11, bankParams.metric.theta, the minimal match, bankParams.minimalMatch and the range of the two coordinates over which templates must be chosen: (bankParams->x0Min, bankParams->x0Max) and (bankParams->x1Min, bankParams->x1Max)

Definition at line 266 of file LALInspiralBCVBank.c.

◆ LALInspiralBCVFcutBank()

void LALInspiralBCVFcutBank ( LALStatus status,
InspiralTemplateList **  list,
INT4 NList,
InspiralCoarseBankIn  coarseIn 
)

Given a grid of templates with distinct values of \((\psi_0, \psi_3)\) this routine returns a new grid in which every template has numFcutTemplates partners differing from one another in the ending frequency fendBCV.

A call to this function should be preceeded by a call to LALInspiralCreateFlatBank() or a similar function, that gives a grid in \((\psi_0, \psi_3)\) space.

Description

A lattice of templates for BCV models should include, in addition to the values of \((\psi_0, \psi_3)\) a range of \(f_{\mathrm{cut}}\) – the cutoff frequency. The right approach would be to compute the metric in the three-dimensional space of \((\psi_0, \psi_3, f_{\mathrm{cut}})\) and to choose templates as dictated by the metric. However, analytic computation of the metric has not been easy. Therefore, it has become necessary (at least for the time being) to make alternate choice of the cutoff frequencies.

In this routine we implement a simple choice based on physical grounds: The post-Newtonian models predict an ending frequency that is larger than, but close to, the Schwarzschild last-stable orbit frequency \(f_{\mathrm{lso}} = (6^{3/2} \pi M )^{-1}\) where \(M\) is the total mass, while the effective one-body model has an ending frequency close to the light-ring, whose Schwarzschild value is \(f_{\mathrm{lr}} = (3^{3/2} \pi M )^{-1}\). It is necessary to know the total mass of the system in both cases. However, not all pairs of \((\psi_0, \psi_3)\) can be inverted to get a positive \(M\) but only when \(\psi_0 > 0\) and \(\psi_3 < 0\). Even then it is not guaranteed that the symmetric mass ratio will be less than \(1/4,\) a necessary condition so that the component masses are found to be real. However, we do not demand that the symmetric mass ratio is less than a quarter. If the total mass is non-negative then we compute the \((f_{\mathrm{lso}}, f_{\mathrm{lr}})\) and choose a user specified numFcutTemplates number of templates with their cutoff frequency list->fFinal defined uniformly spaced in the range \([f_{\mathrm{lso}},\ f_{\mathrm{lr}}]\).

Furthermore, this routine discards all templates for which either the mass is not defined or, when defined, list->fFinal is smaller than the user defined lower frequency cutoff or larger than the Nyquist frequency of templates. Thus, the number of templates returned by this routine could be larger or fewer than the input number of templates.

Algorithm

Given \((\psi_0, \psi_3)\) one can solve for \((M, \eta)\) using:

\begin{equation} M = \frac{-\psi_3}{16 \pi^2 \psi_0},\ \ \eta = \frac{3}{128 \psi_0 (\pi M)^{5/3}}. \end{equation}

Given the total mass compute the last stable orbit and light-ring frequencies using

\begin{equation} f_{\mathrm{lso}} = (6^{3/2} \pi M)^{-1},\ \ f_{\mathrm{lr}} = (3^{3/2} \pi M)^{-1}. \end{equation}

Divide the range \((f_{\mathrm{lso}}, f_{\mathrm{lr}})\) so as to have \(n_{\mathrm{cut}}= \mathtt{numFcutTemplates}\) templates over this range:

\begin{equation} df = f_{\mathrm{lr}} \frac {\left( 1 - 2^{-3/2} \right) }{ (n_{\mathrm{cut}} -1) }. \end{equation}

Next, choose templates at \(f_k = f_\mathrm{lr} - k \times df,\) where \(k=0, \ldots, n_\mathrm{cut}-1\). Note that by definition \(f_0 = f_\mathrm{lr}\) and \(f_{n_\mathrm{cut}-1} = f_\mathrm{lso}\); there are exatly \(n_\mathrm{cut}\) templates in the range \((f_\mathrm{lso}, f_\mathrm{lr})\). We discard a template if either \(M\) is not defined or if \(f_\mathrm{cut}\) is smaller than the lower frequency cutoff specified in list[j]->fLower.

Parameters
statusLAL status pointer
[in,out]listan array initially containing the template bank with the values of list[j]->psi0, list[j]->psi3, list[j]->fLower, specified, is replaced on return with a re-sized array specifying also list->fFinal.
[in,out]NListthe number of templates in the Input bank is replaced by the number of templates in the output bank.
coarseInUNDOCUMENTED

Definition at line 389 of file LALInspiralBCVBank.c.

◆ LALPSItoMasses()

void LALPSItoMasses ( LALStatus status,
InspiralTemplate params,
UINT4 valid,
REAL4  HighGM 
)

UNDOCUMENTED.

Definition at line 489 of file LALInspiralBCVBank.c.

◆ LALInspiralBCVBankFcutS3S4()

void LALInspiralBCVBankFcutS3S4 ( LALStatus status,
InspiralTemplateList **  list,
INT4 NList,
InspiralCoarseBankIn  coarseIn 
)

UNDOCUMENTED.

Definition at line 541 of file LALInspiralBCVBank.c.

◆ LALInspiralBCVRegularFcutBank()

void LALInspiralBCVRegularFcutBank ( LALStatus status,
InspiralTemplateList **  list,
INT4 NList,
InspiralCoarseBankIn  coarseIn 
)

UNDOCUMENTED.

Definition at line 648 of file LALInspiralBCVBank.c.

◆ LALEmpiricalPSItoMassesConversion()

void LALEmpiricalPSItoMassesConversion ( LALStatus status,
InspiralTemplate params,
UINT4 valid,
REAL4  lightring 
)

UNDOCUMENTED.

Definition at line 706 of file LALInspiralBCVBank.c.

◆ LALInspiralCreateFlatBankS3S4()

void LALInspiralCreateFlatBankS3S4 ( LALStatus status,
REAL4VectorSequence list,
InspiralBankParams bankParams,
InspiralCoarseBankIn  coarseIn 
)

UNDOCUMENTED.

Definition at line 743 of file LALInspiralBCVBank.c.

◆ LALExcludeTemplate()

void LALExcludeTemplate ( LALStatus status,
INT4 valid,
InspiralBankParams UNUSED *  bankParams,
REAL4  x,
REAL4  y 
)

Thomas: 31 Aug 2006.

This function is redundant with the polygon fit. It was design for BBH and therefore had tight boundary. For a more general purpose, I extended the range to generous values

Definition at line 922 of file LALInspiralBCVBank.c.