ATLAS Offline Software
Loading...
Searching...
No Matches
RpcCablingCondData.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4
5#ifndef RPCCABLINGCONDDATA_H
6#define RPCCABLINGCONDDATA_H
7
10#include "GaudiKernel/ServiceHandle.h"
11
15#include <map>
16#include <string>
17#include <vector>
18#include <set>
19
20class RpcIdHelper;
21struct RPCofflineId;
22
24 friend class RpcCablingCondAlg;
25
26public:
27 typedef std::map<int, RDOindex, std::less<int> > RDOmap;
28 typedef std::vector<const RDOindex*> OfflineOnlineHashMap;
29 typedef std::map<Identifier, const RDOindex*, std::less<Identifier> > OfflineOnlineMap;
30 typedef std::vector<RPC_CondCabling::SectorLogicSetup> STvec;
31 typedef std::map<IdentifierHash, std::set<IdentifierHash> > PRD_RDO_Map;
32 typedef std::map<IdentifierHash, std::set<uint32_t> > PRD_ROB_Map;
33 typedef std::map<uint32_t, std::set<IdentifierHash> > ROB_RDO_Map;
34
35 RpcCablingCondData() = default;
36 virtual ~RpcCablingCondData() = default;
37
38 const RDOmap& give_RDOs(void) const;
39
40 bool give_ROBid(const Identifier& compactID, unsigned short int& id) const;
41 bool give_ROBid(const unsigned int hashID, unsigned short int& id) const;
42
43 bool give_RODid(const Identifier& compactID, unsigned short int& id) const;
44 bool give_RODid(const unsigned int hashID, unsigned short int& id) const;
45
46 bool give_side(const Identifier& compactID, unsigned short int& id) const;
47 bool give_side(const unsigned int hashID, unsigned short int& id) const;
48
49 bool give_SLid(const Identifier& compactID, unsigned short int& id) const;
50 bool give_SLid(const unsigned int hashID, unsigned short int& id) const;
51
52 bool give_RXid(const Identifier& compactID, unsigned short int& id) const;
53 bool give_RXid(const unsigned int hashID, unsigned short int& id) const;
54
55 bool give_PADid(const Identifier& compactID, unsigned short int& id) const;
56 bool give_PADid(const unsigned int hashID, unsigned short int& id) const;
57
58 const std::vector<uint32_t>& giveFullListOfRobIds() const;
59
60 StatusCode giveROB_fromRDO(const IdentifierHash rdoHashId, uint32_t& robId) const;
61
62 StatusCode giveROB_fromRDO(const std::vector<IdentifierHash>& rdoHashVec, std::vector<uint32_t>& robIdVec) const;
63
64 std::list<Identifier> give_strip_id(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int PADId,
65 unsigned short int CMAId, unsigned short ijk, unsigned short int Channel,
66 const RpcIdHelper* rpcId) const;
67
68 const CMAparameters::CMAlist give_CMAs(const int logic_sector, const ViewType side, const int station, const int cabling_code) const;
69 static unsigned long int strip_code_fromOffline(int etaPhiView, int logicSector, int cablingStation, int gasGap, int zIndexInCablingStation,
70 int strip) ;
71 unsigned long int strip_code_fromOffId(const std::string& stationName, int stationEta, int stationPhi, int doubletR, int doubletZ,
72 int doubletPhi, int gasGap, int measuresPhi, int strip) const;
73 static bool largeSector(const std::string& stName) ;
74 unsigned int computeZIndexInCablingStation(const std::string& stationName, int logicSector, int stationEta, int doubletR, int doubletZ,
75 int cabStat) const;
76
77 StatusCode giveRDO_fromPRD(const IdentifierHash prdHashId, std::vector<IdentifierHash>& rdoHashVec) const;
78 StatusCode giveRDO_fromPRD(const std::vector<IdentifierHash>& prdHashVec, std::vector<IdentifierHash>& rdoHashVec) const;
79 StatusCode giveRDO_fromROB(const std::vector<uint32_t>& robIdVec, std::vector<IdentifierHash>& rdoHashVec) const;
80 StatusCode giveROB_fromPRD(const IdentifierHash prdHashId, std::vector<uint32_t>& robIdVec) const;
81
82 virtual bool give_Pad_Parameters(unsigned short int logic_sector, unsigned short int PADId, bool& feet, bool& eta_and_phi,
83 unsigned short int& cma_mask, unsigned short int& feet_th0, unsigned short int& feet_th1,
84 unsigned short int& feet_th2) const;
85
86 bool give_PAD_address(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId,
87 unsigned int& padIdHash) const;
88
89 bool give_RoI_borders_id(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId,
90 Identifier& EtaLowBorder_id, Identifier& EtaHighBorder_id, Identifier& PhiLowBorder_id,
91 Identifier& PhiHighBorder_id, const RpcIdHelper* rpcId) const;
92
93 bool give_RoI_borders(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId, unsigned int& EtaLowBorder,
94 unsigned int& EtaHighBorder, unsigned int& PhiLowBorder, unsigned int& PhiHighBorder) const;
95
96 Identifier protected_strip_OffId_fromCode(unsigned long int strip_code, const RpcIdHelper* rpcId) const;
97 RPCofflineId strip_id_fromCode(unsigned long int strip_code) const;
98
99 bool give_LowPt_borders(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId,
100 unsigned int& EtaLowBorder, unsigned int& EtaHighBorder, unsigned int& PhiLowBorder,
101 unsigned int& PhiHighBorder) const;
102
103 bool give_LowPt_borders_id(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId,
104 Identifier& EtaLowBorder_id, Identifier& EtaHighBorder_id, Identifier& PhiLowBorder_id,
105 Identifier& PhiHighBorder_id, const RpcIdHelper* rpcId) const;
106
107 bool give_HighPt_borders(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId,
108 unsigned int& EtaLowBorder, unsigned int& EtaHighBorder, unsigned int& PhiLowBorder,
109 unsigned int& PhiHighBorder) const;
110
111 bool give_HighPt_borders_id(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId,
112 Identifier& EtaLowBorder_id, Identifier& EtaHighBorder_id, Identifier& PhiLowBorder_id,
113 Identifier& PhiHighBorder_id, const RpcIdHelper* rpcId) const;
114
115 Identifier strip_OffId_fromCode(unsigned long int strip_code, const RpcIdHelper* rpcId) const;
116
117 bool giveOfflineId(const unsigned short int side, const unsigned short int sector, const unsigned short int padId,
118 Identifier& id) const;
119
120 // migrate from RpcPadIDHash
121 // reverse conversion
122 Identifier identifier(int i) const;
123
124 int operator()(const Identifier& id) const;
125 int max() const;
126 static int offset() ;
127 std::vector<IdentifierHash> rod2hash(uint16_t subsystem, uint16_t rod) const;
128 uint32_t hash2source(unsigned int h) const;
129
130 void setIds(const std::vector<Identifier>& int2id);
131 void setLookup(const std::vector<Identifier>& ids);
132
133private:
137
138 std::string m_map;
139 std::string m_corr;
140
141 std::vector<std::string> m_vecetaCM_File;
142 std::vector<std::string> m_vecetaTh0;
143 std::vector<std::string> m_vecetaSequence_Th;
144 std::vector<std::string> m_vecetaInfo;
145
146 std::map<std::string, std::string> m_trigroads;
147
148 std::vector<std::string> m_vecphiCM_File;
149 std::vector<std::string> m_vecphiTh0;
150 std::vector<std::string> m_vecphiInfo;
151
152 // migrate from RpcPadIDHash
153 std::vector<Identifier> m_int2id;
154 std::vector<IdentifierHash> m_rod2hash[2][16];
155 std::map<Identifier, int> m_lookup;
156
157 std::vector<uint32_t> m_fullListOfRobIds;
158 int m_SectorMap[64]{};
159 // array; for each sectorlogic type returns the SectorLogicSetup
164
165 int m_MaxType =-999999;
166
167 // list of RPCPadParameters
168 // max PADId was 8 in Run2, increased to 10 for Run3 to allow BIS78
169 static constexpr unsigned MAX_PADID = 10;
170 static constexpr unsigned MAX_LOGICSECTOR = 64;
172
174};
175
176CLASS_DEF(RpcCablingCondData, 251594023, 1) // newly generated using clid -m "RpcCablingCondData"
178
179#endif
Hold mappings of ranges to condition objects.
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
ViewType
Definition RPCdef.h:8
Header file for AthHistogramAlgorithm.
std::list< const CMAparameters * > CMAlist
Hold mapping of ranges to condition objects.
Definition CondCont.h:889
This is a "hash" representation of an Identifier.
std::map< IdentifierHash, std::set< IdentifierHash > > PRD_RDO_Map
std::vector< std::string > m_vecetaTh0
StatusCode giveROB_fromRDO(const IdentifierHash rdoHashId, uint32_t &robId) const
std::map< std::string, std::string > m_trigroads
std::vector< std::string > m_vecphiInfo
virtual bool give_Pad_Parameters(unsigned short int logic_sector, unsigned short int PADId, bool &feet, bool &eta_and_phi, unsigned short int &cma_mask, unsigned short int &feet_th0, unsigned short int &feet_th1, unsigned short int &feet_th2) const
int operator()(const Identifier &id) const
std::list< Identifier > give_strip_id(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int PADId, unsigned short int CMAId, unsigned short ijk, unsigned short int Channel, const RpcIdHelper *rpcId) const
static constexpr unsigned MAX_LOGICSECTOR
Identifier strip_OffId_fromCode(unsigned long int strip_code, const RpcIdHelper *rpcId) const
std::vector< IdentifierHash > m_rod2hash[2][16]
bool give_RODid(const Identifier &compactID, unsigned short int &id) const
friend class RpcCablingCondAlg
bool give_LowPt_borders(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId, unsigned int &EtaLowBorder, unsigned int &EtaHighBorder, unsigned int &PhiLowBorder, unsigned int &PhiHighBorder) const
virtual ~RpcCablingCondData()=default
std::vector< std::string > m_vecetaCM_File
std::map< int, RDOindex, std::less< int > > RDOmap
bool giveOfflineId(const unsigned short int side, const unsigned short int sector, const unsigned short int padId, Identifier &id) const
StatusCode giveRDO_fromPRD(const IdentifierHash prdHashId, std::vector< IdentifierHash > &rdoHashVec) const
std::vector< std::string > m_vecphiTh0
std::map< uint32_t, std::set< IdentifierHash > > ROB_RDO_Map
unsigned int computeZIndexInCablingStation(const std::string &stationName, int logicSector, int stationEta, int doubletR, int doubletZ, int cabStat) const
std::vector< Identifier > m_int2id
std::vector< const RDOindex * > OfflineOnlineHashMap
bool give_RoI_borders_id(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId, Identifier &EtaLowBorder_id, Identifier &EtaHighBorder_id, Identifier &PhiLowBorder_id, Identifier &PhiHighBorder_id, const RpcIdHelper *rpcId) const
std::vector< std::string > m_vecphiCM_File
static bool largeSector(const std::string &stName)
StatusCode giveROB_fromPRD(const IdentifierHash prdHashId, std::vector< uint32_t > &robIdVec) const
std::vector< std::string > m_vecetaInfo
bool give_HighPt_borders_id(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId, Identifier &EtaLowBorder_id, Identifier &EtaHighBorder_id, Identifier &PhiLowBorder_id, Identifier &PhiHighBorder_id, const RpcIdHelper *rpcId) const
bool give_PADid(const Identifier &compactID, unsigned short int &id) const
void setLookup(const std::vector< Identifier > &ids)
const RDOmap & give_RDOs(void) const
const CMAparameters::CMAlist give_CMAs(const int logic_sector, const ViewType side, const int station, const int cabling_code) const
RPCofflineId strip_id_fromCode(unsigned long int strip_code) const
bool give_side(const Identifier &compactID, unsigned short int &id) const
StatusCode giveRDO_fromROB(const std::vector< uint32_t > &robIdVec, std::vector< IdentifierHash > &rdoHashVec) const
Identifier protected_strip_OffId_fromCode(unsigned long int strip_code, const RpcIdHelper *rpcId) const
bool give_RoI_borders(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId, unsigned int &EtaLowBorder, unsigned int &EtaHighBorder, unsigned int &PhiLowBorder, unsigned int &PhiHighBorder) const
static constexpr unsigned MAX_PADID
Identifier identifier(int i) const
RPCPadParameters m_RPCPadParameters_array[MAX_LOGICSECTOR][MAX_PADID]
unsigned long int strip_code_fromOffId(const std::string &stationName, int stationEta, int stationPhi, int doubletR, int doubletZ, int doubletPhi, int gasGap, int measuresPhi, int strip) const
bool give_SLid(const Identifier &compactID, unsigned short int &id) const
bool give_ROBid(const Identifier &compactID, unsigned short int &id) const
std::map< Identifier, int > m_lookup
bool give_PAD_address(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId, unsigned int &padIdHash) const
const std::vector< uint32_t > & giveFullListOfRobIds() const
std::vector< std::string > m_vecetaSequence_Th
std::vector< RPC_CondCabling::SectorLogicSetup > STvec
bool give_RXid(const Identifier &compactID, unsigned short int &id) const
Identifier m_offline_id[2][32][10]
static unsigned long int strip_code_fromOffline(int etaPhiView, int logicSector, int cablingStation, int gasGap, int zIndexInCablingStation, int strip)
std::vector< IdentifierHash > rod2hash(uint16_t subsystem, uint16_t rod) const
OfflineOnlineHashMap m_HashVec
std::map< Identifier, const RDOindex *, std::less< Identifier > > OfflineOnlineMap
bool give_HighPt_borders(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId, unsigned int &EtaLowBorder, unsigned int &EtaHighBorder, unsigned int &PhiLowBorder, unsigned int &PhiHighBorder) const
RpcCablingCondData()=default
OfflineOnlineMap m_RDOmap
void setIds(const std::vector< Identifier > &int2id)
std::map< IdentifierHash, std::set< uint32_t > > PRD_ROB_Map
std::vector< uint32_t > m_fullListOfRobIds
bool give_LowPt_borders_id(unsigned short int SubsystemId, unsigned short int SectorId, unsigned short int RoIId, Identifier &EtaLowBorder_id, Identifier &EtaHighBorder_id, Identifier &PhiLowBorder_id, Identifier &PhiHighBorder_id, const RpcIdHelper *rpcId) const
uint32_t hash2source(unsigned int h) const