Skip to content

Commit 3e45171

Browse files
committed
Provide example reading of TTree using TSelector class
1 parent b82a3bf commit 3e45171

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

demo/read_tree.htm

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
5+
<meta charset="UTF-8">
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
7+
8+
<title>Reading object from the ROOT file</title>
9+
10+
<script src="../scripts/JSRootCore.min.js" type="text/javascript"></script>
11+
12+
<script type='text/javascript'>
13+
// absolute file path can be used as well
14+
var filename = "../../files/hsimple.root";
15+
JSROOT.OpenFile(filename, function(file) {
16+
file.ReadObject("ntuple;1", function(tree) {
17+
18+
var selector = new JSROOT.TSelector();
19+
20+
selector.AddBranch("px");
21+
selector.AddBranch("py");
22+
23+
var cnt = 0, sumpx = 0, sumpy = 0;
24+
25+
selector.Begin = function() {
26+
// function called before reading of TTree starts
27+
document.getElementById('p_start').innerHTML = "Start reading TTree";
28+
}
29+
30+
selector.Process = function() {
31+
// function called for every entry
32+
sumpx += this.tgtobj.px;
33+
sumpy += this.tgtobj.py;
34+
cnt++;
35+
document.getElementById('p_process').innerHTML = "Process " + cnt + " entries";
36+
}
37+
38+
selector.Terminate = function(res) {
39+
// function called when processing finishes
40+
if (!res || (cnt===0)) res = "Fail to process TTree";
41+
else res = 'MeanPX = ' + (sumpx/cnt).toFixed(4) + ' MeanPY = ' + (sumpy/cnt).toFixed(4);
42+
document.getElementById('p_ready').innerHTML = res;
43+
}
44+
45+
tree.Process(selector);
46+
});
47+
});
48+
</script>
49+
50+
</head>
51+
52+
<body>
53+
<p id="p_start">...</p>
54+
<p id="p_process">...</p>
55+
<p id="p_ready">...</p>
56+
</body>
57+
58+
</html>
59+

docs/api.htm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ <h1 id="version"><a href=".." style="color:green">JSROOT</a></h1>
173173
{ name: "File hierarchy", url: "demo/file_hierarchy.htm", title: "Use HierarchyPainter to display file objects hiararchy", src: true },
174174
{ name: "Zooming", url: "demo/zoom_handler.htm", title: "Redefine Zoom function to make synchronous zooming in other histogram", src: true },
175175
{ name: "User IO", url: "index.htm?file=" + filepath + "amore.root&item=moH1F_0;1&load=demo/amore.js", title : "Example of custom streamer and custom draw function (AMORE)", src: "demo/amore.js" },
176+
{ name: "Read tree", url: "demo/read_tree.htm", title: "Read data from TTree using TSelector class", src: true },
176177
{ name: "User tree", url: "index.htm?file=https://root.cern/files/markus.root&item=_Event;1/Refs&opt=dump&load=demo/gaudi.js", title : "Example of user custom streamer for reading TTree data (Gaudi)", src: "demo/gaudi.js" }
177178
],
178179
'httpserver.C' : [

0 commit comments

Comments
 (0)