DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::detchannelmaps::VDColdboxChannelMapService Class Reference

#include <VDColdboxChannelMapService.hpp>

Classes

struct  VDCBChanInfo

Public Member Functions

 VDColdboxChannelMapService (std::string mapfile)
VDCBChanInfo getChanInfoFromOfflChan (int offlchan)
int getOfflChanFromWIBConnectorInfo (int wib, int wibconnector, int cechan)
int getOfflChanFromSlotFiberChan (int slot, int fiber, int chan)

Private Attributes

std::unordered_map< int, VDCBChanInfo > chantoinfomap
std::unordered_map< int, std::unordered_map< int, std::unordered_map< int, int > > > infotochanmap

Detailed Description

Definition at line 19 of file VDColdboxChannelMapService.hpp.

Constructor & Destructor Documentation

◆ VDColdboxChannelMapService()

dunedaq::detchannelmaps::VDColdboxChannelMapService::VDColdboxChannelMapService ( std::string mapfile)

Definition at line 18 of file VDColdboxChannelMapService.cpp.

19{
20
21 std::ifstream inFile(filename, std::ios::in);
22 if (inFile.bad() || inFile.fail() || !inFile.is_open()) {
23 throw std::runtime_error(std::string("VDColdboxChannelMapService: Invalid map file ") + std::string(filename));
24 }
25
26 std::string line;
27 while (std::getline(inFile, line)) {
28 VDCBChanInfo chinfo;
29 std::stringstream linestream(line);
30 linestream >> chinfo.offlchan >> chinfo.wib >> chinfo.wibconnector >> chinfo.cebchan >> chinfo.femb >>
31 chinfo.asic >> chinfo.asicchan >> chinfo.connector >> chinfo.stripid;
32 chinfo.valid = true;
33 chantoinfomap[chinfo.offlchan] = chinfo;
34 infotochanmap[chinfo.wib][chinfo.wibconnector][chinfo.cebchan] = chinfo.offlchan;
35 }
36 inFile.close();
37}
std::unordered_map< int, std::unordered_map< int, std::unordered_map< int, int > > > infotochanmap

Member Function Documentation

◆ getChanInfoFromOfflChan()

VDColdboxChannelMapService::VDCBChanInfo dunedaq::detchannelmaps::VDColdboxChannelMapService::getChanInfoFromOfflChan ( int offlchan)

Definition at line 44 of file VDColdboxChannelMapService.cpp.

45{
47 auto fm = chantoinfomap.find(offlchan);
48 if (fm == chantoinfomap.end()) {
49 r.offlchan = -1;
50 r.wib = -1;
51 r.wibconnector = -1;
52 r.cebchan = -1;
53 r.femb = -1;
54 r.asic = -1;
55 r.asicchan = -1;
56 r.connector = -1;
57 r.stripid = "INVALID";
58 r.valid = false;
59 } else {
60 r = fm->second;
61 }
62 return r;
63}

◆ getOfflChanFromSlotFiberChan()

int dunedaq::detchannelmaps::VDColdboxChannelMapService::getOfflChanFromSlotFiberChan ( int slot,
int fiber,
int chan )

Definition at line 95 of file VDColdboxChannelMapService.cpp.

96{
97 int wc = fiber * 2 - 1;
98 if (chan > 127) {
99 chan -= 128;
100 wc++;
101 }
102 return getOfflChanFromWIBConnectorInfo(slot + 1, wc, chan);
103}
int getOfflChanFromWIBConnectorInfo(int wib, int wibconnector, int cechan)

◆ getOfflChanFromWIBConnectorInfo()

int dunedaq::detchannelmaps::VDColdboxChannelMapService::getOfflChanFromWIBConnectorInfo ( int wib,
int wibconnector,
int cechan )

Definition at line 69 of file VDColdboxChannelMapService.cpp.

70{
71 // int r = -1;
72 // auto fm1 = infotochanmap.find(wib);
73 // if (fm1 == infotochanmap.end()) return r;
74 // auto& m1 = fm1->second;
75 // auto fm2 = m1.find(wibconnector);
76 // if (fm2 == m1.end()) return r;
77 // auto& m2 = fm2->second;
78 // auto fm3 = m2.find(cechan);
79 // if (fm3 == m2.end()) return r;
80 // r = fm3->second;
81 // return r;
82 try {
83 return infotochanmap.at(wib).at(wibconnector).at(cechan);
84 } catch (...) {
85 return -1;
86 }
87 // return -1;
88}

Member Data Documentation

◆ chantoinfomap

std::unordered_map<int, VDCBChanInfo> dunedaq::detchannelmaps::VDColdboxChannelMapService::chantoinfomap
private

Definition at line 59 of file VDColdboxChannelMapService.hpp.

◆ infotochanmap

std::unordered_map<int, std::unordered_map<int, std::unordered_map<int, int> > > dunedaq::detchannelmaps::VDColdboxChannelMapService::infotochanmap
private

Definition at line 63 of file VDColdboxChannelMapService.hpp.


The documentation for this class was generated from the following files: