33 uint32_t nThresholdEvents =
static_cast<uint32_t
>(threshold * timeOrTriggers);
35 for (
const auto scaler : scalers.
getScalers()) {
36 if (scaler.second >= nThresholdEvents) {
43std::vector<ColumnData>
makeMasks(
const ChannelScalers& scalers,
double timeOrTriggers,
double threshold,
const std::vector<ColumnData>& refMasks)
48 std::vector<ColumnData> masks(maskHandler.
getMasks());
50 if (!refMasks.empty()) {
54 for (
auto&
mask : masks) {
67 uint16_t fullPattern = 0xFFFF;
71 mask.
deId =
static_cast<uint8_t
>(ide);
72 mask.columnId =
static_cast<uint8_t
>(icol);
75 mask.setBendPattern(fullPattern, iline);
78 for (
int istrip = 0; istrip < mapping.
getNStripsNBP(icol, ide); ++istrip) {
79 mask.addStrip(istrip, 1, 0);
91 std::vector<ROBoard> activeBoards;
98 for (
auto& gbtUniqueId : gbtUniqueIds) {
101 for (
int iloc = 0; iloc < 8; ++iloc) {
102 if ((
mask >> iloc) & 0x1) {
104 activeBoards.emplace_back(board);
115 std::vector<ROFRecord> rofs;
118 aggregator.
process(activeBoards, rofs);
119 std::vector<ColumnData> maskedBoards(aggregator.
getData());
122 for (
auto&
col : maskedBoards) {
MID channels masks handler.
MID decoded raw data aggregator.
Useful detector parameters for MID.
Function to produce the MID masks.
Structure to store the readout board information.
std::vector< ColumnData > getMasks() const
Gets the masks.
void switchOffChannels(const ColumnData &badChannels)
void setFromChannelMask(const ColumnData &mask)
void setFromChannelMasks(const std::vector< ColumnData > &masks)
bool applyMask(ColumnData &data) const
const std::unordered_map< uint32_t, uint32_t > & getScalers() const
Gets the scalers.
uint8_t getCathode(uint32_t uniqueId) const
Gets cathode from unique Id.
uint8_t getLineId(uint32_t uniqueId) const
Gets lineId from unique Id.
uint8_t getDeId(uint32_t uniqueId) const
Gets deId from unique Id.
uint8_t getColumnId(uint32_t uniqueId) const
Gets columnId from unique Id.
uint8_t getStrip(uint32_t uniqueId) const
Gets strip from unique Id.
void add(uint8_t deId, uint8_t columnId, int lineId, int strip, int cathode)
Add single strip.
std::vector< ColumnData > getMerged() const
Returns the merged data.
uint8_t getMask(uint16_t feeId) const
Gets the mask for the feeId.
void process(gsl::span< const ROBoard > localBoards, gsl::span< const ROFRecord > rofRecords)
const std::vector< ColumnData > & getData(EventType eventType=EventType::Standard)
Gets the vector of data.
std::vector< uint16_t > getConfiguredGBTUniqueIDs() const
int getNStripsNBP(int column, int deId) const
int getFirstColumn(int deId) const
int getLastBoardBP(int column, int deId) const
int getFirstBoardBP(int column, int deId) const
uint8_t getCrateIdFromGBTUniqueId(uint16_t gbtUniqueId)
Gets the crate ID from the GBT unique ID.
uint8_t getLocIdInCrate(uint16_t gbtUniqueId, int iloc)
constexpr int NDetectionElements
Number of RPCs.
uint8_t makeUniqueLocID(uint8_t crateId, uint8_t locId)
std::vector< ROBoard > getActiveBoards(const FEEIdConfig &feeIdConfig, const CrateMasks &masks)
std::vector< ColumnData > makeDefaultMasks()
std::vector< ColumnData > makeDefaultMasksFromCrateConfig(const FEEIdConfig &feeIdConfig=FEEIdConfig(), const CrateMasks &crateMasks=CrateMasks())
std::vector< ColumnData > makeMasks(const ChannelScalers &scalers, double timeOrTriggers, double threshold, const std::vector< ColumnData > &refMasks={})
std::vector< ColumnData > makeBadChannels(const ChannelScalers &scalers, double timeOrTriggers, double threshold)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Column data structure for MID.
uint8_t deId
Index of the detection element.
std::array< uint16_t, 4 > patternsNBP
Bending plane pattern.
std::array< uint16_t, 4 > patternsBP
Fired chambers.
uint8_t boardId
Trigger word.
uint8_t firedChambers
Board ID in crate.