29 const unsigned int rowsRemainder = nTotRows % mGroupingPar.groupRows[region];
30 unsigned int lastRow = nTotRows - rowsRemainder;
31 if (rowsRemainder <= mGroupingPar.groupLastRowsThreshold[region]) {
32 lastRow -= mGroupingPar.groupRows[region];
40 return IDCGroupHelperRegion::getLastPad(ulrow, region, mGroupingPar.groupPads[region], mGroupingPar.groupLastPadsThreshold[region], mGroupingPar.groupPadsSectorEdges);
46 const IDCGroupHelperRegion groupTmp(mGroupingPar.groupPads[reg], mGroupingPar.groupRows[reg], mGroupingPar.groupLastRowsThreshold[reg], mGroupingPar.groupLastPadsThreshold[reg], mGroupingPar.groupPadsSectorEdges, reg);
52 const unsigned int lastInd = reg - 1;
53 mRegionOffs[reg] = mRegionOffs[lastInd] + mNIDCsPerCRU[lastInd];
56 mNIDCsPerSector =
static_cast<unsigned int>(std::accumulate(mNIDCsPerCRU.begin(), mNIDCsPerCRU.end(),
decltype(mNIDCsPerCRU)::value_type(0)));
helper class for grouping of pads and rows for one region
helper class for grouping of pads and rows for one sector
Helper class for accessing grouped pads for one region.
static unsigned int getGroupedPad(const unsigned int upad, const unsigned int ulrow, const unsigned int region, const unsigned int groupPads, const unsigned int groupRows, const unsigned int groupedrows, const unsigned int groupPadsSectorEdges, const std::vector< unsigned int > &padsPerRow)
unsigned int getLastPad(const unsigned int ulrow) const
unsigned int getNRows() const
unsigned int getNIDCsPerIntegrationInterval() const
unsigned int getPadsPerRow(const unsigned int glrow) const
static unsigned int getGroupedRow(const unsigned int ulrow, const unsigned int groupRows, const unsigned int groupedrows)
static bool isSectorEdgePad(const unsigned int upad, const unsigned int ulrow, const unsigned int region, const unsigned int groupPadsSectorEdges)
static int getOffsetForEdgePad(const unsigned int upad, const unsigned int ulrow, const unsigned int groupRows, const unsigned int groupPadsSectorEdges, const unsigned int region, const int lastRow)
const std::vector< unsigned int > & getRowOffset() const
std::array< unsigned int, Mapper::NREGIONS > mRows
number of grouped rows per region
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
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
ParameterIDCGroupCCDB mGroupingPar
struct containg the grouping parameter
unsigned int getGroupedPad(const unsigned int region, unsigned int ulrow, unsigned int upad) const
unsigned int getLastRow(const unsigned int region) const
static constexpr unsigned int ROWSPERREGION[NREGIONS]
number of pad rows for region
static constexpr unsigned int NREGIONS
total number of regions in one sector
std::array< unsigned char, Mapper::NREGIONS > groupRows
grouping parameter in pad direction (how many pads in pad direction are grouped)
unsigned int groupPadsSectorEdges
decoded number of pads at the sector edges which are grouped differently (example: 0: no pads are gro...
std::array< unsigned char, Mapper::NREGIONS > groupPads
grouping parameter in pad direction (how many pads in pad direction are grouped)