00001 #ifndef mu2e_artdaq_core_Overlays_FragmentType_hh
00002 #define mu2e_artdaq_core_Overlays_FragmentType_hh
00003 #include "artdaq-core/Data/Fragment.hh"
00004
00005 namespace mu2e {
00006 static std::vector<std::string> const names{"MISSED", "DTC", "MU2E", "TRK", "CAL", "CRV", "DBG", "UNKNOWN"};
00007
00008 namespace detail {
00009 enum FragmentType : artdaq::Fragment::type_t
00010 {
00011 EMPTY = artdaq::Fragment::EmptyFragmentType,
00012 MISSED = artdaq::Fragment::FirstUserFragmentType,
00013 DTC,
00014 MU2E,
00015 TRK,
00016 CAL,
00017 CRV,
00018 DBG,
00019 INVALID
00020 };
00021
00022
00023 static_assert(artdaq::Fragment::isUserFragmentType(FragmentType::INVALID - 1), "Too many user-defined fragments!");
00024 }
00025
00026 using detail::FragmentType;
00027
00028 FragmentType toFragmentType(std::string t_string);
00029 std::string fragmentTypeToString(FragmentType val);
00030
00035 std::map<artdaq::Fragment::type_t, std::string> makeFragmentTypeMap();
00036 }
00037 #endif