ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_NameFormatter.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5*/
6
12#ifndef SCT_NameFormatter_H
13#define SCT_NameFormatter_H
14
15#include <string>
16#include <string_view>
17
18namespace SCT_Monitoring {
22 private:
23 const unsigned int m_element{};
24 const std::string m_layerStr;
25 const std::string m_sideStr;
26 unsigned int m_region{};
27
28 public:
30 i % 2)),
31 m_region(1) {
32 // nop
33 }
34
35 LayerSideFormatter(const unsigned int i, const unsigned int m) : m_element(i), m_layerStr(std::to_string(i / 2)),
36 m_sideStr(std::to_string(i % 2)), m_region(m) {
37 // nop
38 }
39
40 const std::string&
41 layer() const {
42 return m_layerStr;
43 }
44
45 const std::string&
46 side() const {
47 return m_sideStr;
48 }
49
50 std::string
51 layerPlus1() const {
52 return std::to_string((m_element / 2) + 1);
53 }
54
55 std::string
56 title() const {
57 if (m_region == 1) {
58 return std::string("Layer ") + m_layerStr + std::string(" Side ") + m_sideStr;
59 } else {
60 return std::string("Disk ") + m_layerStr + std::string(" Side ") + m_sideStr;
61 }
62 }
63
64 std::string
66 if (m_region == 1) {
67 return std::string("Layer ") + m_layerStr + std::string(" Side ") + std::to_string((m_element % 2 + 1) % 2);
68 } else {
69 return std::string("Disk ") + m_layerStr + std::string(" Side ") + std::to_string((m_element % 2 + 1) % 2);
70 }
71 }
72
73 std::string
74 name(std::string_view delimiter = "_") const {
75 std::string result{m_layerStr};
76 return result.append(delimiter).append(m_sideStr);
77 }
78 };
79}// end of SCT_Monitoring namespace
80
81#endif
static std::string to_string(const std::vector< T > &v)
const std::string & layer() const
const std::string & side() const
LayerSideFormatter(const unsigned int i, const unsigned int m)
std::string name(std::string_view delimiter="_") const
LayerSideFormatter(const unsigned int i)
static const std::string delimiter("/")
STL namespace.