[ROOT] pointer at function recognized as char* ?

From: Denis Prokofiev (Denis.Prokofiev@cern.ch)
Date: Tue Mar 06 2001 - 07:02:17 MET


	Dear Rooters,
Here is demo code; I put in only the declaration of the fitf function.
**********************
   Double_t fitf(Double_t *x, Double_t *par);


   //_____________________macro fitexample.C___________________________
   Double_t fitf(Double_t *x, Double_t *par)
   {
      Double_t arg = 0;
      if (par[2]) arg = (x[0] - par[1])/par[2];

      Double_t fitval = par[0]*TMath::Exp(-0.5*arg*arg);
      return fitval;
   }
   void fitexample()
   {
      TFile *f = new TFile("qph6869_kppp_320b.root");
   
      TH1F *h46 = (TH1F*)f->Get("h46");

      TF1 *func = new TF1("fit",fitf,-3,3,3);
      func->SetParameters(500,h46->GetMean(),h46->GetRMS());
      func->SetParNames("Constant","Mean_value","Sigma");
      h46->Fit("fit");
   }
*************************

When I fit a histo with a compiled user function, the fitf in the body 
of fitexample()  should be 
(void *) pointer. However, when I do step-by-step debugging in CINT, 
I see the following: the fitf parameter is recognized as *char ????

**************
FILE:fit2.C LINE:17 cint>

18
19         TF1 *func = new TF1("fit",fitf,-3,3,3);
!!!Calling constructor 0x0.TF1 for new TF1
!!!Calling compiled function TF1()
  arg1 = (char* 0x4063e1b0)"fit"
  arg2 = (char* 0x4061023c)"fitf"
  arg3 = (int)(-3)
  arg4 = (int)3
  arg5 = (int)3

FILE:fit2.C LINE:19 cint>
*******************

If you can tell me what is going on, I'll greatly appreciate the help.

Denis



                       \\\|///
                     \\  - -  //
                      (  @ @  )
+-------------------oOOo-(_)-oOOo-----------------------+
|                                                       |
|             Denis.Prokofiev@cern.ch                   |
|                                                       |
+---------------------------Oooo------------------------+
                    oooO   (   )
                    (   )   ) /
                     \ (   (_/
                      \_)



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:38 MET