38int main(
int argc,
char **argv)
51 JParser<> zap(
"Auxiliary program to create TGraph from input file with ASCII data.");
62 catch(
const exception &error) {
63 FATAL(error.what() << endl);
71 for (vector<string>::const_iterator file_name = inputFile.begin(); file_name != inputFile.end(); ++file_name) {
73 const string gname = (title !=
"" ? title : getFilename(*file_name));
75 ifstream in(file_name->c_str());
77 while (in.peek() ==
'#') {
78 in.ignore(numeric_limits<streamsize>::max(),
'\n');
89 if (getline(in,buffer)) {
91 istringstream is(buffer);
93 for (
string key; is >> key; ) {
94 column.push_back(key);
100 in.ignore(numeric_limits<streamsize>::max(),
'\n');
105 Double_t x, y, ex, ey;
114 for (
string buffer; getline(in,buffer); ) {
116 istringstream is(buffer);
118 if (is >> x) X .push_back(x);
119 if (is >> y) Y .push_back(y);
120 if (is >> ex) EX.push_back(ex);
121 if (is >> ey) EY.push_back(ey);
124 if (X.size() != Y.size()) {
125 FATAL(
"Number of points " << X.size() <<
' ' << Y.size() << endl);
129 TGraph* graph = NULL;
133 graph =
new TGraph(X.size(), X.data(), Y.data());
137 if (X.size() != EX.size()) {
138 FATAL(
"Number of x points " << X.size() <<
' ' << EX.size() << endl);
143 EX.resize(X.size(), 0.0);
146 if (Y.size() != EY.size()) {
147 FATAL(
"Number of y points " << Y.size() <<
' ' << EY.size() << endl);
150 graph =
new TGraphErrors(X.size(), X.data(), Y.data(), EX.data(), EY.data());
155 graph->SetName(gname.c_str());
159 DEBUG(
"TGraph " << graph->GetName() << endl);
169 for (
string buffer; getline(in,buffer); ) {
171 istringstream is(buffer);
179 for ( ; is >> y; ++i) {
188 if (i+1 != column.size()) {
189 FATAL(
"Number of colums " << i+1 <<
' ' << column.size() << endl);
194 for (
size_t i = 0; i != Y.size(); ++i) {
196 TGraph* graph =
new TGraph(X.size(), X.data(), Y[i].data());
200 os << gname <<
"[" << column[i+1] <<
"]";
202 graph->SetName(os.str().c_str());
206 DEBUG(
"TGraph " << graph->GetName() << endl);