12 #define LAL_DELTAGAL (0.473477302)
13 #define LAL_ALPHAGAL (3.366032942)
14 #define LAL_LGAL (0.576)
15 #define LAL_IEARTH 0.409092600600582871467239393761915655 // Earth inclination (2000),radians : LALConstants.h
17 #define LAL_REARTH_SI 6378136.6 // Earth equatorial radius : LALConstants.h
18 #define LAL_EARTHFLAT (0.00335281)
19 #define LAL_HSERIES (0.0001) // value H below which we expand sqrt(1-H)
38 double sinB, cosB, sinL, cosL;
39 double sinD, sinA, cosA;
43 sinB = sin( ilatitude );
44 cosB = cos( ilatitude );
49 sinD = cosB*cosDGal*sinL + sinB*sinDGal;
51 cosA = sinB*cosDGal - cosB*sinL*sinDGal;
54 olatitude = asin( sinD );
81 double sinD, cosD, sinA, cosA;
82 double sinB, sinL, cosL;
86 sinD = sin( ilatitude );
87 cosD = cos( ilatitude );
92 sinB = cosD*cosDGal*cosA + sinD*sinDGal;
93 sinL = sinD*cosDGal - cosD*cosA*sinDGal;
97 olatitude = asin( sinB );
123 double sinB, cosB, sinL, cosL;
124 double sinD, sinA, cosA;
127 sinB = sin( ilatitude );
128 cosB = cos( ilatitude );
129 sinL = sin( ilongitude );
130 cosL = cos( ilongitude );
133 sinD = cosB*sinL*sinE + sinB*cosE;
134 sinA = cosB*sinL*cosE - sinB*sinE;
138 olatitude = asin( sinD );
139 olongitude = atan2( sinA, cosA );
142 if ( olongitude < 0.0 )
143 olongitude += TMath::TwoPi();
144 if ( olongitude > 360. )
145 olongitude -= TMath::TwoPi();
164 double sinD, cosD, sinA, cosA;
165 double sinB, sinL, cosL;
168 sinD = sin( ilatitude );
169 cosD = cos( ilatitude );
170 sinA = sin( ilongitude );
171 cosA = cos( ilongitude );
174 sinB = sinD*cosE - cosD*sinA*sinE;
175 sinL = cosD*sinA*cosE + sinD*sinE;
179 olatitude = asin( sinB );
180 olongitude = atan2( sinL, cosL );
183 if ( olongitude < 0.0 )
184 olongitude += TMath::TwoPi();
185 if ( olongitude > 360. )
186 olongitude -= TMath::TwoPi();
209 cosP = cos( latitude );
210 sinP = sin( latitude );
211 c = sqrt( 1.0 / ( cosP*cosP + fFac*sinP*sinP ) );
217 X = x = c*cos( longitude );
218 Y = y = c*sin( longitude );
230 r = sqrt( x*x + y*y + s*s );
253 cout <<
"A vector of length 0 or 1 is already sorted" << endl;
274 if(k<j && data[k]<data[k+1])
303 pi = sqrt( x*x + y*y );
305 longitude = atan2( y, x );
307 latitude = TMath::PiOver2();
310 latitude = -TMath::PiOver2();
318 double za,
e,
f, p, q, d,
v,
w,
g,
h,
t,
phi, tanP;
324 p = ( 4.0/3.0 )*( pi*pi + za*za - f2*f2 );
326 d = p*p*p + pi*pi*q*q;
328 v = pow( sqrt( d ) + pi*q, 1.0/3.0 );
329 v -= pow( sqrt( d ) - pi*q, 1.0/3.0 );
331 v = 2.0*sqrt( -p )*cos( acos( pi*q/( p*sqrt( -p ) ) )/3.0 );
333 w = sqrt( e*e + v*pi );
335 h = pi*( f*pi - v*
g )/( g*g*w );
339 t = g*( 0.5*h + 0.375*h*h + 0.3125*h*h*
h );
341 t = g*( sqrt( 1.0 + h ) - 1.0 );
352 tanP = tanPFac[0]*tanPFac[3];
353 tanP *= tanPFac[1]*tanPFac[2];
360 if ( z < 0.0 ) latitude *= -1.0;
361 longitude = atan2( y, x );
362 elevation = ( pi - t/
pi )*cos( phi );
363 elevation += (
fabs( z ) - f1 )*sin( phi );
371 double cosAlt=cos(Alt);
double sinAlt=sin(Alt);
372 double cosAz=cos(Az);
double sinAz=sin(Az);
373 double cosLat=cos(Lat);
double sinLat=sin(Lat);
374 double cosLon=cos(Lon);
double sinLon=sin(Lon);
376 double uNorth = cosAlt * cosAz;
377 double uEast = cosAlt * sinAz;
379 double uRho = - sinLat * uNorth + cosLat * sinAlt;
382 u[0] = cosLon * uRho - sinLon * uEast;
383 u[1] = sinLon * uRho + cosLon * uEast;
384 u[2] = cosLat * uNorth + sinLat * sinAlt;
398 olongitude = ilongitude>180 ? ilongitude-360 :
ilongitude;
399 olatitude=-(ilatitude-90);
405 olongitude = ilongitude<0 ? ilongitude+360 :
ilongitude;
406 olatitude=-(ilatitude-90);
415 olatitude=-(ilatitude-90);
424 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<< "\t layers : "<< nLAYERS<< "\t dF(hz) : "<< dF<< "\t 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
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)