ATLAS Offline Software
TGCSector.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 TGCSector_h
6 #define TGCSector_h
7 
8 
10 #include "TrigT1TGC/TGCTMDB.h"
11 #include "TrigT1TGC/TGCNSW.h"
12 #include "TrigT1TGC/TGCBIS78.h"
13 #include <memory>
14 
15 namespace LVL1TGCTrigger {
16 class TGCArguments;
17 class TGCDatabaseManager;
18 class TGCConnectionPPToSL;
19 class TGCConnectionHPBToSL;
20 class TGCConnectionPPToSB;
21 class TGCConnectionASDToPP;
22 class TGCConnectionSBToHPB;
23 class TGCASDOut;
24 class TGCPatchPanel;
25 class TGCSlaveBoard;
26 class TGCHighPtBoard;
27 class TGCSectorLogic;
28 
29 
30 class TGCSector
31 {
32  public:
37 
38  public:
40  int idIn,
42  TGCForwardBackwardType forwardBackward,
43  const TGCDatabaseManager* db,
44  std::shared_ptr<const LVL1TGC::TGCTMDB> tmdb,
45  std::shared_ptr<const LVL1TGC::TGCNSW> nsw,
46  std::shared_ptr<const LVL1TGC::TGCBIS78> bis78);
47 
48  TGCSector();
49 
50  private:
51  // copy constructor and assignement operator are hidden.
52  TGCSector(const TGCSector& right) = delete;
53  TGCSector& operator = (const TGCSector& right) = delete;
54 
55  public:
56  virtual ~TGCSector();
57 
58  bool hasHit() const;
59  void clearNumberOfHit();
60  int distributeSignal(const TGCASDOut* asdOut);
61 
62  TGCPatchPanel* getPP(int type, int index) const;
63  TGCSlaveBoard* getSB(int type, int index) const;
64  TGCHighPtBoard* getHPB(int type, int index) const;
65  TGCSectorLogic* getSL() { return m_SL; }
66 
67  unsigned int getNumberOfPP(int type) const;
68  unsigned int getNumberOfSB(int type) const;
69  unsigned int getNumberOfHPB(int type) const;
70 
72  int getId() const;
73  void dumpModule();
74 
75  LVL1TGC::TGCSide getSideId() const { return m_sideId; }
76  int getOctantId() const { return m_octantId; }
77  int getModuleId() const { return m_moduleId; }
78 
80  const TGCArguments* tgcArgs() const { return m_tgcArgs; }
81 
82 private:
83  std::shared_ptr<const LVL1TGC::TGCTMDB> getTMDB() const { return m_TMDB; }
84  std::shared_ptr<const LVL1TGC::TGCNSW> getNSW() const{ return m_NSW; }
85  std::shared_ptr<const LVL1TGC::TGCBIS78> getBIS78() const{ return m_BIS78; }
86 
88 
89 
90  void setModule(const TGCConnectionPPToSL* connection);
91  void connectPPToSB(const TGCConnectionPPToSB* connection);
92  void connectSBToHPB(const TGCConnectionSBToHPB* connection);
93  void connectHPBToSL(const TGCConnectionHPBToSL* connection);
94  void connectAdjacentPP();
95  void connectAdjacentHPB();
96 
101 
102  private:
103  int m_id{0};
109 
112 
113  std::vector<TGCPatchPanel*> m_PP[NumberOfPatchPanelType];
114  std::vector<TGCSlaveBoard*> m_SB[NumberOfSlaveBoardType];
115  std::vector<TGCHighPtBoard*> m_HPB[NumberOfHighPtBoardType];
116 
118  std::shared_ptr<const LVL1TGC::TGCTMDB> m_TMDB;
119  std::shared_ptr<const LVL1TGC::TGCNSW> m_NSW;
120  std::shared_ptr<const LVL1TGC::TGCBIS78> m_BIS78;
121 
124 };
125 
126 inline
127  bool TGCSector::hasHit() const
128 {
129  return (m_numberOfHit>0);
130 }
131 inline
133 { m_numberOfHit = 0;}
134 inline
136 {
137  if ((type<0) || (index<0)) return 0;
138  return m_PP[type].at(index);
139 }
140 inline
142 {
143  if ((type<0) || (index<0)) return 0;
144  return m_SB[type].at(index);
145 }
146 inline
148 {
149  if ((type<0) || (index<0)) return 0;
150  return m_HPB[type].at(index);
151 }
152 inline
153 unsigned int TGCSector::getNumberOfPP(int type) const
154 {
155  if (type<0) return -1;
156  return m_PP[type].size();
157 }
158 inline
159 unsigned int TGCSector::getNumberOfSB(int type) const
160 { if (type<0) return -1;
161  return m_SB[type].size();
162 }
163 inline
164 unsigned int TGCSector::getNumberOfHPB(int type) const
165 { if (type<0) return -1;
166  return m_HPB[type].size();
167 }
168 inline
170 { return m_regionType;}
171 
172 inline
173 int TGCSector::getId() const
174 { return m_id;}
175 
177 {
178  return rs = static_cast<TGCSector::TGCPatchPanelType>(rs + 1);
179 }
180 
181 } //end of namespace bracket
182 
183 #endif
LVL1TGCTrigger::TGCSector
Definition: TGCSector.h:31
LVL1TGCTrigger::TGCSector::STPP
@ STPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCSector::m_SL
TGCSectorLogic * m_SL
Definition: TGCSector.h:117
LVL1TGCTrigger::NumberOfSlaveBoardType
@ NumberOfSlaveBoardType
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::NOPP
@ NOPP
Definition: TGCSector.h:34
LVL1TGCTrigger::TGCSector::getNumberOfHPB
unsigned int getNumberOfHPB(int type) const
Definition: TGCSector.h:164
index
Definition: index.py:1
LVL1TGCTrigger::TGCSector::tgcArgs
const TGCArguments * tgcArgs() const
Definition: TGCSector.h:80
LVL1TGCTrigger::TGCTimingManager::startSectorLogic
void startSectorLogic(TGCSector *sector)
Definition: TGCTimingManager.cxx:87
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:42
LVL1TGCTrigger::TGCSector::getId
int getId() const
Definition: TGCSector.h:173
LVL1TGCTrigger::TGCSector::getModuleId
int getModuleId() const
Definition: TGCSector.h:77
LVL1TGCTrigger::TGCSector::WTPP
@ WTPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCSector::getPatchPanelType
int getPatchPanelType(TGCSignalType signal, int layer) const
Definition: TGCSector.cxx:74
RunTileCalibRec.tmdb
tmdb
Definition: RunTileCalibRec.py:244
LVL1TGCTrigger::TGCConnectionPPToSB
Definition: TGCConnectionPPToSB.h:15
TGCNSW.h
LVL1TGCTrigger::TGCSector::TGCHighPtBoardType
TGCHighPtBoardType
Definition: TGCSector.h:33
LVL1TGCTrigger::TGCTimingManager::startSlaveBoard
void startSlaveBoard(TGCSector *sector)
Definition: TGCTimingManager.cxx:54
LVL1TGCTrigger::TGCSector::connectPPToSB
void connectPPToSB(const TGCConnectionPPToSB *connection)
Definition: TGCSector.cxx:256
LVL1TGCTrigger::TGCSector::m_dbMgr
const TGCDatabaseManager * m_dbMgr
Definition: TGCSector.h:123
LVL1TGCTrigger::TGCSector::clearNumberOfHit
void clearNumberOfHit()
Definition: TGCSector.h:132
LVL1TGCTrigger::TGCSector::getBIS78
std::shared_ptr< const LVL1TGC::TGCBIS78 > getBIS78() const
Definition: TGCSector.h:85
LVL1TGCTrigger::TGCSector::getSB
TGCSlaveBoard * getSB(int type, int index) const
Definition: TGCSector.h:141
LVL1TGCTrigger::TGCForwardBackwardType
TGCForwardBackwardType
Definition: TGCNumbering.h:59
LVL1TGCTrigger::TGCSector::getTMDB
std::shared_ptr< const LVL1TGC::TGCTMDB > getTMDB() const
Definition: TGCSector.h:83
LVL1TGCTrigger::TGCSector::m_forwardBackward
TGCForwardBackwardType m_forwardBackward
Definition: TGCSector.h:110
LVL1TGCTrigger::TGCSector::operator=
TGCSector & operator=(const TGCSector &right)=delete
LVL1TGCTrigger::TGCConnectionHPBToSL
Definition: TGCConnectionHPBToSL.h:16
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LVL1TGCTrigger::TGCSector::m_TMDB
std::shared_ptr< const LVL1TGC::TGCTMDB > m_TMDB
Definition: TGCSector.h:118
LVL1TGCTrigger::TGCConnectionPPToSL
Definition: TGCConnectionPPToSL.h:16
LVL1TGCTrigger::TGCSector::m_octantId
int m_octantId
Definition: TGCSector.h:107
LVL1TGCTrigger::TGCSector::m_id
int m_id
Definition: TGCSector.h:103
LVL1TGCTrigger::TGCSector::getRegionType
TGCRegionType getRegionType() const
Definition: TGCSector.h:169
LVL1TGCTrigger::TGCSector::TGCSector
TGCSector()
Definition: TGCSector.cxx:90
LVL1TGCTrigger::TGCSector::WDPP
@ WDPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCTimingManager::startHighPtBoard
void startHighPtBoard(TGCSector *sector)
Definition: TGCTimingManager.cxx:72
LVL1TGCTrigger::TGCSlaveBoard
Definition: TGCSlaveBoard.h:22
LVL1TGCTrigger::TGCSector::connectHPBToSL
void connectHPBToSL(const TGCConnectionHPBToSL *connection)
Definition: TGCSector.cxx:346
LVL1TGCTrigger::TGCSector::SIPP
@ SIPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCSector::getSideId
LVL1TGC::TGCSide getSideId() const
Definition: TGCSector.h:75
LVL1TGCTrigger::TGCSector::getNSW
std::shared_ptr< const LVL1TGC::TGCNSW > getNSW() const
Definition: TGCSector.h:84
LVL1TGCTrigger::TGCSector::tgcArgs
TGCArguments * tgcArgs()
Definition: TGCSector.h:79
LVL1TGCTrigger::TGCSector::getSL
TGCSectorLogic * getSL()
Definition: TGCSector.h:65
LVL1TGCTrigger::TGCSector::dumpModule
void dumpModule()
Definition: TGCSector.cxx:406
LVL1TGCTrigger::TGCSector::m_HPB
std::vector< TGCHighPtBoard * > m_HPB[NumberOfHighPtBoardType]
Definition: TGCSector.h:115
TGCTimingManager.h
LVL1TGCTrigger::TGCSector::m_sideId
LVL1TGC::TGCSide m_sideId
Definition: TGCSector.h:105
LVL1TGCTrigger::TGCSector::m_PP
std::vector< TGCPatchPanel * > m_PP[NumberOfPatchPanelType]
Definition: TGCSector.h:113
LVL1TGCTrigger::TGCASDOut
Definition: TGCASDOut.h:12
LVL1TGCTrigger::TGCSector::m_moduleId
int m_moduleId
Definition: TGCSector.h:108
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
LVL1TGCTrigger::TGCSector::setModule
void setModule(const TGCConnectionPPToSL *connection)
Definition: TGCSector.cxx:166
LVL1TGCTrigger::TGCSector::getNumberOfPP
unsigned int getNumberOfPP(int type) const
Definition: TGCSector.h:153
LVL1TGCTrigger::TGCSector::getPP
TGCPatchPanel * getPP(int type, int index) const
Definition: TGCSector.h:135
TGCBIS78.h
LVL1TGCTrigger
Definition: LVL1TGCTrigger.cxx:47
TGCTMDB.h
LVL1TGCTrigger::TGCSector::WIPP
@ WIPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCConnectionSBToHPB
Definition: TGCConnectionSBToHPB.h:15
LVL1TGCTrigger::TGCTimingManager::startPatchPanel
void startPatchPanel(TGCSector *sector, TGCDatabaseManager *db=0)
Definition: TGCTimingManager.cxx:33
LVL1TGCTrigger::operator++
TGCHBChip operator++(TGCHBChip &rs, int)
Definition: TGCHighPtBoard.h:28
LVL1TGCTrigger::TGCDatabaseManager
Definition: TGCDatabaseManager.h:39
LVL1TGCTrigger::TGCSector::connectSBToHPB
void connectSBToHPB(const TGCConnectionSBToHPB *connection)
Definition: TGCSector.cxx:324
LVL1TGCTrigger::TGCSector::SDPP
@ SDPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCSector::~TGCSector
virtual ~TGCSector()
Definition: TGCSector.cxx:379
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:67
LVL1TGCTrigger::TGCSector::m_ASDToPP
const TGCConnectionASDToPP * m_ASDToPP[NumberOfPatchPanelType]
Definition: TGCSector.h:111
LVL1TGCTrigger::TGCPatchPanel
Definition: TGCPatchPanel.h:38
LVL1TGCTrigger::TGCArguments
Definition: TGCArguments.h:12
LVL1TGCTrigger::TGCSector::m_SB
std::vector< TGCSlaveBoard * > m_SB[NumberOfSlaveBoardType]
Definition: TGCSector.h:114
LVL1TGC::ASIDE
@ ASIDE
Definition: TGCNumbering.h:14
LVL1TGCTrigger::TGCSectorLogic
Definition: TGCSectorLogic.h:41
LVL1TGCTrigger::TGCSector::WHPB
@ WHPB
Definition: TGCSector.h:33
LVL1TGCTrigger::TGCSignalType
TGCSignalType
Definition: TGCNumbering.h:51
LVL1TGCTrigger::TGCSector::SHPB
@ SHPB
Definition: TGCSector.h:33
LVL1TGCTrigger::TGCSector::m_regionType
TGCRegionType m_regionType
Definition: TGCSector.h:104
LVL1TGCTrigger::TGCHighPtBoard
Definition: TGCHighPtBoard.h:34
LVL1TGCTrigger::TGCRegionType
TGCRegionType
Definition: TGCNumbering.h:49
LVL1TGCTrigger::TGCSector::connectAdjacentPP
void connectAdjacentPP()
Definition: TGCSector.cxx:295
LVL1TGCTrigger::TGCSector::getOctantId
int getOctantId() const
Definition: TGCSector.h:76
LVL1TGCTrigger::TGCSector::hasHit
bool hasHit() const
Definition: TGCSector.h:127
LVL1TGCTrigger::TGCSector::getNumberOfSB
unsigned int getNumberOfSB(int type) const
Definition: TGCSector.h:159
LVL1TGC::TGCSide
TGCSide
The sides of TGC (A- or C-side)
Definition: TGCNumbering.h:13
LVL1TGCTrigger::TGCSector::distributeSignal
int distributeSignal(const TGCASDOut *asdOut)
Definition: TGCSector.cxx:34
LVL1TGCTrigger::TGCSector::TGCSector
TGCSector(const TGCSector &right)=delete
LVL1TGCTrigger::TGCSector::NumberOfHighPtBoardType
@ NumberOfHighPtBoardType
Definition: TGCSector.h:33
LVL1TGCTrigger::TGCSector::connectAdjacentHPB
void connectAdjacentHPB()
Definition: TGCSector.cxx:359
LVL1TGCTrigger::TGCSector::m_NSW
std::shared_ptr< const LVL1TGC::TGCNSW > m_NSW
Definition: TGCSector.h:119
LVL1TGCTrigger::TGCSector::m_BIS78
std::shared_ptr< const LVL1TGC::TGCBIS78 > m_BIS78
Definition: TGCSector.h:120
LVL1TGCTrigger::TGCSector::m_tgcArgs
TGCArguments * m_tgcArgs
Definition: TGCSector.h:122
LVL1TGCTrigger::TGCConnectionASDToPP
Definition: TGCConnectionASDToPP.h:13
LVL1TGCTrigger::TGCSector::getHPB
TGCHighPtBoard * getHPB(int type, int index) const
Definition: TGCSector.h:147
LVL1TGCTrigger::TGCSector::NumberOfPatchPanelType
@ NumberOfPatchPanelType
Definition: TGCSector.h:36
LVL1TGCTrigger::TGCSector::m_numberOfHit
int m_numberOfHit
Definition: TGCSector.h:106
LVL1TGCTrigger::TGCSector::TGCPatchPanelType
TGCPatchPanelType
Definition: TGCSector.h:34