![]() |
Project
|
wrapper for the Entropy-encoded triggers and cells of the TF More...
#include <CTF.h>
Inherits o2::ctf::EncodedBlocks< CTFHeader, 15, uint32_t >.
Public Types | |
enum | Slots { BLC_bcIncTrig , BLC_orbitIncTrig , BLC_entriesTrk , BLC_entriesDig , BLC_HCIDTrk , BLC_padrowTrk , BLC_colTrk , BLC_posTrk , BLC_slopeTrk , BLC_pidTrk , BLC_CIDDig , BLC_ROBDig , BLC_MCMDig , BLC_chanDig , BLC_ADCDig } |
![]() | |
typedef EncodedBlocks< CTFHeader, N, uint32_t > | base |
using | dictionaryType = std::variant< rans::RenormedSparseHistogram< source_T >, rans::RenormedDenseHistogram< source_T > > |
Public Member Functions | |
ClassDefNV (CTF, 1) | |
![]() | |
void | setHeader (const CTFHeader &h) |
const CTFHeader & | getHeader () const |
CTFHeader & | getHeader () |
std::shared_ptr< CTFHeader > | cloneHeader () const |
const auto & | getRegistry () const |
const auto & | getMetadata () const |
auto & | getMetadata (int i) const |
auto & | getBlock (int i) const |
dictionaryType< source_T > | getDictionary (int i, ANSHeader ansVersion=ANSVersionUnspecified) const |
void | setANSHeader (const ANSHeader &h) |
const ANSHeader & | getANSHeader () const |
ANSHeader & | getANSHeader () |
bool | empty () const |
check if empty and valid | |
bool | flat () const |
check if flat and valid | |
void | clear () |
clear itself | |
size_t | compactify () |
Compactify by eliminating empty space. | |
size_t | size () const |
total allocated size in bytes | |
size_t | getFreeSize () const |
size remaining for additional data | |
void | copyToFlat (V &vec) |
copy itself to flat buffer created on the fly from the vector | |
void | copyToFlat (void *base) |
copy itself to flat buffer created on the fly at the provided pointer. The destination block should be at least of size estimateSize() | |
size_t | appendToTree (TTree &tree, const std::string &name) const |
attach to tree | |
void | readFromTree (TTree &tree, const std::string &name, int ev=0) |
read from tree to non-flat object | |
o2::ctf::CTFIOSize | encode (const VE &src, int slot, uint8_t symbolTablePrecision, Metadata::OptStore opt, buffer_T *buffer=nullptr, const std::any &encoderExt={}, float memfc=1.f) |
encode vector src to bloc at provided slot | |
o2::ctf::CTFIOSize | encode (const input_IT srcBegin, const input_IT srcEnd, int slot, uint8_t symbolTablePrecision, Metadata::OptStore opt, buffer_T *buffer=nullptr, const std::any &encoderExt={}, float memfc=1.f) |
encode vector src to bloc at provided slot | |
o2::ctf::CTFIOSize | decode (container_T &dest, int slot, const std::any &decoderExt={}) const |
decode block at provided slot to destination vector (will be resized as needed) | |
o2::ctf::CTFIOSize | decode (D_IT dest, int slot, const std::any &decoderExt={}) const |
decode block at provided slot to destination pointer, the needed space assumed to be available | |
CTFIOSize | decode (D_IT dest, int slot, const std::any &decoderExt) const |
void | print (const std::string &prefix="", int verbosity=1) const |
print itself | |
void | dump (const std::string &prefix="", int ncol=20) const |
CTFIOSize | encodeRANSV1External (const input_IT srcBegin, const input_IT srcEnd, int slot, const std::any &encoderExt, buffer_T *buffer, double_t sizeEstimateSafetyFactor) |
CTFIOSize | encodeRANSV1Inplace (const input_IT srcBegin, const input_IT srcEnd, int slot, Metadata::OptStore opt, buffer_T *buffer, double_t sizeEstimateSafetyFactor) |
Static Public Attributes | |
static constexpr size_t | N = getNBlocks() |
Additional Inherited Members | |
![]() | |
static constexpr int | getNBlocks () |
static size_t | getMinAlignedSize () |
static auto | get (void *head) |
cast arbitrary buffer head to container class. Head is supposed to respect the alignment | |
static auto | get (const void *head) |
static auto | getImage (const void *newHead) |
get const image of the container wrapper, with pointers in the image relocated to new head | |
static auto | create (void *head, size_t sz) |
create container from arbitrary buffer of predefined size (in bytes!!!). Head is supposed to respect the alignment | |
static auto | create (VD &v) |
create container from vector. Head is supposed to respect the alignment | |
static size_t | estimateBlockSize (int n) |
estimate free size needed to add new block | |
static auto | expand (buffer_T &buffer, size_t newsizeBytes) |
expand the storage to new size in bytes | |
static void | readFromTree (VD &vec, TTree &tree, const std::string &name, int ev=0) |
read from tree to destination buffer vector | |
static std::vector< char > | createDictionaryBlocks (const std::vector< rans::DenseHistogram< int32_t > > &vfreq, const std::vector< Metadata > &prbits) |
create a special EncodedBlocks containing only dictionaries made from provided vector of frequency tables | |
![]() | |
void | init (size_t sz) |
setup internal structure and registry for given buffer size (in bytes!!!) | |
size_t | estimateSize () const |
size_t | estimateSizeFromMetadata () const |
do the same using metadata info | |
void | fillFlatCopy (EncodedBlocks &dest) const |
Create its own flat copy in the destination empty flat object. | |
auto | expandStorage (size_t slot, size_t nElemets, T *buffer=nullptr) -> decltype(auto) |
ANSHeader | checkANSVersion (ANSHeader ansVersion) const |
o2::ctf::CTFIOSize | entropyCodeRANSCompat (const input_IT srcBegin, const input_IT srcEnd, int slot, uint8_t symbolTablePrecision, buffer_T *buffer=nullptr, const std::any &encoderExt={}, float memfc=1.f) |
o2::ctf::CTFIOSize | entropyCodeRANSV1 (const input_IT srcBegin, const input_IT srcEnd, int slot, Metadata::OptStore opt, buffer_T *buffer=nullptr, const std::any &encoderExt={}, float memfc=1.f) |
o2::ctf::CTFIOSize | encodeRANSV1External (const input_IT srcBegin, const input_IT srcEnd, int slot, const std::any &encoderExt, buffer_T *buffer=nullptr, double_t sizeEstimateSafetyFactor=1) |
o2::ctf::CTFIOSize | encodeRANSV1Inplace (const input_IT srcBegin, const input_IT srcEnd, int slot, Metadata::OptStore opt, buffer_T *buffer=nullptr, double_t sizeEstimateSafetyFactor=1) |
o2::ctf::CTFIOSize | pack (const input_IT srcBegin, const input_IT srcEnd, int slot, rans::Metrics< typename std::iterator_traits< input_IT >::value_type > metrics, buffer_T *buffer=nullptr) |
o2::ctf::CTFIOSize | pack (const input_IT srcBegin, const input_IT srcEnd, int slot, buffer_T *buffer=nullptr) |
o2::ctf::CTFIOSize | store (const input_IT srcBegin, const input_IT srcEnd, int slot, Metadata::OptStore opt, buffer_T *buffer=nullptr) |
CTFIOSize | decodeCompatImpl (dst_IT dest, int slot, const std::any &decoderExt) const |
CTFIOSize | decodeRansV1Impl (dst_IT dest, int slot, const std::any &decoderExt) const |
CTFIOSize | decodeUnpackImpl (dst_IT dest, int slot) const |
CTFIOSize | decodeCopyImpl (dst_IT dest, int slot) const |
ClassDefNV (EncodedBlocks, 3) | |
![]() | |
static void | relocate (const char *oldHead, char *newHead, char *wrapper, size_t newsize=0) |
static size_t | fillTreeBranch (TTree &tree, const std::string &brname, D &dt, int compLevel, int splitLevel=99) |
add and fill single branch | |
static bool | readTreeBranch (TTree &tree, const std::string &brname, D &dt, int ev=0) |
read single branch | |
![]() | |
Registry | mRegistry |
ANSHeader | mANSHeader |
CTFHeader | mHeader |
std::array< Metadata, N > | mMetadata |
std::array< Block< uint32_t >, N > | mBlocks |
![]() | |
static constexpr Metadata::OptStore | FallbackStorageType |
this is in fact stored, but to overcome TBuffer limits we have to define the branches per block!!! | |
enum o2::trd::CTF::Slots |
o2::trd::CTF::ClassDefNV | ( | CTF | , |
1 | |||
) |
|
staticconstexpr |