20 #ifndef _PULSARCROSSCORR_H
21 #define _PULSARCROSSCORR_H
37 #include <sys/types.h>
50 #include <lal/AVFactories.h>
52 #include <lal/DetectorSite.h>
53 #include <lal/LALDatatypes.h>
54 #include <lal/LALHough.h>
55 #include <lal/RngMedBias.h>
56 #include <lal/LALRunningMedian.h>
57 #include <lal/Velocity.h>
58 #include <lal/Statistics.h>
59 #include <lal/ComputeFstat.h>
60 #include <lal/SFTfileIO.h>
61 #include <lal/NormalizeSFTRngMed.h>
62 #include <lal/LALInitBarycenter.h>
63 #include <lal/SFTClean.h>
64 #include <gsl/gsl_cdf.h>
65 #include <lal/FrequencySeries.h>
66 #include <lal/Sequence.h>
70 #define PULSARCROSSCORR_ENULL 1
71 #define PULSARCROSSCORR_ENONULL 2
72 #define PULSARCROSSCORR_EVAL 3
74 #define PULSARCROSSCORR_MSGENULL "Null pointer"
75 #define PULSARCROSSCORR_MSGENONULL "Non-null pointer"
76 #define PULSARCROSSCORR_MSGEVAL "Invalid value"
83 typedef enum tagDetChoice {
91 typedef struct tagSkyPatchesInfo {
99 typedef struct tagSFTDetectorInfo {
108 typedef struct tagCrossCorrAmps {
114 typedef struct tagCrossCorrBeamFn {
119 typedef struct tagSFTListElement {
124 typedef struct tagPSDListElement {
129 typedef struct tagREAL8ListElement {
134 typedef struct tagCrossCorrBeamFnListElement {
void LALCalculateEstimators(LALStatus *status, REAL8 *aplussq1, REAL8 *aplussq2, REAL8 *acrossq1, REAL8 *acrossq2, COMPLEX16Vector *yalpha, COMPLEX16Vector *gplus, COMPLEX16Vector *gcross, REAL8Vector *sigmaAlphasq)
void LALCalculateAveUalpha(LALStatus *status, COMPLEX16 *out, REAL8 phiI, REAL8 phiJ, REAL8 freqI, REAL8 freqJ, REAL8 deltaF, CrossCorrBeamFn beamfnsI, CrossCorrBeamFn beamfnsJ, REAL8 sigmasq)
Calculate pair weights (U_alpha) for an average over Psi and cos(iota)
void LALCreateSFTPairsIndicesFrom2SFTvectors(LALStatus *status, INT4VectorSequence **out, SFTListElement *in, REAL8 lag, INT4 listLength, DetChoice detChoice, BOOLEAN autoCorrelate)
void LALCalculateSigmaAlphaSq(LALStatus *status, REAL8 *out, UINT4 bin1, UINT4 bin2, REAL8FrequencySeries *psd1, REAL8FrequencySeries *psd2)
void LALGetSignalFrequencyInSFT(LALStatus *status, REAL8 *out, LIGOTimeGPS *epoch, PulsarDopplerParams *dopp, REAL8Vector *vel)
Calculate the frequency of the SFT at a given epoch.
void LALCorrelateSingleSFTPair(LALStatus *status, COMPLEX16 *out, COMPLEX8FrequencySeries *sft1, COMPLEX8FrequencySeries *sft2, REAL8FrequencySeries *psd1, REAL8FrequencySeries *psd2, UINT4 bin1, UINT4 bin2)
Correlate a single pair of SFT at a parameter space point.
void LALCalculateUalpha(LALStatus *status, COMPLEX16 *out, CrossCorrAmps amplitudes, REAL8 phiI, REAL8 phiJ, REAL8 freqI, REAL8 freqJ, REAL8 deltaF, CrossCorrBeamFn beamfnsI, CrossCorrBeamFn beamfnsJ, REAL8 sigmasq, REAL8 *psi, COMPLEX16 *gplus, COMPLEX16 *gcross)
Calculate pair weights (U_alpha) for the general case.
void LALGetSignalPhaseInSFT(LALStatus *status, REAL8 *out, LIGOTimeGPS *epoch, PulsarDopplerParams *dopp, REAL8Vector *pos)
Get signal phase at a given epoch.
void LALCalculateCrossCorrPower(LALStatus *status, REAL8 *out, COMPLEX16Vector *yalpha, COMPLEX16Vector *ualpha)
void LALNormaliseCrossCorrPower(LALStatus *status, REAL8 *out, COMPLEX16Vector *ualpha, REAL8Vector *sigmaAlphasq)
struct tagCrossCorrBeamFnListElement * nextBeamfn
struct tagPSDListElement * nextPSD
Type containing the 'Doppler-parameters' affecting the time-evolution of the phase.
struct tagREAL8ListElement * nextVal
COMPLEX8FrequencySeries * sft
struct tagSFTListElement * nextSFT
struct holding info about skypoints