How to loop over two different TTrees at the same time

{ // ... ROOT 6 is required ... // TH2D *h = new TH2D("h", "correlation;PKUP tflash;FIMG tflash", ...); TFile *f = TFile::Open("run200919.root"); TTreeReader trLess("PKUP"); TTreeReaderValue<int> less1(trLess, "BunchNumber"); TTreeReaderValue<double> less2(trLess, "tflash"); TTreeReader trMore("FIMG"); TTreeReaderValue<int> more1(trMore, "BunchNumber"); TTreeReaderValue<double> more2(trMore, "tflash"); trMore.Next(); // "load" the first entry while (trLess.Next()) { // loop over all entries while (*less1 == *more1) { std::cout << *less1 << " " << *less2 << " " << *more2 << std::endl; // h->Fill(*less2, *more2); if (!(trMore.Next())) break; // "load" the next entry } } delete f; }