Dear rooters,
I'd like to create a function with 7 GIVEN parameters. I don't want to
make a fit, I'd just like to DRAW this function
(and eventually use it to multiply a 1D-histogram).
The actual calculation seems to work, but effit->Draw() doesn't work and
effit->Eval() returns an integer. Is it not the
right way to proceed ?
thanks,
Fred
-----------------------------
Double_t func(Double_t *x, Double_t *par)
{
Double_t E1=100;//100 keV
Double_t E2=1000;//1000 keV = 1 MeV
Double_t XX,YY;
Double_t lowE, highE;
Double_t Dum,Eff;
XX = TMath::Log(x[0]/E1);
YY = TMath::Log(x[0]/E2);
lowE = par[0]+par[1]*XX+par[2]*XX*XX;
highE = par[3]+par[4]*YY+par[5]*YY*YY;
Dum = TMath::Power(lowE,(-par[6]))+TMath::Power(highE,(-par[6]));
Eff = TMath::Exp(TMath::Power(Dum,(-1./par[6])));
// printf("%f %f \n",x[0],Eff);
return Eff;
}
EffCurve()
{
Double_t A = 2.4356484;
Double_t B = 1.6351060;
Double_t C = 0.0000000;
Double_t D = 2.2948568;
Double_t E = -0.71539408;
Double_t F = -0.032038290;
Double_t G = 5.2433171;
TF1 *effit = new TF1("func",func,0,4000,7);
effit->SetParameter(0,A);
effit->SetParameter(1,B);
effit->SetParameter(2,C);
effit->SetParameter(3,D);
effit->SetParameter(4,E);
effit->SetParameter(5,F);
effit->SetParameter(6,G);
TCanvas *c = new TCanvas();
effit->Eval(2000.);
effit->Draw();
}
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:12 MET