Project
Loading...
Searching...
No Matches
StatusMap.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef O2_MCH_CONDITIONS_STATUSMAP_H
13#define O2_MCH_CONDITIONS_STATUSMAP_H
14
19#include <cstdint>
20#include <gsl/span>
21#include <map>
22#include <utility>
23#include <vector>
24
25namespace o2::mch
26{
27
44{
45 public:
46 enum Status : uint32_t {
47 kOK = 0,
48 kBadPedestal = 1 << 0,
49 kRejectList = 1 << 1,
50 kBadHV = 1 << 2
51 };
52
53 using iterator = std::map<ChannelCode, uint32_t>::iterator;
54 using const_iterator = std::map<ChannelCode, uint32_t>::const_iterator;
55
56 iterator begin() { return mStatus.begin(); }
57 iterator end() { return mStatus.end(); }
58 const_iterator begin() const { return mStatus.begin(); }
59 const_iterator end() const { return mStatus.end(); }
60
66 void add(gsl::span<const DsChannelId> badchannels, uint32_t mask);
67
72 void add(gsl::span<const ChannelCode> badchannels, uint32_t mask);
73
78 void addDS(DsIndex badDS, uint32_t mask);
79
84 void addDS(raw::DsDetId badDS, uint32_t mask);
85
90 void addDE(uint16_t badDE, uint32_t mask);
91
93 bool empty() const { return mStatus.empty(); }
94
96 void clear() { mStatus.clear(); }
97
99 uint32_t status(const ChannelCode& id) const;
100
101 private:
102 std::map<ChannelCode, uint32_t> mStatus;
103
104 ClassDefNV(StatusMap, 1);
105};
106
117std::map<int, std::vector<int>> applyMask(const o2::mch::StatusMap& statusMap, uint32_t mask);
118
119} // namespace o2::mch
120
121#endif
bool empty() const
Definition StatusMap.h:93
void add(gsl::span< const DsChannelId > badchannels, uint32_t mask)
Definition StatusMap.cxx:36
iterator end()
Definition StatusMap.h:57
uint32_t status(const ChannelCode &id) const
const_iterator begin() const
Definition StatusMap.h:58
void addDS(DsIndex badDS, uint32_t mask)
Definition StatusMap.cxx:58
std::map< ChannelCode, uint32_t >::iterator iterator
Definition StatusMap.h:53
iterator begin()
Definition StatusMap.h:56
void addDE(uint16_t badDE, uint32_t mask)
Definition StatusMap.cxx:87
const_iterator end() const
Definition StatusMap.h:59
std::map< ChannelCode, uint32_t >::const_iterator const_iterator
Definition StatusMap.h:54
A DsDetId is just a pair (detection element id, dual sampa id)
Definition DsDetId.h:22
GLint GLuint mask
Definition glcorearb.h:291
std::map< int, std::vector< int > > applyMask(const o2::mch::StatusMap &statusMap, uint32_t mask)
uint16_t DsIndex
Definition DsIndex.h:26