Hi Rene, I tried this but unfortunately the total size is something like 10GB and so I cannot merge them into one file, I have to merge them into several files (with a filesize of less than 2GB). I tried to add them into a chain and then loop over all events. As soon as I reach a certain amount of events I tried to close the file and open a new one to continue writing. Unfortunately this didn't work, because the tree I get with TChain::GetTree gets invalid as soon as the chain jumps from one file to another. Then I tried to call the function GetTree again as soon as the chain jumps to the next file and this worked somehow but at the end I ended up with a merged file which contained a lot of copies of the original tree: for example the original tree was named "Global" then the merged file had a lot of Trees named "Globalxx" with x from 1 to the number of files processed so far ... Christian Schmitt > The procedure to merge ROOT Trees is described in TChain::Merge. See: > http://root.cern.ch/root/htmldoc/TChain.html#TChain:Merge > > If you have files named file1.root,file2.root,file3.root, containing a Tree > "T", do > TChain ch("T"); > ch.Add("file1.root"); > ch.Add("file2.root"); > ch.Add("file3.root"); > ch.Merge("big.root"); > > Rene Brun > > Christian Schmitt wrote: > > Hi ROOTers, > > > > I have the following problem: I need to merge several hundred files, each > > containing the same tree. The total size is something like 10 GB. > > So I cannot use just TChain::Merge because of the 2GB limit of > > root-files. > > > > Now my wuestion is: how can I merge the files such that ideally I get 5 > > to 6 files with each having a filesize < 2GB ? > > > > It should be a solution which works in general, i.e. doesn't make an > > asumption on the structure of the tree in the files (the only thing known > > is that the trees are simple trees, i.e. only integers, or floats are > > stored). > > > > Thanks for your help, > > > > Christian Schmitt
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:10 MET