ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_CablingData.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef SCT_CablingData_h
6#define SCT_CablingData_h
7
14
15// STL includes
16#include <array>
17#include <map>
18#include <set>
20// uint32 in std namespace
21#include <cstdint>
22
23// Athena includes
27
34
36 public:
40 ~SCT_CablingData() = default;
41
50
52 void invalidate();
53
57 bool setHashForOnlineId(const IdentifierHash& hash, const SCT_OnlineId& onlineId);
59 IdentifierHash getHashFromOnlineId(const SCT_OnlineId& onlineId) const;
60
64 bool setOnlineIdForHash(const SCT_OnlineId& onlineId, const IdentifierHash& hash);
67
71 bool setHashForSerialNumber(const IdentifierHash& hash, const SCT_SerialNumber& sn);
74
78 bool setSerialNumberForHash(const SCT_SerialNumber& sn, const IdentifierHash& hash);
81
83 void invalidateRods();
85 void setRod(const std::uint32_t& rod);
87 void getRods(std::vector<std::uint32_t>& usersVector) const;
88
90 unsigned int getHashEntries() const;
91
92 enum {NUMBER_OF_HASHES=8176}; // In SCT, we have 8176 wafers.
93
94 private:
95 std::array<IdentifierHash, SCT_OnlineId::NUMBER_OF_INDICES> m_onlineId2HashArray;
96 std::array<SCT_OnlineId, NUMBER_OF_HASHES> m_hash2OnlineIdArray;
97 std::map<SCT_SerialNumber, IdentifierHash> m_sn2HashMap;
98 std::array<SCT_SerialNumber, NUMBER_OF_HASHES> m_hash2SnArray;
99 std::set<std::uint32_t> m_rodIdSet;
100
101 static const IdentifierHash s_invalidHash;
102 static const SCT_OnlineId s_invalidId;
103 static const SCT_SerialNumber s_invalidSn;
104};
105
106// Class definition
108CLASS_DEF( SCT_CablingData , 42909094 , 1 )
109
110#include "AthenaKernel/CondCont.h"
112
113#endif // SCT_CablingData_h
#define CONDCONT_DEF(...)
Definition CondCont.h:1413
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Header file for a utility class to hold the online id.
Header file for a utility class to hold the serial number.
This is a "hash" representation of an Identifier.
A class to hold the data necessary for SCT_CablingTool.
void invalidateOnlineIdsForHashes()
Invalidate m_hash2OnlineIdArray.
static const IdentifierHash s_invalidHash
Invalid IdentifierHash.
void invalidateSerialNumbersForHashes()
Invalidate m_hash2SnArray.
std::set< std::uint32_t > m_rodIdSet
Set of robIds.
SCT_CablingData(const SCT_CablingData &)=default
Default copy constructor.
static const SCT_SerialNumber s_invalidSn
Invalid SCT_SerialNumber.
std::map< SCT_SerialNumber, IdentifierHash > m_sn2HashMap
Data map for serial number to hash.
~SCT_CablingData()=default
destructor
IdentifierHash getHashFromOnlineId(const SCT_OnlineId &onlineId) const
Get IdentifierHash from SCT_OnlineId.
void setRod(const std::uint32_t &rod)
Set m_rodIdSet.
static const SCT_OnlineId s_invalidId
Invalid SCT_OnlineId.
std::array< SCT_OnlineId, NUMBER_OF_HASHES > m_hash2OnlineIdArray
Array for hash to onlineId; hash goes from 0-8175.
SCT_CablingData()
constructor
SCT_CablingData & operator=(const SCT_CablingData &)=default
Default assignment operator.
void getRods(std::vector< std::uint32_t > &usersVector) const
Get a vector of all RODs.
void invalidateHashesForSerialNumbers()
Invalidate m_sn2HashMap.
void invalidate()
Invalidate all data members.
IdentifierHash getHashFromSerialNumber(const SCT_SerialNumber &sn) const
Get IdentifierHash from SCT_SerialNumber.
std::array< IdentifierHash, SCT_OnlineId::NUMBER_OF_INDICES > m_onlineId2HashArray
Array for onlineId to hash.
SCT_SerialNumber getSerialNumberFromHash(const IdentifierHash &hash) const
Get SCT_SerialNumber from IdentifierHash.
bool setOnlineIdForHash(const SCT_OnlineId &onlineId, const IdentifierHash &hash)
Set m_hash2OnlineIdArray.
SCT_CablingData(SCT_CablingData &&)=default
Default move constructor.
SCT_CablingData & operator=(SCT_CablingData &&)=default
Default move assignment operator.
unsigned int getHashEntries() const
Return the size of m_sn2HashMap.
bool setSerialNumberForHash(const SCT_SerialNumber &sn, const IdentifierHash &hash)
Set m_hash2SnArray.
void invalidateRods()
Invalidate m_rodIdSet.
bool setHashForSerialNumber(const IdentifierHash &hash, const SCT_SerialNumber &sn)
Set m_sn2HashMap.
std::array< SCT_SerialNumber, NUMBER_OF_HASHES > m_hash2SnArray
Array for hash to serial number.
SCT_OnlineId getOnlineIdFromHash(const IdentifierHash &hash) const
Get SCT_OnlineId from IdentifierHash.
void invalidateHashesForOnlineIds()
Invalidate m_onlineId2HashArray.
bool setHashForOnlineId(const IdentifierHash &hash, const SCT_OnlineId &onlineId)
Set m_onlineId2HashArray.
SCT_OnlineId is a class to hold an online id number and provide check on validity,...
SCT_SerialNumber is a class to hold a serial number and provide check on validity,...