19#ifndef CALOCELLPACKER_400_500_H
20#define CALOCELLPACKER_400_500_H
31class CaloCellPacker_400_500_test;
173 const std::vector<CaloCompactCellContainer::value_type>&vheader,
466 uint16_t provenance)
const;
480 uint16_t provenance)
const;
Utilities for compacting calorimeter cells.
Container class for CaloCell.
Helper for packing into/out of a bit field.
Helper for packing a float into/out of a bit field, with a minimum of 0.
Helper for packing a float into/out of a bit field.
Calo cell packer/unpacker v400/500.
CaloCell * unpack_lar(CaloCompactCellContainer::compact_input_iterator &it, CaloCell_ID::SUBCALO subcalo, LArCell *cell, const pars500 &pars, uint16_t provenance) const
Unpack a LAr cell.
void finish_seq(unsigned int hash, unsigned int nseq, CaloCompactCellContainer::compact_output_iterator &it, CaloCell_ID::SUBCALO subcalo, pars500 &pars) const
Finish up one cell sequence.
void write_header(const header &header, CaloCompactCellContainer &packed) const
Write the header to the output container.
void pack_tile(const TileCell *cell, CaloCompactCellContainer::compact_output_iterator &it, const pars500 &pars) const
Pack one tile cell.
header501 header
The most recent header version.
void unpack(const CaloCompactCellContainer &packed, const std::vector< CaloCompactCellContainer::value_type > &vheader, CaloCellContainer &cells, DataPool< LArCell > &larpool, DataPool< TileCell > &tilepool) const
Unpack cells.
double unpack_time(CaloCompactCellContainer::compact_input_iterator &it, const pars500 &pars) const
Unpack the time word.
void pack_time(float time, CaloCompactCellContainer::compact_output_iterator &it, const pars500 &pars) const
Pack a time value.
void pack_lar(const CaloCell *cell, CaloCell_ID::SUBCALO subcalo, CaloCompactCellContainer::compact_output_iterator &it, const pars500 &pars) const
Pack one LAr cell.
void init_derived(pars500 &pars) const
Initialize the derived packing parameters from the constants in the header.
friend class CaloCellPacker_400_500_test
TileCell unpack_tile(CaloCompactCellContainer::compact_input_iterator &it, const CaloDetDescrElement *dde, const pars500 &pars, uint16_t provenance) const
Unpack a tile cell.
void init_header(header &header, int version) const
Initialize header with the current version of the packing parameters.
void pack(const CaloCellContainer &cells, CaloCompactCellContainer &packed, const SG::ThinningDecisionBase *dec, int version) const
Pack cells.
void clear_header(header &header) const
Clear the counters in the event header.
CaloCell_Base_ID::SUBCALO SUBCALO
Data object for each calorimeter readout cell.
Simple iterator-like object for writing to the container.
container class for CaloCompactCell objects
unsigned short value_type
value type for the compact CaloCell data
This class groups all DetDescr information related to a CaloCell.
a typed memory pool that saves time spent allocation small object.
Data object for LAr calorimeter readout cell.
Hold thinning decisions for one container.
Derived packing parmeters.
double m_cbrt_e1_norm_res
Transformed packing ranges for floats.
CaloCellPackerUtils::Floatfield2 m_crtae_norm_field
CaloCellPackerUtils::Floatfield2 m_crtae_high_field
CaloCompactCell::value_type m_tile_dummy
CaloCompactCell::value_type m_lar_dummy
CaloCompactCell::value_type m_lar_dummy_subst
CaloCellPackerUtils::Bitfield m_egain_tile_field
CaloCellPackerUtils::Bitfield m_egain_field
unsigned int m_nseq_max
Maximum number of cells in a sequence.
unsigned int m_prov_max_tile
CaloCellPackerUtils::Bitfield m_prov_field
CaloCellPackerUtils::Floatfield2 m_crtae_tile_high_field
CaloCellPackerUtils::Floatfield2 m_crtae_tile_low_field
CaloCellPackerUtils::Bitfield m_qualy_field
int m_qgood
Good quality flag.
double m_cbrt_e1_high_res
CaloCellPackerUtils::Bitfield m_tile_qual1_field
CaloCompactCell::value_type m_tile_dummy_subst
CaloCellPackerUtils::Bitfield m_hash_field
Bitfields for various quantities.
CaloCellPackerUtils::Bitfield m_tile_qual2_field
CaloCellPackerUtils::Bitfield m_nseq_field
CaloCellPackerUtils::Floatfield m_logat_field