La version compilable de myfunc.C (p.27) devrait être:
#include "TF1.h" #include "TH1.h" #include "TROOT.h" // <============= missing!
Double_t myfunction(Double_t *x, Double_t *par) { Float_t xx = x[0]; Double_t f = TMath::Abs(par[0]*sin(par[1]*xx)/xx); return f; } void makefunc() { TF1* f1 = new TF1("func",myfunction,0,10,2); f1->SetParameters(2,1); f1->SetParNames("constant", "coefficient"); f1->Draw(); } void myfit() { TH1F* h1 = new TH1F("h1","test",100,0,10); h1->FillRandom("func",20000); TF1* f1 = (TF1*)gROOT->GetFunction("func"); // <======== gROOT->GetFunction renvoie TObject*, not TF1* ! f1->SetParameters(800,1); h1->Fit("func"); }
La version compilable de myfunc.C (p.27) devrait être:
#include "TF1.h"
#include "TH1.h"
#include "TROOT.h" // <============= missing!
Double_t myfunction(Double_t *x, Double_t *par) Abs(par[ 0]*sin( par[1]* xx)/xx) ; ,myfunction, 0,10,2) ; SetParameters( 2,1); SetParNames( "constant" , "coefficient"); ,"test" ,100,0, 10); FillRandom( "func", 20000); >GetFunction( "func") ; // <======== gROOT->GetFunction renvoie TObject*, not TF1* ! SetParameters( 800,1);
{
Float_t xx = x[0];
Double_t f = TMath::
return f;
}
void makefunc()
{
TF1* f1 = new TF1("func"
f1->
f1->
f1->Draw();
}
void myfit()
{
TH1F* h1 = new TH1F("h1"
h1->
TF1* f1 = (TF1*)gROOT-
f1->
h1->Fit("func");
}