Hello,
I am using ROOT 5.27/01 (trunk@32187, Feb 02 2010, 16:13:55 on linux).
I would like to do a chi2 fit to a weighted and binned data set. I start with unbinned data from a tree, then create the binned clone.
If I do it this way:[code]
RooDataSet tmp(“tmp”,“tmp”,dataVarSet,Import(tree1));
RooDataSet data = new RooDataSet(“my_data”, “my_data”, dataVarSet, WeightVar(“weight”),Import(tmp), StoreError(dataVarSet) );
RooAbsData data_binned = (RooAbsData)data->binnedClone();
data = (RooDataSet*)data_binned;
//—cut out some code here—
RooAbsReal* chi2 = model->createChi2((RooDataHist&)*data, Extended(true),SumW2Error(true),PrintLevel(1),Range(“cutrange”) );[/code]
Then I get these runtime errors:
[#0] ERROR:Eval -- RooChi2Var::RooChi2Var(chi2_model_my_data_binned) INFINITY ERROR: bin 0 has zero error, but function is not zero (0.0347996)
[#0] ERROR:Eval -- RooChi2Var::RooChi2Var(chi2_model_my_data_binned) INFINITY ERROR: bin 0 has zero error, but function is not zero (0.0347996)
And when I do it this way:
RooDataHist *data_binned = data->binnedClone();
RooDataSet *data_binned_w = (RooDataSet*) data->emptyClone();
for (int i=0 ; i<data_binned->numEntries() ; i++) {
data_binned_w->add(*data_binned->get(i),data_binned->weight(*data_binned->get(i),1,true,false) ) ;
}
RooDataSet* data = (RooDataSet*)data_binned_w;
//---cut out some code here---
RooAbsReal* chi2 = model->createChi2((RooDataHist&)*data, Extended(true),SumW2Error(true),PrintLevel(1),Range("cutrange") );
I get these runtime errors:
[#0] ERROR:Eval -- RooChi2Var::RooChi2Var(chi2_model_my_data) INFINITY ERROR: bin 3 has zero error, but function is not zero (0)
[#0] ERROR:Eval -- RooChi2Var::RooChi2Var(chi2_model_my_data) INFINITY ERROR: bin 3 has zero error, but function is not zero (0)
Can someone explain these errors, or give an example of a chi2 fit to a weighted and binned data set?
Many thanks,
Anthony