otsdaq_demo  v2_05_02_indev
FragmentType.hh
1 #ifndef artdaq_ots_Overlays_FragmentType_hh
2 #define artdaq_ots_Overlays_FragmentType_hh
3 #include "artdaq-core/Data/Fragment.hh"
4 
5 namespace ots
6 {
7 std::vector<std::string> const names{"MISSED", "UDP", "STIB", "DataGen", "UNKNOWN"};
8 
9 namespace detail
10 {
11 enum FragmentType : artdaq::Fragment::type_t
12 {
13  MISSED = artdaq::Fragment::FirstUserFragmentType,
14  UDP,
15  STIB,
16  DataGen,
17  INVALID // Should always be last.
18 };
19 
20 // Safety check.
21 static_assert(artdaq::Fragment::isUserFragmentType(FragmentType::INVALID - 1),
22  "Too many user-defined fragments!");
23 }
24 
25 using detail::FragmentType;
26 
32 FragmentType toFragmentType(std::string t_string);
33 
39 std::string fragmentTypeToString(FragmentType val);
40 
45 std::map<artdaq::Fragment::type_t, std::string> makeFragmentTypeMap();
46 }
47 #endif /* artdaq_ots_core_Overlays_FragmentType_hh */