26{
29
30 string inputFile;
33
34 try {
35
36 JParser<> zap(
"Auxiliary application to fit mechanical constants.");
37
38 zap[
'f'] =
make_field(inputFile,
"input file; see https://git.km3net.de/calibration/input_tables");
41
42 zap(argc, argv);
43 }
44 catch(const exception &error) {
45 FATAL(error.what() << endl);
46 }
47
48
49 const double error = 0.2;
50
52
54 double ymax = 0.0;
55
56 {
57 ifstream in(inputFile.c_str());
58
59 string buffer;
60
62
63 DEBUG(
"Header " << buffer << endl);
64
66
68
69 for (
double x, y; in >>
x >>
y; ) {
70
72
73 if (x > xmax) {
76 }
77 }
78
79 in.close();
80 }
81
82 DEBUG(
"Number of points " <<
g1.GetN() << endl);
83
84
85 TF1
f1(
"f1",
"[0]*(x + [1]*log(1.0 - [2]*x))");
86
87 f1.SetParameter(0, ymax / xmax);
88 f1.SetParameter(1, 0.25 * xmax);
89 f1.SetParameter(2, 0.50 / xmax);
90
93
94 cout << inputFile << endl;
95
96 cout <<
"T_x = " <<
FIXED(5,2) <<
f1.GetParameter(0) <<
" [s^2/m^2] * v_x^2" << endl;
97
98 cout <<
"b [m] " <<
FIXED(7,3) <<
f1.GetParameter(1) << endl;
99 cout <<
"a [m^-1] " <<
FIXED(7,5) <<
f1.GetParameter(2) << endl;
100
102
104
105 out.Write();
106 out.Close();
107}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Double_t g1(const Double_t x)
Function.
Auxiliary class to specify white space character(s) in currect locale.
Utility class to parse command line options.
const JPolynome f1(1.0, 2.0, 3.0)
Function.
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
void AddPoint(TGraph *g1, const Double_t x, const Double_t y)
Add point to TGraph.
Auxiliary data structure for floating point format specification.