Skip to content

Commit 18da45d

Browse files
committed
[test] test treeindex with array index in formula
1 parent 79ad5f3 commit 18da45d

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

roottest/root/tree/index/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@ ROOTTEST_ADD_TEST(index64
1515
MACRO runindex64.C
1616
OUTREF index64.ref)
1717

18+
ROOTTEST_ADD_TEST(varsizearr
19+
MACRO runvarsizearr.C
20+
OUTREF varsizearr.ref)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#include "TTree.h"
2+
#include "TTreeIndex.h"
3+
#include <vector>
4+
#include <iostream>
5+
6+
// https://github.com/root-project/root/pull/19619
7+
int runvarsizearr()
8+
{
9+
const Long64_t nEvents = 2;
10+
const size_t nElements = 3;
11+
std::vector<int> otherNumbers(nElements);
12+
Long64_t eventNumber;
13+
TTree t("tree", "tree");
14+
t.Branch("eventNumber", &eventNumber);
15+
t.Branch("otherNumbers", &otherNumbers);
16+
for (Long64_t i = 0; i < nEvents; i++) {
17+
eventNumber = i;
18+
for (size_t j = 0; j < nElements; ++j)
19+
otherNumbers[j] = -2. * eventNumber + 3500 * j;
20+
t.Fill();
21+
}
22+
std::cout << t.GetEntries() << std::endl;
23+
// use Scan to show what otherNumbers[2] contains
24+
t.Scan("eventNumber:otherNumbers", "", "", nEvents);
25+
26+
TTreeIndex firstIndex(&t, "otherNumbers[2]", "eventNumber");
27+
firstIndex.Print("2"); // before the fix: major was always a garbage value and events were wrongly sorted
28+
TTreeIndex secondIndex(&t, "otherNumbers", "eventNumber");
29+
secondIndex.Print("2"); // major is otherNumbers[0] since index not specified (fine before and after fix)
30+
return 0;
31+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
Processing runvarsizearr.C...
3+
2
4+
***********************************************
5+
* Row * Instance * eventNumb * otherNumb *
6+
***********************************************
7+
* 0 * 0 * 0 * 0 *
8+
* 0 * 1 * 0 * 3500 *
9+
* 0 * 2 * 0 * 7000 *
10+
* 1 * 0 * 1 * -2 *
11+
* 1 * 1 * 1 * 3498 *
12+
* 1 * 2 * 1 * 6998 *
13+
***********************************************
14+
15+
**********************************************
16+
* Index of Tree: tree/tree
17+
**********************************************
18+
serial : otherNumbers[2] : eventNumber
19+
**********************************************
20+
0 : 6998 : 1
21+
1 : 7000 : 0
22+
23+
**********************************************
24+
* Index of Tree: tree/tree
25+
**********************************************
26+
serial : otherNumbers : eventNumber
27+
**********************************************
28+
0 : -2 : 1
29+
1 : 0 : 0
30+
(int) 0

0 commit comments

Comments
 (0)