Hi Ilya,
Did you do something like:
TFile *output = new TFile("shortfile.root","RECREATE"); TTree* tmp = CALIWAVE->CopyTree("FT==0 && slot==2 && channel==1"); tmp->Write();
to insure that the output TTree is properly attached to the output files?
Cheers,
Philippe.
Ilya Orlov wrote:
> Hello roottalk,
>
> I'm trying to select the records from the TTree having a specific
> values of several leaves.
> I have TTree* CALIWAVE being of enormous size (smth like 40 millions
> of records), but I need only ~1000 of them to be selected.
>
> When I say
> CALIWAVE->Scan("Amplitude","FT==0 && slot==2 && channel==1");
> I get the array of 768 records printed out, and everything is fine and quick.
>
> But when I say
> TTree* tmp = CALIWAVE->CopyTree("FT==0 && slot==2 && channel==1");
> to get the access to the leaves of the selected records from my
> script, I get the bad_alloc exception.
> That happens both in CINT and in my C program using ROOT libraries.
>
> Why is it so and how can I manage to do what I want? :)
>
> Thank you in advance.
>
> --
> Best regards,
> Ilya Orlov.
>
>
> ====================================
> CERN, ATLAS collaboration
> LAr Endcap calorimeter commissioning group
> office 40-1C-08, mailbox E28210
> CH-1211 Genève 23, Switzerland
> +41 22 76 71137 (office), +41 76 487 2733 (office cell),
> +41 76 289 3446 (personal cell)
> ====================================
> Budker Institute for Nuclear Physics
> KEDR collaboration
> Acad. Lavrentiev avenue, 11
> Novosibirsk 630090, Russian Federation
> +7 (383) 329-44-19, +7 913 931 0898 (cell)
> ====================================
> Novosibirsk State University
> Students Scientific Work Department, department head
> Pirogova str., 2, office 420
> Novosibirsk 630090, Russian Federation
> +7 (383) 363-40-57, +7 913 931 0898 (cell)
> ====================================
>
>
Received on Sat Sep 12 2009 - 17:33:35 CEST
This archive was generated by hypermail 2.2.0 : Sat Sep 12 2009 - 23:50:02 CEST