Header file for model noise generation codes.
This header file covers routines that are used in synthetic background noise expected in various detectors and signals with random parameters in background noise.
Prototypes | |
void | LALAddVectors (LALStatus *status, REAL4Vector *vector, AddVectorsIn in) |
Function to add two vectors with weights. More... | |
void | LALAdvLIGOPsd (LALStatus UNUSED *status, REAL8 *psd, REAL8 f) |
Module to calculate the noise power spectral density for the initial LIGO detector. More... | |
void | LALColoredNoise (LALStatus *status, REAL4Vector *noisy, REAL8Vector psd) |
This function colors a given white noise input into a colored noise of power spectral density psd . More... | |
void | LALEGOPsd (LALStatus UNUSED *status, REAL8 *psd, REAL8 f) |
Function to calculate the noise power spectral density for the EGO detector. More... | |
REAL8 | XLALETBPsd (REAL8 f) |
Function to calculate the noise power spectral density of the projected ET-B detector. More... | |
void | LALGEOPsd (LALStatus UNUSED *status, REAL8 *psd, REAL8 f) |
Module to calculate the expected noise power spectral density for the GEO600 detector. More... | |
REAL8 | XLALLIGOIPsd (REAL8 f) |
Calculate the Initial LIGO SRD noise spectral density at given a frequency. More... | |
void | LALLIGOIPsd (LALStatus UNUSED *status, REAL8 *psd, REAL8 f) |
Legacy LAL wrapper of XLALLIGOIPsd(). More... | |
void | LALNoiseSpectralDensity (LALStatus *status, REAL8Vector *psd, void(*NoisePsd)(LALStatus *status, REAL8 *shf, REAL8 f), REAL8 df) |
This function generates an array of size specified in the vector psd , that is psd.length . The inputs are. More... | |
void | LALEGOPsd (LALStatus *status, REAL8 *shf, REAL8 x) |
void | LALGEOPsd (LALStatus *status, REAL8 *shf, REAL8 x) |
void | LALAdvLIGOPsd (LALStatus *status, REAL8 *shf, REAL8 x) |
void | LALLIGOIPsd (LALStatus *status, REAL8 *shf, REAL8 x) |
void | LALTAMAPsd (LALStatus *status, REAL8 *shf, REAL8 x) |
void | LALVIRGOPsd (LALStatus *status, REAL8 *shf, REAL8 x) |
void | LALStatsREAL4Vector (LALStatus *status, StatsREAL4VectorOut *out, REAL4Vector *vector) |
Module to compute the mean, rms, minimum and maximum of a REAL4Vector . More... | |
void | LALTAMAPsd (LALStatus UNUSED *status, REAL8 *psd, REAL8 f) |
Function to calculate the noise power spectral density for the TAMA detector. More... | |
void | LALVIRGOPsd (LALStatus UNUSED *status, REAL8 *psd, REAL8 f) |
Module to calculate the noise power spectral density for the VIRGO detector. More... | |
Data Structures | |
struct | AddVectorsIn |
struct | StatsREAL4VectorOut |
Enumerations | |
enum | enumDetector { geo , ligo , tama , virgo } |
Files | |
file | NoisePSDTest.c |
This program can be used generate expected noise NoiseSpectralDensity in various interferometers. | |
Error Codes | |
#define | LALNOISEMODELSH_ENULL 1 |
Arguments contained an unexpected null pointer. More... | |
#define | LALNOISEMODELSH_EMEM 2 |
Memory allocation error. More... | |
#define | LALNOISEMODELSH_ECHOICE 4 |
Invalid choice for an input parameter. More... | |
#define | LALNOISEMODELSH_EDIV0 8 |
Division by zero. More... | |
#define | LALNOISEMODELSH_ESIZE 16 |
Invalid input size. More... | |
void LALAddVectors | ( | LALStatus * | status, |
REAL4Vector * | vector, | ||
AddVectorsIn | in | ||
) |
Function to add two vectors with weights.
Given weights A1
and A2
as in AddVectorsIn
and vectors v1
and v2
this code returns vector v
given by
v[i] = A1 v1[i] + A2 v2[i];
Definition at line 48 of file LALAddVectors.c.
Module to calculate the noise power spectral density for the initial LIGO detector.
This function module takes as an input a frequency \(f\) in Hz, and it calculates the noise spectral density (per Hz) \(S_{h}(f)\) for that frequency. The noise PSD is based on data provided by Kip Thorne, and the fit by B.S.Sathyaprakash
\begin{equation} S_h(f) = S_0\left\{ \left(\frac{f}{f_0}\right)^{-4.14} - 5\left(\frac{f_0}{f}\right)^2 + 111 \left(\frac{1. - \frac{f}{f_0}^2 + 0.5 \frac{f}{f_0}^4}{1. + 0.5\frac{f}{f_0}^2} \right)\right\}; \end{equation}
where, \(f_0=215\)Hz The returned value is scaled up by \(S_0 = 10^{49}.\)
Definition at line 50 of file LALAdvLIGOPsd.c.
void LALColoredNoise | ( | LALStatus * | status, |
REAL4Vector * | noisy, | ||
REAL8Vector | psd | ||
) |
This function colors a given white noise input into a colored noise of power spectral density psd
.
Given the Fourier transform \(N(f)\) of white noise, the Fourier transform of noise of power spectral density \(S(f)\) is given by \({\cal N}(f) = N(f) \times \sqrt{S(f)}.\) In the discrete version there is an additional normalisation:
\[{\cal N}_k = N_k \times \sqrt{\frac{2 S_k}{n}},\ \ {\cal N}_{n-k} = N_{n-k} \times \sqrt{\frac{2 S_k}{n}},\ \ k=1, \ldots, \frac{n}{2}.\]
Definition at line 40 of file LALColoredNoise.c.
Function to calculate the noise power spectral density for the EGO detector.
The module takes as an input a frequency \(f\) in Hz, and it calculates the noise spectral density (per Hz) \(S_{h}(f)\) for that frequency. The noise PSD is based on data provided by grqc/0607092
\begin{equation} S_h(f) = s_0 \left\{ x^{p_1} + a_1x^{p_2} +a_2 \frac{1+b_1x +b_2x^2+b_3x^3+b_4x^4+b_5x^5+b_6x^6}{1+c_1x+c_2x^2+c_3x^3+c_4x^4} \right\} \end{equation}
where \(S_0=1.61e-51\)\ \(p_1=-4.05, p_2=-0.69\)\ \(a_1=185.62, a_2=232.56\)\ \(b_1 = 31.18, b_2=-64.72, b_3=52.24, b_4=-42.16, b_5=10.17, b_6=11.53\)\ and \(c_1=13.58, c_2 = -36.46, c_3=18.56, c_4=27.43\)
Definition at line 50 of file LALEGOPsd.c.
Function to calculate the noise power spectral density of the projected ET-B detector.
Fit taken from a Matlab script by T. Dent which can be found at: https://workarea.et-gw.eu/et/WG4-Astrophysics/base-sensitivity/
Definition at line 30 of file LALETBPsd.c.
Module to calculate the expected noise power spectral density for the GEO600 detector.
The module takes as an input a frequency \(f\) in Hz, and it calculates the noise spectral density (per Hz) \(S_{h}(f)\) for that frequency. The noise PSD is based on data provided by J. Hough and G. Cagnoli (see T. Damour, B.R. Iyer and B.S. Sathyaprakash, Phys. Rev. D 63, 044023 (2001)) and is approximated by the following:
\begin{equation} S_h(f) = 10^{-16} \left ( \frac{f}{f_0} \right)^{-30} + 34 \frac{f_0 }{ f } + \frac{20 \left [1 - (f/f_0)^2 + 0.5 (f/f_0)^4 \right ] }{ 1 + 0.5 (f/f_0)^2} \end{equation}
The returned value is scaled up by \(s_0 = 10^{46}.\) In otherwords, the expected noise PSD is a factor \(10^{46}\) lower.
Definition at line 52 of file LALGEOPsd.c.
Calculate the Initial LIGO SRD noise spectral density at given a frequency.
The input is frequency in Hz, and the return value is the noise spectral density, \(S_{h}(f)\), for that frequency.
The noise PSD is based on data provided by K. Blackburn (see [8]) and is approximated by the following:
\[ S_h(f) = 9 \times 10^{-46} \left[ \left( 4.49 \frac{f}{f_0} \right)^{-56} + 0.16 \left( \frac{f}{f_0} \right)^{-4.52} + 0.52 + 0.32 \left( \frac{f}{f_0} \right)^2 \right] \]
Multiply the return value of this function by \(2 \Delta f\) to put it in the same units as used by the LAL average spectrum functions like XLALWhitenCOMPLEX16FrequencySeries().
Definition at line 50 of file LALLIGOIPsd.c.
Legacy LAL wrapper of XLALLIGOIPsd().
Note that the return value is scaled up by $s_0 = 10^{46}/9.$ In otherwords, the expected noise PSD is \(9 \times 10^{-46}\) times the return value.
Definition at line 65 of file LALLIGOIPsd.c.
void LALNoiseSpectralDensity | ( | LALStatus * | status, |
REAL8Vector * | psd, | ||
void(*)(LALStatus *status, REAL8 *shf, REAL8 f) | NoisePsd, | ||
REAL8 | df | ||
) |
This function generates an array of size specified in the vector psd
, that is psd.length
. The inputs are.
length
of the psd
vector to the desired value; df
in Hz. void (*NoisePsd)(LALStatus *status, REAL8 *shf, REAL8 f).
Presently, there are four such functions in the noisemodels
package. These are LALGEOPsd, LALLIGOIPsd, LALTAMAPsd, LALVIRGOPsd.
These four packages return a scaled PSD while this module returns the correctly scaled version. It is assumed that new PSD modules return unscaled versions. (Note, however, that it might be better to use the scaled versions of the PSD when computing the metric on the signal manifold; this is because computing the metric involves calculation of many moments of the noise PSD and one might encounter round-off errors if un-scaled version of PSD is used; I have not checked this to be the case but suspect that there might be some problems.)
Definition at line 51 of file LALNoiseSpectralDensity.c.
void LALStatsREAL4Vector | ( | LALStatus * | status, |
StatsREAL4VectorOut * | out, | ||
REAL4Vector * | vector | ||
) |
Module to compute the mean, rms, minimum and maximum of a REAL4Vector
.
Definition at line 29 of file LALStatsREAL4Vector.c.
Function to calculate the noise power spectral density for the TAMA detector.
The module takes as an input a frequency \(f\) in Hz, and it calculates the noise spectral density (per Hz) \(S_{h}(f)\) for that frequency. The noise PSD is based on data provided by M.-K Fujimoto (see T. Damour, B.R. Iyer and B.S. Sathyaprakash, Phys. Rev. D 63, 044023 (2001)) and is approximated by the following:
\begin{equation} S_h(f) = \left ( \frac{f}{f_0} \right )^{-5} + 13 \frac{f_0}{f} + 9 \left [1 + \left( \frac{f}{f_0} \right)^2 \right ]. \end{equation}
The returned value is scaled up by \(s_0 = 10^{46}/75.\) In otherwords, the expected noise PSD is \(75 \times 10^{-46}\) times the returned value.
Definition at line 49 of file LALTAMAPsd.c.
Module to calculate the noise power spectral density for the VIRGO detector.
The module takes as an input a frequency \(f\) in Hz, and it calculates the noise spectral density (per Hz) \(S_{h}(f)\) for that frequency. The noise PSD is based on data provided by J-Y. Vinet and is approximated by the following:
\begin{equation} S_h(f) = s_0 \left ( \frac {7.87f}{f_0} \right )^{-4.8} + \frac{6}{17} \frac{f_0}{f} + \left [1 + \left (\frac {f}{f_0} \right)^2 \right ], \end{equation}
where \(s_0=10.2e-46\)
Definition at line 48 of file LALVIRGOPsd.c.
enum enumDetector |
Enumerator | |
---|---|
geo | |
ligo | |
tama | |
virgo |
Definition at line 69 of file LALNoiseModels.h.
#define LALNOISEMODELSH_ENULL 1 |
Arguments contained an unexpected null pointer.
Definition at line 54 of file LALNoiseModels.h.
#define LALNOISEMODELSH_EMEM 2 |
Memory allocation error.
Definition at line 55 of file LALNoiseModels.h.
#define LALNOISEMODELSH_ECHOICE 4 |
Invalid choice for an input parameter.
Definition at line 56 of file LALNoiseModels.h.
#define LALNOISEMODELSH_EDIV0 8 |
Division by zero.
Definition at line 57 of file LALNoiseModels.h.
#define LALNOISEMODELSH_ESIZE 16 |
Invalid input size.
Definition at line 58 of file LALNoiseModels.h.