00001 #include <iostream>
00002 #include <fstream>
00003 #include "MTStation.h"
00004 #include <boost/bind.hpp>
00005 #include <gsl/gsl_math.h>
00006 using namespace std;
00007
00008 int main(int argc, char *argv[])
00009 {
00010 string infilename;
00011 MTStation Data;
00012 if (argc == 2)
00013 {
00014 infilename = argv[1];
00015 }
00016 else
00017 {
00018 cout << "Infilename: ";
00019 cin >> infilename;
00020 }
00021
00022 Data.GetData(infilename);
00023
00024
00025 for (size_t i = 0; i < Data.GetMTData().size(); ++i)
00026 {
00027 double r = Data.GetMTData().at(i).GetI2()/Data.GetMTData().at(i).GetI1();
00028 double a = gsl_pow_2(Data.GetMTData().at(i).GetI5() - Data.GetMTData().at(i).GetI6());
00029 double b = 1.0 - Data.GetMTData().at(i).GetI5() * Data.GetMTData().at(i).GetI6()
00030 + sqrt(1.0 + gsl_pow_2(Data.GetMTData().at(i).GetI5())*gsl_pow_2(Data.GetMTData().at(i).GetI6())
00031 - gsl_pow_2(Data.GetMTData().at(i).GetI5())- gsl_pow_2(Data.GetMTData().at(i).GetI6()));
00032
00033 double walkappa = sqrt((1.0+gsl_pow_2(Data.GetMTData().at(i).Getr()))/
00034 (1.0- Data.GetMTData().at(i).Geta()/(2*Data.GetMTData().at(i).Getb())
00035 + Data.GetMTData().at(i).Getr()*Data.GetMTData().at(i).Getr()*Data.GetMTData().at(i).Getb()/2)-1.0);
00036 double walsigma = (gsl_pow_2(Data.GetMTData().at(i).GetI3()) + gsl_pow_2(Data.GetMTData().at(i).GetI4()) * r*r)
00037 /(1- a/(2*b) + r*r*b/2);
00038 cout << 1./Data.GetMTData().at(i).GetFrequency() << " ";
00039 cout << Data.GetMTData().at(i).GetKappa() << " ";
00040 cout << walkappa << " ";
00041 cout << Data.GetMTData().at(i).GetSigma() << " ";
00042 cout <<walsigma<< " ";
00043 cout << endl;
00044 }
00045
00046 }