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

TTree::Draw not able to call 'std::vector::at'



    • Bug
    • Resolution: Fixed
    • High
    • 6.08/08, 6.10/10, 6.12/08, 6.14/00
    • 6.08/06, 6.10/08, 6.12/06, 6.13/02
    • TTree
    • None
    • linux, NOvA


      So I've come across a (known) issue in root and I was advised to reach out to you to inquire further.

      This is an issue that has come up in our stripped down analysis files (I work on NOvA) which consist of complex TTrees built out of custom classes that we've designed. The trouble is that within this TTree structure, we have vectors that are 3 levels deep (a class that contains a vector of subclasses which contains another vector of subclasses which contains yet another.) And I can't seem to access any of the information in the final layer of vectors. I'm seeing errors of the form:

      Warning in <TTreeFormula::DefinedVariable>: Missing class for rec.vtx.elastic[0].fuzzyk.png[0].@bpf.at(0).pdg!
      Warning in <TTreeFormula::DefinedVariable>: TTreeFormula support only 2 level of variables size collections. Assuming '@' notation for the collection bpf.

      I'll note that running a macro that attempts to access this structure in root5 over a given input file works just fine, but when running the same macro over the same input file in root6 I get nothing but 0's.

      I've seen online advice posted by you to attempt to use TTree::MakeProxy but I can't seem to make it work for our case. I am stationed here at FNAL, would you have 30 minutes to spare to help me try to figure out how to circumvent this problem for NOvA or possibly at least hlp point me in th right direction? I would be in your debt.

      Michael Baird




            pcanal Philippe Canal
            6d86e8b49397c11a44f4 pcanal@fnal.gov
            0 Vote for this issue
            1 Start watching this issue