26int main(
int argc,
char **argv)
38 size_t numberOfEvents;
50 JParser<> zap(
"Program to create TH2D and fill according given formula.");
68 catch(
const exception &error) {
73 if ((formula !=
"" && inputFile !=
"") ||
74 (formula ==
"" && inputFile ==
"")) {
75 FATAL(
"Specify input file or formula." <<
endl);
82 const string::size_type pos = title.rfind(
'/');
84 if (pos != string::npos) {
86 const string dir = title.substr(0, pos);
88 out.mkdir(dir.c_str());
91 title = title.substr(pos + 1);
95 X.getNumberOfBins(), X.getLowerLimit(), X.getUpperLimit(),
96 Y.getNumberOfBins(), Y.getLowerLimit(), Y.getUpperLimit());
100 TF2 f2(
"f2", formula.c_str(),
101 logx ? pow(10.0, X.getLowerLimit()) : X.getLowerLimit(),
102 logx ? pow(10.0, X.getUpperLimit()) : X.getUpperLimit(),
103 logy ? pow(10.0, Y.getLowerLimit()) : Y.getLowerLimit(),
104 logy ? pow(10.0, Y.getUpperLimit()) : Y.getUpperLimit());
107 f2.FixParameter(getParameter(*i), getValue(*i));
110 if (numberOfEvents > 0) {
116 for (
size_t i = 0; i != numberOfEvents; ++i) {
120 h0.Fill(logx ?
log10(x) : x,
126 for (
Int_t ix = 1;
ix <= h0.GetXaxis()->GetNbins(); ++
ix) {
127 for (
Int_t iy = 1;
iy <= h0.GetYaxis()->GetNbins(); ++
iy) {
128 h0.SetBinContent(
ix,
iy, f2.Eval(h0.GetXaxis()->GetBinCenter(
ix),
129 h0.GetYaxis()->GetBinCenter(
iy)));
133 }
else if (inputFile !=
"") {
139 ifstream in(inputFile.c_str());
141 for (
double x, y; in >> x >> y; ) {