This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
root:pyroot_ttree [2017/06/27 13:20] – iwn | root:pyroot_ttree [2018/02/28 13:58] – [Looping over a TTree] iwn | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | [[root: | ||
+ | |||
====== Handling TTree trees ====== | ====== Handling TTree trees ====== | ||
+ | |||
+ | [[https:// | ||
[[root: | [[root: | ||
Line 23: | Line 27: | ||
tree = TTree(" | tree = TTree(" | ||
- | # create 1 dimensional float arrays as fill variables, in this way the float array serves | + | # create 1 dimensional float arrays as fill variables, in this way the float |
- | # as a pointer which can be passed to the branch | + | # array serves |
px = array(' | px = array(' | ||
phi = array(' | phi = array(' | ||
Line 52: | Line 56: | ||
</ | </ | ||
- | Note that '' | + | Note that '' |
<code python> | <code python> | ||
tree.Write() | tree.Write() | ||
Line 98: | Line 102: | ||
<code python> | <code python> | ||
for event in tree: | for event in tree: | ||
- | print tree.px | + | print event.px |
</ | </ | ||
If you also need the event' | If you also need the event' | ||
<code python> | <code python> | ||
for i, event in enumerate(tree): | for i, event in enumerate(tree): | ||
- | print i, tree.px | + | print i, event.px |
</ | </ | ||
- | |||
===== Making a histogram with TTree ===== | ===== Making a histogram with TTree ===== | ||
Line 154: | Line 157: | ||
- | ===== Scanning a TTree ===== | + | ===== Scanning |
- | Print the values of some branches in columns: | + | Print the values of some branches in columns |
<code python> | <code python> | ||
tree.Scan(" | tree.Scan(" | ||
tree.Scan(" | tree.Scan(" | ||
+ | tree.Scan(" | ||
</ | </ | ||
- | Write output to a file: | + | The [[https:// |
+ | |||
+ | To write the output | ||
<code python> | <code python> | ||
tree.GetPlayer().SetScanRedirect(True) | tree.GetPlayer().SetScanRedirect(True) | ||
Line 169: | Line 175: | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== TChain ===== | ||
+ | |||
+ | If you have a samples split into many files, each containing the same tree, you can either add the files into one big one in the command line with '' | ||
+ | |||
+ | With '' | ||
+ | <code bash> | ||
+ | hadd sample.root sample_1.root sample_2.root sample_3.root | ||
+ | </ | ||
+ | |||
+ | With '' | ||
+ | <code python> | ||
+ | chain = TChain(" | ||
+ | chain.Add(" | ||
+ | chain.Add(" | ||
+ | chain.Add(" | ||
+ | for event in chain: | ||
+ | print event.px | ||
+ | </ | ||
+ | Note it's also possible to use a glob wildcard: '' |