Detectors

class schnell.detector.Detector(name)[source]

Detector objects encode information about individual GW detectors. The most relevant quantities are:

  • Detector position.
  • Detector transfer function.
  • Unit vectors in arm directions.
  • Detector response tensor.
  • Noise PSDs.

Baseline Detector objects serve only as a superclass for all other detector types. Do not use them.

get_Fp(t, f, e_p, e_x, nv)[source]

Compute the quantity:

\[F^p(f,\hat{n}) = a^{ij}e^p_{ij}\exp(i2\pi f\hat{n} {\bf x})\]

(i.e. Eq. 12 of the companion paper).

Parameters:
  • t – array of size N_t containing observing times (in s).
  • f – array of size N_f containing frequencies (in Hz).
  • ep – array of shape [3, 3, N_pix] containing the “+” polarization tensor at N_pix different sky positions.
  • ex – same as ep for the “x” polarization tensor.
  • nv – array of shape [3, N_pix] containing the unit vector pointing in the direction of N_pix sky positions.
Returns:

2 arrays of shape [N_t, N_f, N_pix] containing \(F^+\) and \(F^\times\) as a function of time, frequency and sky position.

Return type:

array_like

get_position(t)[source]

Returns a 2D array containing the 3D position of the detector at a series of times. The output array has shape [3, N_t], where N_t is the size of t.

Parameters:t – time of observation (in seconds).
Returns:detector position (in m) as a function of time.
Return type:array_like
get_transfer(u, f, nv)[source]

Returns the detector transfer function as a funciton of position, frequency and sky coordinates.

Parameters:
  • u – 2D array of size [3, N_t] containing the unit vector pointing along one of the detector arms at N_t different time intervals.
  • f – 1D array of frequencies (in Hz).
  • nv – 2D array of shape [3, N_pix] containining the normalized coordinates of N_pix points in the celestial sphere.
Returns:

array of shape [N_t, N_f, N_pix] containing the transfer function as a function of time, frequency and sky position.

Return type:

array_like

get_uu_vv(t)[source]

Returns the outer product of the detector arm unit vectors as a function of time.

Parameters:t – array of size N_t containing different observing times (in s).
Returns:2 arrays of shape [3, 3, N_t] containing the outer products of the unit vectors pointing in the directions of the two detector arms.
Return type:array_like
psd(f)[source]

Returns noise PSD as a function of frequency.

Parameters:f – array of frequencies (in Hz).
Returns:array of PSD values in units of 1/Hz.
Return type:array_like
class schnell.detector.GroundDetector(name, lat, lon, alpha, fname_psd, aperture=90)[source]

GroundDetector objects represent detectors located at fixed position on Earth.

Parameters:
  • name – detector name.
  • lat – latitude in degrees.
  • lon – longitude in degrees.
  • alpha – orientation angle, defined as the angle between the vertex bisector and the local parallel. In degrees.
  • fname_psd – path to file containing the detector’s noise curve. The file should contain two columns, corresponding to the frequency (in Hz) and the corresponding value of the strain-level noise (in units of Hz:math:^{-1/2}).
  • aperture – arm aperture angle (in degrees).
get_position(t)[source]

Returns a 2D array containing the 3D position of the detector at a series of times. The output array has shape [3, N_t], where N_t is the size of t.

Note

We assume the Earth is a sphere of radius 6371 km that performs a full rotation every 24 h exactly.

Parameters:t – time of observation (in seconds).
Returns:detector position (in m) as a function of time.
Return type:array_like
get_u_v(t)[source]

Returns unit vectors in the directions of the detector arms as a function of time.

Parameters:t – array of size N_t containing different observing times (in s).
Returns:2 arrays of shape [3, N_t] containing the arm unit vectors.
Return type:array_like
class schnell.detector.GroundDetectorTriangle(name, lat, lon, fname_psd, detector_id, beta0_deg=0, arm_length_km=10.0)[source]

GroundDetectorTriangle objects represent detectors in a triangular configureation located at fixed position on Earth (e.g. the Einstein Telescope).

Parameters:
  • name – detector name.
  • lat – latitude of the triangle’s barycenter in degrees.
  • lon – longitude in degrees.
  • fname_psd – path to file containing the detector’s noise curve. The file should contain two columns, corresponding to the frequency (in Hz) and the corresponding value of the strain-level noise (in units of Hz:math:^{-1/2}).
  • detector_id – detector number (0, 1 or 2).
  • beta0_deg – orientation angle, defined as the angle between the vertex with id 0 and the local meridian.
  • arm_length_km – arm length in km.
get_position(t)[source]

Returns a 2D array containing the 3D position of the detector at a series of times. The output array has shape [3, N_t], where N_t is the size of t.

Note

We assume the Earth is a sphere of radius 6371 km that performs a full rotation every 24 h exactly.

Parameters:t – time of observation (in seconds).
Returns:detector position (in m) as a function of time.
Return type:array_like
get_u_v(t)[source]

Returns unit vectors in the directions of the detector arms as a function of time.

Parameters:t – array of size N_t containing different observing times (in s).
Returns:2 arrays of shape [3, N_t] containing the arm unit vectors.
Return type:array_like
class schnell.detector.LISADetector(detector_id, is_L5Gm=False, static=False)[source]

LISADetector objects can be used to describe the properties of the LISA network.

Parameters:
  • detector_id – detector number (0, 1 or 2).
  • is_L5Gm (bool) – whether the arm length should be 5E9 meters (otherwise 2.5E9 meters will be assumed) (default False).
  • static (bool) – if True, a static configuration corresponding to a perfect equilateral triangle in the x-y plane will be assumed.
get_position(t)[source]

Returns a 2D array containing the 3D position of the detector at a series of times. The output array has shape [3, N_t], where N_t is the size of t.

Note

The spacecraft orbits are calculated using Eq. 1 of gr-qc/0311069.

Parameters:t – time of observation (in seconds).
Returns:detector position (in m) as a function of time.
Return type:array_like
get_u_v(t)[source]

Returns unit vectors in the directions of the detector arms as a function of time.

Parameters:t – array of size N_t containing different observing times (in s).
Returns:2 arrays of shape [3, N_t] containing the arm unit vectors.
Return type:array_like
psd(f)[source]

Returns noise PSD as a function of frequency. Uses Eq. 55 from arXiv:1908.00546.

Parameters:f – array of frequencies (in Hz).
Returns:array of PSD values in units of 1/Hz.
Return type:array_like
psd_A(f)[source]

Returns auto-noise PSD as a function of frequency. Uses Eq. 55 from arXiv:1908.00546.

Parameters:f – array of frequencies (in Hz).
Returns:array of PSD values in units of 1/Hz.
Return type:array_like
psd_X(f)[source]

Returns cross-noise PSD as a function of frequency. Uses Eq. 56 from arXiv:1908.00546.

Parameters:f – array of frequencies (in Hz).
Returns:array of PSD values in units of 1/Hz.
Return type:array_like