Belle II Software  release-05-01-25
KLMElectronicsMap.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Kirill Chilikin *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 /* Own header. */
12 #include <klm/dbobjects/KLMElectronicsMap.h>
13 
14 /* Belle 2 headers. */
15 #include <framework/logging/Logger.h>
16 
17 using namespace Belle2;
18 
20 {
21 }
22 
24 {
25 }
26 
28  KLMElectronicsChannel* electronicsChannel) const
29 {
30  std::map<KLMElectronicsChannel, uint16_t>::const_iterator it;
31  it = m_MapElectronicsDetector.find(*electronicsChannel);
32  if (it == m_MapElectronicsDetector.end())
33  return nullptr;
34  return &(it->second);
35 }
36 
38  uint16_t detectorChannel) const
39 {
40  std::map<uint16_t, KLMElectronicsChannel>::const_iterator it;
41  it = m_MapDetectorElectronics.find(detectorChannel);
42  if (it == m_MapDetectorElectronics.end())
43  return nullptr;
44  return &(it->second);
45 }
46 
48  uint16_t detectorChannel, int copper, int slot, int lane, int axis,
49  int channel)
50 {
51  KLMElectronicsChannel electronicsChannel(copper, slot, lane, axis, channel);
52  if (m_MapDetectorElectronics.find(detectorChannel) != m_MapDetectorElectronics.end()) {
53  B2ERROR("Detector channel already exists in the electronics map."
54  << LogVar("Detector channel", detectorChannel));
55  return;
56  }
57  if (m_MapElectronicsDetector.find(electronicsChannel) != m_MapElectronicsDetector.end()) {
58  B2ERROR("Electronics channel already exists in the electronics map."
59  << LogVar("Copper", copper)
60  << LogVar("Slot", slot)
61  << LogVar("Lane", lane)
62  << LogVar("Axis", axis)
63  << LogVar("Channel", channel));
64  return;
65  }
66  m_MapDetectorElectronics.insert(std::pair<uint16_t, KLMElectronicsChannel>(
67  detectorChannel, electronicsChannel));
68  m_MapElectronicsDetector.insert(std::pair<KLMElectronicsChannel, uint16_t>(
69  electronicsChannel, detectorChannel));
70 }
71 
Belle2::KLMElectronicsMap::~KLMElectronicsMap
~KLMElectronicsMap()
Destructor.
Definition: KLMElectronicsMap.cc:23
Belle2::KLMElectronicsMap::m_MapDetectorElectronics
std::map< uint16_t, KLMElectronicsChannel > m_MapDetectorElectronics
Detector channel - electronics channel map.
Definition: KLMElectronicsMap.h:81
Belle2::KLMElectronicsMap::getDetectorChannel
const uint16_t * getDetectorChannel(KLMElectronicsChannel *electronicsChannel) const
Get detector channel by electronics channel.
Definition: KLMElectronicsMap.cc:27
Belle2::KLMElectronicsMap::KLMElectronicsMap
KLMElectronicsMap()
Constructor.
Definition: KLMElectronicsMap.cc:19
Belle2::KLMElectronicsMap::addChannel
void addChannel(uint16_t detectorChannel, int copper, int slot, int lane, int axis, int channel)
Add channel.
Definition: KLMElectronicsMap.cc:47
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
LogVar
Class to store variables with their name which were sent to the logging service.
Definition: LogVariableStream.h:24
Belle2::KLMElectronicsChannel
BKLM electronics channel.
Definition: KLMElectronicsChannel.h:33
Belle2::KLMElectronicsMap::getElectronicsChannel
const KLMElectronicsChannel * getElectronicsChannel(uint16_t detectorChannel) const
Get electronics channel by detector channel.
Definition: KLMElectronicsMap.cc:37
Belle2::KLMElectronicsMap::m_MapElectronicsDetector
std::map< KLMElectronicsChannel, uint16_t > m_MapElectronicsDetector
Electronics channel - detector channel map.
Definition: KLMElectronicsMap.h:84