mu2e_artdaq_core  v1_04_07
 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 {
10  std::transform(t_string.begin(), t_string.end(), t_string.begin(), toupper);
11  auto it = std::find(names.begin(), names.end(), t_string);
12  return (it == names.end())
13  ? FragmentType::INVALID
14  : static_cast<FragmentType>(artdaq::Fragment::FirstUserFragmentType + (it - names.begin()));
15 }
16 
17 std::string mu2e::fragmentTypeToString(FragmentType val)
18 {
19  if (val < FragmentType::INVALID) {
20  return names[val - FragmentType::MISSED];
21  }
22  else
23  {
24  return "INVALID/UNKNOWN";
25  }
26 }
27 
28 std::map<artdaq::Fragment::type_t, std::string> mu2e::makeFragmentTypeMap()
29 {
30  auto output = artdaq::Fragment::MakeSystemTypeMap();
31  for (auto name : names) {
32  output[toFragmentType(name)] = name;
33  }
34  return output;
35 }