Dear rooters, I am creating some TF1 functions with a very simple macro; I cannot get why one of them does not compile when I run the macro, while if I try to create and plot it with on line commands I don't get any problem: this is the error message: -------------------------- >root functions.C ******************************************* * * * W E L C O M E to R O O T * * * * Version 3.03/07 18 July 2002 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* Compiled for linux with thread support. CINT/ROOT C/C++ Interpreter version 5.15.50, July 7 2002 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] Processing functions.C... Function:sigma_hyp cannot be compiled this is the code: ----------------- Double_t theta(Double_t *x, Double_t *par) { if (x[0] > par[0]) return 1; else return 0; } void functions() { Double_t min = -10.; // minimum of the formulas range Double_t max = +10.; // maximum of the formulas range Double_t thres = 0.; // coordinate of the formula half value point // the theta (step) function TF1 *step = new TF1("step",theta,min,max,1); step->SetParameter(0,thres); step->SetParNames("Threshold"); // the sigma function with the hyperbolic tangent TF1 *sigma_hyp = new TF1("sigma_hyp","tanh(x-[0])",min,max,1); sigma_hyp->SetParameter(0,thres); sigma_hyp->SetParNames("Threshold"); // the sigma function with the exponential TF1 *sigma_exp = new TF1("sigma_exp","1/(exp(-1*x-1+[0])+1)",min,max); sigma_exp->SetParameter(0,thres); sigma_exp->SetParNames("Threshold"); // graphics TCanvas *c1= new TCanvas("c1","functions",10,10,400,400); c1->Divide(2,2); c1->cd(1); step->Draw(); c1->cd(2); sigma_hyp->Draw(); c1->cd(3); sigma_exp->Draw(); } Do anybody have an explanation for this behaviour? Thanks in advance, regards pietro
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:04 MET