ATLAS Offline Software
Loading...
Searching...
No Matches
TGCSlaveBoardOut.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TGCSlaveBoardOut_hh
6#define TGCSlaveBoardOut_hh
8#include <fstream>
9#include <iostream>
10
11namespace LVL1TGCTrigger {
12
13class TGCSlaveBoard;
14
15const int posSize[6] = {5,5,4,5,4,4};//type = 0,1,2,3 : WT,WD,ST,SD,WI,SI
16const int devSize[6] = {0,3,0,3,0,0};
17const int devSign[6] = {0,1,0,1,0,0};
18const int TotalNumberOfOutputData[6] = {3,2,8,2,8,8};
19
21
22public:
23 TGCSlaveBoardOut(const TGCSlaveBoard* sb, int bidIn);
28
29 int getDev(int iData) const;
30 int getPos(int iData) const;
31 TGCHitPattern* getbPos(int iData);
32 bool getHit(int iData) const;
33
34 void setDev(int iData, int devIn);
35 void setPos(int iData, int posIn);
36 void setHit(int iData, bool hitIn);
37 void setbDev(int block, int sign, int dr);
38 void setbPos(int block, int pos);
39
40 void setNumberOfData(int nData);
41 int getNumberOfData() const;
42 int getBid() const;
43 int getOrgBoardType() const;
44
45 void clear();
46 void print() const;
47 void print(int OutPutBlock) const ;
48 void print(std::ofstream* ofs) const ;
49 void print(std::ofstream* ofs, int OutPutBlock) const;
50 void printpattern(std::ofstream* ofs) const ;
51 void printpattern(std::ofstream* ofs, int OutPutBlock) const;
52
53 const TGCSlaveBoard* getOrigin() const;
54
55 private:
56 static constexpr int s_MaxNumberOfSBData = 8;
57
59 int m_bid;
62
63 int m_numberOfData; // number of block A board have OutPutBlock:a,b ,m_numberOfData is 2.
64 int m_dev[s_MaxNumberOfSBData]; // a b c [d [a b c d]]
67
68 TGCHitPattern* m_bpos[s_MaxNumberOfSBData]; // a b c d [StripTriplet]a b c d
69 TGCHitPattern* m_bdev[2];// 2=TotalNumberOfOutputData[1]
70
71};
72
73inline
74void TGCSlaveBoardOut::setbPos(int block, int pos)
75{
77 m_bpos[block]->dec2bin(pos);
78 } else {
79 std::cerr << "TGCSlaveBoardOut::setbPos : illegal block "
80 << " Type=" << m_orgBoardType
82 << " block=" << block << std::endl;
83 }
84}
85
86inline
87void TGCSlaveBoardOut::setHit(int iData, bool hitIn)
88{
89 if (s_MaxNumberOfSBData <= iData) {
90 std::cerr << "internal error TGCSlaveBoardOut::setHit()" << std::endl;
91 } else {
92 m_hit[iData] = hitIn;
93 }
94}
95
96inline
97void TGCSlaveBoardOut::setDev(int iData, int devIn)
98{
99 if(s_MaxNumberOfSBData <= iData) {
100 std::cerr << "Internal error TGCSlaveBoardOut::setDev()" << std::endl;
101 } else {
102 m_dev[iData] = devIn;
103 }
104}
105
106inline
108{
109 return m_bpos[iData];
110}
111
112inline
114{
115 return m_origin;
116}
117
118inline
119int TGCSlaveBoardOut::getDev(int iData) const
120{
121 return m_dev[iData];
122}
123
124inline
125int TGCSlaveBoardOut::getPos(int iData) const
126{
127 return m_pos[iData];
128}
129
130inline
131bool TGCSlaveBoardOut::getHit(int iData) const
132{
133 return m_hit[iData];
134}
135
136inline
138{
139 return m_bid;
140}
141
142inline
144{
145 return m_orgBoardType;
146}
147
148inline
150{
151 m_numberOfData = nData;
152}
153
154inline
156{
157 return m_numberOfData;
158}
159
160
161} //end of namespace bracket
162
163#endif
int sign(int a)
bool m_hit[s_MaxNumberOfSBData]
TGCHitPattern * m_bpos[s_MaxNumberOfSBData]
TGCHitPattern * getbPos(int iData)
const TGCSlaveBoard * getOrigin() const
void setDev(int iData, int devIn)
void setbPos(int block, int pos)
static constexpr int s_MaxNumberOfSBData
int m_dev[s_MaxNumberOfSBData]
TGCSlaveBoardOut & operator=(const TGCSlaveBoardOut &)
TGCSlaveBoardOut(const TGCSlaveBoard *sb, int bidIn)
int m_pos[s_MaxNumberOfSBData]
void setPos(int iData, int posIn)
void setHit(int iData, bool hitIn)
void printpattern(std::ofstream *ofs) const
void setbDev(int block, int sign, int dr)
const int devSize[6]
const int TotalNumberOfOutputData[6]
const int posSize[6]
const int devSign[6]