2014-12-03 13:09:58 |
John Frankland |
description |
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)
{
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"); //<=====renvoie TObject* !!
f1->SetParameters(800,1);
h1->Fit("func");
} |
|