Belle II Software  release-05-01-25
ARICHHvChannelsMapping.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Manca Mrvar *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include <framework/logging/Logger.h>
12 
13 #include <arich/dbobjects/ARICHHvChannelsMapping.h>
14 #include <iostream>
15 
16 using namespace std;
17 using namespace Belle2;
18 
19 ARICHHvChannelsMapping::ARICHHvChannelsMapping()
20 {
21 }
22 
23 std::vector<int> ARICHHvChannelsMapping::getChannelValues(int connectionID, int pinID) const
24 {
25 
26  vector<int> channel{ -2, -2, -2};
27  for (auto& i : m_channel2type) {
28  if (((i.second)[0] == connectionID) && ((i.second)[1] == pinID)) channel = i.first;
29  }
30  return channel;
31 }
32 
33 int ARICHHvChannelsMapping::getPinID(std::vector<int> channel) const
34 {
35  std::vector<int> pinProp = m_channel2type.find(channel)->second;
36  return pinProp[1];
37 }
38 
39 int ARICHHvChannelsMapping::getConnectionID(std::vector<int> channel) const
40 {
41  std::vector<int> pinProp = m_channel2type.find(channel)->second;
42  return pinProp[0];
43 }
44 
45 int ARICHHvChannelsMapping::getCrate(int connectionID, int pinID) const
46 {
47  return (ARICHHvChannelsMapping::getChannelValues(connectionID, pinID))[0];
48 }
49 
50 int ARICHHvChannelsMapping::getSlot(int connectionID, int pinID) const
51 {
52  return (ARICHHvChannelsMapping::getChannelValues(connectionID, pinID))[1];
53 }
54 
55 int ARICHHvChannelsMapping::getChannel(int connectionID, int pinID) const
56 {
57  return (ARICHHvChannelsMapping::getChannelValues(connectionID, pinID))[2];
58 }
59 
60 void ARICHHvChannelsMapping::addMapping(int crate, int slot, int channelID, int connectionID, int pinID)
61 {
62 
63  if (crate > 6 || crate < 3) { B2WARNING("ARICHHvChannelsMapping::addMapping: Crate ID number " << crate << " not valid!"); }
64  if (slot > 12 || slot < 0 || slot % 2 != 0) { B2WARNING("ARICHHvChannelsMapping::addMapping: Slot ID number " << slot << " not valid!"); }
65 
66  std::vector<int> pinProp{connectionID, pinID};
67  std::vector<int> channelMap{crate, slot, channelID};
68  m_channel2type.insert(std::pair<std::vector<int>, std::vector<int>>(channelMap, pinProp));
69 
70 }
71 
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19