Jpp  18.6.0-rc.1
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 1D 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 1D 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 1D 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;\"") = JPARSER::initialised();
48  zap['N'] = make_field(N, "number of points (for drawing)") = 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:1711
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.
*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
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Definition: JParser.hh:84
string outputFile
const JPolynome f1(1.0, 2.0, 3.0)
Function.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:2158
then fatal The output file must have the wildcard in the name
Definition: JCanberra.sh:31
#define FATAL(A)
Definition: JMessage.hh:67
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:40
int debug
debug level