Skip to content
Snippets Groups Projects
  • Nils Erik Krumnack's avatar
    0c1b45c7
    support for std::vector<T> columns in columnar tools · 0c1b45c7
    Nils Erik Krumnack authored and Frank Winklmeier's avatar Frank Winklmeier committed
    support for std::vector<T> columns in columnar tools
    
    This is fairly straightforward in xAOD mode, but in columnar mode it is
    somewhat involved, as it needs both a data column and an offset column.
    Beyond that, the handling of type conversions requires a custom range
    adapter.  This MR doesn't quite demonstrate the need for type
    conversions, but they will be needed for std::vector<ElementLink<T>>, in
    a subsequent MR.
    
    One thing I'm not 100% sure about is whether the type ought to be
    std::vector<T> or use a custom type for this purpose.  In the prototype
    I had used columnar::ColumnVector<T>, but that may create more confusion
    than it removes.  The main concern about using std::vector<T> is that
    the user doesn't receive an std::vector<T> but an std::span<T> or other
    range type.  Still, in many regards they behave like a vector and
    reusing the STL type may be clearer.
    0c1b45c7
    History
    support for std::vector<T> columns in columnar tools
    Nils Erik Krumnack authored and Frank Winklmeier's avatar Frank Winklmeier committed
    support for std::vector<T> columns in columnar tools
    
    This is fairly straightforward in xAOD mode, but in columnar mode it is
    somewhat involved, as it needs both a data column and an offset column.
    Beyond that, the handling of type conversions requires a custom range
    adapter.  This MR doesn't quite demonstrate the need for type
    conversions, but they will be needed for std::vector<ElementLink<T>>, in
    a subsequent MR.
    
    One thing I'm not 100% sure about is whether the type ought to be
    std::vector<T> or use a custom type for this purpose.  In the prototype
    I had used columnar::ColumnVector<T>, but that may create more confusion
    than it removes.  The main concern about using std::vector<T> is that
    the user doesn't receive an std::vector<T> but an std::span<T> or other
    range type.  Still, in many regards they behave like a vector and
    reusing the STL type may be clearer.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
VectorExampleTool.cxx 1.84 KiB