16#ifndef O2_MID_MAPPING_H
17#define O2_MID_MAPPING_H
42 MpArea stripByLocation(
int strip,
int cathode,
int line,
int column,
int deId,
bool warn =
true)
const;
47 double getStripSize(
int strip,
int cathode,
int column,
int deId)
const;
52 int getBoardId(
int line,
int column,
int deId,
bool warn =
true)
const;
54 bool isValid(
int deId,
int column,
int cathode = 0,
int line = 0,
int strip = 0)
const;
64 std::vector<int> boardsBP;
69 std::array<MpColumn, 7> columns;
80 void setupSegmentation(
int rpcLine,
int column,
int nStripsNBP,
int stripPitchNBP,
int nBoardsBP,
int firstBoardId,
81 bool isBelowBeamPipe =
false);
82 void setupSegmentationLastColumn(
int rpcLine,
int boardId);
83 void buildDETypeLarge(
int rpcLine, std::array<int, 7> boards);
84 void buildDETypeMedium(
int rpcLine, std::array<int, 7> boards,
bool largeNonBend);
85 void buildDETypeCut(
int rpcLine, std::array<int, 7> boards,
bool isBelowBeamPipe);
86 void buildDETypeShort(
int rpcLine, std::array<int, 7> boards);
87 double getStripSize(
int chamber,
int stripPitch,
int strip = 0)
const;
88 double getColumnLeftPosition(
int column,
int chamber,
int rpcLine)
const;
89 double getColumnBottomPosition(
int column,
int chamber,
int rpcLine)
const;
90 double getColumnHeight(
int column,
int chamber,
int rpcLine)
const;
91 double getColumnWidth(
int column,
int chamber,
int rpcLine)
const;
92 double getStripLowEdge(
int strip,
int stripPitch,
int line,
int chamber)
const;
93 double getStripLeftEdge(
int strip,
int stripPitch,
int column,
int chamber,
int rpcLine)
const;
94 int getColumn(
double xPos,
int chamber,
int rpcLine)
const;
95 int getLine(
double yPos,
const MpColumn& column,
int chamber)
const;
96 bool isValidColumn(
int column,
int rpcLine)
const;
97 bool isValidLine(
int line,
int column,
int rpcLine)
const;
98 std::vector<MpStripIndex> getNeighboursBP(
const MpStripIndex& stripIndex,
int rpcLine)
const;
99 std::vector<MpStripIndex> getNeighboursNBP(
const MpStripIndex& stripIndex,
int rpcLine)
const;
101 std::array<MpDE, 9> mDetectionElements;
102 std::array<MpBoardIndex, 118> mBoardIndexes;
int getNStripsNBP(int column, int deId) const
int getBoardId(int line, int column, int deId, bool warn=true) const
int getFirstColumn(int deId) const
bool isValid(int deId, int column, int cathode=0, int line=0, int strip=0) const
virtual ~Mapping()=default
MpStripIndex stripByPosition(double xPos, double yPos, int cathode, int deId, bool warn=true) const
MpArea stripByLocationInBoard(int strip, int cathode, int boardId, int chamber, bool warn=true) const
int getLastBoardBP(int column, int deId) const
int getFirstBoardBP(int column, int deId) const
double getStripSize(int strip, int cathode, int column, int deId) const
MpArea stripByLocation(int strip, int cathode, int line, int column, int deId, bool warn=true) const
std::vector< MpStripIndex > getNeighbours(const Mapping::MpStripIndex &stripIndex, int cathode, int deId) const
MpStripIndex nextStrip(const MpStripIndex &stripIndex, int cathode, int deId, bool descending=false) const
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Indexes required to define a strip in the detection element.
int strip
Line of the local board in the column.
bool isValid()
Check if Strip is Valid.
int line
Column in the DE.