errordist.cpp

Go to the documentation of this file.
00001 #include "MTTensor.h"
00002 #include <fstream>
00003 #include <iostream>
00004 #include <complex>
00005 #include "MTSampleGenerator.h"
00006 #include "Jacknife.h"
00007 
00008 using namespace std;
00009 int main()
00010 {
00011         const complex<double> xx(1.405,2.23);
00012         const complex<double> xy(5.33,2.5);
00013         const complex<double> yx(-7.45,-4.23);
00014         const complex<double> yy(-1.45,-3.29);
00015         const MTTensor TestData(xx,xy,yx,yy);
00016         const size_t ntestcases = 100000;
00017         
00018         cerr << TestData.GetPhi11() << " " <<  TestData.GetPhi12() << " " <<  TestData.GetPhi21() << " " <<  TestData.GetPhi22() << endl;
00019         cerr << TestData.GetPhiMax() << " " << TestData.GetPhiMin() <<  " " << TestData.GetAlpha_phi() <<  " " << TestData.GetBeta_phi() << endl;
00020         cerr << TestData.GetPhixy() << endl;
00021         cerr << "Det Phi: " << TestData.GetdetPhi() << endl;
00022         
00023         const double maxnoise = 0.5;
00024         const double minnoise = 0.01;
00025         const double noisestep = 0.01;
00026         for (double noiselevel = minnoise; noiselevel <= maxnoise; noiselevel += noisestep)
00027         {
00028                 MTTensor DistData(TestData);
00029                 DistData.SetErrors(abs(TestData.GetZxx())*noiselevel,abs(TestData.GetZxy())*noiselevel,
00030                                         abs(TestData.GetZyx())*noiselevel,abs(TestData.GetZyy())*noiselevel);
00031                 MTSampleGenerator Generator(&MTTensor::GetdetPhi,DistData);
00032                 Jacknife<MTSampleGenerator> ErrEst(ntestcases,Generator);
00033                 double currmean;
00034                 double currvar;
00035                 ErrEst.CalcErrors(currmean,currvar);
00036                 //copy(ErrEst.GetSamples().begin(),ErrEst.GetSamples().end(),ostream_iterator<double>(cout,"\n"));
00037                 cout << noiselevel << " " << currmean -TestData.GetdetPhi() << " " << sqrt(currvar)/TestData.GetdetPhi() << endl;
00038         }
00039 }

Generated on Fri Jul 4 15:30:20 2008 for GPLIB++ by  doxygen 1.5.5