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