Hi Frank,
Looking at the output of TTree::Print, I conclude that:
-you have a serious problem with your input Trees. They are
all memory-resident. Input files are not compressed
-your output file is disk-resident, but the file/tree
was created with no compression. By default, the ClonedTree
uses the same parameters as the input Tree.
You can "recover" by doing:
TTree *xtree0 = chain1->CopyTree("m0B0>0",0);
TIter next(xtree0->GetListOfBranches());
TBranch *br;
while ((br=(TBranch*)next())) {
br->SetCompressionLevel(1);
}
xtree0->CopyEntries(chain1,-1);
Rene Brun
On Tue, 27
Jan
2004, Frank Winklmeier wrote:
> Hi Rene,
>
> I attatched the file copytree.log to that mail which includes the Print()
> output. To make it shorter I only used 5 of the input files. But the
> difference in size is still remarkable.
>
> Frank
>
>
> On Tue, 27 Jan 2004, Rene Brun wrote:
>
> > Hi Frank,
> >
> > Could you send the result of
> >
> > chain1->Print();
> > xtree0->Print();
> >
> > Rene Brun
> >
> >
> > Frank Winklmeier wrote:
> > >
> > > Hi Rene,
> > >
> > > sorry about that. Here it is:
> > >
> > > TChain *chain1 = new TChain("xtree");
> > > chain1->Add("/hep42/frank/root/xjpsi-*.root");
> > >
> > > TFile f1("/hep42/frank/root/xjpsi-B0.root","recreate");
> > > TTree *xtree0 = chain1->CopyTree("m0B0>0");
> > > f1.Write();
> > >
> > > Frank
> > >
> > > On Tue, 27 Jan 2004, Rene Brun wrote:
> > >
> > > > Frank,
> > > >
> > > > Please send your real code. In your snippet you have
> > > > TFile f("subset.root");
> > > > this should be
> > > > TFile f("subset.root","recreate");
> > > >
> > > > Rene Brun
> > > >
> > > > Frank Winklmeier wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > I want to select a subset of a tree which is split over several files and
> > > > > save this subset to one new file. Everything works fine but the resulting
> > > > > file size is much bigger than the sum of the input files.
> > > > >
> > > > > I start with:
> > > > >
> > > > > TChain *chain = new TChain("tree");
> > > > > chain->Add("data-*.root");
> > > > >
> > > > > // there is data-1 to data-21, each about 13 MB
> > > > >
> > > > > TFile f("subset.root");
> > > > > TTree *subtree = chain->CopyTree("m0b0>0");
> > > > > f.Write();
> > > > >
> > > > > The resuling size of subset.root is about 560 MB !!!
> > > > > But the total size of the (unfiltered) input is only about 270 MB.
> > > > > The compression level is 1 in all the files.
> > > > > The selection criteria "m0b0>0" selects about 50% of all entries.
> > > > > I am using RooT version 3.10-01 on RH9.
> > > > >
> > > > > How is that possible? Why is the compression so much worse for the subset?
> > > > >
> > > > > Thanks,
> > > > > Frank
> > > >
> >
>
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET