RooDataSet append problem ( ROOT 5.18/00)

Hello, I am using ROOT v5.18. But when I append two RooDataSet, I still met the problem of:

[quote]RooDataSet::dataGenTot: "dataGenTot"
Contains 0 entries
Defines RooArgSet::Dataset Variables: (Owning contents)
1) RooRealVar::m: "invariant mass"
2) RooRealVar::t: "proper time"
3) RooRealVar::st: "estimated proper time resolution"
Caches RooArgSet::Cached Variables:
Error in TTree::Fill: Failed filling branch:BkgConPdfData.m, nbytes=-1
This error is symptomatic of a Tree created as a memory-resident Tree
Instead of doing:
TTree *T = new TTree(…)
TFile *f = new TFile(…)
you should do:
TFile *f = new TFile(…)
TTree *T = new TTree(…)
Error in TTree::Fill: Failed filling branch:BkgConPdfData.t, nbytes=-1
This error is symptomatic of a Tree created as a memory-resident Tree
Instead of doing:
TTree *T = new TTree(…)
TFile *f = new TFile(…)
you should do:
TFile *f = new TFile(…)
TTree *T = new TTree(…)
Error in TTree::Fill: Failed filling branch:BkgConPdfData.st, nbytes=-1
RooDataSet::dataGenTot: "Generated From backgr con PDF"
Contains 1000 entries
Defines RooArgSet::Dataset Variables: (Owning contents)
1) RooRealVar::m: "invariant mass"
2) RooRealVar::t: "proper time"
3) RooRealVar::st: "estimated proper time resolution"
Caches RooArgSet::Cached Variables:[/quote]

Although it seems that the appending has been done successfully. Then where is those error message from? Well, my case is a little special. I am doing the analysis with Ttree::MakeSelector(). And the dataGenTot is defined at the very beginning and filled in the ::Process(), then I generated some events in ::Terminate(). And I want to append the dataGenTot with the RooDataSet returned by Pdf->generate(). Hereafter is the structure.

[code]RooRealVar *m = new RooRealVar(…)
RooRealVar *t = new RooRealVar(…)
RooRealVar *st = new RooRealVar(…)

RooDataSet* dataGenTot = new RooDataSet( “dataGenTot”, “dataGenTot”, RooArgSet(*m, *t, *st) );

Bool_t bkg_lifetime::Process(Long64_t entry) {
dataGenTot->add( RooArgSet(*m, *t, *st) );
}

void bkg_lifetime::Terminate()
{
RooArgSet* observables = new RooArgSet(*m,*t,st);

RooDataSet
data_bkg = BkgConPdf->generate(RooArgSet(*observables),Verbose(false),NumEvents(1000));

dataGenTot->Print("v");
dataGenTot->append(*data_bkg);
dataGenTot->Print("v");

}
[/code]

And there is no error message for the following case.

[code]RooDataSet* data_bkg1 = BkgConPdf->generate(RooArgSet(*observables),Verbose(false),NumEvents(1000));

RooDataSet* data_bkg2 = BkgConPdf->generate(RooArgSet(*observables),Verbose(false),NumEvents(1000));

data_bkg1->append(*data_bkg2);
[/code]

Thanks for any help you wil give me.

I am sorry, there is a mistake above. The following code:

  RooDataSet* data_bkg1 = BkgConPdf->generate(RooArgSet(*observables),Verbose(false),NumEvents(1000));
 
  RooDataSet* data_bkg2 = BkgConPdf->generate(RooArgSet(*observables),Verbose(false),NumEvents(500));

  data_bkg1->Print("v");
  data_bkg1->append(*data_bkg2); 
  data_bkg1->Print("v");[/code]

do not print error messages:
[quote]RooDataSet::BkgConPdfData: "Generated From backgr con PDF"
  Contains 1000 entries
  Defines RooArgSet::Dataset Variables: (Owning contents)
    1) RooRealVar::m: "invariant mass"
    2) RooRealVar::t: "proper time"
    3) RooRealVar::st: "estimated proper time resolution"
  Caches RooArgSet::Cached Variables:
RooDataSet::BkgConPdfData: "Generated From backgr con PDF"
  Contains 1500 entries
  Defines RooArgSet::Dataset Variables: (Owning contents)
    1) RooRealVar::m: "invariant mass"
    2) RooRealVar::t: "proper time"
    3) RooRealVar::st: "estimated proper time resolution"
  Caches RooArgSet::Cached Variables:
[/quote]

but if I change the event number of the second to 600:
 [code] RooDataSet* data_bkg1 = BkgConPdf->generate(RooArgSet(*observables),Verbose(false),NumEvents(1000));
 
  RooDataSet* data_bkg2 = BkgConPdf->generate(RooArgSet(*observables),Verbose(false),NumEvents(600));

  data_bkg1->Print("v");
  data_bkg1->append(*data_bkg2); 
  data_bkg1->Print("v");

It will give error message, althgouth it seems the appending was done successfully.

[quote]RooDataSet::BkgConPdfData: "Generated From backgr con PDF"
Contains 1000 entries
Defines RooArgSet::Dataset Variables: (Owning contents)
1) RooRealVar::m: "invariant mass"
2) RooRealVar::t: "proper time"
3) RooRealVar::st: "estimated proper time resolution"
Caches RooArgSet::Cached Variables:
Error in TTree::Fill: Failed filling branch:BkgConPdfData.m, nbytes=-1
This error is symptomatic of a Tree created as a memory-resident Tree
Instead of doing:
TTree *T = new TTree(…)
TFile *f = new TFile(…)
you should do:
TFile *f = new TFile(…)
TTree *T = new TTree(…)
Error in TTree::Fill: Failed filling branch:BkgConPdfData.t, nbytes=-1
This error is symptomatic of a Tree created as a memory-resident Tree
Instead of doing:
TTree *T = new TTree(…)
TFile *f = new TFile(…)
you should do:
TFile *f = new TFile(…)
TTree *T = new TTree(…)
Error in TTree::Fill: Failed filling branch:BkgConPdfData.st, nbytes=-1
RooDataSet::BkgConPdfData: "Generated From backgr con PDF"
Contains 1600 entries
Defines RooArgSet::Dataset Variables: (Owning contents)
1) RooRealVar::m: "invariant mass"
2) RooRealVar::t: "proper time"
3) RooRealVar::st: "estimated proper time resolution"
Caches RooArgSet::Cached Variables:[/quote]

It is quite funny. But it is hard to locate the problem. Thanks for any suggestions.

Hi,

This error message was fixed recently. As far as I can tell its occurrence does not seem to have any actual side effects (as you observed)

Wouter