16#ifndef ALICEO2_TPC_IDCGROUPHELPERREGION_H_
17#define ALICEO2_TPC_IDCGROUPHELPERREGION_H_
38 IDCGroupHelperRegion(
const unsigned char groupPads,
const unsigned char groupRows,
const unsigned char groupLastRowsThreshold,
const unsigned char groupLastPadsThreshold,
const unsigned int groupNotnPadsSectorEdges,
const unsigned int region)
85 static unsigned int getGroupedRow(
const unsigned int ulrow,
const unsigned int groupRows,
const unsigned int groupedrows);
99 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);
110 unsigned int getIndex(
const unsigned int glrow,
const unsigned int pad,
unsigned int integrationInterval)
const {
return mNIDCsPerCRU * integrationInterval +
mOffsRow[glrow] + pad; }
126 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);
139 static bool isSectorEdgePad(
const unsigned int upad,
const unsigned int ulrow,
const unsigned int region,
const unsigned int groupPadsSectorEdges);
145 unsigned int getIndexUngroupedGlob(
const unsigned int ugrow,
const unsigned int upad,
unsigned int integrationInterval)
const;
150 unsigned int getGlobalPadNumber(
const unsigned int ulrow,
const unsigned int pad)
const;
165 static unsigned int getLastPad(
const unsigned int ulrow,
const unsigned int region,
const unsigned char groupPads,
const unsigned char groupLastPadsThreshold,
const unsigned int groupPadsSectorEdges);
170 void dumpToFile(
const char* outFileName =
"IDCGroupHelperRegion.root",
const char* outName =
"IDCGroupHelperRegion")
const;
203 void setRows(
const unsigned int nRows);
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)
const unsigned char mGroupLastPadsThreshold
if the last group (sector edges) consists in pad direction less then mGroupLastPadsThreshold pads the...
unsigned int getIndex(const unsigned int glrow, const unsigned int pad, unsigned int integrationInterval) const
unsigned int getGroupedPadsSectorEdges() const
void dumpToFile(const char *outFileName="IDCGroupHelperRegion.root", const char *outName="IDCGroupHelperRegion") const
unsigned int getLastPad(const unsigned int ulrow) const
unsigned int getNRows() const
IDCGroupHelperRegion(const unsigned char groupPads, const unsigned char groupRows, const unsigned char groupLastRowsThreshold, const unsigned char groupLastPadsThreshold, const unsigned int groupNotnPadsSectorEdges, const unsigned int region)
unsigned int getNIDCsPerIntegrationInterval() const
int getOffsetForEdgePad(const unsigned int upad, const unsigned int ulrow) const
unsigned int getPadsPerRow(const unsigned int glrow) const
void setRows(const unsigned int nRows)
set number of grouped rows
const unsigned char mGroupLastRowsThreshold
if the last group (region edges) consists in row direction less then mGroupLastRowsThreshold pads the...
static unsigned int getGroupedRow(const unsigned int ulrow, const unsigned int groupRows, const unsigned int groupedrows)
unsigned int getTotalGroupPadsSectorEdges() const
const unsigned int mGroupPadsSectorEdges
decoded number of pads at the sector edges which are grouped differently (example: 0: no pads are gro...
static bool isSectorEdgePad(const unsigned int upad, const unsigned int ulrow, const unsigned int region, const unsigned int groupPadsSectorEdges)
std::vector< unsigned int > mOffsRow
offset to calculate the index in the data from grouped row and grouped pad
unsigned int getGroupLastRowsThreshold() const
const std::vector< unsigned int > & getPadsPerRow() const
unsigned int getIndexUngroupedGlob(const unsigned int ugrow, const unsigned int upad, unsigned int integrationInterval) const
EdgePadGroupingMethod getEdgePadGroupingType() const
unsigned int getIndexUngrouped(const unsigned int ulrow, const unsigned int upad, unsigned int integrationInterval) const
std::vector< unsigned int > mPadsPerRow
number of grouped pads per grouped row
IDCGroupHelperRegion()=default
default constructor for ROOT I/O
unsigned int getGroupedRow(const unsigned int ulrow) const
unsigned int getGroupPadsSectorEdges() const
unsigned int getGroupRows() const
unsigned int getRegion() const
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)
void initIDCGroupHelperRegion()
initialize members
const unsigned char mGroupRows
grouping parameter in pad direction (how many pads in pad direction are grouped)
unsigned int mRows
number of grouped rows
const unsigned int mRegion
region of input IDCs
unsigned int getPadsInGroupSectorEdges(const unsigned indexGroup) const
unsigned int getGroupLastPadsThreshold() const
static unsigned int getIndexGroupPadsSectorEdges(const unsigned int groupPadsSectorEdges, const unsigned int urelpad)
unsigned int getGlobalPadNumber(const unsigned int ulrow, const unsigned int pad) const
const unsigned char mGroupPads
grouping parameter in pad direction (how many pads in pad direction are grouped)
unsigned int mNIDCsPerCRU
total number of IDCs per CRU per integration interval
unsigned int getLastRow() const
unsigned int getGroupedPad(const unsigned int pad, const unsigned int ulrow) const
unsigned int getGroupPads() const
const std::vector< unsigned int > & getRowOffset() const
Global TPC definitions and constants.