2005-11-11 12:35:21 +00:00

92 lines
1.6 KiB
C++

#include <iomanip>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <ios>
#include "yields.h"
using namespace std;
void Draw(double mass);
std::string flt2string( double& number);
Yields Gonin;
int main()
{
double Energy, Mass;
double yvector[3];
// Yields Gonin;
/* std::cout<<"Enter energy in keV: ";
std::cin>>Energy;
std::cout<<"Enter mass in MeV/c²: ";
std::cin>>Mass;
// calculate yields
//Yields(Energy,Mass*1000);
// std::cout<<"Yield+: "<< Yield_plus<<std::endl;
// std::cout<<"Yield neutral: "<< Yield_zero<<std::endl;
Gonin.GetYields(Energy, Mass*1000,yvector);
std::cout<<"Yield+: "<< yvector[0] <<std::endl;
std::cout<<"Yield neutral: "<< yvector[1] <<std::endl;
*/
Draw(Mass);
return 0;
}
void Draw(double mass)
{
double E;
int i;
i=1;
std::string name, ref;
name="gonin_";
ref = flt2string(mass);
name+=ref;
name+=".dat";
double yvector[3];
ofstream Yprint("test6.txt");
if (!Yprint.is_open()) exit(8);
do
{
E=i*0.25;
Gonin.GetYields(E,105*1000,yvector);
Yprint << /*log(E*9)/log(10.)*/ E*9 <<" " << yvector[0]<< " " <<yvector[1]<<std::endl;
i++;
}while(i<400);
Yprint.close();
}
std::string flt2string( double& number)
{
std::ostringstream oss;
oss << number;
return oss.str();
}
//
// gnuplot commands
// set ylabel "Yields"
// set xlabel "Energy [keV] in power of 10"
// set grid
// plot 'test.txt' using 1:2 ti 'mu+', 'test.txt' using 1:3 ti 'mu0'