ATLAS Offline Software
Loading...
Searching...
No Matches
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
18namespace LVL1TGC {
20class TGCGoodMF;
21class TGCNSW;
22class TGCBIS78;
25
26}
27
28namespace LVL1TGCTrigger {
29
31class TGCHighPtBoard;
33class TGCTMDB;
37class 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);
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
87protected:
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
102private:
104
105private:
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
151inline
156
157inline
162
163inline
168
169
170inline
172{
173 return m_id;
174}
175
176inline
178{
179 return m_moduleId;
180}
181
182
183inline
185{
186 return m_octantId;
187}
188
189inline
191{
192 return m_sideId;
193}
194
195inline
197{
198 return m_wordTileMuon;
199}
200
201inline
206
207} //end of namespace bracket
208
209#endif
double length(const pvec &v)
TGCHighPtChipOut * m_wireHighPtChipOut[MaxNumberOfWireHighPtBoard]
std::shared_ptr< const TGCNSWCoincidenceMap > m_mapNSW
TGCRPhiCoincidenceMatrix m_matrix
void dec2bin(int dec, char *binstr, int length)
void setTMDB(std::shared_ptr< const LVL1TGC::TGCTMDB > tmdb)
bool doTILECoincidence(TGCRPhiCoincidenceOut *coincidenceOut)
std::shared_ptr< const LVL1TGC::TGCBIS78CoincidenceMap > m_mapBIS78
std::shared_ptr< const LVL1TGC::TGCNSW > m_nsw
void doInnerCoincidence(const SG::ReadCondHandleKey< TGCTriggerData > &readCondKey, int SSCId, TGCRPhiCoincidenceOut *coincidenceOut)
TGCSectorLogic & operator=(const TGCSectorLogic &right)
void setNSW(std::shared_ptr< const LVL1TGC::TGCNSW > nsw)
void setStripHighPtBoard(TGCHighPtBoard *highPtBoard)
const LVL1TGC::TGCEIFICoincidenceMap * m_mapEIFI
const TGCArguments * tgcArgs() const
bool doTGCEICoincidence(TGCRPhiCoincidenceOut *coincidenceOut)
const TGCInnerTrackletSlot * m_innerTrackletSlots[TGCInnerTrackletSlotHolder::NUMBER_OF_SLOTS_PER_TRIGGER_SECTOR]
void setBIS78(std::shared_ptr< const LVL1TGC::TGCBIS78 > bis78)
std::shared_ptr< TGCTrackSelectorOut > m_trackSelectorOut
std::shared_ptr< const LVL1TGC::TGCBIS78 > m_bis78
TGCSectorLogic(TGCArguments *, const TGCDatabaseManager *db, TGCRegionType regionIn, int id)
std::shared_ptr< const LVL1TGC::TGCGoodMF > m_mapGoodMF
void setInnerTrackletSlots(const TGCInnerTrackletSlot *innerTrackletSlots[])
void clockIn(const SG::ReadCondHandleKey< TGCTriggerData > &readCondKey, int bidIn, bool process=true)
TGCSSCController * getSSCController()
std::shared_ptr< const LVL1TGC::TGCTileMuCoincidenceLUT > m_tileMuLUT
TGCRegionType getRegion() const
bool doTGCFICoincidence(TGCRPhiCoincidenceOut *coincidenceOut)
TGCHighPtChipOut * m_stripHighPtChipOut
bool doTGCBIS78Coincidence(TGCRPhiCoincidenceOut *coincidenceOut)
void getTrackSelectorOutput(std::shared_ptr< TGCTrackSelectorOut > &trackSelectorOut) const
std::shared_ptr< const LVL1TGC::TGCTMDB > m_pTMDB
void doTGCNSWCoincidence(TGCRPhiCoincidenceOut *coincidenceOut)
bool hitTileMu(const uint8_t &mask, const uint8_t &hit6, const uint8_t &hit56) const
void setWireHighPtBoard(int port, TGCHighPtBoard *highPtBoard)
TGCHighPtBoard * m_wireHighPtBoard[MaxNumberOfWireHighPtBoard]
This class stores the LUT for Tile-Muon coincidence of the Run-3 L1Muon Endcap trigger.
const std::string process
static constexpr unsigned int kNumberOfEndcapRoI
The number of ROIs in a endcap trigger sector.
TGCSide
The sides of TGC (A- or C-side)
static constexpr unsigned int kNMaxSSC
The maximim number of SubSector-Clusters (SSC) (i.e.
static constexpr unsigned int kNRoiInSSC
The default number of ROIs in SSC.