30 #define LAL_DELTAGAL (0.473477302) 31 #define LAL_ALPHAGAL (3.366032942) 32 #define LAL_LGAL (0.576) 33 #define LAL_IEARTH 0.409092600600582871467239393761915655 // Earth inclination (2000),radians : LALConstants.h 35 #define LAL_REARTH_SI 6378136.6 // Earth equatorial radius : LALConstants.h 36 #define LAL_EARTHFLAT (0.00335281) 37 #define LAL_HSERIES (0.0001) // value H below which we expand sqrt(1-H) 56 double sinB, cosB, sinL, cosL;
57 double sinD, sinA, cosA;
61 sinB = sin( ilatitude );
62 cosB = cos( ilatitude );
67 sinD = cosB*cosDGal*sinL + sinB*sinDGal;
69 cosA = sinB*cosDGal - cosB*sinL*sinDGal;
72 olatitude = asin( sinD );
99 double sinD, cosD, sinA, cosA;
100 double sinB, sinL, cosL;
104 sinD = sin( ilatitude );
105 cosD = cos( ilatitude );
110 sinB = cosD*cosDGal*cosA + sinD*sinDGal;
111 sinL = sinD*cosDGal - cosD*cosA*sinDGal;
115 olatitude = asin( sinB );
141 double sinB, cosB, sinL, cosL;
142 double sinD, sinA, cosA;
145 sinB = sin( ilatitude );
146 cosB = cos( ilatitude );
147 sinL = sin( ilongitude );
148 cosL = cos( ilongitude );
151 sinD = cosB*sinL*sinE + sinB*cosE;
152 sinA = cosB*sinL*cosE - sinB*sinE;
156 olatitude = asin( sinD );
157 olongitude = atan2( sinA, cosA );
160 if ( olongitude < 0.0 )
161 olongitude += TMath::TwoPi();
162 if ( olongitude > 360. )
163 olongitude -= TMath::TwoPi();
182 double sinD, cosD, sinA, cosA;
183 double sinB, sinL, cosL;
186 sinD = sin( ilatitude );
187 cosD = cos( ilatitude );
188 sinA = sin( ilongitude );
189 cosA = cos( ilongitude );
192 sinB = sinD*cosE - cosD*sinA*sinE;
193 sinL = cosD*sinA*cosE + sinD*sinE;
197 olatitude = asin( sinB );
198 olongitude = atan2( sinL, cosL );
201 if ( olongitude < 0.0 )
202 olongitude += TMath::TwoPi();
203 if ( olongitude > 360. )
204 olongitude -= TMath::TwoPi();
227 cosP = cos( latitude );
228 sinP = sin( latitude );
229 c = sqrt( 1.0 / ( cosP*cosP + fFac*sinP*sinP ) );
235 X = x = c*cos( longitude );
236 Y = y = c*sin( longitude );
248 r = sqrt( x*x + y*y + s*s );
271 cout <<
"A vector of length 0 or 1 is already sorted" << endl;
292 if(k<j && data[k]<data[k+1])
321 pi = sqrt( x*x + y*y );
323 longitude = atan2( y, x );
325 latitude = TMath::PiOver2();
328 latitude = -TMath::PiOver2();
336 double za,
e,
f, p, q, d,
v,
w,
g,
h,
t,
phi, tanP;
342 p = ( 4.0/3.0 )*( pi*pi + za*za - f2*f2 );
344 d = p*p*p + pi*pi*q*q;
346 v = pow( sqrt( d ) + pi*q, 1.0/3.0 );
347 v -= pow( sqrt( d ) - pi*q, 1.0/3.0 );
349 v = 2.0*sqrt( -p )*cos( acos( pi*q/( p*sqrt( -p ) ) )/3.0 );
351 w = sqrt( e*e + v*pi );
353 h = pi*( f*pi - v*
g )/( g*g*w );
357 t = g*( 0.5*h + 0.375*h*h + 0.3125*h*h*
h );
359 t = g*( sqrt( 1.0 + h ) - 1.0 );
370 tanP = tanPFac[0]*tanPFac[3];
371 tanP *= tanPFac[1]*tanPFac[2];
378 if ( z < 0.0 ) latitude *= -1.0;
379 longitude = atan2( y, x );
380 elevation = ( pi - t/
pi )*cos( phi );
381 elevation += (
fabs( z ) - f1 )*sin( phi );
389 double cosAlt=cos(Alt);
double sinAlt=sin(Alt);
390 double cosAz=cos(Az);
double sinAz=sin(Az);
391 double cosLat=cos(Lat);
double sinLat=sin(Lat);
392 double cosLon=cos(Lon);
double sinLon=sin(Lon);
394 double uNorth = cosAlt * cosAz;
395 double uEast = cosAlt * sinAz;
397 double uRho = - sinLat * uNorth + cosLat * sinAlt;
400 u[0] = cosLon * uRho - sinLon * uEast;
401 u[1] = sinLon * uRho + cosLon * uEast;
402 u[2] = cosLat * uNorth + sinLat * sinAlt;
416 olongitude = ilongitude>180 ? ilongitude-360 :
ilongitude;
417 olatitude=-(ilatitude-90);
423 olongitude = ilongitude<0 ? ilongitude+360 :
ilongitude;
424 olatitude=-(ilatitude-90);
433 olatitude=-(ilatitude-90);
442 olatitude=-(ilatitude-90);
wavearray< double > t(hp.size())
void EquatorialToEcliptic(double ilongitude, double ilatitude, double &olongitude, double &olatitude)
static double g(double e)
void CwbToCelestial(double ilongitude, double ilatitude, double &olongitude, double &olatitude, double gps=0)
wavearray< double > a(hp.size())
cout<< endl;cout<< "ts size = "<< ts.size()<< " ts rate = "<< ts.rate()<< endl;tf.Forward(ts, wdm);int levels=tf.getLevel();cout<< "tf size = "<< tf.size()<< endl;double dF=tf.resolution();double dT=1./(2 *dF);cout<< "rate(hz) : "<< RATE<< "\ layers : "<< nLAYERS<< "\ dF(hz) : "<< dF<< "\ dT(ms) : "<< dT *1000.<< endl;int itime=TIME_PIXEL_INDEX;int ifreq=FREQ_PIXEL_INDEX;int index=(levels+1) *itime+ifreq;double time=itime *dT;double freq=(ifreq >0) ? ifreq *dF :dF/4;cout<< endl;cout<< "PIXEL TIME = "<< time<< " sec "<< endl;cout<< "PIXEL FREQ = "<< freq<< " Hz "<< endl;cout<< endl;wavearray< double > x
cout<< "SNR "<< xsnr<< endl;wavearray< double > f
void GeocentricToGeodetic(double X, double Y, double Z, double &latitude, double &longitude, double &elevation)
double RA2phi(double ph, double gps)
void EclipticToEquatorial(double ilongitude, double ilatitude, double &olongitude, double &olatitude)
void EquatorialToGalactic(double ilongitude, double ilatitude, double &olongitude, double &olatitude)
double phi2RA(double ph, double gps)
void CelestialToCwb(double ilongitude, double ilatitude, double &olongitude, double &olatitude, double gps=0)
void GeodeticToGeocentric(double latitude, double longitude, double elevation, double &X, double &Y, double &Z)
double fabs(const Complex &x)
void CwbToGeographic(double ilongitude, double ilatitude, double &olongitude, double &olatitude)
void HeapSort(double *data, double length)
void GalacticToEquatorial(double ilongitude, double ilatitude, double &olongitude, double &olatitude)
void GeographicToCwb(double ilongitude, double ilatitude, double &olongitude, double &olatitude)
void GetCartesianComponents(double u[3], double Alt, double Az, double Lat, double Lon)