Type

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#ifndef DataFormat_L1TMuon_Omtf_DataWord64_H
#define DataFormat_L1TMuon_Omtf_DataWord64_H

#include <cstdint>
#include <iostream>
#include <vector>
#include <map>

namespace omtf {

  typedef uint64_t Word64;

  typedef std::map<std::pair<unsigned int, unsigned int>, std::vector<Word64> > FedAmcRawsMap;

  namespace DataWord64 {
    enum Type { csc = 0xC, dt = 0xD, rpc = 0xE, omtf = 0xF };
    template <typename T>
    Type type(const T &);
    template <>
    inline Type type<Word64>(const Word64 &data) {
      return static_cast<Type>(data >> 60);
    }
    template <>
    inline Type type<unsigned int>(const unsigned int &intType) {
      return static_cast<Type>(intType);
    }
    std::ostream &operator<<(std::ostream &out, const Type &o);
  };  // namespace DataWord64

}  // namespace omtf
#endif