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