CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Attributes | Private Attributes
CastorElectronicsId Class Reference

Readout chain identification for Castor Bits for the readout chain : some names need change! [31:26] not used [25] [24:20] [19] [18:14] [13:9] [8:5] [4:2] [1:0]. More...

#include <CastorElectronicsId.h>

Public Member Functions

 CastorElectronicsId ()
 
 CastorElectronicsId (uint32_t)
 
 CastorElectronicsId (int fiberChan, int fiberIndex, int spigot, int dccid)
 
 CastorElectronicsId (int slbChan, int slbSite, int spigot, int dccid, int crate, int slot, int tb)
 
int dccid () const
 
int fiberChanId () const
 
int fiberIndex () const
 
int htrChanId () const
 
int htrSlot () const
 
int htrTopBottom () const
 
bool isTriggerChainId () const
 
int linearIndex () const
 
int operator!= (const CastorElectronicsId &id) const
 
uint32_t operator() ()
 
int operator< (const CastorElectronicsId &id) const
 Compare the id to another one for use in a map. More...
 
int operator== (const CastorElectronicsId &id) const
 
uint32_t rawId () const
 
int readoutVMECrateId () const
 
void setHTR (int crate, int slot, int tb)
 
std::string slbChannelCode () const
 
int slbChannelIndex () const
 
int slbSiteNumber () const
 
int spigot () const
 

Static Public Attributes

static const int maxDCCId = 15
 
static const int maxLinearIndex = 0x3FFF
 

Private Attributes

uint32_t castorElectronicsId_
 

Detailed Description

Readout chain identification for Castor Bits for the readout chain : some names need change! [31:26] not used [25] [24:20] [19] [18:14] [13:9] [8:5] [4:2] [1:0].

Definition at line 20 of file CastorElectronicsId.h.

Constructor & Destructor Documentation

CastorElectronicsId::CastorElectronicsId ( )

Constructors

Definition at line 4 of file CastorElectronicsId.cc.

References castorElectronicsId_.

4  {
5  castorElectronicsId_=0xffffffffu;
6 }
CastorElectronicsId::CastorElectronicsId ( uint32_t  id)
CastorElectronicsId::CastorElectronicsId ( int  fiberChan,
int  fiberIndex,
int  spigot,
int  dccid 
)

Definition at line 12 of file CastorElectronicsId.cc.

References castorElectronicsId_.

12  {
13  castorElectronicsId_=(fiberChan&0x3) | (((fiberIndex-1)&0xf)<<2) |
14  ((spigot&0xF)<<6) | ((dccid&0xF)<<10);
15 }
CastorElectronicsId::CastorElectronicsId ( int  slbChan,
int  slbSite,
int  spigot,
int  dccid,
int  crate,
int  slot,
int  tb 
)

Definition at line 17 of file CastorElectronicsId.cc.

References castorElectronicsId_.

17  {
18  castorElectronicsId_=(slbChan&0x3) | (((slbSite-1)&0xf)<<2) |
19  ((spigot&0xF)<<6) | ((dccid&0xF)<<10);
20  castorElectronicsId_|=((tb&0x1)<<19) | ((slot&0x1f)<<14) | ((crate&0x3f)<<20);
21  castorElectronicsId_|=0x02000000;
22 }

Member Function Documentation

int CastorElectronicsId::dccid ( ) const
inline

Definition at line 43 of file CastorElectronicsId.h.

References castorElectronicsId_.

43 { return (castorElectronicsId_>>10)&0xF; }
int CastorElectronicsId::fiberChanId ( ) const
inline

Definition at line 34 of file CastorElectronicsId.h.

References castorElectronicsId_.

Referenced by htrChanId(), and CastorDbASCIIIO::CastorElectronicsIdLess::operator()().

34 { return castorElectronicsId_&0x3; }
int CastorElectronicsId::fiberIndex ( ) const
inline

Definition at line 35 of file CastorElectronicsId.h.

References castorElectronicsId_.

Referenced by htrChanId(), and CastorDbASCIIIO::CastorElectronicsIdLess::operator()().

35 { return ((castorElectronicsId_>>2)&0xf)+1; }
int CastorElectronicsId::htrChanId ( ) const
inline

Definition at line 41 of file CastorElectronicsId.h.

References fiberChanId(), and fiberIndex().

41 { return (fiberChanId()+1)+((fiberIndex()-1)*3); }
int CastorElectronicsId::htrSlot ( ) const
inline
int CastorElectronicsId::htrTopBottom ( ) const
inline
bool CastorElectronicsId::isTriggerChainId ( ) const
inline

Definition at line 31 of file CastorElectronicsId.h.

References castorElectronicsId_.

Referenced by slbChannelCode().

31 { return (castorElectronicsId_&0x02000000)!=0; }
int CastorElectronicsId::linearIndex ( ) const
inline
int CastorElectronicsId::operator!= ( const CastorElectronicsId id) const
inline

Definition at line 54 of file CastorElectronicsId.h.

References castorElectronicsId_.

54 { return id.castorElectronicsId_!=castorElectronicsId_; }
uint32_t CastorElectronicsId::operator() ( )
inline

Definition at line 27 of file CastorElectronicsId.h.

References castorElectronicsId_.

27 { return castorElectronicsId_; }
int CastorElectronicsId::operator< ( const CastorElectronicsId id) const
inline

Compare the id to another one for use in a map.

Definition at line 56 of file CastorElectronicsId.h.

References castorElectronicsId_.

56 { return castorElectronicsId_<id.castorElectronicsId_; }
int CastorElectronicsId::operator== ( const CastorElectronicsId id) const
inline

operators

Definition at line 53 of file CastorElectronicsId.h.

References castorElectronicsId_.

53 { return id.castorElectronicsId_==castorElectronicsId_; }
uint32_t CastorElectronicsId::rawId ( ) const
inline
int CastorElectronicsId::readoutVMECrateId ( ) const
inline
void CastorElectronicsId::setHTR ( int  crate,
int  slot,
int  tb 
)

Definition at line 46 of file CastorElectronicsId.cc.

References castorElectronicsId_.

Referenced by CastorDbHardcode::makeHardcodeMap(), and CastorUnpacker::unpack().

46  {
47  castorElectronicsId_&=0x3FFF; // keep the readout chain info
48  castorElectronicsId_|=((tb&0x1)<<19) | ((slot&0x1f)<<14) | ((crate&0x3f)<<20);
49 }
std::string CastorElectronicsId::slbChannelCode ( ) const

Definition at line 24 of file CastorElectronicsId.cc.

References htrTopBottom(), isTriggerChainId(), and slbChannelIndex().

24  {
25  std::string retval;
26  if (isTriggerChainId()) {
27  if (htrTopBottom()) { // top
28  switch (slbChannelIndex()) {
29  case (0): retval="A0"; break;
30  case (1): retval="A1"; break;
31  case (2): retval="C0"; break;
32  case (3): retval="C1"; break;
33  }
34  } else {
35  switch (slbChannelIndex()) {
36  case (0): retval="B0"; break;
37  case (1): retval="B1"; break;
38  case (2): retval="D0"; break;
39  case (3): retval="D1"; break;
40  }
41  }
42  }
43  return retval;
44 }
bool isTriggerChainId() const
int slbChannelIndex() const
int CastorElectronicsId::slbChannelIndex ( ) const
inline

Definition at line 36 of file CastorElectronicsId.h.

References castorElectronicsId_.

Referenced by slbChannelCode().

36 { return castorElectronicsId_&0x3; }
int CastorElectronicsId::slbSiteNumber ( ) const
inline

Definition at line 37 of file CastorElectronicsId.h.

References castorElectronicsId_.

37 { return ((castorElectronicsId_>>2)&0xf)+1; }
int CastorElectronicsId::spigot ( ) const
inline

Definition at line 42 of file CastorElectronicsId.h.

References castorElectronicsId_.

42 { return (castorElectronicsId_>>6)&0xF; }

Member Data Documentation

uint32_t CastorElectronicsId::castorElectronicsId_
private
const int CastorElectronicsId::maxDCCId = 15
static

Definition at line 50 of file CastorElectronicsId.h.

const int CastorElectronicsId::maxLinearIndex = 0x3FFF
static

Definition at line 49 of file CastorElectronicsId.h.