11 #include <framework/logging/Logger.h>
13 #include <arich/dbobjects/ARICHHvChannelsMapping.h>
19 ARICHHvChannelsMapping::ARICHHvChannelsMapping()
23 std::vector<int> ARICHHvChannelsMapping::getChannelValues(
int connectionID,
int pinID)
const
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;
33 int ARICHHvChannelsMapping::getPinID(std::vector<int> channel)
const
35 std::vector<int> pinProp = m_channel2type.find(channel)->second;
39 int ARICHHvChannelsMapping::getConnectionID(std::vector<int> channel)
const
41 std::vector<int> pinProp = m_channel2type.find(channel)->second;
45 int ARICHHvChannelsMapping::getCrate(
int connectionID,
int pinID)
const
47 return (ARICHHvChannelsMapping::getChannelValues(connectionID, pinID))[0];
50 int ARICHHvChannelsMapping::getSlot(
int connectionID,
int pinID)
const
52 return (ARICHHvChannelsMapping::getChannelValues(connectionID, pinID))[1];
55 int ARICHHvChannelsMapping::getChannel(
int connectionID,
int pinID)
const
57 return (ARICHHvChannelsMapping::getChannelValues(connectionID, pinID))[2];
60 void ARICHHvChannelsMapping::addMapping(
int crate,
int slot,
int channelID,
int connectionID,
int pinID)
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!"); }
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));