19 #ifndef _DETECTORSTATES_H
20 #define _DETECTORSTATES_H
38 #include <lal/PulsarDataTypes.h>
39 #include <lal/SeqFactories.h>
40 #include <lal/LALBarycenter.h>
41 #include <lal/SFTfileIO.h>
47 #define DETECTORSTATES_ENULL 1
48 #define DETECTORSTATES_ENONULL 2
49 #define DETECTORSTATES_EINPUT 3
50 #define DETECTORSTATES_EMEM 4
51 #define DETECTORSTATES_EXLAL 5
52 #define DETECTORSTATES_EIEEE 6
54 #define DETECTORSTATES_MSGENULL "Arguments contained an unexpected null pointer"
55 #define DETECTORSTATES_MSGENONULL "Output pointer is non-NULL"
56 #define DETECTORSTATES_MSGEINPUT "Invalid input"
57 #define DETECTORSTATES_MSGEMEM "Out of memory. Bad."
58 #define DETECTORSTATES_MSGEXLAL "XLAL function call failed"
59 #define DETECTORSTATES_MSGEIEEE "Floating point failure"
67 typedef struct tagSymmTensor3 {
80 typedef struct tagSymmTensor3d {
96 typedef struct tagDetectorArm {
108 typedef struct tagMultiLALDetector {
115 typedef struct tagMultiNoiseFloor {
127 typedef struct tagDetectorState {
142 typedef struct tagDetectorStateSeries {
154 typedef struct tagMultiDetectorStateSeries {
LIGOTimeGPSVector * timestamps
int XLALParseMultiNoiseFloorMapped(MultiNoiseFloor *multiNoiseFloor, const LALStringVector *multiNoiseFloorDetNames, const LALStringVector *sqrtSX, const LALStringVector *sqrtSXDetNames)
Parse string-vectors (typically input by user) of N detector noise-floors for detectors ,...
int XLALTensorSquareVector3(SymmTensor3 *vxv, REAL4 v[3])
Compute the "squared-tensor" v x v for given vector v, the result is returned in a "detectorTensor" s...
int XLALAddSymmTensor3s(SymmTensor3 *sum, const SymmTensor3 *aT, const SymmTensor3 *bT)
Convenience function for adding two SymmTensor3s: aT + bT NOTE: it is safe to have sum point to the s...
DetectorStateSeries * XLALCreateDetectorStateSeries(UINT4 length)
Create a DetectorStateSeries with length entries.
int XLALParseMultiLALDetector(MultiLALDetector *detInfo, const LALStringVector *detNames)
Parse string-vectors (typically input by user) of N detector-names for detectors ,...
void XLALDestroyMultiDetectorStateSeries(MultiDetectorStateSeries *mdetStates)
Helper function to get rid of a multi-IFO DetectorStateSeries Note, this is "NULL-robust" in the sens...
int XLALMultiLALDetectorFromMultiSFTs(MultiLALDetector *multiIFO, const MultiSFTVector *multiSFTs)
Extract multi detector-info from a given multi SFTCatalog view.
MultiDetectorStateSeries * XLALGetMultiDetectorStates(const MultiLIGOTimeGPSVector *multiTS, const MultiLALDetector *multiIFO, const EphemerisData *edat, REAL8 tOffset)
Get the detector-time series for the given MultiLIGOTimeGPSVector.
void XLALDestroyDetectorStateSeries(DetectorStateSeries *detStates)
Get rid of a DetectorStateSeries.
int XLALSymmetricTensorProduct3(SymmTensor3 *vxw, REAL4 v[3], REAL4 w[3])
Compute the symmetrized tensor product T = v x w + w x v.
REAL4 XLALContractSymmTensor3s(const SymmTensor3 *T1, const SymmTensor3 *T2)
Contract two symmetric tensors over both indices T1 : T2.
MultiDetectorStateSeries * XLALGetMultiDetectorStatesFromMultiSFTs(const MultiSFTVector *multiSFTs, const EphemerisData *edat, REAL8 tOffset)
Get the 'detector state' (ie detector-tensor, position, velocity, etc) for the given multi-vector of ...
int XLALSubtractSymmTensor3s(SymmTensor3 *diff, const SymmTensor3 *aT, const SymmTensor3 *bT)
Convenience function for subtracting two SymmTensor3s: aT - bT NOTE: it is safe to have diff point to...
DetectorStateSeries * XLALGetDetectorStates(const LIGOTimeGPSVector *timestamps, const LALDetector *detector, const EphemerisData *edat, REAL8 tOffset)
Get the 'detector state' (ie detector-tensor, position, velocity, etc) for the given vector of timest...
int XLALMultiLALDetectorFromMultiSFTCatalogView(MultiLALDetector *multiIFO, const MultiSFTCatalogView *multiView)
Extract multi detector-info from a given multi SFTCatalog view.
int XLALScaleSymmTensor3(SymmTensor3 *mult, const SymmTensor3 *aT, REAL4 factor)
Convenience function for multiplying a SymmTensor3 by a scalar factor.
DetectorArm Detector3Arms[3]
used to allow functions some type/size checking
int XLALParseMultiNoiseFloor(MultiNoiseFloor *multiNoiseFloor, const LALStringVector *sqrtSX, UINT4 numDetectors)
Parse string-vectors (typically input by user) of N detector noise-floors for detectors ,...
#define PULSAR_MAX_DETECTORS
maximal number of detectors we can handle (for static arrays of detector quantities)
Struct containing pre-computed quantites describing a single detector arm: unit-vector along detector...
SymmTensor3 basisT
arm "basis-tensor" (n x n)
REAL4 armlength_c
armlengths in seconds L / c
State-info about position, velocity and LMST of a detector together with corresponding EarthState.
EarthState earthState
EarthState information.
Detector3Arms detArms
include up to three arms to allow describing LISA
LIGOTimeGPS tGPS
GPS timestamps corresponding to this entry.
SymmTensor3 detT
Detector-tensor components in SSB-fixed, Cartesian coordinates.
REAL8 LMST
local mean sidereal time at the detector-location in radians
Timeseries of DetectorState's, representing the detector-info at different timestamps.
REAL8 deltaT
timespan centered on each timestamp (e.g.
CoordinateSystem system
The coordinate system used for detector's position/velocity and detector-tensor.
DetectorState * data
array of DetectorState entries
UINT4 length
total number of entries
LALDetector detector
detector-info corresponding to this timeseries
Basic output structure of LALBarycenterEarth.c.
This structure contains all information about the center-of-mass positions of the Earth and Sun,...
A vector of 'timestamps' of type LIGOTimeGPS.
Multi-IFO time-series of DetectorStates.
UINT4 length
number of detectors
DetectorStateSeries ** data
vector of pointers to DetectorStateSeries
array of detectors definitions 'LALDetector'
UINT4 length
number of detectors
A collection of (multi-IFO) LIGOTimeGPSVector time-stamps vectors.
array of detector-specific 'noise floors' (ie PSD values), assumed constant over the frequency-band o...
UINT4 length
number of detectors
A multi-SFT-catalogue "view": a multi-IFO vector of SFT-catalogs.
A collection of SFT vectors – one for each IFO in a multi-IFO search.
A symmetric 3x3 tensor (such as detector-tensors), storing only the upper triangle.
A symmetric 3x3 tensor (such as detector-tensors), storing only the upper triangle,...