Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
tree112_copy.C File Reference

Detailed Description

View in nbviewer Open in SWAN
Example of Root macro to copy a subset of a Tree to a new Tree, selecting entries.

Only selected entries are copied to the new Tree. The input file has been generated by the program in $ROOTSYS/test/Event with Event 1000 1 99 1

#ifdef ACTUAL_RUN // -------- Second pass: dictionary already built --------
#include "./Event.h" // now safe to include Event, its dictionary is loaded
void run()
{
TFile oldfile("tree108.root");
oldfile.GetObject("t4", oldtree);
const auto nentries = oldtree->GetEntries();
Event *event = nullptr;
oldtree->SetBranchAddress("event_split", &event);
// Create a new file + a clone of old tree in new file
TFile newfile("tree112.root", "recreate");
auto newtree = oldtree->CloneTree(0);
for (auto i : ROOT::TSeqI(nentries)) {
oldtree->GetEntry(i);
if (event->GetNtrack() > 605)
newtree->Fill();
event->Clear();
}
newtree->Print();
newfile.Write();
}
#else // -------- First pass: build dictionary + rerun macro --------
{
TString tutdir = gROOT->GetTutorialDir();
gROOT->ProcessLine(".L " + tutdir + "/io/tree/Event.cxx+");
gROOT->ProcessLine("#define ACTUAL_RUN yes");
gROOT->ProcessLine("#include \"" __FILE__ "\"");
gROOT->ProcessLine("run()");
}
#endif
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
int nentries
#define gROOT
Definition TROOT.h:411
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
Definition TFile.h:131
Basic string class.
Definition TString.h:138
A TTree represents a columnar dataset.
Definition TTree.h:89
Namespace for new ROOT classes and functions.
Author
Rene Brun

Definition in file tree112_copy.C.