Project
Loading...
Searching...
No Matches
HVStatusCreator.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_HV_STATUS_CREATOR_H_
13#define O2_MCH_HV_STATUS_CREATOR_H_
14
15#include <set>
16#include <string>
17#include <unordered_map>
18#include <vector>
19
22
23namespace o2::mch
24{
25
26class StatusMap;
27
48{
49 public:
52 using DPMAP = std::unordered_map<DPID, std::vector<DPVAL>>;
53
55 struct TimeRange {
56 uint64_t begin = 0;
57 uint64_t end = 0;
58
64 TimeRange(uint64_t begin, uint64_t end) : begin(begin), end(end){};
65
71 bool contains(uint64_t timestamp) const { return timestamp >= begin && timestamp < end; }
72 };
73
74 using BADHVMAP = std::unordered_map<std::string, std::vector<TimeRange>>;
75
80 const BADHVMAP& getBadHVs() const { return mBadHVTimeRanges; }
81
86 void findBadHVs(const DPMAP& dpMap);
87
93 bool findCurrentBadHVs(uint64_t timestamp);
94
99 void updateStatusMap(StatusMap& statusMap) const;
100
102 void clear()
103 {
104 mBadHVTimeRanges.clear();
105 mCurrentBadHVs.clear();
106 }
107
108 private:
110 BADHVMAP mBadHVTimeRanges{};
111 std::set<std::string> mCurrentBadHVs{};
112};
113
114} // namespace o2::mch
115
116#endif // O2_MCH_HV_STATUS_CREATOR_H_
Find HV issues from DCS data points and add them to the status map.
void findBadHVs(const DPMAP &dpMap)
std::unordered_map< DPID, std::vector< DPVAL > > DPMAP
bool findCurrentBadHVs(uint64_t timestamp)
const BADHVMAP & getBadHVs() const
std::unordered_map< std::string, std::vector< TimeRange > > BADHVMAP
void updateStatusMap(StatusMap &statusMap) const
void clear()
Clear the internal lists of HV issues.
std::unordered_map< DPID, std::vector< DPVAL > > DPMAP
Definition dcs-ccdb.cxx:37
GLuint GLuint end
Definition glcorearb.h:469
Internal structure to define a time range.
uint64_t begin
beginning of time range
bool contains(uint64_t timestamp) const
uint64_t end
end of time range
TimeRange(uint64_t begin, uint64_t end)