Jpp  15.0.1-rc.1-highQE
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JF1.cc File Reference

Auxiliary program to write ROOT function. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <vector>
#include "TROOT.h"
#include "TFile.h"
#include "TF1.h"
#include "JTools/JRange.hh"
#include "JLang/JToken.hh"
#include "JGizmo/JGizmoToolkit.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Auxiliary program to write ROOT function.

Author
mdejong

Definition in file JF1.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 23 of file JF1.cc.

24 {
25  using namespace std;
26  using namespace JPP;
27 
28  typedef JToken<';'> JToken_t;
29  typedef JRange<double> JRange_t;
30 
31  string formula;
32  string name;
33  string outputFile;
34  JRange_t x;
36  int N;
37  int debug;
38 
39  try {
40 
41  JParser<> zap("Auxiliary program to write ROOT function.");
42 
43  zap['F'] = make_field(formula, "function, e.g: \"[0]+[1]*x\"");
44  zap['T'] = make_field(name, "name of ROOT function") = "user";
45  zap['o'] = make_field(outputFile, "ROOT file with formula") = "f1.root";
46  zap['x'] = make_field(x, "abscissa range") = JRange_t();
47  zap['@'] = make_field(parameters, "parameter values, e.g: \"p0 = 1.0;\"");
48  zap['N'] = make_field(N) = 0;
49  zap['d'] = make_field(debug) = 1;
50 
51  zap(argc, argv);
52  }
53  catch(const exception &error) {
54  FATAL(error.what() << endl);
55  }
56 
57  TF1 f1(name.c_str(),
58  formula.c_str(),
59  x.getLowerLimit(),
60  x.getUpperLimit());
61 
62  if (N > 0) {
63  f1.SetNpx(N);
64  }
65 
66  for (vector<JToken_t>::const_iterator i = parameters.begin(); i != parameters.end(); ++i) {
67  f1.SetParameter(getParameter(*i), getValue(*i,&f1));
68  }
69 
70  TFile out(outputFile.c_str(), "recreate");
71 
72  out.WriteTObject(&f1);
73 
74  out.Write();
75  out.Close();
76 }
Utility class to parse command line options.
Definition: JParser.hh:1500
double getValue(const JScale_t scale)
Get numerical value corresponding to scale.
Definition: JScale.hh:47
int getParameter(const std::string &text)
Get parameter number from text string.
then echo Enter input within $TIMEOUT_S seconds echo n User name
Definition: JCookie.sh:42
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
string outputFile
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1961
int debug
debug level
Definition: JSirene.cc:63
#define FATAL(A)
Definition: JMessage.hh:67