|
12 | 12 | #include "TLorentzVector.h" |
13 | 13 | #include <Math/Vector3D.h> |
14 | 14 | #include <ROOT/TestSupport.hxx> |
| 15 | +#include "ROOT/TTreeReaderValueFast.hxx" |
| 16 | +#include "TNtuple.h" |
15 | 17 |
|
16 | 18 | #include "TTreePlayer.h" |
17 | 19 |
|
@@ -340,6 +342,23 @@ TEST(TTreeReaderRegressions, XYZVectors) |
340 | 342 | } |
341 | 343 | } |
342 | 344 |
|
| 345 | +// ROOT-8842 https://its.cern.ch/jira/browse/ROOT-8842 |
| 346 | +TEST(TTreeReaderRegressions, ValueFastTuple) |
| 347 | +{ |
| 348 | + TNtuple tree("tuple", "ROOT-8842", "px:py:pz:energy"); |
| 349 | + for (auto i = 0; i < 1000000; ++i) |
| 350 | + tree.Fill(i, i + 1, i + 2, i + 3); |
| 351 | + ROOT::Experimental::TTreeReaderFast reader(&tree); |
| 352 | + ROOT::Experimental::TTreeReaderValueFast<float> px(reader, "px"); |
| 353 | + ROOT::Experimental::TTreeReaderValueFast<float> py(reader, "py"); |
| 354 | + ROOT::Experimental::TTreeReaderValueFast<float> pz(reader, "pz"); |
| 355 | + double total = 0.0; |
| 356 | + // reader.SetEntry(0); If I uncomment this, the crash disappears |
| 357 | + for (auto it = reader.begin(); it != reader.end(); ++it) |
| 358 | + total += sqrt((*px) * (*px) + (*py) * (*py) + (*pz) * (*pz)); |
| 359 | + EXPECT_NEAR(total, 866026269930.1345215, 100); |
| 360 | +} |
| 361 | + |
343 | 362 | // https://github.com/root-project/root/issues/20226 |
344 | 363 | TEST(TTreeScan, IntOverflow) |
345 | 364 | { |
|
0 commit comments