Routines to calculate detector strain for general waveforms.
These routines compute the external strain on a detector caused by a general waveform and inject these waveforms into time series.
The following example illustrates the basic usage of these routines.
The diagram below illustrates the relationship between the wave frame (X,Y,Z) and the Earth's equatorial frame. The Earth is at the origin of the diagram with its North pole in the direction indicated by N.
The gravitational wave travels in the Z-direction in this diagram, and the reference direction on the wave-plane (the X-Y-plane) is given by the X-axis. Note that the direction to the source is in the negative Z direction.
The plus- and cross-polarizations of the gravitational waveform are defined in this wave frame. Specifically, if \( h^{ij} \) is the metric perturbation, then
\[ h_+ = \frac12 ( \hat{p}_i \hat{p}_j - \hat{q}_i \hat{q}_j ) h^{ij} \]
and
\[ h_\times = \frac12 ( \hat{p}_i \hat{q}_j + \hat{q}_i \hat{p}_j ) h^{ij} \]
where \( \hat{p}_i \) are the components of the unit vector pointing along the X-axis and \( \hat{q}_i \) are the components of the unit vector pointing along the Y-axis.
The angles relating the wave frame to the equatorial frame are:
Declination (δ). The angle along the hour circle passing through the source between the equatorial plane and the source. It is positive for a source that is north of the equatorial plane and negative for a source that is south of the equatorial plane. The hour circle passing through the source is the great arc on the celestial sphere that passes through the north celestial pole (marked as N in the diagram), the source, and the south celestial pole.
Note that the diagram depicts a source having a negative declination.
Greenwich hour angle (GHA). The angle along the equatorial plane between the prime meridian and the hour circle containing the source. This angle is measured clockwise about the axis pointing toward the north celestial pole.
The right ascension, Greenwich hour angle, and Greenwich sidereal time are related by GHA = GST - α.
Warren Anderson, Patrick Brady, David Chin, Jolien Creighton, Keith Riles, and John Whelan, "Beam Pattern Response Functions and Times of Arrival for Earthbound Interferometer", LIGO Technical Document LIGO-T010110-v1 (2009) https://dcc.ligo.org/LIGO-T010110/public
Warren G. Anderson, Patrick R. Brady, Jolien D. E. Creighton, and Eanna E. Flanagan, "Excess power statistic for detection of burst sources of gravitational radiation", Phys. Rev. D 63, 042003 (2001) http://dx.doi.org/10.1103/PhysRevD.63.042003 http://arxiv.org/abs/gr-qc/0008066
Prototypes | |
const LALDetector * | XLALDetectorPrefixToLALDetector (const char *string) |
Turn a detector prefix string into a LALDetector structure. More... | |
REAL8TimeSeries * | XLALSimDetectorStrainREAL8TimeSeries (const REAL8TimeSeries *hplus, const REAL8TimeSeries *hcross, REAL8 right_ascension, REAL8 declination, REAL8 psi, const LALDetector *detector) |
Transforms the waveform polarizations into a detector strain. More... | |
int | XLALSimAddInjectionREAL8TimeSeries (REAL8TimeSeries *target, REAL8TimeSeries *h, const COMPLEX16FrequencySeries *response) |
Adds a detector strain time series to detector data. More... | |
int | XLALSimAddInjectionREAL4TimeSeries (REAL4TimeSeries *target, REAL4TimeSeries *h, const COMPLEX8FrequencySeries *response) |
Adds a detector strain time series to detector data. More... | |
int | XLALSimInjectDetectorStrainREAL8TimeSeries (REAL8TimeSeries *target, const REAL8TimeSeries *hplus, const REAL8TimeSeries *hcross, double ra, double dec, double psi, LALDetector *detector, const COMPLEX16FrequencySeries *response) |
Computes strain for a detector and injects into target time series. More... | |
int | XLALSimInjectDetectorStrainREAL4TimeSeries (REAL4TimeSeries *target, const REAL4TimeSeries *hplus, const REAL4TimeSeries *hcross, double ra, double dec, double psi, LALDetector *detector, const COMPLEX8FrequencySeries *response) |
Computes strain for a detector and injects into target time series. More... | |
int | XLALSimInjectLWLDetectorStrainREAL8TimeSeries (REAL8TimeSeries *target, const REAL8TimeSeries *hplus, const REAL8TimeSeries *hcross, double ra, double dec, double psi, LALDetector *detector, const COMPLEX16FrequencySeries *response) |
Computes strain for a detector and injects into target time series. More... | |
int | XLALSimInjectLWLDetectorStrainREAL4TimeSeries (REAL4TimeSeries *target, const REAL4TimeSeries *hplus, const REAL4TimeSeries *hcross, double ra, double dec, double psi, LALDetector *detector, const COMPLEX8FrequencySeries *response) |
Computes strain for a detector and injects into target time series. More... | |
const LALDetector * XLALDetectorPrefixToLALDetector | ( | const char * | string | ) |
Turn a detector prefix string into a LALDetector structure.
The first two characters of the input string are used as the instrument name, which allows channel names in the form H1:LSC-STRAIN
to be used. The return value is a pointer into the lalCachedDetectors array, so modifications to the contents are global. Make a copy of the structure if you want to modify it safely.
[in] | string | The detector prefix string. |
NULL | Unrecognized prefix string. |
Definition at line 85 of file LALSimulation.c.
REAL8TimeSeries * XLALSimDetectorStrainREAL8TimeSeries | ( | const REAL8TimeSeries * | hplus, |
const REAL8TimeSeries * | hcross, | ||
REAL8 | right_ascension, | ||
REAL8 | declination, | ||
REAL8 | psi, | ||
const LALDetector * | detector | ||
) |
Transforms the waveform polarizations into a detector strain.
This routine takes the plus and cross waveform polarizations, along with the sky position, polarization angle, and detector structure, and computes the external strain on the detector.
The input time series should have their epochs set to the start of those time series at the geocetre (for simplicity the epochs must be the same, and they must have the same length and sample rates)
[in] | hplus | Pointer to a REAL8TimeSeries containing the plus polarization waveform |
[in] | hcross | Pointer to a REAL8TimeSeries containing the cross polarization waveform |
[in] | right_ascension | The right ascension of the source in radians |
[in] | declination | The declination of the source in radians |
[in] | psi | The polarization angle giving the orientation of the wave co-ordinate system in radians |
[in] | detector | Pointer to a LALDetector structure for the detector into which the injection is destined to be injected |
NULL | Failure |
Definition at line 254 of file LALSimulation.c.
int XLALSimAddInjectionREAL8TimeSeries | ( | REAL8TimeSeries * | target, |
REAL8TimeSeries * | h, | ||
const COMPLEX16FrequencySeries * | response | ||
) |
Adds a detector strain time series to detector data.
Essentially a wrapper for XLALAddREAL8TimeSeries(), but performs sub-sample re-interpolation to adjust the source time series epoch to lie on an integer sample boundary in the target time series. This transformation is done in the frequency domain, so it is convenient to allow a response function to be applied at the same time. Passing NULL for the response function turns this feature off (i.e., uses a unit response).
This function accepts source and target time series whose units are not the same, and allows the two time series to be herterodyned (although it currently requires them to have the same heterodyne frequency).
[in,out] | target | Pointer to the time series into which the strain will be added |
[in,out] | h | Pointer to the time series containing the detector strain (the strain data is modified by this routine) |
[in] | response | Pointer to the response function transforming strain to detector output units, or NULL for unit response. |
0 | Success |
<0 | Failure |
Definition at line 479 of file LALSimulation.c.
int XLALSimAddInjectionREAL4TimeSeries | ( | REAL4TimeSeries * | target, |
REAL4TimeSeries * | h, | ||
const COMPLEX8FrequencySeries * | response | ||
) |
Adds a detector strain time series to detector data.
Essentially a wrapper for XLALAddREAL4TimeSeries(), but performs sub-sample re-interpolation to adjust the source time series epoch to lie on an integer sample boundary in the target time series. This transformation is done in the frequency domain, so it is convenient to allow a response function to be applied at the same time. Passing NULL for the response function turns this feature off (i.e., uses a unit response).
This function accepts source and target time series whose units are not the same, and allows the two time series to be herterodyned (although it currently requires them to have the same heterodyne frequency).
[in,out] | target | Pointer to the time series into which the strain will be added |
[in,out] | h | Pointer to the time series containing the detector strain (the strain data is modified by this routine) |
[in] | response | Pointer to the response function transforming strain to detector output units, or NULL for unit response. |
0 | Success |
<0 | Failure |
Definition at line 729 of file LALSimulation.c.
int XLALSimInjectDetectorStrainREAL8TimeSeries | ( | REAL8TimeSeries * | target, |
const REAL8TimeSeries * | hplus, | ||
const REAL8TimeSeries * | hcross, | ||
double | ra, | ||
double | dec, | ||
double | psi, | ||
LALDetector * | detector, | ||
const COMPLEX16FrequencySeries * | response | ||
) |
Computes strain for a detector and injects into target time series.
This routine takes care of the time-changing time delay from the Earth's center and the time-changing antenna response pattern; it also accounts for deviations from the long-wavelength limit at high frequencies. An optional calibration response function can be provided if the output time series is not in strain units.
[in,out] | target | Time series to inject strain into. |
[in] | hplus | Time series with plus-polarization gravitational waveform. |
[in] | hcross | Time series with cross-polarization gravitational waveform. |
[in] | ra | Right ascension of the source (radians). |
[in] | dec | Declination of the source (radians). |
[in] | psi | Polarization angle of the source (radians). |
[in] | detector | Detector to use when computing strain. |
[in] | response | Response function to use, or NULL if none. |
0 | Success. |
<0 | Failure. |
Definition at line 1250 of file LALSimulation.c.
int XLALSimInjectDetectorStrainREAL4TimeSeries | ( | REAL4TimeSeries * | target, |
const REAL4TimeSeries * | hplus, | ||
const REAL4TimeSeries * | hcross, | ||
double | ra, | ||
double | dec, | ||
double | psi, | ||
LALDetector * | detector, | ||
const COMPLEX8FrequencySeries * | response | ||
) |
Computes strain for a detector and injects into target time series.
This routine takes care of the time-changing time delay from the Earth's center and the time-changing antenna response pattern; it also accounts for deviations from the long-wavelength limit at high frequencies. An optional calibration response function can be provided if the output time series is not in strain units.
[in,out] | target | Time series to inject strain into. |
[in] | hplus | Time series with plus-polarization gravitational waveform. |
[in] | hcross | Time series with cross-polarization gravitational waveform. |
[in] | ra | Right ascension of the source (radians). |
[in] | dec | Declination of the source (radians). |
[in] | psi | Polarization angle of the source (radians). |
[in] | detector | Detector to use when computing strain. |
[in] | response | Response function to use, or NULL if none. |
0 | Success. |
<0 | Failure. |
Definition at line 1473 of file LALSimulation.c.
int XLALSimInjectLWLDetectorStrainREAL8TimeSeries | ( | REAL8TimeSeries * | target, |
const REAL8TimeSeries * | hplus, | ||
const REAL8TimeSeries * | hcross, | ||
double | ra, | ||
double | dec, | ||
double | psi, | ||
LALDetector * | detector, | ||
const COMPLEX16FrequencySeries * | response | ||
) |
Computes strain for a detector and injects into target time series.
This routine takes care of the time-changing time delay from the Earth's center and the time-changing antenna response pattern; it does NOT account for deviations from the long-wavelength limit at high frequencies. An optional calibration response function can be provided if the output time series is not in strain units.
[in,out] | target | Time series to inject strain into. |
[in] | hplus | Time series with plus-polarization gravitational waveform. |
[in] | hcross | Time series with cross-polarization gravitational waveform. |
[in] | ra | Right ascension of the source (radians). |
[in] | dec | Declination of the source (radians). |
[in] | psi | Polarization angle of the source (radians). |
[in] | detector | Detector to use when computing strain. |
[in] | response | Response function to use, or NULL if none. |
0 | Success. |
<0 | Failure. |
Definition at line 1955 of file LALSimulation.c.
int XLALSimInjectLWLDetectorStrainREAL4TimeSeries | ( | REAL4TimeSeries * | target, |
const REAL4TimeSeries * | hplus, | ||
const REAL4TimeSeries * | hcross, | ||
double | ra, | ||
double | dec, | ||
double | psi, | ||
LALDetector * | detector, | ||
const COMPLEX8FrequencySeries * | response | ||
) |
Computes strain for a detector and injects into target time series.
This routine takes care of the time-changing time delay from the Earth's center and the time-changing antenna response pattern; it does NOT account for deviations from the long-wavelength limit at high frequencies. An optional calibration response function can be provided if the output time series is not in strain units.
[in,out] | target | Time series to inject strain into. |
[in] | hplus | Time series with plus-polarization gravitational waveform. |
[in] | hcross | Time series with cross-polarization gravitational waveform. |
[in] | ra | Right ascension of the source (radians). |
[in] | dec | Declination of the source (radians). |
[in] | psi | Polarization angle of the source (radians). |
[in] | detector | Detector to use when computing strain. |
[in] | response | Response function to use, or NULL if none. |
0 | Success. |
<0 | Failure. |
Definition at line 2180 of file LALSimulation.c.