ATLAS Offline Software
Loading...
Searching...
No Matches
SectorLogicSetup.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef SECTORLOGICSETUP_H
6#define SECTORLOGICSETUP_H
7
8
9
18
19#include <list>
20#include <map>
21#include <string>
22#include <iosfwd>
23
24
25namespace RPC_CondCabling {
26
28 public:
29 typedef std::multimap<CMAinput, int> StationMap;
30 typedef std::map<int, RPCchamber> RPCmap;
31 typedef std::map<int, WiredOR> WORmap;
32 typedef std::map<CMAidentity, EtaCMA> EtaCMAmap;
33 typedef std::map<CMAidentity, EvenPhiCMA> EvenPhiCMAmap;
34 typedef std::map<CMAidentity, OddPhiCMA> OddPhiCMAmap;
35 typedef std::list<int> SECTORlist;
36 typedef std::map<std::string, std::string, std::less<>> TrigRoadsMap;
37
38 private:
39 std::string m_positive_sector;
40 std::string m_negative_sector;
41
44
46
52
53 std::string m_online_database;
54 std::string m_layout;
56
57 [[nodiscard]] std::string no_elements(const std::string&, int);
58 void get_station(CMAinput, int);
59
60 EtaCMAmap::const_iterator find_etaCMA(int Eta, int Phi) const;
61 EvenPhiCMAmap::const_iterator find_evenphiCMA(int Eta, int Phi) const;
62 OddPhiCMAmap::const_iterator find_oddphiCMA(int Eta, int Phi) const;
63
64 EtaCMAmap::iterator find_etaCMA(int Eta, int Phi);
65 EvenPhiCMAmap::iterator find_evenphiCMA(int Eta, int Phi);
66 OddPhiCMAmap::iterator find_oddphiCMA(int Eta, int Phi);
67
68 const std::map<std::string, std::string, std::less<>>* m_trigroads = nullptr;
69
70 public:
71 SectorLogicSetup(int, const std::string&, const std::string&, bool);
72 virtual ~SectorLogicSetup() = default;
73
74 /* Copying of this bag class should not be needed. To prevent the
75 creation of accidental (temporary) copies, we only allow move. */
80
81 const std::string& positive_sector() const { return m_positive_sector; }
82 const std::string& negative_sector() const { return m_negative_sector; }
83 const std::string& online_database() const { return m_online_database; }
84 const std::string& layout() const { return m_layout; }
85 int sector_type() const { return m_sector_type; }
86 bool cosmic() const { return m_cosmic; }
87 const SECTORlist& sectors() const { return m_sectors; }
88 const StationMap& giveStations() const { return m_stations; }
89
90 const RPCmap& giveRPC() const { return m_RPCs; }
91 const WORmap& giveWOR() const { return m_WORs; }
92 const EtaCMAmap& giveEtaCMA() const { return m_etaCMAs; }
93 const EvenPhiCMAmap& giveEvenPhiCMA() const { return m_evenphiCMAs; }
94 const OddPhiCMAmap& giveOddPhiCMA() const { return m_oddphiCMAs; }
95
96 const RPCchamber* find_chamber(int, int) const;
97
98 RPCchamber* find_chamber(int, int);
99 WiredOR* find_wor(int, int);
100 WiredOR* previousWOR(const WiredOR&);
101 EtaCMA* previousCMA(const EtaCMA&);
104 std::list<const EtaCMA*> find_eta_CMAs_in_PAD(int);
105
106 bool setup(MsgStream&);
107 bool check();
108
109 bool global_strip_add(ViewType, HalfType, int, int, int, int&) const;
110 bool local_strip_add(ViewType, int, int, int&, int&) const;
111 bool global_conn_add(ViewType, HalfType, int, int, int, int&, int&, int&) const;
112 bool local_conn_add(ViewType, int, int, int&, int&, int&) const;
113
114 const CMAparameters::CMAlist give_CMAs(const int, const ViewType, const int, const int) const;
115
116 bool give_RoI_borders(const CMAidentity& ETA,
117 const CMAidentity& PHI,
118 unsigned int& firstEtaCode, unsigned int& lastEtaCode,
119 unsigned int& firstPhiCode, unsigned int& lastPhiCode) const;
120
121 bool give_LowPt_borders(const CMAidentity& ETA,
122 const CMAidentity& PHI,
123 unsigned int& firstEtaCode, unsigned int& lastEtaCode,
124 unsigned int& firstPhiCode, unsigned int& lastPhiCode) const;
125
126 bool give_HighPt_borders(const CMAidentity& ETA,
127 const CMAidentity& PHI,
128 unsigned int& firstEtaCode, unsigned int& lastEtaCode,
129 unsigned int& firstPhiCode, unsigned int& lastPhiCode) const;
130
131 bool give_LowPt_layout(const CMAidentity& ID, unsigned short int& start_pivot_ch, unsigned int& start_pivot_code,
132 unsigned short int& stop_pivot_ch, unsigned int& stop_pivot_code, unsigned short int& start_confirm_ch,
133 unsigned int& start_confirm_code, unsigned short int& stop_confirm_ch,
134 unsigned int& stop_confirm_code) const;
135
136 bool give_HighPt_layout(const CMAidentity& ID, unsigned short int& start_pivot_ch, unsigned int& start_pivot_code,
137 unsigned short int& stop_pivot_ch, unsigned int& stop_pivot_code, unsigned short int& start_confirm_ch,
138 unsigned int& start_confirm_code, unsigned short int& stop_confirm_ch,
139 unsigned int& stop_confirm_code) const;
140
141 const CMAparameters* give_CMA(const CMAidentity& CMA) const;
142
143 bool correct(const CMAidentity& CMA,
144 L1RPCcabCorrection type, CMAinput it, unsigned int layer, unsigned short int Channel1,
145 unsigned short int Channel2, short int num) const;
146
147 std::list<unsigned int> give_strip_code(const CMAidentity& CMA,
148 int logic_sector, unsigned short int lh, unsigned short int ijk,
149 unsigned short int Channel) const;
150
152 bool operator+=(WiredORdata&);
155
156 HalfType side() const;
157
159
160 void PrintElement(std::ostream&, int, const std::string&, int, bool) const;
161 friend std::ostream& operator<<(std::ostream&, const SectorLogicSetup&);
162
163 void SetPtoTrigRoads(const TrigRoadsMap *);
164 const TrigRoadsMap * GetPtoTrigRoads() const { return m_trigroads; } // LBTAG
165 };
166
167} // namespace RPC_CondCabling
168
169#endif
CMAinput
L1RPCcabCorrection
RPC_CondCabling::SectorLogicSetup::TrigRoadsMap TrigRoadsMap
Definition EtaCMA.cxx:22
ViewType
Definition RPCdef.h:8
HalfType
Definition RPCdef.h:9
BaseObject(ObjectType, const std::string &)
Definition BaseObject.cxx:7
std::list< const CMAparameters * > CMAlist
const EtaCMAmap & giveEtaCMA() const
bool give_HighPt_layout(const CMAidentity &ID, unsigned short int &start_pivot_ch, unsigned int &start_pivot_code, unsigned short int &stop_pivot_ch, unsigned int &stop_pivot_code, unsigned short int &start_confirm_ch, unsigned int &start_confirm_code, unsigned short int &stop_confirm_ch, unsigned int &stop_confirm_code) const
OddPhiCMAmap::const_iterator find_oddphiCMA(int Eta, int Phi) const
std::string no_elements(const std::string &, int)
bool local_strip_add(ViewType, int, int, int &, int &) const
std::map< CMAidentity, OddPhiCMA > OddPhiCMAmap
bool local_conn_add(ViewType, int, int, int &, int &, int &) const
const std::string & negative_sector() const
SectorLogicSetup & operator=(SectorLogicSetup &&)=default
const SECTORlist & sectors() const
const OddPhiCMAmap & giveOddPhiCMA() const
const CMAparameters * give_CMA(const CMAidentity &CMA) const
SectorLogicSetup(SectorLogicSetup &&)=default
std::map< int, WiredOR > WORmap
const EvenPhiCMAmap & giveEvenPhiCMA() const
EtaCMA * previousCMA(const EtaCMA &)
bool give_HighPt_borders(const CMAidentity &ETA, const CMAidentity &PHI, unsigned int &firstEtaCode, unsigned int &lastEtaCode, unsigned int &firstPhiCode, unsigned int &lastPhiCode) const
std::multimap< CMAinput, int > StationMap
SectorLogicSetup(const SectorLogicSetup &)=delete
const std::map< std::string, std::string, std::less<> > * m_trigroads
SectorLogicSetup & operator=(const SectorLogicSetup &)=delete
const std::string & layout() const
WiredOR * previousWOR(const WiredOR &)
const TrigRoadsMap * GetPtoTrigRoads() const
bool global_conn_add(ViewType, HalfType, int, int, int, int &, int &, int &) const
bool give_RoI_borders(const CMAidentity &ETA, const CMAidentity &PHI, unsigned int &firstEtaCode, unsigned int &lastEtaCode, unsigned int &firstPhiCode, unsigned int &lastPhiCode) const
EtaCMAmap::const_iterator find_etaCMA(int Eta, int Phi) const
bool give_LowPt_layout(const CMAidentity &ID, unsigned short int &start_pivot_ch, unsigned int &start_pivot_code, unsigned short int &stop_pivot_ch, unsigned int &stop_pivot_code, unsigned short int &start_confirm_ch, unsigned int &start_confirm_code, unsigned short int &stop_confirm_ch, unsigned int &stop_confirm_code) const
std::map< CMAidentity, EtaCMA > EtaCMAmap
const CMAparameters::CMAlist give_CMAs(const int, const ViewType, const int, const int) const
SectorLogicSetup(int, const std::string &, const std::string &, bool)
bool give_LowPt_borders(const CMAidentity &ETA, const CMAidentity &PHI, unsigned int &firstEtaCode, unsigned int &lastEtaCode, unsigned int &firstPhiCode, unsigned int &lastPhiCode) const
bool correct(const CMAidentity &CMA, L1RPCcabCorrection type, CMAinput it, unsigned int layer, unsigned short int Channel1, unsigned short int Channel2, short int num) const
const RPCchamber * find_chamber(int, int) const
const StationMap & giveStations() const
bool global_strip_add(ViewType, HalfType, int, int, int, int &) const
void SetPtoTrigRoads(const TrigRoadsMap *)
const std::string & online_database() const
const std::string & positive_sector() const
std::map< int, RPCchamber > RPCmap
EvenPhiCMAmap::const_iterator find_evenphiCMA(int Eta, int Phi) const
void PrintElement(std::ostream &, int, const std::string &, int, bool) const
std::list< unsigned int > give_strip_code(const CMAidentity &CMA, int logic_sector, unsigned short int lh, unsigned short int ijk, unsigned short int Channel) const
std::map< CMAidentity, EvenPhiCMA > EvenPhiCMAmap
std::list< const EtaCMA * > find_eta_CMAs_in_PAD(int)
std::map< std::string, std::string, std::less<> > TrigRoadsMap
virtual ~SectorLogicSetup()=default