LALSimulation  5.4.0.1-fe68b98
LALSimNoise.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2011 J. Creighton
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  * @defgroup LALSimNoise_h Header LALSimNoise.h
22  * @ingroup lalsimulation_noise
23  * @author Jolien Creighton
24  * @brief Routines for simulating gravitational wave detector noise.
25  *
26  * @{
27  * @defgroup LALSimNoise_c Module LALSimNoise.c
28  * @defgroup LALSimNoisePSD_c Module LALSimNoisePSD.c
29  * @}
30  */
31 
32 #ifndef _LALSIMNOISE_H
33 #define _LALSIMNOISE_H
34 
35 #include <stddef.h>
36 #include <lal/LALDatatypes.h>
37 #include <gsl/gsl_rng.h>
38 
39 #if defined(__cplusplus)
40 extern "C" {
41 #elif 0
42 } /* so that editors will match preceding brace */
43 #endif
44 
45 #ifdef SWIG // SWIG interface directives
46 SWIGLAL(FUNCTION_POINTER(aLIGOQuantumHighFrequency, XLALSimNoisePSDAdvVirgo,
62 #endif
63 
64 
65 /*
66  * NOISE GENERATION ROUTINES
67  * in module LALSimNoise.c
68  */
69 
70 
71 int XLALSimNoise(REAL8TimeSeries *s, size_t stride, REAL8FrequencySeries *psd, gsl_rng *rng);
72 
73 
74 /*
75  * PSD GENERATION FUNCTIONS
76  * in module LALSimNoisePSD.c
77  */
78 
79 
80 /*
81  * FUNCTIONS TO GENERATE COMPONENT NOISE PSD
82  */
83 
84 double XLALSimNoisePSDSeismic(double f, double L, double f_pend, double f_stack, double n_stack);
85 double XLALSimNoisePSDSuspTherm(double f, double L, double M, double T, double f0, double Q);
86 double XLALSimNoisePSDMirrorTherm(double f, double L, double M, double T, double f0, double Q);
87 double XLALSimNoisePSDShot(double f, double P_BS, double lambda, double L, double finesse, double eta);
88 double XLALSimNoisePSDQuantum(double f, double I0, double lambda, double L, double M, double A, double A_BS, double T_ITM, double T_PRM, double T_SRM, double ds, double zeta, double eta);
89 
90 /*
91  * NOISE PSD ROUTINES FOR FIRST GENERATION DETECTORS
92  */
93 
94 double XLALSimNoisePSDiLIGOSRD(double f);
95 double XLALSimNoisePSDiLIGOSeismic(double f);
96 double XLALSimNoisePSDiLIGOThermal(double f);
97 double XLALSimNoisePSDiLIGOShot(double f);
98 double XLALSimNoisePSDeLIGOShot(double f);
99 
100 double XLALSimNoisePSDiLIGOModel(double f);
101 double XLALSimNoisePSDeLIGOModel(double f);
102 double XLALSimNoisePSDVirgo(double f);
103 double XLALSimNoisePSDGEO(double f);
104 double XLALSimNoisePSDGEOHF(double f);
105 double XLALSimNoisePSDTAMA(double f);
106 
107 /*
108  * NOISE PSD ROUTINES FOR SECOND GENERATION DETECTORS
109  */
110 
111 double XLALSimNoisePSDaLIGOThermal(double f);
116 double XLALSimNoisePSDaLIGOQuantumNSNSOpt(double f);
117 double XLALSimNoisePSDaLIGOQuantumBHBH20Deg(double f);
119 
120 double XLALSimNoisePSDaLIGONoSRMLowPower(double f);
121 double XLALSimNoisePSDaLIGONoSRMHighPower(double f);
122 double XLALSimNoisePSDaLIGOZeroDetLowPower(double f);
123 double XLALSimNoisePSDaLIGOZeroDetHighPower(double f);
124 double XLALSimNoisePSDaLIGONSNSOpt(double f);
125 double XLALSimNoisePSDaLIGOBHBH20Deg(double f);
126 double XLALSimNoisePSDaLIGOHighFrequency(double f);
127 double XLALSimNoisePSDKAGRA(double f);
128 double XLALSimNoisePSDAdvVirgo(double f);
129 
130 /*
131  * NOISE PSD UTILITY ROUTINES
132  */
133 
134 int XLALSimNoisePSD(REAL8FrequencySeries *psd, double flow, double (*psdfunc)(double));
135 int XLALSimNoisePSDFromFile(REAL8FrequencySeries *psd, double flow, const char *fname);
136 
137 /*
138  * NOISE PSDs FROM LIGO-T0900288
139  */
140 
147 
148 /*
149  * NOISE PSDs FROM LIGO-P1200087
150  */
151 
168 
169 /*
170  * NOISE PSDs FROM LIGO-P1600143
171  */
172 
177 
178 /*
179  * NOISE PSDs FROM LIGO-T1600593
180  */
181 
187 
188 /*
189  * NOISE PSDs FROM LIGO-P1800042
190  */
191 
193 
194 /*
195  * NOISE PSDs FROM LIGO-P1800044
196  */
197 
199 
200 /* deprecated function with an extra `aLIGO` typo in the name */
202 
203 /*
204  * NOISE PSDs FROM LIGO-T1800545
205  */
206 
216 
217 /* deprecated functions with an extra `aLIGO` typo in the names */
227 
228 #if 0
229 { /* so that editors will match succeeding brace */
230 #elif defined(__cplusplus)
231 }
232 #endif
233 
234 #endif /* _LALSIMNOISE_H */
int XLALSimNoisePSDaLIGOaLIGODesignSensitivityT1800044(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOAdVO4T1800545(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOKAGRA128MpcT1800545(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOKAGRA80MpcT1800545(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOaLIGO140MpcT1800545(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOaLIGO175MpcT1800545(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOAdVO3LowT1800545(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOaLIGOO3LowT1800545(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOKAGRA25MpcT1800545(REAL8FrequencySeries *psd, double flow)
int XLALSimNoisePSDaLIGOAdVO4IntermediateT1800545(REAL8FrequencySeries *psd, double flow)
int s
Definition: bh_qnmode.c:137
REAL8 M
Definition: bh_qnmode.c:133
double(* psdfunc)(double)
double flow
const double Q
int XLALSimNoise(REAL8TimeSeries *s, size_t stride, REAL8FrequencySeries *psd, gsl_rng *rng)
Routine that may be used to generate sequential segments of data with a specified stride from one seg...
Definition: LALSimNoise.c:144
int XLALSimNoisePSDKAGRA25MpcT1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to advanced KAGRA 25 Mpc ...
int XLALSimNoisePSDaLIGODesignSensitivityT1800044(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to an updated aLIGO confi...
double XLALSimNoisePSDeLIGOShot(double f)
Provides the shot noise power spectrum for eLIGO.
int XLALSimNoisePSDKAGRALateSensitivityT1600593(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the KAGRA end-of-2020 ...
int XLALSimNoisePSDaLIGOHighFrequencyGWINC(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the "High_Freq....
double XLALSimNoisePSDaLIGOQuantumZeroDetHighPower(double f)
Provides the quantum noise power spectrum for aLIGO under the high-power broad-band signal recycling ...
double XLALSimNoisePSDGEO(double f)
Provides a GEO noise power spectrum based on that from Table IV of .
int XLALSimNoisePSDAdVMidHighSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the AdV 2017-2018 high...
double XLALSimNoisePSDGEOHF(double f)
Provides a GEO-HF noise power spectrum based on a fit to Figure 6 from .
double XLALSimNoisePSDaLIGOQuantumHighFrequency(double f)
Provides the quantum noise power spectrum for aLIGO under the configuration tuned to narrow-band high...
int XLALSimNoisePSDaLIGOAPlusDesignSensitivityT1800042(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the A+ configuration d...
int XLALSimNoisePSDaLIGOBNSOptimizedSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the aLIGO BNS-optimize...
int XLALSimNoisePSDaLIGOBHBH20DegGWINC(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the "BBH_20deg....
double XLALSimNoisePSDSeismic(double f, double L, double f_pend, double f_stack, double n_stack)
Provides a rather ad-hoc estimate of the seismic noise power spectral density at a given frequency.
double XLALSimNoisePSDTAMA(double f)
Provides a TAMA300 noise power spectrum based on that from Table IV of .
int XLALSimNoisePSDAdVO3LowT1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to advanced Virgo 65 Mpc ...
int XLALSimNoisePSDaLIGOMidHighSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the aLIGO 2016-2017 hi...
int XLALSimNoisePSDAdVEarlyHighSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the AdV 2016-2017 high...
int XLALSimNoisePSDaLIGOEarlyLowSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the aLIGO 2015 low-sen...
int XLALSimNoisePSDaLIGOLateHighSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the aLIGO 2017-2018 hi...
int XLALSimNoisePSDAdVLateLowSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the AdV 2018-2020 low-...
double XLALSimNoisePSDaLIGOQuantumNoSRMHighPower(double f)
Provides the quantum noise power spectrum for aLIGO under the high-power no-signal-recycling-mirror c...
int XLALSimNoisePSDAdVO4T1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to advanced Virgo 120 Mpc...
int XLALSimNoisePSDAdVDesignSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the AdV 2021 design se...
double XLALSimNoisePSDaLIGOThermal(double f)
Provides the thermal noise (suspension + coating) power spectrum for aLIGO.
double XLALSimNoisePSDaLIGOZeroDetHighPower(double f)
Provides the noise power spectrum for aLIGO under the high-power broad-band signal recycling (no detu...
int XLALSimNoisePSDaLIGOMidLowSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the aLIGO 2016-2017 lo...
int XLALSimNoisePSDaLIGOO3LowT1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to aLIGO O3 low 120 Mpc r...
int XLALSimNoisePSDFromFile(REAL8FrequencySeries *psd, double flow, const char *fname)
Reads file fname containing two-column amplitude spectral density data file and interpolates at the f...
int XLALSimNoisePSD(REAL8FrequencySeries *psd, double flow, double(*psdfunc)(double))
Evaluates a power spectral density function, psdfunc, at the frequencies required to populate the fre...
int XLALSimNoisePSDCosmicExplorerPessimisticP1600143(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to Cosmic Explorer (pessi...
double XLALSimNoisePSDaLIGONoSRMHighPower(double f)
Provides the noise power spectrum for aLIGO under the high-power no-signal-recycling-mirror configura...
int XLALSimNoisePSDaLIGONoSRMLowPowerGWINC(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the "NO_SRM....
double XLALSimNoisePSDaLIGOQuantumBHBH20Deg(double f)
Provides the quantum noise power spectrum for aLIGO under the configuration tuned to optimize sensiti...
double XLALSimNoisePSDeLIGOModel(double f)
Provides the noise power spectrum for a model of the eLIGO detector.
double XLALSimNoisePSDaLIGOQuantumZeroDetLowPower(double f)
Provides the quantum noise power spectrum for aLIGO under the low-power broad-band signal recycling (...
double XLALSimNoisePSDiLIGOModel(double f)
Provides the noise power spectrum for a model of the iLIGO detector.
int XLALSimNoisePSDKAGRAMidSensitivityT1600593(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the KAGRA start-of-202...
double XLALSimNoisePSDQuantum(double f, double I0, double lambda, double L, double M, double A, double A_BS, double T_ITM, double T_PRM, double T_SRM, double ds, double zeta, double eta)
Computes the quantum noise (shot noise and radiation pressure noise) according to Buonanno and Chen,...
int XLALSimNoisePSDaLIGODesignSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the aLIGO 2019 design ...
int XLALSimNoisePSDaLIGO175MpcT1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to aLIGO 175 Mpc range (d...
double XLALSimNoisePSDaLIGONoSRMLowPower(double f)
Provides the noise power spectrum for aLIGO under the low-power no-signal-recycling-mirror configurat...
double XLALSimNoisePSDShot(double f, double P_BS, double lambda, double L, double finesse, double eta)
Computes the shot noise in strain-equivalent units using a conventional model appropriate to initial ...
int XLALSimNoisePSDaLIGOEarlyHighSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the aLIGO 2015 high-se...
double XLALSimNoisePSDaLIGOHighFrequency(double f)
Provides the noise power spectrum for aLIGO under the configuration tuned to narrow-band high-frequen...
double XLALSimNoisePSDiLIGOSeismic(double f)
Provides the seismic noise power spectrum for iLIGO.
int XLALSimNoisePSDaLIGOZeroDetLowPowerGWINC(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the "ZERO_DET_low_P....
int XLALSimNoisePSDaLIGOLateLowSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the aLIGO 2017-2018 lo...
int XLALSimNoisePSDCosmicExplorerP1600143(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to Cosmic Explorer in LIG...
double XLALSimNoisePSDaLIGOQuantumNoSRMLowPower(double f)
Provides the quantum noise power spectrum for aLIGO under the low-power no-signal-recycling-mirror co...
int XLALSimNoisePSDCosmicExplorerWidebandP1600143(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to Cosmic Explorer (wideb...
int XLALSimNoisePSDaLIGONSNSOptGWINC(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the "NSNS_Opt....
int XLALSimNoisePSDKAGRADesignSensitivityT1600593(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the KAGRA design scena...
int XLALSimNoisePSDEinsteinTelescopeP1600143(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to Einstein Telescope in ...
double XLALSimNoisePSDaLIGONSNSOpt(double f)
Provides the noise power spectrum for aLIGO under the configuration tuned to optimize sensitivity to ...
int XLALSimNoisePSDaLIGO140MpcT1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to aLIGO 140 Mpc range in...
double XLALSimNoisePSDAdvVirgo(double f)
Provides the noise power spectrum for AdvVirgo based on that from Eqn 6 of .
double XLALSimNoisePSDiLIGOShot(double f)
Provides the shot noise power spectrum for iLIGO.
double XLALSimNoisePSDSuspTherm(double f, double L, double M, double T, double f0, double Q)
Provides a rather ad-hoc estimate of the suspension thermal noise power spectral density at a given f...
double XLALSimNoisePSDMirrorTherm(double f, double L, double M, double T, double f0, double Q)
Provides a rather ad-hoc estimate of the mirror thermal noise power spectral density at a given frequ...
double XLALSimNoisePSDaLIGOZeroDetLowPower(double f)
Provides the noise power spectrum for aLIGO under the low-power broad-band signal recycling (no detun...
int XLALSimNoisePSDKAGRA128MpcT1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to advanced KAGRA 128 Mpc...
int XLALSimNoisePSDAdVMidLowSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the AdV 2017-2018 low-...
int XLALSimNoisePSDKAGRA80MpcT1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to advanced KAGRA 80 Mpc ...
int XLALSimNoisePSDKAGRAEarlySensitivityT1600593(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the KAGRA 2019 early s...
double XLALSimNoisePSDiLIGOThermal(double f)
Provides the thermal noise (suspension + coating) power spectrum for iLIGO.
int XLALSimNoisePSDAdVO4IntermediateT1800545(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to advanced Virgo 100 Mpc...
int XLALSimNoisePSDKAGRAOpeningSensitivityT1600593(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the KAGRA 2018 opening...
double XLALSimNoisePSDiLIGOSRD(double f)
Provides the noise power spectrum based on a phenomenological fit to the SRD curve for iLIGO.
int XLALSimNoisePSDAdVBNSOptimizedSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the AdV BNS-optimized ...
int XLALSimNoisePSDAdVEarlyLowSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the AdV 2016-2017 low-...
double XLALSimNoisePSDKAGRA(double f)
Provides the noise power spectrum for KAGRA based on that from Eqn 5 of .
double XLALSimNoisePSDVirgo(double f)
Provides the design noise power spectrum for Virgo based on a phenomenological fit (from the Virgo we...
double XLALSimNoisePSDaLIGOQuantumNSNSOpt(double f)
Provides the quantum noise power spectrum for aLIGO under the configuration tuned to optimize sensiti...
int XLALSimNoisePSDaLIGOZeroDetHighPowerGWINC(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the "ZERO_DET_high_P....
double XLALSimNoisePSDaLIGOBHBH20Deg(double f)
Provides the noise power spectrum for aLIGO under the configuration tuned to optimize sensitivity to ...
int XLALSimNoisePSDAdVLateHighSensitivityP1200087(REAL8FrequencySeries *psd, double flow)
Returns a frequency series psd with low frequency cutoff flow corresponding to the AdV 2018-2020 high...