I think I know what is the problem - after CINT breakes on your code, it disables do bytecode optimization, so when you're running against 3.02/06 your bytecode is optimized, when you're running against 3.02/07 - it is not. Try to get rid of a break. In general it is a VERY god idea to start using script compiler - you'get another factor of several in performance. best, Pasha On Tue, 22 Jan 2002 21:48:44 -0500 "Kalen Martens" <fmartens@physics.utoronto.ca> wrote: > Hi Again, > > I've narrowed down the problem a little more. > > Yes, my PATH and LD_LIBRARY_PATH variables point to the new version. I > never used the TTree::MakeCode in 3.02/07 to create my analysis code, but > it does appear when I use it in 3.02/07. > > Below is the short bit of code from my h3333.C that generates a > segmentation fault in 3.02/07 when it is first run. The interpreter > recovers, and when it is run again, it takes a long time to go through the > 50K events in the root file. The ROOT version 3.01/06 has no problem > running this. > > (I loaded libPhysics.so at the beginning of the code.) > > // This is the loop skeleton > > TH1F *hmj = new TH1F("hmj", "muon-jet separation", 100, 0, 10); > > Int_t nentries = h3333->GetEntries(); > > for (Int_t i=0; i<nentries;i++) { > h3333->GetEntry(i); > for (Int_t ii=0 ; ii<Npart ; ii++) { > > if ( TMath::Abs(Kfpar[ii]) == 13 ) { > > TVector3 p_muon(Pxpar[ii], Pypar[ii], Pzpar[ii]); > > for ( Int_t iii=0 ; iii<Njeta ; iii++) { > > Double_t rap_muon; > > rap_muon=p_muon.Eta(); > hmj -> Fill(rap_muon); > > } > } > } > } > > I've just had a thought on this. Looking in TVector3.h, the constructor > looks like: > > TVector3(Double_t x = 0.0, Double_t y = 0.0, Double_t z = 0.0); > > The variables Pxpar[ii], etc, are of type Float_t. Is this the problem? I > can't find anywhere that tells me either that ROOT does an implicit > conversion, or how to do a conversion explicitly between these data types, > so I can't check it myself. > > Thanks, > -Kalen > > On Tue, 22 Jan 2002, Rene Brun wrote: > > > Hi Kalen, > > > > I tried converting an old ATLFAST ntuple file into a ROOT file via h2root. > > I generated the analysis code with TTree::MakeCode. 3.02/07 is slightly faster > > than 3.01/06. > > When you moved to 3.02/07, are you sure that you also changed your PATH > > and LD_LIBRARY_PATH variables to point to the new version? > > > > When you execute TTree::MakeCode, you should have received the following > > warning message: > > > > h3333.MakeCode("h3333.C") > > Warning in <TTree::MakeCode>: MakeCode is obsolete. Use MakeClass or > > MakeSelector instead > > > > Did you modify the generated code? Did you activate/deactivate some branches? > > > > Rene Brun > > > > Kalen Martens wrote: > > > > > > Dear ROOTers, > > > > > > I was using ROOT version 3.01/06 for some time. Using h2root, I converted > > > a 50K event ntuple made with ATLFAST into a .root file. I used the > > > TTree::MakeCode() method on the root file and created my script which > > > took about 30 seconds to run with version 3.01/06. > > > > > > I downloaded and installed the binary version 3.02/07. That exact same > > > script now took 10 minutes to run! Another side effect (related, perhaps) > > > is that a segmentation fault occurs when I run this script for the first > > > time after starting ROOT. The segmentation fault is non-fatal and the > > > interpreter recovers. > > > > > > I can't figure out where the speed is lost and why the segmentation fault > > > occurs. Maybe it's a backwards non-compatability? Any idea would be > > > appreciated. > > > > > > I'm back using 3.01/06 for now. > > > > > > Thanks, > > > -Kalen > > > > > > ----------------------------------------------------------------- > > > - Kalen Martens Ph:(416)-978-6632 - > > > - Dept. of Physics - > > > - University of Toronto, Toronto, Canada - > > > ----------------------------------------------------------------- > > > > -- -best, Pasha
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:39 MET