ATLAS Offline Software
Loading...
Searching...
No Matches
PixelCablingCondData.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef PIXELCABLINGCONDDATA_H
6#define PIXELCABLINGCONDDATA_H
7
8//#define PIXEL_DEBUG
11
12#include "Identifier/Identifier.h"
13#include <map>
14#include <deque>
15#include <stdint.h>
16#include <utility>
17#include <string>
18#include <unordered_map>
19
20struct idHasher {
21 std::size_t operator()(const Identifier& id) const {
22 return std::hash<Identifier::value_type>{}(id.get_compact());
23 }
24};
25
27 public:
32
33 void add_entry_onoff(const uint64_t, const Identifier); // add entries to m_idMap_onoff
34 void add_entry_offon(const Identifier, const uint64_t); // add entries in m_idMap_offon
35 void add_entry_offrob(const Identifier, const uint32_t); // add entries in m_idMap_offrob
36 void add_entry_rodrob(int rodid, int robid); // add entries in m_idMap_rodrob
37 void add_entry_robrod(int robid, int rodid);
38 void add_entry_offlineList(const uint32_t, const Identifier); // add entries in m_offlineListVect
39 void add_entry_DCSoffline(const std::string&, const Identifier); // add entries in m_offlineListVect
40
41 Identifier find_entry_onoff(const uint64_t) const; // search entry in the map m_idMap_onoff - get the offlineId from the onlineId
42 uint64_t find_entry_offon(const Identifier) const; // search entry in the map m_idMap_offon - get the onlineId from the offlineId
43 uint32_t find_entry_offrob(Identifier offlineId) const; // search entry in the map m_idMap_offrob - get the ROBId from the offlineId
44 int find_entry_rodrob(const int rodid) const;
45 int find_entry_robrod(const int robid) const;
46 std::deque<Identifier> find_entry_offlineList(uint32_t robid) const; // return entries from m_offlineListVect for a ROBId
47 Identifier find_entry_DCSoffline(const std::string& DCSname) const;
48 std::string find_entry_offlineDCS(const Identifier offlineId) const;
49 uint64_t getOnlineIdFromRobId(uint32_t robid, uint32_t link) const;
50
51 const std::vector<uint32_t>& get_allRods() const;
52 const std::vector<uint32_t>& get_allRobs() const;
53
54 unsigned int get_size_onoff() {return m_idMap_onoff.size();}
55
56 void set_readout_map(std::map<uint32_t,bool> rodReadoutMap);
57
58 const std::unordered_map<uint64_t, Identifier>& get_idMap_onoff() const;
59 const std::unordered_map<Identifier, uint64_t, idHasher>& get_idMap_offon() const;
60 const std::unordered_map<Identifier, uint32_t, idHasher>& get_idMap_offrob() const;
61 const std::unordered_map<int,int>& get_idMap_rodrob() const;
62 const std::unordered_map<int,int>& get_idMap_robrod() const;
63 const std::unordered_map<std::string, Identifier>& get_idMapDCSoff() const;
64
65 void clear();
66
67 private:
68
69 std::unordered_map<uint64_t, Identifier> m_idMap_onoff;
70 std::unordered_map<Identifier, uint64_t, idHasher> m_idMap_offon;
71 std::unordered_map<Identifier, uint32_t, idHasher> m_idMap_offrob;
72 std::unordered_map<int,int> m_idMap_rodrob;
73 std::unordered_map<int,int> m_idMap_robrod;
74 std::map<uint32_t, std::deque<Identifier> > m_offlineListVect;
75 std::unordered_map<std::string, Identifier> m_idMapDCSoff;
76 std::map<uint32_t,bool> m_rodReadoutMap;
77
78 std::vector<uint32_t> m_allRods; // vector containing all RODs in the m_idMap_rodrob
79 std::vector<uint32_t> m_allRobs; // vector containing all ROBs
80};
81
82CLASS_DEF( PixelCablingCondData , 107566278 , 1 ) // class definition with CLID
83
84#include "AthenaKernel/CondCont.h"
86
87#endif
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
#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
const std::unordered_map< Identifier, uint32_t, idHasher > & get_idMap_offrob() const
const std::vector< uint32_t > & get_allRobs() const
PixelCablingCondData(const PixelCablingCondData &other)=delete
void add_entry_onoff(const uint64_t, const Identifier)
std::map< uint32_t, std::deque< Identifier > > m_offlineListVect
ROBId -> offline identifier list.
std::string find_entry_offlineDCS(const Identifier offlineId) const
std::unordered_map< Identifier, uint32_t, idHasher > m_idMap_offrob
offline identifier -> ROBId map
void add_entry_DCSoffline(const std::string &, const Identifier)
void add_entry_offlineList(const uint32_t, const Identifier)
std::map< uint32_t, bool > m_rodReadoutMap
Readout speed for each ROD. false=40MBit, true=80MBit.
std::deque< Identifier > find_entry_offlineList(uint32_t robid) const
std::vector< uint32_t > m_allRods
void add_entry_offon(const Identifier, const uint64_t)
const std::unordered_map< int, int > & get_idMap_rodrob() const
void add_entry_rodrob(int rodid, int robid)
std::unordered_map< std::string, Identifier > m_idMapDCSoff
DCS name -> offline identifier.
void add_entry_robrod(int robid, int rodid)
Identifier find_entry_onoff(const uint64_t) const
const std::unordered_map< Identifier, uint64_t, idHasher > & get_idMap_offon() const
const std::unordered_map< int, int > & get_idMap_robrod() const
int find_entry_rodrob(const int rodid) const
uint64_t find_entry_offon(const Identifier) const
const std::vector< uint32_t > & get_allRods() const
std::vector< uint32_t > m_allRobs
const std::unordered_map< std::string, Identifier > & get_idMapDCSoff() const
std::unordered_map< Identifier, uint64_t, idHasher > m_idMap_offon
online identifier -> offline identifier map
std::unordered_map< uint64_t, Identifier > m_idMap_onoff
offline identifier -> online identifier map
Identifier find_entry_DCSoffline(const std::string &DCSname) const
std::unordered_map< int, int > m_idMap_robrod
ROBId -> RODId map (reverse of m_idMap_rodrob)
uint32_t find_entry_offrob(Identifier offlineId) const
int find_entry_robrod(const int robid) const
void set_readout_map(std::map< uint32_t, bool > rodReadoutMap)
std::unordered_map< int, int > m_idMap_rodrob
RODId -> ROBId map.
const std::unordered_map< uint64_t, Identifier > & get_idMap_onoff() const
virtual ~PixelCablingCondData()
void add_entry_offrob(const Identifier, const uint32_t)
uint64_t getOnlineIdFromRobId(uint32_t robid, uint32_t link) const
PixelCablingCondData & operator=(const PixelCablingCondData &other)=delete
std::size_t operator()(const Identifier &id) const