Project
Loading...
Searching...
No Matches
Chamber.cxx
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
13#include <fmt/core.h>
14
15namespace o2::mch::dcs
16{
17std::optional<Chamber> chamber(int chamberId)
18{
19 switch (chamberId) {
20 case 0:
21 return Chamber::Ch00;
22 case 1:
23 return Chamber::Ch01;
24 case 2:
25 return Chamber::Ch02;
26 case 3:
27 return Chamber::Ch03;
28 case 4:
29 return Chamber::Ch04;
30 case 5:
31 return Chamber::Ch05;
32 case 6:
33 return Chamber::Ch06;
34 case 7:
35 return Chamber::Ch07;
36 case 8:
37 return Chamber::Ch08;
38 case 9:
39 return Chamber::Ch09;
40 }
41 return std::nullopt;
42}
43
44bool isQuadrant(Chamber chamber)
45{
46 return (
47 chamber == Chamber::Ch00 ||
48 chamber == Chamber::Ch01 ||
49 chamber == Chamber::Ch02 ||
50 chamber == Chamber::Ch03);
51}
52
53bool isSlat(Chamber chamber)
54{
55 return !isQuadrant(chamber);
56}
57
58bool isStation1(Chamber chamber)
59{
60 return chamber == Chamber::Ch00 || chamber == Chamber::Ch01;
61}
62
63bool isStation2(Chamber chamber)
64{
65 return chamber == Chamber::Ch02 || chamber == Chamber::Ch03;
66}
67
68int toInt(Chamber chamberId)
69{
70 switch (chamberId) {
71 case Chamber::Ch00:
72 return 0;
73 case Chamber::Ch01:
74 return 1;
75 case Chamber::Ch02:
76 return 2;
77 case Chamber::Ch03:
78 return 3;
79 case Chamber::Ch04:
80 return 4;
81 case Chamber::Ch05:
82 return 5;
83 case Chamber::Ch06:
84 return 6;
85 case Chamber::Ch07:
86 return 7;
87 case Chamber::Ch08:
88 return 8;
89 case Chamber::Ch09:
90 return 9;
91 }
92 return -1; // to make GCC happy
93}
94
95std::string name(Chamber chamber)
96{
97 return fmt::format("Ch{:02d}", toInt(chamber));
98}
99
100Chamber aliasToChamber(std::string_view alias)
101{
102 std::string ch{"Chamber"};
103 auto pos = alias.find(ch);
104 std::string s{alias.substr(pos + ch.size(), 2)};
105 int chamberId = std::stoi(s);
106 return chamber(chamberId).value();
107}
108
109} // namespace o2::mch::dcs
uint16_t pos
Definition RawData.h:3
GLuint const GLchar * name
Definition glcorearb.h:781
int toInt(Chamber chamber)
Definition Chamber.cxx:68
bool isStation1(Chamber chamber)
Definition Chamber.cxx:58
Chamber aliasToChamber(std::string_view alias)
Definition Chamber.cxx:100
std::optional< Chamber > chamber(int chamberId)
Definition Chamber.cxx:17
bool isSlat(Chamber chamber)
Definition Chamber.cxx:53
bool isQuadrant(Chamber chamber)
Definition Chamber.cxx:44
bool isStation2(Chamber chamber)
Definition Chamber.cxx:63