ATLAS Offline Software
TGCSectorLogic.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 TGGSectorLogic_hh
6 #define TGGSectorLogic_hh
7 
8 
9 
16 #include <memory>
17 
18 namespace LVL1TGC {
19 class TGCTileMuCoincidenceLUT;
20 class TGCGoodMF;
21 class TGCNSW;
22 class TGCBIS78;
23 class TGCBIS78CoincidenceMap;
24 class TGCEIFICoincidenceMap;
25 
26 }
27 
28 namespace LVL1TGCTrigger {
29 
30 class TGCDatabaseManager;
31 class TGCHighPtBoard;
32 class TGCHighPtChipOut;
33 class TGCTMDB;
34 class TGCNSWCoincidenceMap;
35 class TGCRPhiCoincidenceOut;
36 class TGCTrackSelectorOut;
37 class TGCArguments;
38 
39 
41 {
42  public:
44  TGCRegionType regionIn, int id);
45  virtual ~TGCSectorLogic();
46 
47  TGCSectorLogic(const TGCSectorLogic& right);
48 
49  void getTrackSelectorOutput(std::shared_ptr<TGCTrackSelectorOut> &trackSelectorOut) const;
50 
51  int getTileMuonWord() const;
52  int getInnerStationWord() const;
53 
54  void clockIn(const SG::ReadCondHandleKey<TGCTriggerData>& readCondKey,
55  int bidIn, bool process=true);
56 
57  int getId() const;
58  int getModuleID() const;
59  int getOctantID() const;
60  int getSideID() const;
61  TGCRegionType getRegion() const { return m_region;};
62 
63  void setWireHighPtBoard(int port, TGCHighPtBoard* highPtBoard);
64  void setStripHighPtBoard(TGCHighPtBoard* highPtBoard);
65  int getNumberOfWireHighPtBoard() const;
66  void deleteHPBOut();
67 
69 
70  void setTMDB(std::shared_ptr<const LVL1TGC::TGCTMDB> tmdb);
71  void setNSW(std::shared_ptr<const LVL1TGC::TGCNSW> nsw);
72  void setBIS78(std::shared_ptr<const LVL1TGC::TGCBIS78> bis78);
73  void showResult();
74 
75  int getNumberOfSubSectorCluster() const;
76  int getNumberOfSubSector() const;
77 
78  void dec2bin(int dec, char* binstr, int length);
79 
80  int getBid() const {return m_bid;};
81 
82  void setInnerTrackletSlots(const TGCInnerTrackletSlot* innerTrackletSlots[]);
83 
85  const TGCArguments* tgcArgs() const { return m_tgcArgs; }
86 
87 protected:
89  void collectInput();
90 
92  int SSCId, TGCRPhiCoincidenceOut* coincidenceOut);
93 
94  void doInnerCoincidence(int SSCId, TGCRPhiCoincidenceOut* coincidenceOut);
95 
96  void doTGCNSWCoincidence(TGCRPhiCoincidenceOut* coincidenceOut);
97  bool doTGCBIS78Coincidence(TGCRPhiCoincidenceOut* coincidenceOut);
98  bool doTILECoincidence(TGCRPhiCoincidenceOut* coincidenceOut);
99  bool doTGCEICoincidence(TGCRPhiCoincidenceOut* coincidenceOut);
100  bool doTGCFICoincidence(TGCRPhiCoincidenceOut* coincidenceOut);
101 
102 private:
103  TGCSectorLogic& operator=(const TGCSectorLogic& right);
104 
105 private:
106  bool hitTileMu(const uint8_t& mask, const uint8_t& hit6, const uint8_t& hit56) const;
107 
108  int m_bid;
109 
110  int m_id;
116 
117  bool m_useEIFI{false};
118  bool m_useTileMu{false};
119  bool m_useGoodMF{false};
120  bool m_nswSide{false};
121 
123 
124  // Run-3 and Run-2 Coincidence LUTs and Window maps
127  std::shared_ptr<const LVL1TGC::TGCTileMuCoincidenceLUT> m_tileMuLUT;
128  std::shared_ptr<const LVL1TGC::TGCTMDB> m_pTMDB;
129  std::shared_ptr<const LVL1TGC::TGCNSW> m_nsw;
130  std::shared_ptr<const TGCNSWCoincidenceMap> m_mapNSW;
131  std::shared_ptr<const LVL1TGC::TGCBIS78> m_bis78;
132  std::shared_ptr<const LVL1TGC::TGCBIS78CoincidenceMap> m_mapBIS78;
133  std::shared_ptr<const LVL1TGC::TGCGoodMF> m_mapGoodMF;
134 
136  std::shared_ptr<TGCTrackSelectorOut> m_trackSelectorOut;
137 
140 
145 
146  // for inner trigger
149 };
150 
151 inline
153 {
154  return (m_region == TGCRegionType::FORWARD) ? 8 : LVL1TGC::kNMaxSSC;
155 }
156 
157 inline
159 {
160  return (m_region == TGCRegionType::FORWARD) ? 8 * LVL1TGC::kNRoiInSSC : LVL1TGC::kNumberOfEndcapRoI;
161 }
162 
163 inline
165 {
167 }
168 
169 
170 inline
172 {
173  return m_id;
174 }
175 
176 inline
178 {
179  return m_moduleId;
180 }
181 
182 
183 inline
185 {
186  return m_octantId;
187 }
188 
189 inline
191 {
192  return m_sideId;
193 }
194 
195 inline
197 {
198  return m_wordTileMuon;
199 }
200 
201 inline
203 {
204  return m_wordInnerStation;
205 }
206 
207 } //end of namespace bracket
208 
209 #endif
LVL1TGCTrigger::TGCSectorLogic::getTileMuonWord
int getTileMuonWord() const
Definition: TGCSectorLogic.h:196
LVL1TGCTrigger::TGCSectorLogic::tgcArgs
TGCArguments * tgcArgs()
Definition: TGCSectorLogic.h:84
LVL1TGCTrigger::TGCSectorLogic::m_innerTrackletSlots
const TGCInnerTrackletSlot * m_innerTrackletSlots[TGCInnerTrackletSlotHolder::NUMBER_OF_SLOTS_PER_TRIGGER_SECTOR]
Definition: TGCSectorLogic.h:147
LVL1TGCTrigger::TGCSectorLogic::getRegion
TGCRegionType getRegion() const
Definition: TGCSectorLogic.h:61
TGCInnerTrackletSlotHolder.h
LVL1TGCTrigger::TGCRPhiCoincidenceMatrix
Definition: TGCRPhiCoincidenceMatrix.h:21
LVL1TGCTrigger::TGCSectorLogic::m_useTileMu
bool m_useTileMu
Definition: TGCSectorLogic.h:118
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:558
LVL1TGCTrigger::TGCSectorLogic::getOctantID
int getOctantID() const
Definition: TGCSectorLogic.h:184
LVL1TGCTrigger::TGCInnerTrackletSlotHolder::NUMBER_OF_SLOTS_PER_TRIGGER_SECTOR
@ NUMBER_OF_SLOTS_PER_TRIGGER_SECTOR
Definition: TGCInnerTrackletSlotHolder.h:35
LVL1TGCTrigger::TGCSectorLogic::m_mapNSW
std::shared_ptr< const TGCNSWCoincidenceMap > m_mapNSW
Definition: TGCSectorLogic.h:130
LVL1TGCTrigger::TGCSectorLogic::m_nsw
std::shared_ptr< const LVL1TGC::TGCNSW > m_nsw
Definition: TGCSectorLogic.h:129
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:42
LVL1TGCTrigger::TGCSectorLogic::m_trackSelectorOut
std::shared_ptr< TGCTrackSelectorOut > m_trackSelectorOut
Definition: TGCSectorLogic.h:136
LVL1TGCTrigger::TGCSectorLogic::m_wordInnerStation
int m_wordInnerStation
Definition: TGCSectorLogic.h:139
RunTileCalibRec.tmdb
tmdb
Definition: RunTileCalibRec.py:244
LVL1TGCTrigger::TGCSectorLogic::m_id
int m_id
Definition: TGCSectorLogic.h:110
LVL1TGCTrigger::TGCSectorLogic::m_NumberOfWireHighPtBoard
int m_NumberOfWireHighPtBoard
Definition: TGCSectorLogic.h:115
LVL1TGCTrigger::TGCSectorLogic::showResult
void showResult()
Definition: TGCSectorLogic.cxx:243
LVL1TGCTrigger::TGCSectorLogic::setInnerTrackletSlots
void setInnerTrackletSlots(const TGCInnerTrackletSlot *innerTrackletSlots[])
Definition: TGCSectorLogic.cxx:329
LVL1TGCTrigger::TGCSectorLogic::collectInput
void collectInput()
Definition: TGCSectorLogic.cxx:219
LVL1TGCTrigger::TGCSectorLogic::getNumberOfSubSector
int getNumberOfSubSector() const
Definition: TGCSectorLogic.h:158
LVL1TGCTrigger::TGCSectorLogic::setBIS78
void setBIS78(std::shared_ptr< const LVL1TGC::TGCBIS78 > bis78)
Definition: TGCSectorLogic.cxx:115
LVL1TGCTrigger::TGCSectorLogic::doInnerCoincidence
void doInnerCoincidence(const SG::ReadCondHandleKey< TGCTriggerData > &readCondKey, int SSCId, TGCRPhiCoincidenceOut *coincidenceOut)
LVL1TGCTrigger::TGCRegionType::FORWARD
@ FORWARD
LVL1TGCTrigger::TGCSectorLogic::operator=
TGCSectorLogic & operator=(const TGCSectorLogic &right)
Definition: TGCSectorLogic.cxx:285
LVL1TGCTrigger::TGCSectorLogic::m_bis78
std::shared_ptr< const LVL1TGC::TGCBIS78 > m_bis78
Definition: TGCSectorLogic.h:131
LVL1TGCTrigger::TGCSectorLogic::m_sideId
LVL1TGC::TGCSide m_sideId
Definition: TGCSectorLogic.h:111
LVL1TGC::TGCEIFICoincidenceMap
Definition: TGCEIFICoincidenceMap.h:23
LVL1TGCTrigger::TGCSectorLogic::setNSW
void setNSW(std::shared_ptr< const LVL1TGC::TGCNSW > nsw)
Definition: TGCSectorLogic.cxx:109
LVL1TGCTrigger::TGCSectorLogic::doTILECoincidence
bool doTILECoincidence(TGCRPhiCoincidenceOut *coincidenceOut)
Definition: TGCSectorLogic.cxx:413
LVL1TGCTrigger::TGCSectorLogic::m_SSCController
TGCSSCController m_SSCController
Definition: TGCSectorLogic.h:122
SUSY_SimplifiedModel_PostInclude.process
string process
Definition: SUSY_SimplifiedModel_PostInclude.py:43
LVL1TGCTrigger::TGCSectorLogic::getModuleID
int getModuleID() const
Definition: TGCSectorLogic.h:177
LVL1TGCTrigger::TGCSectorLogic::doTGCBIS78Coincidence
bool doTGCBIS78Coincidence(TGCRPhiCoincidenceOut *coincidenceOut)
Definition: TGCSectorLogic.cxx:402
ReadCondHandle.h
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:459
LVL1TGCTrigger::TGCSectorLogic::m_stripHighPtBoard
TGCHighPtBoard * m_stripHighPtBoard
Definition: TGCSectorLogic.h:143
LVL1TGCTrigger::TGCSectorLogic::TGCSectorLogic
TGCSectorLogic(TGCArguments *, const TGCDatabaseManager *db, TGCRegionType regionIn, int id)
Definition: TGCSectorLogic.cxx:36
LVL1TGCTrigger::TGCSectorLogic::m_matrix
TGCRPhiCoincidenceMatrix m_matrix
Definition: TGCSectorLogic.h:125
LVL1TGCTrigger::TGCSectorLogic::~TGCSectorLogic
virtual ~TGCSectorLogic()
Definition: TGCSectorLogic.cxx:100
LVL1TGCTrigger::TGCSectorLogic::m_bid
int m_bid
Definition: TGCSectorLogic.h:108
LVL1TGCTrigger::TGCSectorLogic::getSSCController
TGCSSCController * getSSCController()
Definition: TGCSectorLogic.h:68
LVL1TGCTrigger::TGCSectorLogic::m_sectorId
int m_sectorId
Definition: TGCSectorLogic.h:112
LVL1TGCTrigger::TGCSectorLogic::m_octantId
int m_octantId
Definition: TGCSectorLogic.h:113
TGCTrackSelector.h
LVL1TGCTrigger::TGCSectorLogic::m_nswSide
bool m_nswSide
Definition: TGCSectorLogic.h:120
LVL1TGCTrigger::TGCTrackSelector
Definition: TGCTrackSelector.h:15
LVL1TGCTrigger::TGCSectorLogic::setTMDB
void setTMDB(std::shared_ptr< const LVL1TGC::TGCTMDB > tmdb)
Definition: TGCSectorLogic.cxx:103
LVL1TGCTrigger::TGCSectorLogic::m_tileMuLUT
std::shared_ptr< const LVL1TGC::TGCTileMuCoincidenceLUT > m_tileMuLUT
Definition: TGCSectorLogic.h:127
LVL1TGCTrigger::TGCHighPtChipOut
Definition: TGCHighPtChipOut.h:16
LVL1TGCTrigger::TGCSectorLogic::setWireHighPtBoard
void setWireHighPtBoard(int port, TGCHighPtBoard *highPtBoard)
Definition: TGCSectorLogic.cxx:121
LVL1TGCTrigger::TGCSectorLogic::m_mapGoodMF
std::shared_ptr< const LVL1TGC::TGCGoodMF > m_mapGoodMF
Definition: TGCSectorLogic.h:133
LVL1TGCTrigger::TGCSectorLogic::m_wireHighPtBoard
TGCHighPtBoard * m_wireHighPtBoard[MaxNumberOfWireHighPtBoard]
Definition: TGCSectorLogic.h:141
LVL1TGCTrigger::TGCSectorLogic::hitTileMu
bool hitTileMu(const uint8_t &mask, const uint8_t &hit6, const uint8_t &hit56) const
Definition: TGCSectorLogic.cxx:472
LVL1TGC
Definition: BigWheelCoincidenceLUT.cxx:20
LVL1TGCTrigger::TGCRPhiCoincidenceOut
Definition: TGCRPhiCoincidenceOut.h:11
LVL1TGCTrigger::TGCSectorLogic::doTGCEICoincidence
bool doTGCEICoincidence(TGCRPhiCoincidenceOut *coincidenceOut)
Definition: TGCSectorLogic.cxx:431
LVL1TGCTrigger
Definition: LVL1TGCTrigger.cxx:47
LVL1TGCTrigger::TGCSectorLogic::tgcArgs
const TGCArguments * tgcArgs() const
Definition: TGCSectorLogic.h:85
LVL1TGCTrigger::TGCDatabaseManager
Definition: TGCDatabaseManager.h:39
LVL1TGCTrigger::TGCSectorLogic::m_useEIFI
bool m_useEIFI
Definition: TGCSectorLogic.h:117
LVL1TGCTrigger::TGCSectorLogic::clockIn
void clockIn(const SG::ReadCondHandleKey< TGCTriggerData > &readCondKey, int bidIn, bool process=true)
Definition: TGCSectorLogic.cxx:137
LVL1TGCTrigger::TGCSectorLogic::doTGCNSWCoincidence
void doTGCNSWCoincidence(TGCRPhiCoincidenceOut *coincidenceOut)
Definition: TGCSectorLogic.cxx:392
LVL1TGCTrigger::TGCSectorLogic::getNumberOfSubSectorCluster
int getNumberOfSubSectorCluster() const
Definition: TGCSectorLogic.h:152
LVL1TGCTrigger::TGCSectorLogic::m_moduleId
int m_moduleId
Definition: TGCSectorLogic.h:112
TGCRPhiCoincidenceMatrix.h
LVL1TGCTrigger::TGCSectorLogic::MaxNumberOfWireHighPtBoard
@ MaxNumberOfWireHighPtBoard
Definition: TGCSectorLogic.h:88
LVL1TGCTrigger::TGCSectorLogic::m_mapBIS78
std::shared_ptr< const LVL1TGC::TGCBIS78CoincidenceMap > m_mapBIS78
Definition: TGCSectorLogic.h:132
LVL1TGCTrigger::TGCSectorLogic::doTGCFICoincidence
bool doTGCFICoincidence(TGCRPhiCoincidenceOut *coincidenceOut)
Definition: TGCSectorLogic.cxx:467
LVL1TGCTrigger::TGCArguments
Definition: TGCArguments.h:12
LVL1TGCTrigger::TGCSectorLogic
Definition: TGCSectorLogic.h:41
SG::ReadCondHandleKey< TGCTriggerData >
LVL1TGCTrigger::TGCSectorLogic::m_mapEIFI
const LVL1TGC::TGCEIFICoincidenceMap * m_mapEIFI
Definition: TGCSectorLogic.h:126
LVL1TGCTrigger::TGCSectorLogic::deleteHPBOut
void deleteHPBOut()
Definition: TGCSectorLogic.cxx:230
LVL1TGCTrigger::TGCSectorLogic::getBid
int getBid() const
Definition: TGCSectorLogic.h:80
TGCSSCController.h
LVL1TGCTrigger::TGCHighPtBoard
Definition: TGCHighPtBoard.h:34
LVL1TGCTrigger::TGCRegionType
TGCRegionType
Definition: TGCNumbering.h:49
LVL1TGCTrigger::TGCSectorLogic::m_wireHighPtChipOut
TGCHighPtChipOut * m_wireHighPtChipOut[MaxNumberOfWireHighPtBoard]
Definition: TGCSectorLogic.h:142
LVL1TGCTrigger::TGCSectorLogic::setStripHighPtBoard
void setStripHighPtBoard(TGCHighPtBoard *highPtBoard)
Definition: TGCSectorLogic.cxx:127
python.L1.Base.MenuUtils.binstr
def binstr(value, width)
Definition: MenuUtils.py:7
LVL1TGCTrigger::TGCSectorLogic::m_wordTileMuon
int m_wordTileMuon
Definition: TGCSectorLogic.h:138
LVL1TGCTrigger::TGCSectorLogic::dec2bin
void dec2bin(int dec, char *binstr, int length)
Definition: TGCSectorLogic.cxx:318
LVL1TGCTrigger::TGCSectorLogic::getSideID
int getSideID() const
Definition: TGCSectorLogic.h:190
LVL1TGCTrigger::TGCSectorLogic::m_region
TGCRegionType m_region
Definition: TGCSectorLogic.h:114
LVL1TGC::TGCSide
TGCSide
The sides of TGC (A- or C-side)
Definition: TGCNumbering.h:13
LVL1TGCTrigger::TGCSectorLogic::getTrackSelectorOutput
void getTrackSelectorOutput(std::shared_ptr< TGCTrackSelectorOut > &trackSelectorOut) const
Definition: TGCSectorLogic.cxx:132
LVL1TGCTrigger::TGCSSCController
Definition: TGCSSCController.h:17
LVL1TGCTrigger::TGCSectorLogic::m_tgcArgs
TGCArguments * m_tgcArgs
Definition: TGCSectorLogic.h:148
LVL1TGCTrigger::TGCSectorLogic::getNumberOfWireHighPtBoard
int getNumberOfWireHighPtBoard() const
Definition: TGCSectorLogic.h:164
LVL1TGCTrigger::TGCSectorLogic::getInnerStationWord
int getInnerStationWord() const
Definition: TGCSectorLogic.h:202
LVL1TGCTrigger::TGCInnerTrackletSlot
Definition: TGCInnerTrackletSlot.h:11
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
LVL1TGCTrigger::TGCSectorLogic::m_trackSelector
TGCTrackSelector m_trackSelector
Definition: TGCSectorLogic.h:135
LVL1TGCTrigger::TGCSectorLogic::getId
int getId() const
Definition: TGCSectorLogic.h:171
LVL1TGCTrigger::TGCSectorLogic::m_pTMDB
std::shared_ptr< const LVL1TGC::TGCTMDB > m_pTMDB
Definition: TGCSectorLogic.h:128
LVL1TGCTrigger::TGCSectorLogic::m_stripHighPtChipOut
TGCHighPtChipOut * m_stripHighPtChipOut
Definition: TGCSectorLogic.h:144
LVL1TGCTrigger::TGCSectorLogic::m_useGoodMF
bool m_useGoodMF
Definition: TGCSectorLogic.h:119
TGCTriggerData.h