Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TestGeodeticGeocentric.C
Go to the documentation of this file.
1 //
2 // Test Geodetic to Geocentric
3 // Author : Gabriele Vedovato
4 
5 
6 void printangles(double lt, double lg);
7 
8 
10 
11  double X,Y,Z;
12 
13  //L1
14 /*
15  X=-7.427604192e4; Y=-5.496283721e6; Z=3.224257016e6;
16  double Az = 252.2835; // xArm L1
17  double Az = 162.2835; // yArm L1
18 */
19  //H1
20 
21  X=-2.161414928e6; Y=-3.834695183e6; Z=4.600350224e6;
22  double Az = 324; // xArm H1
23 // double Az = 234; // yArm H1
24 
25  //V1
26 /*
27  X=4.5463741e6; Y=8.429897e5; Z=4.378577e6;
28  double Az = 19.4326; // xArm V1
29  double Az = 289.4326; // yArm V1
30 */
31  //J1
32 // X=-3.7685777e6; Y=3.49218552e6; Z=3.76722999e6;
33  //A1
34 // X=-2.3567784e6; Y=4.8970238e6; Z=-3.3173147e6;
35 
36 
37 
38  int nIFO=4;
39  TString ifo[4]={"H1","L1","V1","J1"};
40  gnetwork gNET(nIFO,ifo);
41  gNET.GetSite("H1");
42  gNET.GetSite("L1");
43  gNET.GetSite("V1");
44  gNET.GetSite("J1");
45 
46 
47  double latitude,longitude,elevation;
48 
49  GeocentricToGeodetic(X,Y,Z,latitude,longitude,elevation);
50 
51  double rad2grad = 180./TMath::Pi();
52  double grad2rad = TMath::Pi()/180.;
53  cout << latitude*rad2grad << " " << longitude*rad2grad << " " << elevation << endl;
54 
55  printangles(latitude*rad2grad, longitude*rad2grad);
56 
57  double uN[3];
58  double Alt = 0;
59  //double Az = 90;
60  GetCartesianComponents( uN, Alt*grad2rad, Az*grad2rad, latitude, longitude);
61  cout << "uN : " << uN[0] << " " << uN[1] << " " << uN[2] << endl;
62  cout << uN[0]*uN[0]+uN[1]*uN[1]+uN[2]*uN[2] << endl;
63 
64  cout << X << " " << Y << " " << Z << endl;
65  GeodeticToGeocentric(latitude,longitude,elevation,X,Y,Z);
66  cout << X << " " << Y << " " << Z << endl;
67 
68  exit(0);
69 }
70 
71 void printangles(double lt, double lg) {
72  char LAT;
73  double lt_t=lt;
74  if(lt_t>0) LAT='N'; else {LAT='S';lt_t=-lt_t;}
75  int lt_d = int(lt_t);
76  int lt_m = int((lt_t-lt_d)*60);
77  float lt_s = (lt_t-lt_d-lt_m/60.)*3600.;
78 
79  char LON;
80  double lg_t=lg;
81 // if(lg_t>180) LON='E'; else {LON='W';lg_t=180-lg_t;}
82  int lg_d = int(lg_t);
83  int lg_m = int((lg_t-lg_d)*60);
84  float lg_s = (lg_t-lg_d-lg_m/60.)*3600.;
85 
86  cout << "LAT: " << LAT << " " << lt_d << ", " << lt_m << ", " << lt_s << " LONG: " << LON << " " << lg_d << ", " << lg_m << ", " << lg_s << endl;
87 }
88 
gnetwork * gNET
double GetSite(TString ifo, TString type="")
Definition: gnetwork.cc:167
TString("c")
char ifo[NIFO_MAX][8]
#define nIFO
void TestGeodeticGeocentric()
void GeocentricToGeodetic(double X, double Y, double Z, double &latitude, double &longitude, double &elevation)
Definition: skycoord.hh:289
i() int(T_cor *100))
double Pi
double rad2grad
double grad2rad
void GeodeticToGeocentric(double latitude, double longitude, double elevation, double &X, double &Y, double &Z)
Definition: skycoord.hh:197
void printangles(double lt, double lg)
void GetCartesianComponents(double u[3], double Alt, double Az, double Lat, double Lon)
Definition: skycoord.hh:369
exit(0)