11#ifndef O2_FRAMEWORK_TABLETREEHELPERS_H_
12#define O2_FRAMEWORK_TABLETREEHELPERS_H_
14#include <arrow/buffer.h>
15#include <arrow/io/interfaces.h>
16#include <arrow/record_batch.h>
18#include "TTreeReader.h"
19#include "TTreeReaderValue.h"
20#include "TTreeReaderArray.h"
22#include <arrow/dataset/file_base.h>
51 ColumnToBranch(TTree*
tree, std::shared_ptr<arrow::ChunkedArray>
const& column, std::shared_ptr<arrow::Field>
const& field);
55 [[nodiscard]]
int fieldSize()
const {
return mFieldSize; }
57 [[nodiscard]]
char const*
branchName()
const {
return mBranchName.c_str(); }
63 std::string mBranchName;
64 TBranch* mBranch =
nullptr;
65 TBranch* mSizeBranch =
nullptr;
66 arrow::ChunkedArray* mColumn =
nullptr;
68 int mCurrentChunk = 0;
71 arrow::Type::type mFieldType;
72 std::vector<uint8_t> cache;
73 std::shared_ptr<arrow::Array> mCurrentArray =
nullptr;
81 TableToTree(std::shared_ptr<arrow::Table>
const& table, TFile*
file,
const char* treename);
83 std::shared_ptr<TTree>
process();
84 void addBranch(std::shared_ptr<arrow::ChunkedArray>
const& column, std::shared_ptr<arrow::Field>
const& field);
90 std::shared_ptr<TTree> mTree;
91 std::vector<std::unique_ptr<ColumnToBranch>> mColumnReaders;
configStandalone Light OpenGL display display_light Apply smoothing to points Enable Z buffer Highlight links Highlight seeds Highlight sector tracks Highlight final tracks Show individual Show related Highlight grid Show only individual collision Color clusters belonging to track objects Set line Enable drawing TPC data Enable drawing TOF data Enable drawing magnetic field Set field line step count Invert colors configStandalone Heavy OpenGL display display_heavy Show tracks with ITS contribution Show tracks with TOF contribution Enable propagation of loopers Show clusters at nominal x of pad row for early transformed data Split CE tracks when they cross the central Mark clusters Mark adjacent clusters Hide rejected tracks Apply filter on tracks to be displayed Separate increase X h configStandalone Camera window renderer OpenGL display display_camera Orient the camera such that the y axis is always upwards Full Screen MultiSample Anti Downsampling Anti Enable Vertical Sync Target frame or if the backend cannot limit to the refresh Use OpenGL indirect draws to reduce number of draw calls Display h configStandalone Vulkan display display_vulkan Have uniform buffers in host accessible device memory h configStandalone Internal display display_internal Number of updates the Qt GUI may send ahead of the last one the display has before it waits for the display Opacity of the console background Number of console lines the history is shortened to this when it reaches twice the size Time in seconds an info message fades out after setInfoTime h OpenGL display display Font size Do not use Freetype for font Renderer for event Frontend to use for event ROOT macros used as track filter Console script file
ColumnToBranch(ColumnToBranch &&other)=delete
int columnEntries() const
ColumnToBranch(ColumnToBranch const &other)=delete
void at(const int64_t *pos)
char const * branchName() const
void addBranch(std::shared_ptr< arrow::ChunkedArray > const &column, std::shared_ptr< arrow::Field > const &field)
std::shared_ptr< TTree > process()
GLint GLint GLsizei GLint GLenum GLenum type
Defining ITS Vertex explicitly as messageable.
auto basicROOTTypeFromArrow(arrow::Type::type id)
auto arrowTypeFromROOT(EDataType type, int size)
VectorOfTObjectPtrs other
std::unique_ptr< TTree > tree((TTree *) flIn.Get(std::string(o2::base::NameConf::CTFTREENAME).c_str()))