LALPulsar  6.1.0.1-89842e6
LISAspecifics.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2006 Reinhard Prix
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  * \author Reinhard Prix
22  * \date 2006
23  * \file
24  * \ingroup lalpulsar_general
25  * \brief Header-file defining the API for the LISA-specific functions
26  *
27  */
28 
29 #ifndef _LISASPECIFICS_H /* Double-include protection. */
30 #define _LISASPECIFICS_H
31 
32 /* C++ protection. */
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 /*---------- exported INCLUDES ----------*/
38 #include <lal/LALDetectors.h>
39 #include <lal/LALDatatypes.h>
40 #include <lal/DetectorStates.h>
41 #include <lal/LALComputeAM.h>
42 
43 /*---------- exported DEFINES ----------*/
44 
45 #define LISA_TIME_ORIGIN 700000000; /* ad-hoc setting for MLDC 't=0' to GPS for Tue Mar 12 20:26:27 GMT 2002 */
46 
47 /*---------- exported types ----------*/
48 /** Translate TDI arm indices to C-indexing */
49 typedef enum tagLISAarmT {
50  LISA_ARM1 = 0,
52  LISA_ARM3
54 
55 
56 /**
57  * The 'detector tensor' for a GW-detector: symmetric 3x3 matrix, storing only the upper triangle.
58  * The coordinate-system is SSB-fixed Cartesian coordinates, in particular EQUATORIAL coords for
59  * Earth-based detectors and ECLIPTIC coords for LISA.
60  */
61 typedef struct tagCmplxDetectorTensor {
62  SymmTensor3 re; /**< tensor holding real-parts of all components */
63  SymmTensor3 im; /**< tensor holding imaginary-parts of all components */
65 
66 /**
67  * Convenience container for precomputed pi f L/c and skyposition vector
68  */
69 typedef struct tagFreqSkypos_t {
70  REAL4 Freq; /**< signal frequency */
71  REAL8 skyposV[3]; /**< unit vector pointing to skyposition of source */
72  SymmTensor3 ePlus; /**< ePlus polarization tensor (skypos-dependent) */
73  SymmTensor3 eCross; /**< eCross polarization tensor (skypos-dependent) */
74 } FreqSkypos_t;
75 
76 /*---------- exported Global variables ----------*/
77 /* empty init-structs for the types defined in here */
78 
79 /*---------- exported prototypes [API] ----------*/
81 int XLALregisterLISAdetectors( const CHAR prefixLetter );
82 
83 int XLALprecomputeLISAarms( DetectorState *detState );
84 
85 int XLALgetLISADetectorTensorLWL( SymmTensor3 *detT, const Detector3Arms detArms, CHAR channelNum );
86 int XLALgetLISADetectorTensorRAA( CmplxDetectorTensor *detT, const Detector3Arms detArms, CHAR channelNum, const FreqSkypos_t *freq_skypos );
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 /* C++ protection. */
92 
93 #endif /* Double-include protection. */
int XLALregisterLISAdetectors(const CHAR prefixLetter)
Set up the LALDetector structs representing LISA X, Y, Z TDI observables.
Definition: LISAspecifics.c:75
LISAarmT
Translate TDI arm indices to C-indexing.
Definition: LISAspecifics.h:49
@ LISA_ARM2
Definition: LISAspecifics.h:51
@ LISA_ARM1
Definition: LISAspecifics.h:50
@ LISA_ARM3
Definition: LISAspecifics.h:52
int XLALprecomputeLISAarms(DetectorState *detState)
Precompute the arm-geometry for LISA, which is later used for assembling the RAA detector-tensor (whi...
int XLALgetLISADetectorTensorRAA(CmplxDetectorTensor *detT, const Detector3Arms detArms, CHAR channelNum, const FreqSkypos_t *freq_skypos)
BOOLEAN XLALisLISAdetector(const LALDetector *det)
Return true if 'det' is a LISA LALDetector struct.
Definition: LISAspecifics.c:65
int XLALgetLISADetectorTensorLWL(SymmTensor3 *detT, const Detector3Arms detArms, CHAR channelNum)
DetectorArm Detector3Arms[3]
used to allow functions some type/size checking
unsigned char BOOLEAN
double REAL8
char CHAR
float REAL4
The 'detector tensor' for a GW-detector: symmetric 3x3 matrix, storing only the upper triangle.
Definition: LISAspecifics.h:61
SymmTensor3 re
tensor holding real-parts of all components
Definition: LISAspecifics.h:62
SymmTensor3 im
tensor holding imaginary-parts of all components
Definition: LISAspecifics.h:63
State-info about position, velocity and LMST of a detector together with corresponding EarthState.
Convenience container for precomputed pi f L/c and skyposition vector.
Definition: LISAspecifics.h:69
SymmTensor3 eCross
eCross polarization tensor (skypos-dependent)
Definition: LISAspecifics.h:73
SymmTensor3 ePlus
ePlus polarization tensor (skypos-dependent)
Definition: LISAspecifics.h:72
REAL4 Freq
signal frequency
Definition: LISAspecifics.h:70
A symmetric 3x3 tensor (such as detector-tensors), storing only the upper triangle.