Creating several TF1 from the same function

From: Norbert Danneberg (norbert.danneberg@psi.ch)
Date: Sun Jan 30 2000 - 19:47:09 MET


Hi,

I try to create several TF1 from the same function. Below I attached
two examples. The example "FuncTest2" works as expected.
The example FuncTest creates only the first TF1 Object
correctly. All other TF1 created contain an fMethod pointer
pointig to NULL, and therefor cant be evaluated by root.

Any Ideas ?

Root Version 2.23 11 on SuSE Linux 6.2 (egcs)

//Double_t (*Fun)(Double_t*, Double_t*);

Double_t FitFunc(Double_t* x, Double_t* par){

  Double_t xx =x[0];
  Double_t value =
    par[0]*TMath::Exp(-(xx-par[1])*(xx-par[1])/ (2 * par[2]* par[2]));

  return value;

}

//Fun = FitFunc;

FuncTest2(){

  TCanvas* MyCanvas = new
TCanvas("MyCanvas","MyCanvas",100,100,400,400);

  TF1* Landau1 = new TF1("Landau1",FitFunc,0,53,3);
  TF1* Landau2 = new TF1("Landau2",FitFunc,0,53,3);

  Double_t Params[3] = {1,1,1};

  Landau1->SetParameters(Params);
  Landau2->SetParameters(Params);

  MyCanvas->Divide(1,2);

  MyCanvas->cd(1);
  Landau1->Draw();

  MyCanvas->cd(2);
  Landau2->Draw();


}

FuncTest(){

  //gROOT->LoadMacro("../DecayEnergy/FitFunc.C");

  TCanvas* MyCanvas = new
TCanvas("MyCanvas","MyCanvas",100,100,400,400);

  Char_t FuncName[255];

  TF1* Landau[20];

  for(Int_t i =0; i<3; i++){

    sprintf(FuncName,"Landau%i",i);
    Landau[i] = new TF1(FuncName,FitFunc,0,53,3);

    for(Int_t j = 0; j< 3; j++){

      Landau[i]->SetParameter(j,1);
      //Landau[i]->Dump();
    }
    Landau[i]->Draw();
    MyCanvas->Update();
    getchar();
  }

}


--

Norbert Danneberg

ETH Zurich - Institute for Particle Physics
  Laboratory for Nuclear Physics          Phone.: +41-1-633-2034
  Hoenggerberg                            Fax.:   +41-1-633-1067
  CH-8093 Zurich


ETH Zurich - Institute for Particle Physics
  Paul Scherrer Institute                 Phone.: +41-56-310-3284
  CH-5232 Villigen PSI                    Fax.:   +41-56-310-4362

email: Norbert.Danneberg@psi.ch



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:18 MET