I have been using the CopyTree method, along with a TEventList, to select
a subset of events and branches in a TChain to write out to a TTree. This
works absolutely fine for TClonesArray branches. However for the single
object branch in the TChain it fails miserably. The entire branch somehow
gets converted into a single 'TObject' branch. Shown below is the result
of a 'Print' of the original TChain branch:
root [5] TMBTree->GetBranch("Glob")->Print("")
*Branch :Glob *
*Entries : 13865 : BranchElement (see below) *
*............................................................................*
*Br 1 :fUniqueID : *
*Entries : 13865 : Total Size= 68940 bytes File Size = 1414 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 39.59 *
*............................................................................*
*Br 2 :fBits : *
*Entries : 13865 : Total Size= 68860 bytes File Size = 1400 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 39.99 *
*............................................................................*
*Br 3 :_evtno : *
*Entries : 13865 : Total Size= 68880 bytes File Size = 49526 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 1.13 *
*............................................................................*
*Br 4 :_runno : *
*Entries : 13865 : Total Size= 68880 bytes File Size = 2602 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 21.50 *
*............................................................................*
*Br 5 :_store : *
*Entries : 13865 : Total Size= 68880 bytes File Size = 2279 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 24.55 *
*............................................................................*
*Br 6 :_solpol : *
*Entries : 13865 : Total Size= 68900 bytes File Size = 1418 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 39.46 *
*............................................................................*
*Br 7 :_torpol : *
*Entries : 13865 : Total Size= 68900 bytes File Size = 1418 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 39.46 *
*............................................................................*
*Br 8 :_ticknum : *
*Entries : 13865 : Total Size= 68920 bytes File Size = 17272 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 3.24 *
*............................................................................*
*Br 9 :_lumblk : *
*Entries : 13865 : Total Size= 68900 bytes File Size = 6973 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 8.02 *
*............................................................................*
*Br 10 :_solcur : *
*Entries : 13865 : Total Size= 68900 bytes File Size = 1980 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 28.26 *
*............................................................................*
*Br 11 :_torcur : *
*Entries : 13865 : Total Size= 68900 bytes File Size = 2299 *
*Baskets : 14 : Basket Size= 4000 bytes Compression= 24.34 *
*............................................................................*
and after CopyTree has done its work the branch in the output file is now:
*Branch :Glob *
*Entries : 326 : BranchElement (see below) *
*............................................................................*
*Br 0 :TObject : *
*Entries : 326 : Total Size= 16976 bytes File Size = 526 *
*Baskets : 1 : Basket Size= 4000 bytes Compression= 5.95 *
*............................................................................*
The original class, TMBGlob, is loaded and ROOT clearly recognises it
since with the original branch I can decode and look at all the entries
with the class loaded. When I set the branch address I use the command:
SetBranchAddress("Glob",&_ptr);
where _ptr is of type "TMBGlob *" and points to a TMBGlob class instance.
The version of ROOT I am running is v3.03/09. I have tried compiling the
code under both v03.04/02 and v03.05/00. However there are lots of
problems with both version from rootcint and, after an initial attempt to
fix them, I have come to the conclusiosn that this is several days effort
which is time I don't currently have!
So is there a fix or workaround which I can use with v03.03/09?
Thanks,
Roger
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET