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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
//-------------------------------------------------
//
//   Class: L1MuBMSecProcId
//
//   Description: Sector Processor identifier
//
//
//
//   Author :
//   N. Neumeister             CERN EP
//
//--------------------------------------------------

//-----------------------
// This Class's Header --
//-----------------------

#include "DataFormats/L1TMuon/interface/BMTF/L1MuBMSecProcId.h"

//---------------
// C++ Headers --
//---------------

#include <iostream>
#include <iomanip>
#include <cstdlib>

//-------------------------------
// Collaborating Class Headers --
//-------------------------------

using namespace std;

// --------------------------------
//       class L1MuBMSecProcId
//---------------------------------

//----------------
// Constructors --
//----------------

L1MuBMSecProcId::L1MuBMSecProcId() : m_wheel(0), m_sector(0) {}

L1MuBMSecProcId::L1MuBMSecProcId(int wheel_id, int sector_id) : m_wheel(wheel_id), m_sector(sector_id) {
  if (!(wheel_id >= -3 && wheel_id <= 3)) {
    //    cerr << "SecProcId : wheel out of range: " << wheel_id << endl;
  }
  if (!(sector_id >= 0 && sector_id < 12)) {
    //    cerr << "SecProcId : sector out of range: " << sector_id << endl;
  }
}

L1MuBMSecProcId::L1MuBMSecProcId(const L1MuBMSecProcId& id) : m_wheel(id.m_wheel), m_sector(id.m_sector) {}

//--------------
// Destructor --
//--------------

L1MuBMSecProcId::~L1MuBMSecProcId() {}

//--------------
// Operations --
//--------------

//
// Assignment operator
//
L1MuBMSecProcId& L1MuBMSecProcId::operator=(const L1MuBMSecProcId& id) {
  if (this != &id) {
    m_wheel = id.m_wheel;
    m_sector = id.m_sector;
  }
  return *this;
}

//
// return logical wheel
//
int L1MuBMSecProcId::locwheel() const { return (m_wheel / abs(m_wheel) * (abs(m_wheel) - 1)); }

//
// Equal operator
//
bool L1MuBMSecProcId::operator==(const L1MuBMSecProcId& id) const {
  if (wheel() != id.wheel())
    return false;
  if (sector() != id.sector())
    return false;
  return true;
}

//
// Unequal operator
//
bool L1MuBMSecProcId::operator!=(const L1MuBMSecProcId& id) const {
  if (m_wheel != id.wheel())
    return true;
  if (m_sector != id.sector())
    return true;
  return false;
}

//
// Less operator
//
bool L1MuBMSecProcId::operator<(const L1MuBMSecProcId& id) const {
  if (sector() < id.sector())
    return true;
  if (sector() > id.sector())
    return false;
  if (wheel() < 0 && id.wheel() < 0) {
    if (-wheel() < -id.wheel())
      return true;
  } else {
    if (wheel() < id.wheel())
      return true;
  }
  return false;
}

//
// output stream operator
//
ostream& operator<<(ostream& s, const L1MuBMSecProcId& id) {
  s.setf(ios::right, ios::adjustfield);
  s << "Sector Processor ( " << setw(2) << id.wheel() << "," << setw(2) << id.sector() << " )";
  return s;
}