otsdaq_demo  v2_05_02_indev
FragmentType.cc
1 #include "otsdaq-demo/Overlays/FragmentType.hh"
2 
3 #include <algorithm>
4 #include <cassert>
5 #include <string>
6 #include <vector>
7 
8 ots::FragmentType ots::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 +
15  (it - names.begin()));
16 }
17 
18 std::string ots::fragmentTypeToString(FragmentType val)
19 {
20  if(val < FragmentType::INVALID)
21  {
22  return names[val - FragmentType::MISSED];
23  }
24  else
25  {
26  return "INVALID/UNKNOWN";
27  }
28 }
29 
30 std::map<artdaq::Fragment::type_t, std::string> ots::makeFragmentTypeMap()
31 {
32  auto output = artdaq::Fragment::MakeSystemTypeMap();
33  for(auto name : names)
34  {
35  output[toFragmentType(name)] = name;
36  }
37  return output;
38 }