ATLAS Offline Software
Loading...
Searching...
No Matches
TGCHighPtBoard.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TGCHighPtBoard_hh
6#define TGCHighPtBoard_hh
7
10
11namespace LVL1TGCTrigger {
15
16const int PtLow = 0;
17const int PtHigh =1;
18
19const int NumberOfAdjacentHPB = 2;
20const int NumberOfChip = 2;
21const int NBlockOfDSBChannel = 6;
22const int NDecoderInTSB = 4;
23const int NDecoderInDSB = 3;
24const int NDecoderInSTSB = 3;
25
27
29{
30 return rs = (TGCHBChip)(rs + 1);
31}
32
34{
35 private:
36 static constexpr int s_NumberOfTSBOut = 2;
37 static constexpr int s_NumberOfDSBOut = 3; //look at the HighPt Board
38
39 public:
40 virtual ~TGCHighPtBoard();
41
42 void clockIn(int bidIn);
44 void eraseOutput();
45
46 int getId() const;
47 void setId(int idIn);
48 int getType() const;
49 void setType(int typeIn){ m_type=typeIn;}
50 TGCRegionType getRegion() const { return m_region;}
51 void setRegion(const TGCRegionType regionIn){ m_region = regionIn;}
52
53 void setDSB(int connector, TGCSlaveBoard* SBIn);
54 void setTSB(int connector, TGCSlaveBoard* SBIn);
55 TGCSlaveBoardOut* getTSBOut(int chip, int port);
56 void setAdjacentHPB(int side, TGCHighPtBoard* hpt){ m_adjacentHPB[side]=hpt;};
57
58 void showResult() const;
59
60 protected:
61 TGCHighPtBoard(); // use derived class only
62 TGCHighPtBoard(const TGCHighPtBoard& right) = delete;
63 TGCHighPtBoard& operator=(const TGCHighPtBoard& right) = delete;
64
65 protected:
66 void collectInput();
69 void createLowPtBoardOut(); //create Low-pT Outputs from SLB ASICs.
70 void doCoincidence();
71 void trackSelector(int chip, int ptIn);
72 virtual void highLowSelector(int chip);
74 void loadLowPtOutput(int chip, int block, TGCSlaveBoardOut* dataDSB);
75 void eraseHighPtOutput();
76 void eraseLowPtOutput();
77
78 virtual void decodeSlaveBoardOut(int chip,
79 TGCHitPattern* tHit,
80 TGCHitPattern* dHit) = 0;
81 virtual void doCoincidenceMatrix( int chip, int block,
82 const TGCHitPattern* tHit,
83 const TGCHitPattern* dHit) = 0;
84 virtual void setDecoderIn()=0;
85 virtual void clearDecoderIn()=0;
86
88
90 TGCHighPtBoardOut* m_lowPtBoardOut; //Low-pT Outputs from SLB ASICs.
91
99
100 int m_id;
101 int m_bid;
105
115};
116
117inline
119{
120 m_id = idIn;
121}
122
123inline
125{
126 return m_id;
127}
128
129inline
131{
132 return m_type;
133}
134
135inline
136void TGCHighPtBoard::setDSB(int connector, TGCSlaveBoard* SBIn)
137{
138 int port = connector % s_NumberOfDSBOut;
139 int chip = connector / s_NumberOfDSBOut;
140 m_DSB[chip][port] = SBIn;
141}
142
143inline
144void TGCHighPtBoard::setTSB(int connector, TGCSlaveBoard* SBIn)
145{
146 int port = connector % s_NumberOfTSBOut;
147 int chip = connector / s_NumberOfTSBOut;
148 m_TSB[chip][port] = SBIn;
149}
150
151
152} //end of namespace bracket
153
154#endif // TGCHighPtBoard_hh
static Double_t rs
void setAdjacentHPB(int side, TGCHighPtBoard *hpt)
TGCHighPtBoardOut * m_lowPtBoardOut
TGCHighPtBoardOut * m_highPtBoardOut
TGCHighPtBoard(const TGCHighPtBoard &right)=delete
void setRegion(const TGCRegionType regionIn)
void setDSB(int connector, TGCSlaveBoard *SBIn)
TGCHighPtBoard & operator=(const TGCHighPtBoard &right)=delete
virtual void clearDecoderIn()=0
static constexpr int s_NumberOfTSBOut
virtual void doCoincidenceMatrix(int chip, int block, const TGCHitPattern *tHit, const TGCHitPattern *dHit)=0
TGCHighPtChipOut * m_highPtChipOut
TGCSlaveBoard * m_DSB[NumberOfChip][s_NumberOfDSBOut]
virtual void decodeSlaveBoardOut(int chip, TGCHitPattern *tHit, TGCHitPattern *dHit)=0
void setTSB(int connector, TGCSlaveBoard *SBIn)
TGCSlaveBoard * m_TSB[NumberOfChip][s_NumberOfTSBOut]
static constexpr int s_NumberOfDSBOut
virtual void highLowSelector(int chip)
void loadLowPtOutput(int chip, int block, TGCSlaveBoardOut *dataDSB)
TGCSlaveBoardOut * m_DSBOut[NumberOfChip][s_NumberOfDSBOut]
TGCSlaveBoardOut * getTSBOut(int chip, int port)
TGCSlaveBoardOut * m_decoderInTSB[NumberOfChip][NDecoderInTSB]
TGCHighPtBoard * m_adjacentHPB[NumberOfAdjacentHPB]
TGCSlaveBoardOut * m_TSBOut[NumberOfChip][s_NumberOfTSBOut]
void trackSelector(int chip, int ptIn)
TGCRegionType getRegion() const
TGCSlaveBoardOut * m_decoderInDSB[NumberOfChip][NDecoderInDSB]
const int NumberOfAdjacentHPB
const int NBlockOfDSBChannel
const int NDecoderInDSB
TGCHBChip operator++(TGCHBChip &rs, int)
const int NumberOfChip
const int NDecoderInSTSB
const int NDecoderInTSB