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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
#include "DataFormats/RPCDigi/interface/DataRecord.h"
#include "DataFormats/RPCDigi/interface/RecordBX.h"
#include "DataFormats/RPCDigi/interface/RecordSLD.h"
#include "DataFormats/RPCDigi/interface/RecordCD.h"
#include "DataFormats/RPCDigi/interface/EmptyWord.h"
#include "DataFormats/RPCDigi/interface/ErrorRDM.h"
#include "DataFormats/RPCDigi/interface/ErrorSDDM.h"
#include "DataFormats/RPCDigi/interface/ErrorRDDM.h"
#include "DataFormats/RPCDigi/interface/ErrorRCDM.h"

using namespace rpcrawtodigi;

rpcrawtodigi::DataRecord::DataRecordType rpcrawtodigi::DataRecord::type() const {
  DataRecordType wordType = UndefinedType;
  if (RecordBX::matchType(*this))
    wordType = StartOfBXData;
  if (RecordSLD::matchType(*this))
    wordType = StartOfTbLinkInputNumberData;
  if (RecordCD::matchType(*this))
    wordType = ChamberData;
  if (EmptyWord::matchType(*this))
    wordType = Empty;
  if (ErrorRCDM::matchType(*this))
    wordType = RCDM;
  if (ErrorSDDM::matchType(*this))
    wordType = SDDM;
  if (ErrorRDDM::matchType(*this))
    wordType = RDDM;
  if (ErrorRDM::matchType(*this))
    wordType = RDM;

  return wordType;
}

std::string rpcrawtodigi::DataRecord::print(const rpcrawtodigi::DataRecord& record) {
  std::ostringstream str;

  if (RecordBX::matchType(record))
    return RecordBX(record).print();
  if (RecordSLD::matchType(record))
    return RecordSLD(record).print();
  if (RecordCD::matchType(record))
    return RecordCD(record).print();
  if (EmptyWord::matchType(record))
    return EmptyWord().print();
  if (ErrorRCDM::matchType(record))
    return ErrorRCDM(record).print();
  if (ErrorSDDM::matchType(record))
    return ErrorSDDM(record).print();
  if (ErrorRDDM::matchType(record))
    return ErrorRDDM(record).print();
  if (ErrorRDM::matchType(record))
    return ErrorRDM(record).print();

  return str.str();
}

std::string rpcrawtodigi::DataRecord::name(const rpcrawtodigi::DataRecord::DataRecordType& code) {
  std::string result;
  switch (code) {
    case (None): {
      result = "None";
      break;
    }
    case (StartOfBXData): {
      result = "StartOfBXData";
      break;
    }
    case (StartOfTbLinkInputNumberData): {
      result = "StartOfTBLnkData";
      break;
    }
    case (ChamberData): {
      result = "ChamberData";
      break;
    }
    case (Empty): {
      result = "Empty";
      break;
    }
    case (RDDM): {
      result = "RDDM";
      break;
    }
    case (SDDM): {
      result = "SDDM";
      break;
    }
    case (RCDM): {
      result = "RCDM";
      break;
    }
    case (RDM): {
      result = "RDM";
      break;
    }
    default: {
      result = "UndefinedType";
    }
  }
  return result;
}