[ROOT] Function:xx cannot be compiled

From: Nicolas Produit (Nicolas.Produit@obs.unige.ch)
Date: Fri Sep 05 2003 - 09:21:34 MEST


Hi,

I have a problem with TF1 function using 
TF1 with user function (on linux Version   3.04/02):

isdcpc3:toymc 112> cat fun.C
Double_t fun(Double_t *x,Double_t *par){
  Double_t z;
  cout<<x[0]<<" "<<par[0]<<endl;
  z=TMath::Power(2.0,par[0]);
  z*=x[0]/1024.0+2.0;
  z-=2.0;
  return z;
}
isdcpc3:toymc 113> root
  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   3.04/02      5 March 2003   *
  *                                         *
  *  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.68, Dec 12 2002
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] .L fun.C
root [1] TF1 *xx=new TF1("xx","fun",0,2047,1)
Function:xx cannot be compiled
root [2] xx->Draw()
<TCanvas::MakeDefCanvas>: created default TCanvas with name c1
root [3]


What mean Function:xx cannot be compiled ?

fucntion is identical 0, and I dont see any output from the cout

Now trying a .L fun.C++:
I first comment out the cout<< statement
and then:
isdcpc3:toymc 115> root
  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   3.04/02      5 March 2003   *
  *                                         *
  *  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.68, Dec 12 2002
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] .L fun.C++
Info in <TUnixSystem::ACLiC>: creating shared library /home/isdc/produit/analysis/toymc/./fun_C.so
root [1] TF1 *xx=new TF1("xx","fun",0,2047,1)
Function:xx cannot be compiled
root [2] double x=10,par=0
root [3] fun(&x,&par)
(Double_t)9.76562500000000000e-03


Thanks


-- 
Nicolas Produit                 
INTEGRAL Science Data Center    Phone:  +41 22 950 91 40
16, Chemin d'Ecogia             Fax:    +41 22 950 91 33
CH-1290 Versoix                 www:    http://isdc.unige.ch/



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:15 MET