ATLAS Offline Software
Loading...
Searching...
No Matches
columnar::ColumnAccessorOptions Struct Referencefinal

#include <ColumnAccessor.h>

Collaboration diagram for columnar::ColumnAccessorOptions:

Public Member Functions

ColumnInfo makeColumnInfo () const

Public Attributes

std::string replacesColumn {}
 whether this replaces another column
bool isOptional = false
 whether this column is optional
bool addMTDependency = false
 whether to add data dependencies in AthenaMT

Detailed Description

Definition at line 24 of file ColumnAccessor.h.

Member Function Documentation

◆ makeColumnInfo()

ColumnInfo columnar::ColumnAccessorOptions::makeColumnInfo ( ) const
inline

Definition at line 63 of file ColumnAccessor.h.

64 {
65 ColumnInfo info;
66 info.replacesColumn = replacesColumn;
67 info.isOptional = isOptional;
68 return info;
69 }
std::string replacesColumn
whether this replaces another column
bool isOptional
whether this column is optional

Member Data Documentation

◆ addMTDependency

bool columnar::ColumnAccessorOptions::addMTDependency = false

whether to add data dependencies in AthenaMT

In AthenaMT we need to track data dependencies between algorithms, but we usually only want to use a subset of the data dependencies used in columnar code. This flag indicates that this accessor should be added as a data dependency in AthenaMT.

Definition at line 61 of file ColumnAccessor.h.

◆ isOptional

bool columnar::ColumnAccessorOptions::isOptional = false

whether this column is optional

Essentially this indicates that the column can be skipped, and the tool will check whether the column is present before trying to use it. This allows to adapt the tool somewhat to different environments.

The downside here is that overall this is still a bit ambiguous, i.e. whoever links up the columns needs to decide whether it is needed. For columns that are not in the input file that's easy, there is no choice but omitting them. However, some columns only exist as a backup option for other columns, and ideally we don't want to load the backup columns when the main columns are missing. So either that needs to be set during configuration, or we need to add more meta-information for that case, or the user needs to do something smart (i.e. manual) in their code.

Definition at line 52 of file ColumnAccessor.h.

◆ replacesColumn

std::string columnar::ColumnAccessorOptions::replacesColumn {}

whether this replaces another column

For corrections it is quite typical that a column is meant to replace another column. In columnar land we will create genuinely new columns, in xAOD land we will usually overwrite the content of those columns. This member is used to indicate which column gets replaced.

Definition at line 33 of file ColumnAccessor.h.

33{};

The documentation for this struct was generated from the following file: