Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-8456

Issues with TTreeReader




      Trying to use TTreeReader and TTreeReaderValue to read data from a TTree, I stumble over some issues:

      1. The first is one being that TTreeReaderValue<T>::IsValid() always returns false, which is caused by TTreeReaderValue<T>::fSetupStatus never being set to anything after having been initialized to kSetupNotSetup.

      2. The second issue is that I would like to add a TTreeReaderValue after having started reading the tree, which does not work because it never gets created a Proxy. CreateProxy is only called once at the first call to SetEntry(...) for all TTreeReaderValues which are present at that moment. Is it somehow possible to add values at a later stage? (CreateProxy is protected member of TTreeReaderValue)

      3. Then, trying to use TTreeReaderArray with PROOF, I observe a crash at the moment when switching trees (right after the call to Notify). The problem is at


      where myLeaf is set (pointing to the same address as before the Notify) but the call segfaults. Minimal example to reproduce attached.

      4. The problem also occurs locally, but later and not always at the same moment. Looking into this, I also realized that starting from the second tree Notify() gets called for every entry and the processing gets very slow (this locally, no PROOF). The example from before also reproduces this effect.

      Do I miss something here?


        1. demo.C
          0.7 kB
        2. TestSelector.C
          0.0 kB
        3. TestSelector.h
          0.7 kB

          Issue Links



              • Assignee:
                axel Axel Naumann
                jklein Jochen Klein
              • Votes:
                0 Vote for this issue
                3 Start watching this issue


                • Created: