Dear Rene, (-:) !!! yes ... its working... Thanks... > > Hi EveryOne, > > > > I have two items which are new to my experience with root now, and I > > dont understand them very well. I'd appreciate very much your help. > > > > FIRST: ROOT Tree too large ... > > ^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Can someone tell me how to use the tree->ChangeFile(TFile * file)? > > > > I just learned it from ROOT FAQ, that this is used when root tree size > > exceeds the 2GB limit. Bbut I don't know how to insert them along > > which line, or next to what line. Am having trouble saving a large root > > file greater than 2 GByte Limit. > > In principle, you have nothing to do. ROOT will automatically switch > to a new file when the current file is above 1.9GByte (default). > see TTree::ChangeFile for more details. > > > > > > > SECOND: ROOT File Tree larger than the source file? > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > I have a source file(text file), actually 2 columns, an integer and a > > Float > > > > Ch Time > > i.e., 4 20567.90 > > 8 38930.34 > > 15 24523.67 > > ............. > > ............. > > > > There are about 380,000 lines of the above format. So I decided to create > > a tree > > like: ................... > > .................... > > Int_t comp = 1; > > TFile * f = new TFile("out.root","NEW"); > > f->SetCompression(1); > > TTree * tree = new TTree("T", "myTree"); > > tree->SetAutoSave(1000000000); > > > > tree->Branch("Ch",&Ch,"Ch/I"); > > tree->Branch("Time",&Time,"Time/F"); > > > > while(fgets(.......)) { > > > > ........filling..... > > > > Int_t nb = 0; > > nb += tree->Fill(); > > tree->AutoSave(); > > tree->Print(); > > tree->Write > > ......... > > } > > > OUIH!!!! > You should not call the 3 last lines inside the loop, but do something > like > while (fgets(.. ) { > nb += tree->Fill(); > } > tree->AutoSave(); > tree->Print(); > > The Tree should be about 5 times smaller than the original text file. > > Rene Brun > > > > > But during implementation, I was disturbed that the output sizeof the root > > file is larger than the source text file by several (~5)factors. Do you > > know what is going on here? That means that the way I created a tree is > > not "efficient"; and filling of the tree takes some time. I figure out > > that obtaining a histogram by directly filling the contents from the > > source file maybe faster than obtaining a histogram from a rootproduced > > tree (later). > > > > But having a root tree is still more advantageous. > > How do we rewrite the above script? > > > > Thank you for bearing with me. > > > > > > PS. > > root version 3.05/05 > > gcc 3.2.2 RedHat 9 > > > -- -------------------------------------------------------- Zaldy A. Nawang PS Users Room 2 Yon Gokan, E362, Neutrino Group, IPNS, KEK, Japan e-mail: zaldy@neutrino.kek.jp Tel. No. : (81) 029864 - 5387 --------------------------------------------------------
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET