TMinuit function arguments

From: Till Sawala <till.sawala_at_imperial.ac.uk>
Date: Mon, 4 Dec 2006 13:10:17 +0100


Hi Rooters,

I would like to minimze a likelyhood-function of 1 parameter with Tminuit. At the moment, I use the following pair of functions (adapted from http://root.cern.ch/root/html/examples/Ifit.C.html):

void NLL(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag)
{

  Double_t LL = 0.0;
  const Int_t nbins = 100000;

  for (int i=1; i<nbins; i++)
    {
      LL += TMath::Log(Prob(t[i], sigma[i],par));     }

  f = -1. * LL;
}

Double_t Prob(Double_t t, Double_t sigma, Double_t *par)
{

  return .5/par[0] * TMath::Exp(.5*sigma*sigma/(par[0]*par[0]) - t/par[0]) * TMath::Erfc(1/TMath::Sqrt(2) * (sigma/par[0] - t/sigma) ); }

gMinuit->SetFCN(NLL);

Where NLL is the function to minimize for par[0], and Prob is a function to calculate the probability for each combination of par[0], t[i] and sigma[i]. However, as the format of NLL is fixed, t and sigma now have to be global and fixed, i.e. NLL only works for one set of t and sigma. Is there a way to change the format of NLL in some way, so that I can pass additional references or pointers? Or maybe you have another suggestion?

Cheers,
Till Received on Mon Dec 04 2006 - 13:09:08 MET

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:32:02 MET