Example code which illustrates how to use ROOT trees and ntuples.
TTree represents a columnar dataset. Used for example by all LHC (Large Hadron Collider) experiments. Trees are optimized for reduced disk space and selecting, high-throughput columnar access with reduced memory usage.
...
In a nutshell:
Explore the examples below or go to TTree class reference.
These examples show how data can be stored to and read back from TTree.
| Tutorial | Description | 
|---|---|
| tree101_basic.C | Basic TTree usage. | 
| tree102_basic.C | A variant of tree101_basic.C | 
| tree103_tree.C | Simple Event class example | 
| tree104_tree.C | A variant of hsimple.C but using a TTree instead of a TNtuple | 
| tree105_tree.C | Illustrates how to make a tree from variables or arrays in a C struct - without a dictionary, by creating the branches for builtin types (int, float, double) and arrays explicitly | 
| tree106_tree.C | The same as tree105_tree.C, but uses a class instead of a C-struct     | 
| tree107_tree.C | Example of a tree where branches are variable length arrays | 
| tree108_tree.C | This example writes a tree with objects of the class Event     | 
| tree109_friend.C | Illustrates how to use tree friends | 
| tree113_getval.C | Illustrates how to retrieve tree variables in arrays | 
| tree114_circular.C | Example of a circular Tree. Circular Trees are interesting in online real time environments to store the results of the last maxEntries events | 
These examples shows how to copy the content of trees.
| Tutorial | Description | 
|---|---|
| tree110_copy.C | Copy a subset of a tree to a new tree | 
| tree111_copy.C | Copy a subset of a tree to a new tree, one branch in a separate file | 
| tree112_copy.C | Copy a subset of a tree to a new tree, selecting entries | 
These examples show how to write and read several collection classes (std::vector, TClonesArray,...) to trees.
| Tutorial | Description | 
|---|---|
| tree120_ntuple.C | Read a TNtuple from a file and performs a simple analysis | 
| tree121_hvector.C | Write and read STL vectors in a tree | 
| tree122_vector3.C | Write and read a Vector3 class in a tree     | 
| tree123_clonesarray.C | Write and read a TClonesArray to a tree | 
These examples shows a couple of more advanced examples using complex data.
| Tutorial | Description | 
|---|---|
| tree130_jets.C | Usage of a tree using the JetEvent class. The JetEvent class has several collections (TClonesArray) and other collections (TRefArray) referencing objects in the TClonesArrays     | 
| tree131_clones_event.C | Example to write & read a Tree built with a complex class inheritance tree. It demonstrates usage of inheritance and TClonesArrays | 
These tutorials show how to generate complex graphics from TNtuple and/or TTree.
| Tutorial | Description | 
|---|---|
| tree140_spider.C | Example of a TSpider plot generated from a TNtuple (from hsimple.root) | 
| tree141_parallelcoord.C | Illustrate the use of the TParallelCoord class (from a TNtuple) | 
| tree142_parallelcoordtrans.C | It displays TParallelCoord from the same dataset twice. The first time without transparency and the second time with transparency | 
| tree143_drawsparse.C | Convert a THnSparse to a TTree using efficient iteration through the THnSparse and draw it using TParallelCoord | 
A collection of other examples which showcases other usecases
| Tutorial | Description | 
|---|---|
| tree200_temperature.C | Illustrates how to use the highlight mode with trees, using a temperature dataset from Prague between 1775 and 2004 | 
| tree201_histograms.C | Save histograms in tree branches | 
| tree202_benchmarks.C | Benchmark comparing row-wise and column-wise storage performance | 
| tree500_cernbuild.C | Read data (CERN staff) from an ascii file and create a root file with a tree | 
| tree501_cernstaff.C | Playing with a tree containing variables of type character | 
| tree502_staff.C | Create a plot of the data in cernstaff.root    | 
Files | |
| file | csv2tntuple.py | 
     Build ROOT Ntuple from other source.  | |
| file | csv2tree_ReadStream.py | 
| This function provides an example of how one might massage a csv data file to read into a ROOT TTree via TTree::ReadStream.  | |
| file | hsimpleProxy.C | 
     Used by hsimpleProxyDriver.C.  | |
| file | hsimpleProxyDriver.C | 
     This is the driver of the hsimpleProxy example.  | |
| file | hsimpleReader.C | 
     TTreeReader simplest example.  | |
| file | imt_parTreeProcessing.C | 
     Illustrate the usage of the TTreeProcessorMT::Process method.  | |
| file | mp_fillNtuples.C | 
     Fill n-tuples in distinct workers.  | |
| file | mp_readNtuplesFillHistosAndFit.C | 
     Read n-tuples in distinct workers, fill histograms, merge them and fit.  | |
| file | mt_fillNtupleFromMultipleThreads.C | 
     Fill the same TNtuple from different threads.  | |
| file | mt_fillNtuples.C | 
     Fill n-tuples in distinct workers.  | |
| file | mt_readNtuplesFillHistosAndFit.C | 
     Read n-tuples in distinct workers, fill histograms, merge them and fit.  | |
| file | mtbb_fillNtuples.C | 
     Fill n-tuples in distinct workers.  | |
| file | ntuple1.py | 
     Ntuple drawing example.  | |
| file | printSizes.C | 
     This macro can be used to get aggregate information on the size take on disk or in memory by the various branches in a TTree.  | |
| file | staff.py | 
     example of macro to read data from an ascii file and create a root file with a Tree.  | |
| file | tree.C | 
| Display the Tree data structures.  | |
| file | tree101_basic.C | 
     Read data from an ascii file and create a root file with an histogram and an ntuple.  | |
| file | tree102_basic.C | 
     Create can ntuple reading data from an ascii file.  | |
| file | tree103_tree.C | 
     Simple Event class example  | |
| file | tree104_tree.C | 
     This example is a variant of hsimple.C but using a TTree instead of a TNtuple.  | |
| file | tree105_tree.C | 
     This example illustrates how to make a Tree from variables or arrays in a C struct - without a dictionary, by creating the branches for builtin types (int, float, double) and arrays explicitly.  | |
| file | tree106_tree.C | 
     This example is the same as tree105_tree.C, but uses a class instead of a C-struct.  | |
| file | tree107_tree.C | 
     Example of a Tree where branches are variable length arrays A second Tree is created and filled in parallel.  | |
| file | tree108_tree.C | 
     This example writes a tree with objects of the class Event.  | |
| file | tree109_friend.C | 
     Illustrates how to use Tree friends:  | |
| file | tree110_copy.C | 
     Copy a subset of a Tree to a new Tree  | |
| file | tree111_copy.C | 
     Copy a subset of a Tree to a new Tree, one branch in a separate file.  | |
| file | tree112_copy.C | 
     Example of Root macro to copy a subset of a Tree to a new Tree, selecting entries.  | |
| file | tree113_getval.C | 
     Illustrates how to retrieve TTree variables in arrays.  | |
| file | tree114_circular.C | 
     Example of a circular Tree  | |
| file | tree120_ntuple.C | 
     Simple tree analysis.  | |
| file | tree121_hvector.C | 
     Write and read STL vectors in a tree.  | |
| file | tree122_vector3.C | 
     Write and read a Vector3 class in a tree.  | |
| file | tree123_clonesarray.C | 
     How to write a TClonesArray to a TTree  | |
| file | tree130_jets.C | 
| Usage of a Tree using the JetEvent class.  | |
| file | tree131_clones_event.C | 
| Example to write & read a Tree built with a complex class inheritance tree.  | |
| file | tree140_spider.C | 
     TSpider example.  | |
| file | tree141_parallelcoord.C | 
     Script illustrating the use of the TParallelCoord class  | |
| file | tree142_parallelcoordtrans.C | 
     Use of transparency with ||-Coord.  | |
| file | tree143_drawsparse.C | 
     Convert a THnSparse to a TTree using efficient iteration through the THnSparse and draw a THnSparse using TParallelCoord.  | |
| file | tree200_temperature.C | 
| This tutorial illustrates how to use the highlight mode with trees.  | |
| file | tree201_histograms.C | 
     Save histograms in Tree branches  | |
| file | tree202_benchmarks.C | 
     Benchmark comparing row-wise and column-wise storage performance  | |
| file | tree500_cernbuild.C | 
     Read data (CERN staff) from an ascii file and create a root file with a Tree.  | |
| file | tree501_cernstaff.C | 
     Playing with a Tree containing variables of type character  | |
| file | tree502_staff.C | 
     Create a plot of the data in cernstaff.root To create cernstaff.root, execute tutorial $ROOTSYS/tutorials/io/tree/tree500_cernbuild.C  | |