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 | |