ATLAS Offline Software
Loading...
Searching...
No Matches
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.
int max () const
 return maximum number of IDs
ID identifier (int i) const
 reverse conversion
uint16_t subDetectorId (int i) const
 reverse conversion for SubDetectorID and ROD ID
uint16_t rodId (unsigned int i) const
 reverse conversion : ROD ID

Private Attributes

int m_size {0}
 total number of IDs
std::map< ID, int > m_lookup
 lookup table
std::vector< IDm_int2id
 reverse lookup
std::vector< uint16_t > m_int2subDetectorId
 reverse lookup for SubDetectorID and ROD ID
std::vector< uint16_t > m_int2rodId

Detailed Description

Hash function for CSC Raw Data Collection.

Author
Ketevi A. Assamagan

Definition at line 16 of file CscRawDataCollectionIdHash.h.

Member Typedef Documentation

◆ ID

Definition at line 20 of file CscRawDataCollectionIdHash.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
INVALID_ID 

Definition at line 39 of file CscRawDataCollectionIdHash.h.

Constructor & Destructor Documentation

◆ CscRawDataCollectionIdHash()

CscRawDataCollectionIdHash::CscRawDataCollectionIdHash ( )

Definition at line 11 of file CscRawDataCollectionIdHash.cxx.

12{
13 // initialize RPC cabling service
14 ServiceHandle<CSCcablingSvc> cabling{"CSCcablingSvc", "CscRawDataCollectionIdHash"};
15 if (cabling.retrieve().isFailure()) {
16 REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "CscRawDataCollectionIdHash")
17 << "Cannot get CSC cabling Service " << endmsg;
18 }
19
20 // loop over all RODs
21 for (uint16_t id=0; id<cabling->maxId(); ++id)
22 {
23 // map
25 m_int2id.push_back(id);
26 // ROD ID
27 m_int2rodId.push_back( id%cabling->nROD() );
28 ++m_size;
29
30 // SubDetectorID
31 if ( id < cabling->nROD() ) // C-side
32 m_int2subDetectorId.push_back(0x6A);
33 else // A-side
34 m_int2subDetectorId.push_back(0x69);
35 }
36}
#define endmsg
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
std::vector< uint16_t > m_int2subDetectorId
reverse lookup for SubDetectorID and ROD ID
std::vector< ID > m_int2id
reverse lookup
std::map< ID, int > m_lookup
lookup table

◆ ~CscRawDataCollectionIdHash()

CscRawDataCollectionIdHash::~CscRawDataCollectionIdHash ( )
inline

Definition at line 23 of file CscRawDataCollectionIdHash.h.

23{}

Member Function Documentation

◆ identifier()

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

reverse conversion

Definition at line 40 of file CscRawDataCollectionIdHash.cxx.

41{
42 if (index>=0 && index < m_size)
43 return m_int2id[index];
44
45 // if invalid index
46 return INVALID_ID;
47}
str index
Definition DeMoScan.py:362

◆ max()

int CscRawDataCollectionIdHash::max ( ) const
inline

return maximum number of IDs

Definition at line 29 of file CscRawDataCollectionIdHash.h.

29{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 75 of file CscRawDataCollectionIdHash.cxx.

76{
77 std::map<ID,int>::const_iterator it = m_lookup.find(id);
78 if(it!=m_lookup.end())
79 return it->second;
80
81 // if invalid ID
82 return INVALID_ID;
83}

◆ rodId()

uint16_t CscRawDataCollectionIdHash::rodId ( unsigned int i) const

reverse conversion : ROD ID

Definition at line 62 of file CscRawDataCollectionIdHash.cxx.

63{
64 //if (index>=0 && index < m_size)
65 // return m_int2rodId[index];
66
67 if(index < m_int2rodId.size())
68 return m_int2rodId.at(index);
69 // if invalid index
70 return INVALID_ID;
71}

◆ subDetectorId()

uint16_t CscRawDataCollectionIdHash::subDetectorId ( int i) const

reverse conversion for SubDetectorID and ROD ID

reverse conversion : SubDetectorID

Definition at line 51 of file CscRawDataCollectionIdHash.cxx.

52{
53 if (index>=0 && index < m_size)
55
56 // if invalid index
57 return INVALID_ID;
58}

Member Data Documentation

◆ m_int2id

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

reverse lookup

Definition at line 51 of file CscRawDataCollectionIdHash.h.

◆ m_int2rodId

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

Definition at line 56 of file CscRawDataCollectionIdHash.h.

◆ m_int2subDetectorId

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

reverse lookup for SubDetectorID and ROD ID

Definition at line 55 of file CscRawDataCollectionIdHash.h.

◆ m_lookup

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

lookup table

Definition at line 47 of file CscRawDataCollectionIdHash.h.

◆ m_size

int CscRawDataCollectionIdHash::m_size {0}
private

total number of IDs

Definition at line 43 of file CscRawDataCollectionIdHash.h.

43{0};

The documentation for this class was generated from the following files: