Skip to content

conflict happening between `DAS::Di` and `TTreaderArray`

The following discussion from !176 (merged) should be addressed:

  • @lmoureau started a discussion: (+1 comment)

    The bug would be worth isolating for a report to upstream ROOT, or even fixing by editing TTreeReaderArray.h locally.


Because of a conflict happening between DAS::Di and TTreaderArray, we had to change to old-style loops in Unfolding/src/BF.cc. Putting here the error message for the record:

/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/type_traits: In instantiation of 'constexpr const bool std::is_base_of_v<DAS::AbstractPhysicsObject, const TTreeReaderArray<DAS::Rec
Muon>::Iterator_t<TTreeReaderArray<DAS::RecMuon> > >':                                                   
/afs/desy.de/user/c/connorpa/DasAnalasisSystem/Core/../Core/Objects/interface/Di.h:93:44:   required by substitution of 'template<class Obj1, class Obj2, class, class> auto operator+(Obj1&, Obj2&) [with Obj1 = c
onst TTreeReaderArray<DAS::RecMuon>::Iterator_t<TTreeReaderArray<DAS::RecMuon> >; Obj2 = long int; <template-parameter-1-3> = <missing>; <template-parameter-1-4> = <missing>]'
/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-gcc13-opt/include/TTreeReaderArray.h:171:84:   required from 'class TTreeReaderArray<DAS::RecMuon>::Iterator_t<TTreeReaderArray<DAS::RecMuon> >'
/afs/desy.de/user/c/connorpa/DasAnalasisSystem/Core/Unfolding/src/BF.cc:88:36:   required from here      
/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/type_traits:3361:40: error: invalid use of incomplete type 'const class TTreeReaderArray<DAS::RecMuon>::Iterator_t<TTreeReaderArray<
DAS::RecMuon> >'                                                                                         
 3361 |   inline constexpr bool is_base_of_v = __is_base_of(_Base, _Derived);                                                                                                                                      
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                       
In file included from /afs/desy.de/user/c/connorpa/DasAnalasisSystem/Core/../Core/Unfolding/interface/BF.h:8,                                                                                                      
                 from /afs/desy.de/user/c/connorpa/DasAnalasisSystem/Core/Unfolding/src/BF.cc:2:                                                                                                                   
/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-gcc13-opt/include/TTreeReaderArray.h:82:10: note: declaration of 'class TTreeReaderArray<DAS::RecMuon>::Iterator_t<TTreeReaderArray<DAS::RecMuon> >'               
   82 |    class Iterator_t {                                                                                                                                                                                      
      |          ^~~~~~~~~~