Hi All, I found a strange problem arising when you are trying to read TH1F objects from a TTree. We have a tree with several TH1F objects as TBranches (under different names). I understand clearly that this kind of object is not suitable for keeping inside a tree, but ROOT behavior in getting these histograms is very strange. Below I dump simple ROOT session where I opened TFile, created new TH1F object, set Branch Address, and then got several Entries from opened tree. >>>>>>>>>>>>>>>>>>>>Session start<<<<<<<<<<<<<<<<<<<<<<<<<<< ******************************************* * * * W E L C O M E to R O O T * * * * Version 3.03/05 31 May 2002 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* root [0] TFile fl("res/run06.root") root [1] fl.cd() (Bool_t)1 root [2] pht = new TH1F; root [3] .ls TFile** res/run06.root TFile* res/run06.root KEY: TTree wheel;1 Measurement of TRT Wheel root [4] wheel->Print() >>>>>>>>>>>>>>>bla-bla-bla<<<<<<<<<<<<<<<<<<<<<<<<<< *.........................................................................* *Br 41 :RBckgr : RBckg[3]/F * *Entries : 54 : Total Size= 714 bytes File Size = 0 * *Baskets : 0 : Basket Size= 32000 bytes Compression=1.00 * *.........................................................................* *Br 42 :Spec : * *Entries : 54 : Total Size= 323848 bytes File Size = 92614 * *Baskets : 27 : Basket Size= 16000 bytes Compression=3.50 * *.........................................................................* *Br 43 :RSpec : * *Entries : 54 : Total Size= 324416 bytes File Size = 103221 * *Baskets : 27 : Basket Size= 16000 bytes Compression= 3.14 * *.........................................................................* root [5] wheel->SetBranchAddress("Spec",&pht); root [6] .ls TFile** ../../fedin/wts_offline/res/run06.root TFile* ../../fedin/wts_offline/res/run06.root OBJ: TTree wheel Measurement of TRT Wheel : 0 KEY: TTree wheel;1 Measurement of TRT Wheel root [7] wheel->GetEntry(13) (Int_t)12134 root [8] .ls TFile** ../../fedin/wts_offline/res/run06.root TFile* ../../fedin/wts_offline/res/run06.root OBJ: TTree wheel Measurement of TRT Wheel : 0 OBJ: TH1F s1_3_2 Spectrum L==1 C==3 R==2 : 0 OBJ: TH1F r1_3_2 Reference spectrum L==1 C==3 R==2 : 0 KEY: TTree wheel;1 Measurement of TRT Wheel root [9] wheel->GetEntry(24) (Int_t)12134 root [10] .ls TFile** ../../fedin/wts_offline/res/run06.root TFile* ../../fedin/wts_offline/res/run06.root OBJ: TTree wheel Measurement of TRT Wheel : 0 OBJ: TH1F s1_5_1 Spectrum L==1 C==5 R==1 : 0 OBJ: TH1F r1_5_1 Reference spectrum L==1 C==5 R==1 : 0 OBJ: TH1F s1_5_1 Spectrum L==1 C==5 R==1 : 0 OBJ: TH1F r1_5_1 Reference spectrum L==1 C==5 R==1 : 0 KEY: TTree wheel;1 Measurement of TRT Wheel root [11] wheel->GetEntry(2) (Int_t)12134 root [12] .ls TFile** ../../fedin/wts_offline/res/run06.root TFile* ../../fedin/wts_offline/res/run06.root OBJ: TTree wheel Measurement of TRT Wheel : 0 OBJ: TH1F s1_1_3 Spectrum L==1 C==1 R==3 : 0 OBJ: TH1F r1_1_3 Reference spectrum L==1 C==1 R==3 : 0 OBJ: TH1F s1_1_3 Spectrum L==1 C==1 R==3 : 0 OBJ: TH1F r1_1_3 Reference spectrum L==1 C==1 R==3 : 0 OBJ: TH1F s1_1_3 Spectrum L==1 C==1 R==3 : 0 OBJ: TH1F r1_1_3 Reference spectrum L==1 C==1 R==3 : 0 KEY: TTree wheel;1 Measurement of TRT Wheel root [13] delete pht root [14] .ls TFile** ../../fedin/wts_offline/res/run06.root TFile* ../../fedin/wts_offline/res/run06.root OBJ: TTree wheel Measurement of TRT Wheel : 0 OBJ: TH1F r1_1_3 Reference spectrum L==1 C==1 R==3 : 0 OBJ: TObject TObject Basic ROOT object : 0 OBJ: TH1F r1_1_3 Reference spectrum L==1 C==1 R==3 : 0 OBJ: TObject TObject Basic ROOT object : 0 OBJ: TH1F r1_1_3 Reference spectrum L==1 C==1 R==3 : 0 KEY: TTree wheel;1 Measurement of TRT Wheel root [15] r1_1_3->Delete() root [16] .ls TFile** ../../fedin/wts_offline/res/run06.root TFile* ../../fedin/wts_offline/res/run06.root OBJ: TTree wheel Measurement of TRT Wheel : 0 OBJ: TObject TObject Basic ROOT object : 0 OBJ: TObject TObject Basic ROOT object : 0 OBJ: TObject TObject Basic ROOT object : 0 OBJ: TObject TObject Basic ROOT object : 0 KEY: TTree wheel;1 Measurement of TRT Wheel root [17] .q <<<<<<<<<<<<<<<<<<<<<<<<<<<<<End of Session>>>>>>>>>>>>>>>>>> This is getting very odd. I just tried to get ONE histogram, but have got ALL of them in memory. And this is not all: histograms are duplicated with the same names. Deleting is not good for them: strange object still in memory. Yes I know: TH1 and TTree objects are reading into a memory by default, but for tree branch it is not very good default I think. Best regards, Stanislav Nesterov.
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:57 MET