mu2e_artdaq_core  v1_02_11
 All Classes Functions
FragmentType.hh
1 #ifndef mu2e_artdaq_core_Overlays_FragmentType_hh
2 #define mu2e_artdaq_core_Overlays_FragmentType_hh
3 #include "artdaq-core/Data/Fragment.hh"
4 
5 namespace mu2e {
6 static std::vector<std::string> const names{"MISSED", "DTC", "MU2E", "TRK", "CAL", "CRV", "DBG", "UNKNOWN"};
7 
8 namespace detail {
9 enum FragmentType : artdaq::Fragment::type_t {
10  EMPTY = artdaq::Fragment::EmptyFragmentType,
11  MISSED = artdaq::Fragment::FirstUserFragmentType,
12  DTC,
13  MU2E,
14  TRK, // Tracker fragment
15  CAL, // Calorimeter fragment
16  CRV, // Cosmic Ray Veto fragment
17  DBG, // Debug Packet Fragment
18  INVALID // Should always be last.
19 };
20 
21 // Safety check.
22 static_assert(artdaq::Fragment::isUserFragmentType(FragmentType::INVALID - 1), "Too many user-defined fragments!");
23 } // namespace detail
24 
25 using detail::FragmentType;
26 
27 FragmentType toFragmentType(std::string t_string);
28 std::string fragmentTypeToString(FragmentType val);
29 
34 std::map<artdaq::Fragment::type_t, std::string> makeFragmentTypeMap();
35 } // namespace mu2e
36 #endif /* mu2e_artdaq_Overlays_FragmentType_hh */