CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RPCLBLink.cc
Go to the documentation of this file.
2 
3 #include <ostream>
4 #include <sstream>
5 
7  : id_(0x0)
8 {}
9 
10 RPCLBLink::RPCLBLink(::uint32_t const & _id)
11  : id_(_id)
12 {}
13 
15  , int _yoke
16  , int _sector
17  , int _side
18  , int _wheelordisk
19  , int _fibre
20  , int _radial
21  , int _linkboard
22  , int _connector)
23  : id_(0x0)
24 {
25  setRegion(_region);
26  setYoke(_yoke);
27  setSector(_sector);
28  setSide(_side);
29  setWheelOrDisk(_wheelordisk);
30  setFibre(_fibre);
31  setRadial(_radial);
32  setLinkBoard(_linkboard);
33  setConnector(_connector);
34 }
35 
36 ::uint32_t RPCLBLink::getMask() const
37 {
38  ::uint32_t _mask(0x0);
39  if (id_ & mask_region_)
40  _mask |= mask_region_;
41  if (id_ & mask_yoke_)
42  _mask |= mask_yoke_;
43  if (id_ & mask_sector_)
44  _mask |= mask_sector_;
45  if (id_ & mask_side_)
46  _mask |= mask_side_;
47  if (id_ & mask_wheelordisk_)
48  _mask |= mask_wheelordisk_;
49  if (id_ & mask_fibre_)
50  _mask |= mask_fibre_;
51  if (id_ & mask_radial_)
52  _mask |= mask_radial_;
53  if (id_ & mask_linkboard_)
54  _mask |= mask_linkboard_;
55  if (id_ & mask_connector_)
56  _mask |= mask_connector_;
57  return _mask;
58 }
59 
61 {
62  // LB_Rregion.yoke_Ssector_region.side.wheel_or_disk.fibre.radial_CHlinkboard:connector
63  // LB_RB -2 _S10 _ B N 2 A _CH2 :
64  // LB_RE -1 _S10 _ E N 2 3 _CH0 :
65  // LB_RB-2_S10_BN2A_CH2 , RB1in/W-2/S10:bwd ; LB_RE-1_S10_EN23_CH0 , RE-2/R3/C30
66 
67  int _region(getRegion())
68  , _yoke(getYoke())
69  , _linkboard(getLinkBoard())
70  , _connector(getConnector());
71 
72  std::ostringstream _oss;
73  _oss << "LB_R";
74  switch (_region) {
75  case 0: _oss << 'B'; break;
76  case 1: _oss << 'E'; break;
77  default: _oss << '*'; break;
78  }
79  (_yoke > 0 ? _oss << '+' << _yoke : _oss << _yoke);
80 
82 
83  _oss << '_';
84  switch (_region) {
85  case 0: _oss << 'B'; break;
86  case 1: _oss << 'E'; break;
87  default: _oss << '*'; break;
88  }
89  switch (getSide()) {
90  case 0: _oss << 'N'; break;
91  case 1: _oss << 'M'; break;
92  case 2: _oss << 'P'; break;
93  default: _oss << '*'; break;
94  }
96  switch (getFibre()) {
97  case 0: _oss << '1'; break;
98  case 1: _oss << '2'; break;
99  case 2: _oss << '3'; break;
100  case 3: _oss << 'A'; break;
101  case 4: _oss << 'B'; break;
102  case 5: _oss << 'C'; break;
103  case 6: _oss << 'D'; break;
104  case 7: _oss << 'E'; break;
105  default: _oss << '*'; break;
106  }
107  switch (getRadial()) { // for completeness, CMS IN 2002/065
108  case 0: _oss << "ab"; break;
109  case 1: _oss << "cd"; break;
110  default: _oss << ""; break;
111  }
112 
113  if (_linkboard != wildcard_)
114  _oss << "_CH" << _linkboard;
115 
116  if (_connector != wildcard_)
117  _oss << ":" << _connector;
118 
119  return _oss.str();
120 }
121 
122 std::ostream & operator<<(std::ostream & _ostream, RPCLBLink const & _link)
123 {
124  return (_ostream << _link.getName());
125 }
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:188