Re: CopyTree'ing large TTrees

From: Ilya Orlov <Ilya.Orlov_at_cern.ch>
Date: Sat, 12 Sep 2009 19:28:40 +0200


2009/9/12 Philippe Canal <pcanal_at_fnal.gov>:
> However in your example you never create the ouput file :).  ( this may or
> may not be the problem).

Appears that it isn't.
Just composed a small crash-test:



TFile* in = new
TFile("~larcalib/w0/data/WorkingDirectory/00129019_00129020_00129024_Barrel-EMB-EMEC_MEDIUM_26_15.0.0_1/rootFiles/LArCaliWave_00129020_EB-EMBA_StripsXtalkCorr.root","READ"); TFile* out = new TFile ("./out.root","RECREATE");

TTree* cw = (TTree*) (in->Get("CALIWAVE"));

cw->Scan ("channelId", "FT==0 && slot==2 && channel==1"); // that works fine! - 1 record is printed out

TTree* tr = cw->CopyTree("FT==0 && slot==2 && channel==1"); // that throws a bad_alloc exception


The exception appears both in CINT and in the compiled C program. So the problem still remains unsolved... :(

Attached is the crash-test as a program that compiles perfectly using standard ROOT libraries and headers but throws an exception.

--
Best regards,
Ilya Orlov.

Received on Sat Sep 12 2009 - 19:29:04 CEST

This archive was generated by hypermail 2.2.0 : Mon Sep 14 2009 - 17:50:03 CEST