1 #ifndef _UCORRELATOR_DELTA_T_H 2 #define _UCORRELATOR_DELTA_T_H 4 #include "AntennaPositions.h" 5 #include "AnitaGeomTool.h" 11 #define DEG2RAD (M_PI/180.); 21 double c1 = 1.45676e-8;
22 double c2 = 5.01452e-6;
24 if(AnitaVersion::get() == 4){
30 double totalAngle2=theta*theta+phidiff*phidiff;
31 if (totalAngle2>50*50)
return (50*50*50*50 * c1 - 50*50 * c2);
33 double delayTime=totalAngle2 * totalAngle2 * c1 - totalAngle2 * c2;
45 double th = theta * DEG2RAD;
47 double ph1_deg = (phi- ap->
phiAnt[pol][ant1]) ;
48 double ph1 = ph1_deg * DEG2RAD;
49 double r1 = ap->
rAnt[pol][ant1];
51 int whichShift = simulationTimeShift ? -1 : 1;
52 double tshift = includeTimeShift ? ((pol==
AnitaPol::kHorizontal) ? 0 : whichShift * (r1 - ap->
rAnt[pol^1][ant1])*cos(ph1) * 1e9/C_LIGHT) : 0;
54 double part1=ap->
zAnt[pol][ant1]*tan(th) - r1 * cos(ph1);
56 double geomDelay=1e9*((cos(th) * part1)/C_LIGHT);
59 if (includeGroupDelay)
64 return geomDelay + tshift;
70 double th = theta * DEG2RAD;
72 double ph1_deg = (phi- ap->
phiAnt[pol][ant1]) ;
73 double ph2_deg = (phi- ap->
phiAnt[pol][ant2]) ;
74 double ph1 = ph1_deg * DEG2RAD;
75 double ph2 = ph2_deg * DEG2RAD;
77 double part1=ap->
zAnt[pol][ant1]*tan(th) - ap->
rAnt[pol][ant1] * cos(ph1);
78 double part2=ap->
zAnt[pol][ant2]*tan(th) - ap->
rAnt[pol][ant2] * cos(ph2);
80 double geomDelay=1e9*((cos(th) * (part1 - part2))/C_LIGHT);
83 if (includeGroupDelay)
99 const int nphi = cache->nphi;
100 double part1=ap->
zAnt[pol][ant1]*cache->tan_theta[thetabin] - ap->
rAnt[pol][ant1] * cache->cos_phi[2*(phibin + nphi * ant1) + pol];
101 double part2=ap->
zAnt[pol][ant2]*cache->tan_theta[thetabin] - ap->
rAnt[pol][ant2] * cache->cos_phi[2*(phibin + nphi * ant2) + pol];
103 double geomDelay=(1.e9/C_LIGHT)*(cache->cos_theta[thetabin] * (part1 - part2));
106 if (includeGroupDelay)
110 double theta_deg = cache->theta[thetabin];
double getDeltaTtoCenter(int ant1, double phi, double theta, AnitaPol::AnitaPol_t pol, bool includeGroupDelay=false, bool includeTimeShift=true, bool simulationTimeShift=false)
double getAntennaGroupDelay(double phidiff, double theta)
double getDeltaT(int ant1, int ant2, double phi, double theta, AnitaPol::AnitaPol_t pol, bool includeGroupDelay=false)
double getDeltaTFast(int ant1, int ant2, int phibin, int thetabin, AnitaPol::AnitaPol_t pol, const TrigCache *cache, bool includeGroupDelay=false)
double zAnt[2][NUM_SEAVEYS]
double rAnt[2][NUM_SEAVEYS]
double phiAnt[2][NUM_SEAVEYS]
enum AnitaPol::EAnitaPol AnitaPol_t
Polarisation enumeration.