Hi Rooters,
after having worked with ROOT for quite some time, I now started exercising
RooFit. It's quite impressive though in my opinion it lacks the clarity of
the general ROOT program. Anyways, I'm trying to build up a Likelihood Ltot
which is a product of 3 single Likelihood functions L1, L2, L3.
suppose I have a model "model"
RooDecay model("model","observed
spectrum",t,tau,gaussm,RooDecay::SingleSided)
and then I create 3 datasets from this model
// create some data for the histogram to be filled...
RooDataSet* data1 = model.generate(t,10000); // create a dataset from
gauss-pd
f
RooDataSet* data2 = model.generate(t,10000); // create a dataset from
gauss-pd
f
RooDataSet* data3 = model.generate(t,10000); // create a dataset from
gauss-pd
f
Building the Negative-Log-Likelihood function for each of them works just fine
RooAbsReal* nll1 = model.createNLL(*data1,NumCPU(2)); RooAbsReal* nll2 = model.createNLL(*data2,NumCPU(2)); RooAbsReal* nll3 = model.createNLL(*data3,NumCPU(2));The RooArgSet is still a pointer referencing to some real memory address RooArgSet *arg = new RooArgSet(*nll1,*nll2,*nll3); But the product then
Can some of you guys who are more proficient with RooFit help me figure out how to fix this? Your help is greatly appreciated.
The general idea is to take N likelihood functions and multiply them for
later subject to MINUIT minimization.
Cheers,
Stephan
Received on Sat Sep 11 2010 - 03:52:30 CEST
This archive was generated by hypermail 2.2.0 : Sat Sep 11 2010 - 17:50:01 CEST