Discrepancy in RooFit when used in python and C++

From: suvayu ali <fatkasuvayu_at_gmail.com>
Date: Wed, 11 Apr 2012 22:11:31 +0200


Hi ROOT experts,

I'm puzzled with something. I have a small python script and a small C++ program doing the exact same thing but it seems to do the wrong thing when used from Python.

Lines from the C++ program:

  Model.plotOn(tframe1, ProjWData(RooArgSet(dt), dataset, true));

Lines from the Python script:

Model.plotOn(tframe1, RooFit.ProjWData(RooArgSet(dt), dataset, True))

When I run the C++ program, I get the following lines in my log:

[#1] INFO:Plotting -- RooAbsReal::plotOn(Model) only the following
components of the projection data will be used: (dt)

[#1] INFO:NumericIntegration --

RooRealIntegral::init(resmodel_conv_exp(-_at_0/@1)_time_0.00153688_[decayH]_Int[dt,time]) using numeric integrator RooIntegrator1D to cal culate Int(dt)

[#1] INFO:NumericIntegration --

RooRealIntegral::init(resmodel_conv_exp(-_at_0/@1)_time_0.00140712_[decayL]_Int[dt,time]) using numeric integrator RooIntegrator1D to cal culate Int(dt)

[#1] INFO:NumericIntegration --

RooRealIntegral::init(Model_clone_Int[time]) using numeric integrator RooIntegrator1D to calculate Int(time)

[#1] INFO:Plotting -- RooDataWeightedAverage::ctor(ModelDataWgtAvg)
constructing data weighted average of function Model_Norm[time] over 100 data points of (dt) with a total weight of 32676

>From the last 2 lines you can see dt is being averaged over.

For the Python script however, I get the following:

[#1] INFO:Plotting -- RooAbsReal::plotOn(Model) plot on time integrates
over variables (dt)

[#1] INFO:NumericIntegration --

RooRealIntegral::init(resmodel_conv_exp(-_at_0/@1)_time_0.00153688_[decayH]_Int[dt,time]) using numeric integrator RooIntegrator1D to calculate Int(dt)

[#1] INFO:NumericIntegration --

RooRealIntegral::init(resmodel_conv_exp(-_at_0/@1)_time_0.00140712_[decayL]_Int[dt,time]) using numeric integrator RooIntegrator1D to calculate Int(dt)

[#1] INFO:NumericIntegration --

RooRealIntegral::init(Model_clone_Int[dt,time]) using numeric integrator RooAdaptiveIntegratorND to calculate Int(dt,time)

[#1] INFO:NumericIntegration --

RooRealIntegral::init(Model_Int[dt]_Norm[dt,time]) using numeric integrator RooIntegrator1D to calculate Int(dt)

Now RooFit integrates over dt using the N-dimensional integrator.

Can someone help me understand if this is a bug if yes, if there is any way to work around it?

Thanks a lot.

-- 
Suvayu

Open source is the future. It sets us free.
Received on Wed Apr 11 2012 - 22:11:58 CEST

This archive was generated by hypermail 2.2.0 : Wed Apr 11 2012 - 23:50:01 CEST