Copy a subset of a Tree to a new Tree
The input file has been generated by the program in $ROOTSYS/test/Event
with Event 1000 1 1 1
.
Author: Rene Brun
This notebook tutorial was automatically generated with ROOTBOOK-izer from the macro found in the ROOT repository on Wednesday, April 17, 2024 at 11:23 AM.
.! $ROOTSYS/test/eventexe 1000 1 1 1
event:0, rtime=0.466505 s event:100, rtime=0.270974 s event:200, rtime=0.252241 s event:300, rtime=0.561547 s event:400, rtime=0.237160 s event:500, rtime=0.237932 s event:600, rtime=0.239075 s event:700, rtime=0.252793 s event:800, rtime=0.265418 s event:900, rtime=0.395438 s ****************************************************************************** *Tree :T : An example of a ROOT tree * *Entries : 1000 : Total = 81215777 bytes File Size = 37698999 * * : : Tree compression factor = 2.15 * ****************************************************************************** *Branch :event * *Entries : 1000 : BranchElement (see below) * *............................................................................* *Br 0 :TObject : BASE * *Entries : 1000 : Total Size= 14667 bytes File Size = 1823 * *Baskets : 2 : Basket Size= 51200 bytes Compression= 7.77 * *............................................................................* *Br 1 :fType[20] : Char_t * *Entries : 1000 : Total Size= 24760 bytes File Size = 2241 * *Baskets : 3 : Basket Size= 51200 bytes Compression= 10.82 * *............................................................................* *Br 2 :fEventName : char* * *Entries : 1000 : Total Size= 23661 bytes File Size = 4833 * *Baskets : 3 : Basket Size= 51200 bytes Compression= 4.79 * *............................................................................* *Br 3 :fNtrack : Int_t * *Entries : 1000 : Total Size= 4651 bytes File Size = 1303 * *Baskets : 2 : Basket Size= 51200 bytes Compression= 3.18 * *............................................................................* *Br 4 :fNseg : Int_t * *Entries : 1000 : Total Size= 4639 bytes File Size = 1899 * *Baskets : 2 : Basket Size= 51200 bytes Compression= 2.18 * *............................................................................* *Br 5 :fNvertex : Int_t * *Entries : 1000 : Total Size= 4657 bytes File Size = 1264 * *Baskets : 2 : Basket Size= 51200 bytes Compression= 3.28 * *............................................................................* *Br 6 :fFlag : UInt_t * *Entries : 1000 : Total Size= 4639 bytes File Size = 638 * *Baskets : 2 : Basket Size= 51200 bytes Compression= 6.49 * *............................................................................* *Br 7 :fTemperature : Double32_t * *Entries : 1000 : Total Size= 4681 bytes File Size = 3407 * *Baskets : 2 : Basket Size= 51200 bytes Compression= 1.22 * *............................................................................* *Br 8 :fMeasures[10] : Int_t * *Entries : 1000 : Total Size= 44877 bytes File Size = 14727 * *Baskets : 4 : Basket Size= 51200 bytes Compression= 3.01 * *............................................................................* *Br 9 :fMatrix[4][4] : Double32_t * *Entries : 1000 : Total Size= 68964 bytes File Size = 42327 * *Baskets : 5 : Basket Size= 51200 bytes Compression= 1.62 * *............................................................................* *Br 10 :fClosestDistance : Double32_t fClosestDistance[fNvertex] * *Entries : 1000 : Total Size= 37612 bytes File Size = 21553 * *Baskets : 4 : Basket Size= 51200 bytes Compression= 1.71 * *............................................................................* *Br 11 :fEvtHdr : EventHeader * *Entries : 1000 : Total Size= 22750 bytes File Size = 4433 * *Baskets : 3 : Basket Size= 51200 bytes Compression= 5.02 * *............................................................................* *Br 12 :fTracks : TClonesArray* * *Entries : 1000 : Total Size= 75907137 bytes File Size = 36839343 * *Baskets : 800 : Basket Size= 25600000 bytes Compression= 2.06 * *............................................................................* *Br 13 :fHighPt : TRefArray* * *Entries : 1000 : Total Size= 1514544 bytes File Size = 588768 * *Baskets : 81 : Basket Size= 632320 bytes Compression= 2.57 * *............................................................................* *Br 14 :fMuons : TRefArray* * *Entries : 1000 : Total Size= 71535 bytes File Size = 9223 * *Baskets : 5 : Basket Size= 51200 bytes Compression= 7.70 * *............................................................................* *Br 15 :fLastTrack : TRef * *Entries : 1000 : Total Size= 16771 bytes File Size = 3597 * *Baskets : 3 : Basket Size= 51200 bytes Compression= 4.52 * *............................................................................* *Br 16 :fWebHistogram : TRef * *Entries : 1000 : Total Size= 16792 bytes File Size = 1843 * *Baskets : 3 : Basket Size= 51200 bytes Compression= 8.82 * *............................................................................* *Br 17 :fH : TH1F* * *Entries : 1000 : Total Size= 961299 bytes File Size = 96296 * *Baskets : 51 : Basket Size= 404480 bytes Compression= 9.97 * *............................................................................* *Br 18 :fTriggerBits : TBits * *Entries : 1000 : Total Size= 41317 bytes File Size = 13023 * *Baskets : 4 : Basket Size= 51200 bytes Compression= 3.13 * *............................................................................* *Br 19 :fIsValid : Bool_t * *Entries : 1000 : Total Size= 1657 bytes File Size = 193 * *Baskets : 2 : Basket Size= 51200 bytes Compression= 5.93 * *............................................................................* *Br 20 :TRefTable : List of branch numbers with referenced objects * *Entries : 1000 : Total Size= 2422133 bytes File Size = 33640 * *Baskets : 76 : Basket Size= 32000 bytes Compression= 71.07 * *............................................................................* 1000 events and 78625869 bytes processed. RealTime=3.851220 seconds, CpuTime=3.710000 seconds compression level=1, split=1, arg4=1, IMT=0, compression algorithm=1 You write 20.415835 Mbytes/Realtime seconds You write 21.192957 Mbytes/Cputime seconds
Arguments are defined.
TString dir = "$ROOTSYS/test/Event.root";
gSystem->ExpandPathName(dir);
const auto filename = gSystem->AccessPathName(dir) ? "./Event.root" : "$ROOTSYS/test/Event.root";
TFile oldfile(filename);
TTree *oldtree;
oldfile.GetObject("T", oldtree);
Warning in <TClass::Init>: no dictionary for class Event is available Warning in <TClass::Init>: no dictionary for class EventHeader is available Warning in <TClass::Init>: no dictionary for class Track is available
Deactivate all branches
oldtree->SetBranchStatus("*", 0);
Activate only four of them
for (auto activeBranchName : {"event", "fNtrack", "fNseg", "fH"})
oldtree->SetBranchStatus(activeBranchName, 1);
Create a new file + a clone of old tree in new file
TFile newfile("small.root", "recreate");
auto newtree = oldtree->CloneTree();
newtree->Print();
newfile.Write();
****************************************************************************** *Tree :T : An example of a ROOT tree * *Entries : 1000 : Total = 975986 bytes File Size = 66759 * * : : Tree compression factor = 11.54 * ****************************************************************************** *Branch :event * *Entries : 1000 : BranchElement (see below) * *............................................................................* *Br 0 :fNtrack : Int_t * *Entries : 1000 : Total Size= 4730 bytes File Size = 971 * *Baskets : 1 : Basket Size= 3072 bytes Compression= 3.36 * *............................................................................* *Br 1 :fNseg : Int_t * *Entries : 1000 : Total Size= 4716 bytes File Size = 1433 * *Baskets : 1 : Basket Size= 3072 bytes Compression= 2.28 * *............................................................................* *Br 2 :fH : TH1F* * *Entries : 1000 : Total Size= 956785 bytes File Size = 64355 * *Baskets : 2 : Basket Size= 772096 bytes Compression= 11.87 * *............................................................................* *Br 3 :TRefTable : List of branch numbers with referenced objects * *Entries : 1000 : Total Size= 8613 bytes One basket in memory * *Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * *............................................................................*