mu2e_artdaq_core  v1_02_11
 All Classes Functions
FragmentType.cc
1 #include "mu2e-artdaq-core/Overlays/FragmentType.hh"
2 
3 #include <algorithm>
4 #include <cassert>
5 #include <string>
6 #include <vector>
7 
8 mu2e::FragmentType mu2e::toFragmentType(std::string t_string) {
9  std::transform(t_string.begin(), t_string.end(), t_string.begin(), toupper);
10  auto it = std::find(names.begin(), names.end(), t_string);
11  return (it == names.end())
12  ? FragmentType::INVALID
13  : static_cast<FragmentType>(artdaq::Fragment::FirstUserFragmentType + (it - names.begin()));
14 }
15 
16 std::string mu2e::fragmentTypeToString(FragmentType val) {
17  if (val < FragmentType::INVALID) {
18  return names[val - FragmentType::MISSED];
19  } else {
20  return "INVALID/UNKNOWN";
21  }
22 }
23 
24 std::map<artdaq::Fragment::type_t, std::string> mu2e::makeFragmentTypeMap() {
25  auto output = artdaq::Fragment::MakeSystemTypeMap();
26  for (auto name : names) {
27  output[toFragmentType(name)] = name;
28  }
29  return output;
30 }