16#ifndef ALICEO2_TPC_IDCGROUPHELPERSECTOR_H_
17#define ALICEO2_TPC_IDCGROUPHELPERSECTOR_H_
36 IDCGroupHelperSector(
const std::array<unsigned char, Mapper::NREGIONS>& groupPads,
const std::array<unsigned char, Mapper::NREGIONS>& groupRows,
const std::array<unsigned char, Mapper::NREGIONS>& groupLastRowsThreshold,
const std::array<unsigned char, Mapper::NREGIONS>& groupLastPadsThreshold,
const unsigned int groupNotnPadsSectorEdges)
60 unsigned int getIndexUngrouped(
const unsigned int sector,
const unsigned int region,
unsigned int ulrow,
unsigned int upad,
unsigned int integrationInterval)
const {
return getIndexGrouped(sector, region,
getGroupedRow(region, ulrow),
getGroupedPad(region, ulrow, upad), integrationInterval) +
getOffsetForEdgePad(upad, ulrow, region); }
67 int getOffsetForEdgePad(
const unsigned int upad,
const unsigned int ulrow,
const unsigned int region)
const;
81 unsigned int getGroupedPad(
const unsigned int region,
unsigned int ulrow,
unsigned int upad)
const;
86 unsigned int getGroupedRow(
const unsigned int region,
unsigned int ulrow)
const;
95 unsigned int getNRows(
const unsigned int region)
const {
return mRows[region]; }
104 unsigned int getLastRow(
const unsigned int region)
const;
108 unsigned int getLastPad(
const unsigned int region,
const unsigned int ulrow)
const;
112 unsigned int getOffsRow(
const unsigned int region,
const unsigned int glrow)
const {
return mOffsRow[region][glrow]; }
130 std::array<unsigned int, Mapper::NREGIONS>
mRows{};
Definition of the parameter for the grouping of the IDCs.
Helper class for accessing grouped pads for one sector.
unsigned int mNIDCsPerSector
number of grouped IDCs per sector
std::array< std::vector< unsigned int >, Mapper::NREGIONS > mOffsRow
offset to calculate the index in the data from row and pad per region
IDCGroupHelperSector(const std::array< unsigned char, Mapper::NREGIONS > &groupPads, const std::array< unsigned char, Mapper::NREGIONS > &groupRows, const std::array< unsigned char, Mapper::NREGIONS > &groupLastRowsThreshold, const std::array< unsigned char, Mapper::NREGIONS > &groupLastPadsThreshold, const unsigned int groupNotnPadsSectorEdges)
unsigned int getNIDCs(const unsigned int region) const
std::array< unsigned int, Mapper::NREGIONS > mRows
number of grouped rows per region
unsigned int getIndexUngrouped(const unsigned int sector, const unsigned int region, unsigned int ulrow, unsigned int upad, unsigned int integrationInterval) const
unsigned int getNIDCsPerSector() const
unsigned int getRegionOffset(const unsigned int region) const
std::array< unsigned int, Mapper::NREGIONS > mNIDCsPerCRU
total number of IDCs per region per integration interval
unsigned int getLastPad(const unsigned int region, const unsigned int ulrow) const
void initIDCGroupHelperSector()
init function for setting the members
unsigned int getGroupedRow(const unsigned int region, unsigned int ulrow) const
unsigned getPadsPerRow(const unsigned int region, const unsigned int glrow) const
unsigned int getIndexUngroupedGlobal(const unsigned int sector, const unsigned int region, unsigned int ugrow, unsigned int upad, unsigned int integrationInterval) const
unsigned int getIndexGrouped(const unsigned int sector, const unsigned int region, const unsigned int glrow, const unsigned int pad, unsigned int integrationInterval) const
int getOffsetForEdgePad(const unsigned int upad, const unsigned int ulrow, const unsigned int region) const
std::array< std::vector< unsigned int >, Mapper::NREGIONS > mPadsPerRow
number of pads per row per region
IDCGroupHelperSector(const ParameterIDCGroupCCDB &groupingParameter)
ParameterIDCGroupCCDB mGroupingPar
struct containg the grouping parameter
unsigned int getNRows(const unsigned int region) const
std::array< unsigned int, Mapper::NREGIONS > mRegionOffs
offset for the region per region
unsigned int getGroupedPad(const unsigned int region, unsigned int ulrow, unsigned int upad) const
unsigned int getOffsRow(const unsigned int region, const unsigned int glrow) const
unsigned int getLastRow(const unsigned int region) const
IDCGroupHelperSector()=default
default constructor for ROOT I/O
static unsigned int getUngroupedIndexGlobal(const unsigned int sector, const unsigned int region, unsigned int urow, unsigned int upad, unsigned int integrationInterval)
const auto & getGroupingParameter() const
static constexpr unsigned int ROWOFFSET[NREGIONS]
offset to calculate local row from global row
static const std::vector< unsigned int > OFFSETCRULOCAL[NREGIONS]
row offset in cru for given local pad row
static constexpr unsigned int GLOBALPADOFFSET[NREGIONS]
offset of number of pads for region
static constexpr unsigned int NREGIONS
total number of regions in one sector
static constexpr unsigned short getPadsInSector()
Global TPC definitions and constants.
constexpr unsigned char SECTORSPERSIDE
struct for storing the parameters for the grouping of IDCs to CCDB