00001 #include "mu2e-artdaq-core/Overlays/FragmentType.hh" 00002 00003 #include <algorithm> 00004 #include <cassert> 00005 #include <string> 00006 #include <vector> 00007 00008 mu2e::FragmentType mu2e::toFragmentType(std::string t_string) { 00009 std::transform(t_string.begin(), t_string.end(), t_string.begin(), toupper); 00010 auto it = std::find(names.begin(), names.end(), t_string); 00011 return (it == names.end()) 00012 ? FragmentType::INVALID 00013 : static_cast<FragmentType>(artdaq::Fragment::FirstUserFragmentType + (it - names.begin())); 00014 } 00015 00016 std::string mu2e::fragmentTypeToString(FragmentType val) { 00017 if (val < FragmentType::INVALID) { 00018 return names[val - FragmentType::MISSED]; 00019 } else { 00020 return "INVALID/UNKNOWN"; 00021 } 00022 } 00023 00024 std::map<artdaq::Fragment::type_t, std::string> mu2e::makeFragmentTypeMap() { 00025 auto output = artdaq::Fragment::MakeSystemTypeMap(); 00026 for (auto name : names) { 00027 output[toFragmentType(name)] = name; 00028 } 00029 return output; 00030 }