This is a module that generates a template bank to search for inspiralling and merging binaries consisting of neutron stars and/or black holes.
Template placement is based on the geometrical formalism [20] ,[19] .
A user calls either LALInspiralCreateCoarseBank(), to create a coarse bank, or LALInspiralCreateFineBank(), to create a fine bank, at specified minimal matches. LALInspiralCreateCoarseBank() first chooses templates along the \(\eta=1/4\) curve and then systematically lays a rectangular grid in the \(\tau_0-\tau_2\) plane, or \(\tau_0-\tau_3\) plane depending on user's choice.
If the metric on a (two-dimensional) signal manifold characterised by parameters \((x_0,x_1)\) is \(g_{ij}\) then the spacing between templates is given by
\begin{equation} dx_0 = \sqrt{ \frac{2(1 -MM)}{g_{00}} },\ \ dx_1 = \sqrt{ \frac{2(1 -MM)}{g_{11}} }. \end{equation}
Template placement is a problem of populating the binary parameter space (masses, spins, etc.) with as small a number of templates as possible, subject to the constraint that every signal that lies within the space has an overlap greater than or equal to a certain minimal match with at least one template in the grid. Past studies [21] ,[22] ,[19] have shown that this is most easily achieved by using the space of chirp-times to lay templates rather than the space of component masses.
this figure shows the parameter space binary masses and corresponding chirp-times. Chirp times are computed using an \(f_0\) of 40 Hz. Note that our parameter is specified by \(m_1, m_2 >m_\mathrm{min}\) and \(M=m_1+m_2 < M_\mathrm{max}\) rather than by \(m_\mathrm{min} < m_1,m_2 < m_\mathrm{max}.\) (We use capital \(M\) to denote the total mass and lower-case \(m\) to denote the component masses.) In the above example \(m_\mathrm{min} = 0.2 M_\odot\) and \(M_\mathrm{max} = 100 M_\odot.\)
The number of chirp times that one can define is determined by the post-Newtonian order one is working with. At the second post-Newtonian order (i.e. an approximation accurate to order \(v^4\)) [Note: we use units in which \(c=G=1;\) thus \(1M_\odot=4.92549095 \times 10^{-6}\)\ s] and for a binary consisting of two non-spinning compact objects in a quasi-circular orbit, there are four chirp-times \(\tau_k,\; k=0,\ 2,\ 3,\ 4,\) of which we can choose any two to characterize the binary:
\begin{equation} \tau_{0} = \frac{5M}{256 \eta v_{0}^{8}} \end{equation}
\begin{equation} \tau_{2} = \frac{5M}{192 \eta v_{0}^{6}} \left( \frac{743}{336} + \frac{11}{4} \eta \right) \end{equation}
\begin{equation} \tau_{3} = \frac{\pi M}{8 \eta v_{0}^{5}} \end{equation}
\begin{equation} \tau_{4} = \frac{5M}{128 \eta v_{0}^4} \left( \frac{3\,058\,673}{1\,016\,064} + \frac{5429}{1008} \eta + \frac{617}{144} \eta^{2} \right) \end{equation}
where \(m\) is the total mass of the binary, \(\eta=m_1m_2/m^2\) is the symmetric mass ratio and \(v_0 = (\pi m f_0)^{1/3}\) is a fiducial velocity parameter corresponding to a fiducial frequency \(f_0,\) usually chosen to be the lower frequency cutoff of the detector sensitivity.
This algorithm allows one to choose a coarse grid of templates either in the \(\tau_0-\tau_2\) or \(\tau_0-\tau_3\) space depending on the value of the enum CoordinateSpace
, which can take one of two values: Tau0Tau2 or Tau0Tau3. The shape of the coordinate spaces for some interesting range of masses is shown in this figure. The important point to note in these figures is that the \(\eta=1/4\) curve spans from the minimum to the maximum value of the Newtonian chirp-time \(\tau_0.\) This feature will be used in the construction of the grid. Note that the minimum (maximum) value of the Newtonian chirp-time occurs when the two masses are equal and the total mass is a maximum (minimum).
The coarse grid algorithm used in this module is most economically described by the following main steps in the algorithm:
Compute the minimum and maximum chirp-times corresponding to the search space: \((\tau_0^\mathrm{min}, \tau_0^\mathrm{max}),\) \((\tau_3^\mathrm{min}, \tau_3^\mathrm{max})\) (or \((\tau_2^\mathrm{min}, \tau_2^\mathrm{max})\) [Note: In what follows we will only mention \(\tau_3\); however, the algorithm is itself valid, and has been implemented, in the case of \((\tau_0,\tau_2)\) too.] )
Choose a lattice of templates along the equal mass curve.
The algorithm begins by identifying the vertices at the boundary of the search space corresponding to the range of masses over which one intends to carry out a search. It first chooses a set of templates along the equal mass curve and then lays a rectangular lattice of templates in the rectangular region defined by \((\tau_0^\mathrm{min}, \tau_3^\mathrm{min}),\; (\tau_0^\mathrm{max}, \tau_3^\mathrm{min}),\) \((\tau_0^\mathrm{max}, \tau_3^\mathrm{max}),\) and \((\tau_0^\mathrm{min}, \tau_3^\mathrm{max}).\)
The algorithm takes as input the structure InspiralCoarseBankIn
and returns a pointer to an array of type InspiralTemplateList
and the number of elements in the array. InspiralCoarseBankIn
is designed to provide the coarse bank algorithm with information about the search space such as the minimum mass of component stars, maximum total mass, etc., as well as other parameters not directly used by the coarse grid algorithm but are needed by inspiral wave generation algorithms. This is so that the coarse grid algorithm can correctly set the members of the InspiralTemplateList
structure. In particular, the members of the InspiralCoarseBankIn
structure used by the coarse grid algorithm are:
REAL8 mMin,
minimum mass of the component stars REAL8 MMax,
maximum total mass of the binary REAL8 mmCoarse,
coarse grid minimum match REAL8 fLower,
lower frequency cutoff to be used in the computation of the noise moments REAL8 fUpper,
upper frequency cutoff to be used in the computation of the noise moments void (*NoisePsd)(LALStatus *status, REAL8 *shf, REAL8 f),
pointer to a function that returns the noise spectral density (in units of per Hz \(^{-1}\)); noisemodels
modules have built in noise power spectral densities LALGEOPsd(), LALLIGOIPsd(), LALTAMAPsd() and LALVIRGOPsd()
. REAL8 order,
the post-Newtonian order to be used for wave generation the choices being newtonian, onePN, onePointFivePN, twoPN, twoPointFivePN, threePN, threePointFivePN
. CoordinateSpace
space, the coordinate space in which templates are laid (the choices being Tau0Tau2, Tau0Tau3; at onePN
order the only choice is Tau0Tau2). etamin,
minimum value of eta; must be pre-computed using the formula etamin = mMin * (MMax - mMin) / pow(MMax,2)
before calling the LALInspiralCreateCoarseBank(). Additionally, the user may specify the fine bank minimal match mmFine,
if LALInspiralCreateFineBank() is called. A fine bank can be created only around grid points where the metric is known.
Other members of the InspiralCoarseBankIn
structure that are not directly used by the coarse grid algorithm but are needed to correctly set all the members of the InspiralTemplate
are:
REAL8 tSampling,
time-domain sampling rate in Hz. REAL8 approximant,
the approximation method to be used for wave generation which can be anyone of TaylorT1, TaylorT2, TaylorT3, TaylorF1, TaylorF2, or PadeT1, PadeF1, EOB. Note that the placement algorithm is guaranteed to work with only TaylorF2 approximants. A detailed study of approximants that are well captured by this template placement algorithm is described elsewhere [14] . GridSpacing
, specify the type of placement to be used. For the physical template families placement, it must be SquareNotOriented, Hexagonal, HybridHexagonal. For the non-BCV case, it could be Square, SquareNotOriented, Hexagonal, HexagonalNotOriented. Concerning the physical case, the non oriented square placement, as described in this section, places the template on a square lattice but does not take into account the orientation of the ellipse, which might cause problem in some particular cases. The Hexagonal placement was then implemented taking into account the orientation of the ellipse. No square placement with the correct orientation has been implemented since the hexagonal is now used for in the LIGO analysis. Concerning the non-spinning BCV placement, all 4 cases are available. However, only the non oriented square placement and oriented hexagonal placement hav ebeen thouroughly tested as well. This module has the ability to place the templates on an hexagonal lattice. This placement reduces by 30% (as expected) the number of templates used by the square lattice. Although the algorithm is different (and described in this documentation), it is based on the same structure and uses the same function to be called, namely LALInspiralCreateCoarseBank(). The lattice is specified by the variable gridSpacing
from the structure InspiralCoarseBankIn
, where the user must set gridSpacing to Hexagonal.
A very similar placement place the template on an hexagonal lattice similarly to the previous hexagonal placement bu has a slightly different placement when upper an lower boundaries of the parameter space are coverred by a single template. In such a case, the hexagonal placement is replace by a placement along the bissectrice of the upper and lower boundaries. See the documentation for more details. This algorithm is called by setting gridSpacing to HybridHexagonal.
There is also the ability to create a bank for the non-spinning BCV templates. See the documentation. If so, the user must set approximant to BCV instead of one of the physical approximant (EOB, TaylorT1, ...).
Modules | |
Header LALInspiralBank.h | |
Header file for the template placement codes. | |
Header TemplateBankGeneration.h | |
This header file includes all the necessary types and function prototypes for LALNDTemplateBank() and LALMakeTemplateBank(). | |