ATLAS Offline Software
Public Types | Public Member Functions | Private Attributes | List of all members
CscRawDataCollectionIdHash Class Reference

Hash function for CSC Raw Data Collection. More...

#include <CscRawDataCollectionIdHash.h>

Collaboration diagram for CscRawDataCollectionIdHash:

Public Types

enum  { INVALID_ID = 0xFFFF }
 
typedef uint16_t ID
 

Public Member Functions

 CscRawDataCollectionIdHash ()
 
 ~CscRawDataCollectionIdHash ()
 
int operator() (const ID &id) const
 Convert ID to int. More...
 
int max () const
 return maximum number of IDs More...
 
ID identifier (int i) const
 reverse conversion More...
 
uint16_t subDetectorId (int i) const
 reverse conversion for SubDetectorID and ROD ID More...
 
uint16_t rodId (unsigned int i) const
 reverse conversion : ROD ID More...
 

Private Attributes

int m_size
 total number of IDs More...
 
std::map< ID, int > m_lookup
 lookup table More...
 
std::vector< IDm_int2id
 reverse lookup More...
 
std::vector< uint16_t > m_int2subDetectorId
 reverse lookup for SubDetectorID and ROD ID More...
 
std::vector< uint16_t > m_int2rodId
 
CSCcablingSvcm_cabling = nullptr
 

Detailed Description

Hash function for CSC Raw Data Collection.

Author
Ketevi A. Assamagan

Definition at line 20 of file CscRawDataCollectionIdHash.h.

Member Typedef Documentation

◆ ID

Definition at line 24 of file CscRawDataCollectionIdHash.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
INVALID_ID 

Definition at line 43 of file CscRawDataCollectionIdHash.h.

43 {INVALID_ID = 0xFFFF};

Constructor & Destructor Documentation

◆ CscRawDataCollectionIdHash()

CscRawDataCollectionIdHash::CscRawDataCollectionIdHash ( )

Definition at line 15 of file CscRawDataCollectionIdHash.cxx.

16 {
17 
18  IMessageSvc* msgSvc;
19  ISvcLocator* svcLoc = Gaudi::svcLocator( );
20  StatusCode sc = svcLoc->service( "MessageSvc", msgSvc );
21  if (sc.isFailure()) std::cout << "Fail to locate Message Service" << std::endl;
22 
23  MsgStream log(msgSvc, "CscRawDataCollectionIdHash" );
24 
25  log << MSG::DEBUG << " CscRawDataCollectionIdHash Constructor "<<endmsg;
26 
27  // initialize RPC cabling service
28  sc = svcLoc->service("CSCcablingSvc", m_cabling);
29  if (sc != StatusCode::SUCCESS ) {
30  log << MSG::ERROR << " Cannot get CSC cabling Service " << endmsg;
31  }
32 
33  m_size=0;
34 
35  // loop over all RODs
36  for (uint16_t id=0; id<m_cabling->maxId(); ++id)
37  {
38  // map
40  m_int2id.push_back(id);
41  // ROD ID
42  m_int2rodId.push_back( id%m_cabling->nROD() );
43  ++m_size;
44 
45  // SubDetectorID
46  if ( id < m_cabling->nROD() ) // C-side
47  m_int2subDetectorId.push_back(0x6A);
48  else // A-side
49  m_int2subDetectorId.push_back(0x69);
50 
51  }
52 }

◆ ~CscRawDataCollectionIdHash()

CscRawDataCollectionIdHash::~CscRawDataCollectionIdHash ( )
inline

Definition at line 27 of file CscRawDataCollectionIdHash.h.

27 {}

Member Function Documentation

◆ identifier()

CscRawDataCollectionIdHash::ID CscRawDataCollectionIdHash::identifier ( int  i) const

reverse conversion

Definition at line 56 of file CscRawDataCollectionIdHash.cxx.

57 {
58  if (index>=0 && index < m_size)
59  return m_int2id[index];
60 
61  // if invalid index
62  return INVALID_ID;
63 }

◆ max()

int CscRawDataCollectionIdHash::max ( ) const
inline

return maximum number of IDs

Definition at line 33 of file CscRawDataCollectionIdHash.h.

33 {return m_size;}

◆ operator()()

int CscRawDataCollectionIdHash::operator() ( const ID id) const

Convert ID to int.

return INVALID_ID if invalid ID

return -1 if invalid ID

Definition at line 91 of file CscRawDataCollectionIdHash.cxx.

92 {
93  std::map<ID,int>::const_iterator it = m_lookup.find(id);
94  if(it!=m_lookup.end())
95  return it->second;
96 
97  // if invalid ID
98  return INVALID_ID;
99 }

◆ rodId()

uint16_t CscRawDataCollectionIdHash::rodId ( unsigned int  i) const

reverse conversion : ROD ID

Definition at line 78 of file CscRawDataCollectionIdHash.cxx.

79 {
80  //if (index>=0 && index < m_size)
81  // return m_int2rodId[index];
82 
83  if(index < m_int2rodId.size())
84  return m_int2rodId.at(index);
85  // if invalid index
86  return INVALID_ID;
87 }

◆ subDetectorId()

uint16_t CscRawDataCollectionIdHash::subDetectorId ( int  i) const

reverse conversion for SubDetectorID and ROD ID

reverse conversion : SubDetectorID

Definition at line 67 of file CscRawDataCollectionIdHash.cxx.

68 {
69  if (index>=0 && index < m_size)
70  return m_int2subDetectorId[index];
71 
72  // if invalid index
73  return INVALID_ID;
74 }

Member Data Documentation

◆ m_cabling

CSCcablingSvc* CscRawDataCollectionIdHash::m_cabling = nullptr
private

Definition at line 62 of file CscRawDataCollectionIdHash.h.

◆ m_int2id

std::vector<ID> CscRawDataCollectionIdHash::m_int2id
private

reverse lookup

Definition at line 55 of file CscRawDataCollectionIdHash.h.

◆ m_int2rodId

std::vector<uint16_t> CscRawDataCollectionIdHash::m_int2rodId
private

Definition at line 60 of file CscRawDataCollectionIdHash.h.

◆ m_int2subDetectorId

std::vector<uint16_t> CscRawDataCollectionIdHash::m_int2subDetectorId
private

reverse lookup for SubDetectorID and ROD ID

Definition at line 59 of file CscRawDataCollectionIdHash.h.

◆ m_lookup

std::map<ID,int> CscRawDataCollectionIdHash::m_lookup
private

lookup table

Definition at line 51 of file CscRawDataCollectionIdHash.h.

◆ m_size

int CscRawDataCollectionIdHash::m_size
private

total number of IDs

Definition at line 47 of file CscRawDataCollectionIdHash.h.


The documentation for this class was generated from the following files:
CscRawDataCollectionIdHash::m_size
int m_size
total number of IDs
Definition: CscRawDataCollectionIdHash.h:47
CscRawDataCollectionIdHash::m_cabling
CSCcablingSvc * m_cabling
Definition: CscRawDataCollectionIdHash.h:62
index
Definition: index.py:1
skel.it
it
Definition: skel.GENtoEVGEN.py:423
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
CSCcablingSvc::maxId
unsigned int maxId() const
Definition: CSCcablingSvc.h:52
CSCcablingSvc::nROD
unsigned int nROD() const
Definition: CSCcablingSvc.h:51
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
CscRawDataCollectionIdHash::m_int2subDetectorId
std::vector< uint16_t > m_int2subDetectorId
reverse lookup for SubDetectorID and ROD ID
Definition: CscRawDataCollectionIdHash.h:59
CscRawDataCollectionIdHash::m_int2id
std::vector< ID > m_int2id
reverse lookup
Definition: CscRawDataCollectionIdHash.h:55
CscRawDataCollectionIdHash::INVALID_ID
@ INVALID_ID
Definition: CscRawDataCollectionIdHash.h:43
CscRawDataCollectionIdHash::m_int2rodId
std::vector< uint16_t > m_int2rodId
Definition: CscRawDataCollectionIdHash.h:60
DeMoScan.index
string index
Definition: DeMoScan.py:362
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
CscRawDataCollectionIdHash::m_lookup
std::map< ID, int > m_lookup
lookup table
Definition: CscRawDataCollectionIdHash.h:51