ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1TGC
src
TGCHighPtBoard.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrigT1TGC/TGCHighPtBoardOut.h
"
6
#include "
TrigT1TGC/TGCHighPtBoard.h
"
7
#include "
TrigT1TGC/TGCHighPtChipOut.h
"
8
#include <iostream>
9
#include <cmath>
10
#include <cstdlib>
11
12
namespace
LVL1TGCTrigger
{
13
14
TGCHighPtBoard::TGCHighPtBoard
():
15
m_highPtChipOut
(0),
m_highPtBoardOut
(0),
m_lowPtBoardOut
(0),
16
m_id
(-1),
m_bid
(-1),
m_idSectorLogic
(-1),
m_type
(-1),
17
m_priorSign
(1),
m_maxNumberOfHPBData
(2),
18
m_maxDev
(0),
m_maxDevOred
(0),
19
m_nChOfTSBOut
(0),
m_nChOfDSBOut
(0),
m_nChOfDSBHit
(0),
m_nChOfTSBHit
(0),
20
m_nChInTSBRegion
(0)
21
{
22
for
(
int
i=0; i<
NumberOfChip
; i+=1){
23
for
(
int
j=0; j<
s_NumberOfDSBOut
; j+=1){
24
m_DSB
[i][j]=0;
25
m_DSBOut
[i][j]=0;
26
}
27
for
(
int
j=0; j<
s_NumberOfTSBOut
; j+=1){
28
m_TSB
[i][j]=0;
29
m_TSBOut
[i][j]=0;
30
}
31
}
32
33
for
(
int
i=0; i<
NumberOfAdjacentHPB
; i+=1)
34
m_adjacentHPB
[i]=0;
35
36
for
(
int
i=0; i<
NumberOfChip
; i+=1){
37
for
(
int
j=0; j<
NDecoderInTSB
; j+=1)
m_decoderInTSB
[i][j]=0;
38
for
(
int
j=0; j<
NDecoderInDSB
; j+=1)
m_decoderInDSB
[i][j]=0;
39
}
40
}
41
42
TGCHighPtBoard::~TGCHighPtBoard
()
43
{
44
int
i,j;
45
for
( i=0; i<
NumberOfChip
; i+=1){
46
for
( j=0; j<
s_NumberOfDSBOut
; j+=1){
47
m_DSB
[i][j]=0;
48
if
(
m_DSBOut
[i][j]!=0){
49
delete
m_DSBOut
[i][j];
50
m_DSBOut
[i][j]=0;
51
}
52
}
53
for
( j=0; j<
s_NumberOfTSBOut
; j+=1){
54
m_TSB
[i][j]=0;
55
if
(
m_TSBOut
[i][j]!=0){
56
delete
m_TSBOut
[i][j];
57
m_TSBOut
[i][j]=0;
58
}
59
}
60
}
61
62
for
( i=0; i<
NumberOfChip
; i+=1){
63
for
( j=0; j<
NDecoderInTSB
; j+=1){
64
if
(
m_decoderInTSB
[i][j]!=0)
delete
m_decoderInTSB
[i][j];
65
m_decoderInTSB
[i][j]=0;
66
}
67
for
( j=0; j<
NDecoderInDSB
; j+=1){
68
if
(
m_decoderInDSB
[i][j]!=0)
delete
m_decoderInDSB
[i][j];
69
m_decoderInDSB
[i][j]=0;
70
}
71
}
72
73
for
( i=0; i<
NumberOfAdjacentHPB
; i+=1)
74
m_adjacentHPB
[i]=0;
75
}
76
77
void
TGCHighPtBoard::clockIn
(
int
bidIn)
78
{
79
if
(
m_bid
!=bidIn){
80
#ifdef TGCCOUT
81
std::cout <<
"#TGCHighPtBoard::clockIn collect"
<< std::endl;
82
#endif
83
m_bid
= bidIn;
84
deleteSlaveBoardOut
();
85
collectInput
();
86
return
;
87
}
else
{
88
#ifdef TGCCOUT
89
std::cout <<
"#TGCHighPtBoard::clockIn BID:"
<<
m_bid
90
<<
" TYPE:"
<< ((
m_type
==WHPB) ?
"WHPB"
:
"SHPB"
)
91
<<
" ID:"
<<
m_id
92
<<
" REGION:"
<< ( (
m_region
==
TGCRegionType::FORWARD
) ?
"FWD"
:
"END"
)
93
<<std::endl;
94
#endif
95
createHighPtChipOut
();
//Feeds to SL
96
createHighPtBoardOut
();
//Internal Use
97
createLowPtBoardOut
();
//Internal Use
98
doCoincidence
();
99
showResult
();
100
eraseHighPtOutput
();
101
eraseLowPtOutput
();
102
}
103
return
;
104
}
105
106
void
TGCHighPtBoard::deleteSlaveBoardOut
()
107
{
108
int
i,j;
109
for
( j=0; j<
NumberOfChip
; j+=1){
110
for
( i=0; i<
s_NumberOfDSBOut
; i+=1){
111
if
(
m_DSBOut
[j][i]!=0){
112
delete
m_DSBOut
[j][i];
113
m_DSBOut
[j][i]=0;
114
}
115
}
116
for
( i=0; i<
s_NumberOfTSBOut
; i+=1){
117
if
(
m_TSBOut
[j][i]!=0){
118
delete
m_TSBOut
[j][i];
119
m_TSBOut
[j][i]=0;
120
}
121
}
122
}
123
}
124
125
void
TGCHighPtBoard::collectInput
()
126
{
127
int
i,j;
128
for
( j=0; j<
NumberOfChip
; j+=1){
129
for
( i=0; i<
s_NumberOfDSBOut
; i+=1)
130
if
(
m_DSB
[j][i]){
131
m_DSBOut
[j][i]=
m_DSB
[j][i]->getOutput();
132
m_DSB
[j][i]->eraseOutput();
133
if
(
m_DSBOut
[j][i])
m_DSBOut
[j][i]->print();
134
}
135
for
( i=0; i<
s_NumberOfTSBOut
; i+=1)
136
if
(
m_TSB
[j][i]){
137
m_TSBOut
[j][i]=
m_TSB
[j][i]->getOutput();
138
m_TSB
[j][i]->eraseOutput();
139
if
(
m_TSBOut
[j][i])
m_TSBOut
[j][i]->print();
140
}
141
}
142
}
143
144
TGCHighPtChipOut
*
TGCHighPtBoard::getOutput
()
145
{
146
return
m_highPtChipOut
;
147
}
148
149
void
TGCHighPtBoard::eraseOutput
()
150
{
151
m_highPtChipOut
=0;
152
}
153
154
void
TGCHighPtBoard::eraseHighPtOutput
()
155
{
156
if
(
m_highPtBoardOut
!=0){
157
delete
m_highPtBoardOut
;
158
m_highPtBoardOut
=0;
159
}
160
}
161
162
void
TGCHighPtBoard::eraseLowPtOutput
()
163
{
164
if
(
m_lowPtBoardOut
!=0){
165
delete
m_lowPtBoardOut
;
166
m_lowPtBoardOut
=0;
167
}
168
}
169
170
void
TGCHighPtBoard::doCoincidence
()
171
{
172
int
chip;
173
174
setDecoderIn
();
175
176
for
( chip=0; chip<
NumberOfChip
; chip+=1){
177
TGCHitPattern
* TSBHit =
new
TGCHitPattern
(
m_nChOfTSBHit
);
178
TGCHitPattern
* DSBHit =
new
TGCHitPattern
(
m_nChOfDSBHit
);
179
180
decodeSlaveBoardOut
(chip, TSBHit, DSBHit);
181
182
int
block;
183
for
(block=0; block <
NBlockOfDSBChannel
; block++){
184
doCoincidenceMatrix
(chip, block, TSBHit, DSBHit);
185
if
(
m_decoderInDSB
[chip][block/2])
186
if
(
m_decoderInDSB
[chip][block/2]->getHit(block%2)){
187
m_decoderInDSB
[chip][block/2]->print(block%2);
188
}
189
// load SLB outputs to lowpTOutput
190
loadLowPtOutput
(chip, block,
m_decoderInDSB
[chip][block/2]);
191
}
192
trackSelector
(chip,
PtHigh
);
193
trackSelector
(chip,
PtLow
);
194
highLowSelector
(chip);
195
196
delete
TSBHit;
197
TSBHit=0;
198
delete
DSBHit;
199
DSBHit=0;
200
}
201
202
clearDecoderIn
();
203
}
204
205
206
void
TGCHighPtBoard::loadLowPtOutput
(
int
chip,
int
block,
207
TGCSlaveBoardOut
* dataDSB)
208
{
209
if
(dataDSB!=0){
210
if
(dataDSB->
getHit
(block%2)){
211
int
pos=dataDSB->
getPos
(block%2);
212
int
dev=dataDSB->
getDev
(block%2);
213
m_lowPtBoardOut
->setPt(chip,block,
PtLow
);
214
m_lowPtBoardOut
->setHit(chip,block,
true
);
215
m_lowPtBoardOut
->setDev(chip,block,dev);
216
m_lowPtBoardOut
->setPos(chip,block,pos/(
m_nChOfDSBOut
/4));
// !
217
}
else
{
218
m_lowPtBoardOut
->setHit(chip,block,
false
);
219
}
220
}
else
{
221
m_lowPtBoardOut
->setHit(chip,block,
false
);
222
}
223
}
224
225
TGCSlaveBoardOut
*
TGCHighPtBoard::getTSBOut
(
int
chip,
int
port)
226
{
227
return
m_TSBOut
[chip][port];
228
}
229
230
void
TGCHighPtBoard::trackSelector
(
int
chip,
int
ptIn)
231
{
232
int
i,iblock,
a
,b;
233
int
dev[
NBlockOfDSBChannel
];
234
int
block[
NBlockOfDSBChannel
];
235
236
for
( iblock=0; iblock<
NBlockOfDSBChannel
; iblock+=1){
237
block[iblock]=iblock;
238
if
(ptIn==
PtHigh
){
239
if
(
m_highPtBoardOut
->getHit(chip,iblock)) dev[iblock]=
m_highPtBoardOut
->getDev(chip,iblock);
240
else
dev[iblock]=99;
241
}
else
{
// Low-Pt track
242
if
(
m_lowPtBoardOut
->getHit(chip,iblock)){
243
dev[iblock]=abs(
m_lowPtBoardOut
->getDev(chip,iblock))+
m_maxDev
+1;
244
if
(
m_lowPtBoardOut
->getDev(chip,iblock)<0) dev[iblock]=-dev[iblock];
245
}
else
dev[iblock]=99;
246
}
247
}
248
249
// sort in ascending order of |dev|.
250
for
(iblock=1;iblock<
NBlockOfDSBChannel
;iblock+=1){
251
a
=dev[iblock];
252
b=block[iblock];
253
i=iblock-1;
254
while
((i>=0)&&((abs(dev[i])>abs(
a
))||((abs(dev[i])==abs(
a
))&&(dev[i]!=
a
)&&(
m_priorSign
*dev[i]<0)))){
255
dev[i+1]=dev[i];
256
block[i+1]=block[i];
257
i--;
258
}
259
dev[i+1]=
a
;
260
block[i+1]=b;
261
}
262
263
for
(iblock=0;iblock<
m_maxNumberOfHPBData
;iblock+=1){
264
if
(ptIn==
PtHigh
){
265
if
(
m_highPtBoardOut
->getHit(chip,block[iblock]))
266
m_highPtBoardOut
->setSel(chip,block[iblock],iblock+1);
267
}
else
{
// Low-Pt track
268
if
(
m_lowPtBoardOut
->getHit(chip,block[iblock]))
269
m_lowPtBoardOut
->setSel(chip,block[iblock],iblock+1);
270
}
271
}
272
}
273
274
void
TGCHighPtBoard::highLowSelector
(
int
chip)
275
{
276
int
iblock;
277
int
highPt1stBlock, highPt2ndBlock;
278
int
lowPt1stBlock, lowPt2ndBlock;
279
int
pos, dev;
280
// Get 1st, 2nd candidate block for High-PT
281
highPt1stBlock = -1;
282
highPt2ndBlock = -1;
283
for
(iblock=0;iblock<
NBlockOfDSBChannel
;iblock+=1){
284
switch
(
m_highPtBoardOut
->getSel(chip,iblock)){
285
case
0:
// No Hit
286
break
;
287
case
1:
// 1st candidate
288
highPt1stBlock = iblock;
289
break
;
290
case
2:
// 2nd candidate
291
highPt2ndBlock = iblock;
292
break
;
293
default
:
294
break
;
295
}
296
}
297
// Get 1st, 2nd candidate block for Low-PT
298
lowPt1stBlock = -1;
299
lowPt2ndBlock = -1;
300
for
(iblock=0;iblock<
NBlockOfDSBChannel
;iblock+=1){
301
switch
(
m_lowPtBoardOut
->getSel(chip,iblock)){
302
case
0:
// No Hit
303
break
;
304
case
1:
// 1st candidate
305
lowPt1stBlock = iblock;
306
break
;
307
case
2:
// 2nd candidate
308
lowPt2ndBlock = iblock;
309
break
;
310
default
:
311
break
;
312
}
313
}
314
315
if
(highPt1stBlock < 0){
//No HPT Matrix Output
316
if
(lowPt1stBlock >= 0){
317
// LPT 1st
318
pos=
m_lowPtBoardOut
->getPos(chip,lowPt1stBlock);
319
dev=
m_lowPtBoardOut
->getDev(chip,lowPt1stBlock);
320
m_highPtChipOut
->setPt(chip,
FirstCandidate
,
PtLow
);
321
m_highPtChipOut
->setSel(chip,
FirstCandidate
,1);
322
m_highPtChipOut
->setDev(chip,
FirstCandidate
,dev);
323
m_highPtChipOut
->setPos(chip,
FirstCandidate
,pos);
324
m_highPtChipOut
->setHitID(chip,
FirstCandidate
,lowPt1stBlock);
325
}
326
if
(lowPt2ndBlock >= 0){
327
// LPT 2nd
328
pos=
m_lowPtBoardOut
->getPos(chip,lowPt2ndBlock);
329
dev=
m_lowPtBoardOut
->getDev(chip,lowPt2ndBlock);
330
m_highPtChipOut
->setPt(chip,
SecondCandidate
,
PtLow
);
331
m_highPtChipOut
->setSel(chip,
SecondCandidate
,2);
332
m_highPtChipOut
->setDev(chip,
SecondCandidate
,dev);
333
m_highPtChipOut
->setPos(chip,
SecondCandidate
,pos);
334
m_highPtChipOut
->setHitID(chip,
SecondCandidate
,lowPt2ndBlock);
335
}
336
return
;
337
}
else
if
(highPt2ndBlock < 0){
// 1 HPT Matrix Output
338
// HPT 1st
339
pos=
m_highPtBoardOut
->getPos(chip,highPt1stBlock);
340
dev=
m_highPtBoardOut
->getDev(chip,highPt1stBlock);
341
m_highPtChipOut
->setPt(chip,
FirstCandidate
,
PtHigh
);
342
m_highPtChipOut
->setSel(chip,
FirstCandidate
,1);
343
m_highPtChipOut
->setDev(chip,
FirstCandidate
,dev);
344
m_highPtChipOut
->setPos(chip,
FirstCandidate
,pos);
345
m_highPtChipOut
->setHitID(chip,
FirstCandidate
,highPt1stBlock);
346
347
if
((lowPt1stBlock >= 0) &&
348
!((lowPt1stBlock == highPt1stBlock) && ((
m_lowPtBoardOut
->getPos(chip,lowPt1stBlock)) == (
m_highPtBoardOut
->getPos(chip,highPt1stBlock))))
349
){
//for vi }
350
// LPT 1st (as 2nd candidate)
351
pos=
m_lowPtBoardOut
->getPos(chip,lowPt1stBlock);
352
dev=
m_lowPtBoardOut
->getDev(chip,lowPt1stBlock);
353
m_highPtChipOut
->setPt(chip,
SecondCandidate
,
PtLow
);
354
m_highPtChipOut
->setSel(chip,
SecondCandidate
,2);
355
m_highPtChipOut
->setDev(chip,
SecondCandidate
,dev);
356
m_highPtChipOut
->setPos(chip,
SecondCandidate
,pos);
357
m_highPtChipOut
->setHitID(chip,
SecondCandidate
,lowPt1stBlock);
358
return
;
359
}
else
if
((lowPt2ndBlock >= 0) &&
360
!((lowPt2ndBlock == highPt1stBlock) && ((
m_lowPtBoardOut
->getPos(chip,lowPt2ndBlock)) == (
m_highPtBoardOut
->getPos(chip,highPt1stBlock))))
361
){
362
363
// LPT 2nd (as 2nd candidate)
364
pos=
m_lowPtBoardOut
->getPos(chip,lowPt2ndBlock);
365
dev=
m_lowPtBoardOut
->getDev(chip,lowPt2ndBlock);
366
m_highPtChipOut
->setPt(chip,
SecondCandidate
,
PtLow
);
367
m_highPtChipOut
->setSel(chip,
SecondCandidate
,2);
368
m_highPtChipOut
->setDev(chip,
SecondCandidate
,dev);
369
m_highPtChipOut
->setPos(chip,
SecondCandidate
,pos);
370
m_highPtChipOut
->setHitID(chip,
SecondCandidate
,lowPt2ndBlock);
371
return
;
372
}
373
}
else
{
// 2 HPT Matrix Outputs
374
// HPT 1st
375
pos=
m_highPtBoardOut
->getPos(chip,highPt1stBlock);
376
dev=
m_highPtBoardOut
->getDev(chip,highPt1stBlock);
377
m_highPtChipOut
->setPt(chip,
FirstCandidate
,
PtHigh
);
378
m_highPtChipOut
->setSel(chip,
FirstCandidate
,1);
379
m_highPtChipOut
->setDev(chip,
FirstCandidate
,dev);
380
m_highPtChipOut
->setPos(chip,
FirstCandidate
,pos);
381
m_highPtChipOut
->setHitID(chip,
FirstCandidate
,highPt1stBlock);
382
// HPT 2nd
383
pos=
m_highPtBoardOut
->getPos(chip,highPt2ndBlock);
384
dev=
m_highPtBoardOut
->getDev(chip,highPt2ndBlock);
385
m_highPtChipOut
->setPt(chip,
SecondCandidate
,
PtHigh
);
386
m_highPtChipOut
->setSel(chip,
SecondCandidate
,2);
387
m_highPtChipOut
->setDev(chip,
SecondCandidate
,dev);
388
m_highPtChipOut
->setPos(chip,
SecondCandidate
,pos);
389
m_highPtChipOut
->setHitID(chip,
SecondCandidate
,highPt2ndBlock);
390
}
391
}
392
393
void
TGCHighPtBoard::createHighPtChipOut
()
394
{
395
if
(
m_highPtChipOut
!= 0 )
delete
m_highPtChipOut
;
396
m_highPtChipOut
=
new
TGCHighPtChipOut
(
this
,
m_bid
);
397
m_highPtChipOut
->clear();
398
}
399
400
void
TGCHighPtBoard::createHighPtBoardOut
()
401
{
402
if
(
m_highPtBoardOut
!= 0 )
delete
m_highPtBoardOut
;
403
m_highPtBoardOut
=
new
TGCHighPtBoardOut
(
this
,
m_bid
);
404
m_highPtBoardOut
->clear();
405
}
406
407
void
TGCHighPtBoard::createLowPtBoardOut
()
408
{
409
if
(
m_lowPtBoardOut
!= 0 )
delete
m_lowPtBoardOut
;
410
m_lowPtBoardOut
=
new
TGCHighPtBoardOut
(
this
,
m_bid
);
411
m_lowPtBoardOut
->clear();
412
}
413
414
415
void
TGCHighPtBoard::showResult
()
const
416
{
417
418
#ifdef TGCCOUT
419
int
i,j,k, chip, iBlock, iCandidate;
420
std::cout <<
"#HighPtBoard::showResult()"
<< std::endl;
421
std::cout<<
"#HPB [Input] bid="
<<
m_bid
;
422
std::cout.width(2);
423
std::cout <<
" type="
<< ((
m_type
==WHPB) ?
"WHPB"
:
"SHPB"
);
424
std::cout.width(2);
425
std::cout <<
" region="
<< ( (
m_region
==
TGCRegionType::FORWARD
) ?
"FWD"
:
"END"
);
426
std::cout.width(2);
427
std::cout <<
" id="
<<
m_id
<< std::endl;
428
for
( j=0; j<
s_NumberOfTSBOut
; j+=1){
429
for
( i=0; i<
NumberOfChip
; i+=1){
430
if
(
m_TSBOut
[i][j]!=0){
431
for
( k=0; k<
m_TSBOut
[i][j]->getNumberOfData(); k+=1)
432
if
(
m_TSBOut
[i][j]->getHit(k)){
433
std::cout <<
"\t["
;
434
std::cout.width(2);
435
std::cout <<
"type="
<<
m_TSBOut
[i][j]->getOrigin()->getTypeName(
m_TSBOut
[i][j]->getOrigin()->
getType
());
436
std::cout.width(2);
437
std::cout <<
" region="
<< ((
m_TSBOut
[i][j]->getOrigin()->
getRegion
()==
TGCRegionType::ENDCAP
) ?
"END"
:
"FWD"
);
438
std::cout.width(2);
439
std::cout <<
" id="
<<
m_TSBOut
[i][j]->getOrigin()->getId();
440
std::cout.width(2);
441
std::cout <<
" iChip="
<< i;
442
std::cout.width(2);
443
std::cout <<
" iTSBOut="
<< j;
444
std::cout.width(2);
445
std::cout <<
" k="
<< k;
446
std::cout.width(3);
447
std::cout <<
" pos="
<<
m_TSBOut
[i][j]->getPos(k);
448
std::cout <<
"]"
<< std::endl;
449
}
450
}
451
if
(
m_DSBOut
[i][j]!=0){
452
for
( k=0; k<
m_DSBOut
[i][j]->getNumberOfData(); k+=1)
453
if
(
m_DSBOut
[i][j]->getHit(k)){
454
std::cout<<
"\t["
;
455
std::cout.width(2);
456
std::cout <<
"type="
<<
m_DSBOut
[i][j]->getOrigin()->getTypeName(
m_DSBOut
[i][j]->getOrigin()->
getType
());
457
std::cout.width(2);
458
std::cout <<
" region="
<<((
m_DSBOut
[i][j]->getOrigin()->
getRegion
()==
TGCRegionType::ENDCAP
) ?
"END"
:
"FWD"
);
459
std::cout.width(2);
460
std::cout <<
" id="
<<
m_DSBOut
[i][j]->getOrigin()->getId();
461
std::cout.width(2);
462
std::cout <<
" i="
<< i;
463
std::cout.width(2);
464
std::cout <<
" j="
<< j;
465
std::cout.width(2);
466
std::cout <<
" k="
<< k;
467
std::cout.width(3);
468
std::cout <<
" pos="
<<
m_DSBOut
[i][j]->getPos(k);
469
std::cout.width(3);
470
std::cout <<
" dev="
<<
m_DSBOut
[i][j]->getDev(k);
471
std::cout <<
"]"
<< std::endl;
472
}
473
}
474
}
475
}
476
std::cout<<std::endl;
477
478
std::cout <<
"#HPB [Intermediate] bid="
<<
m_bid
;
479
std::cout.width(2);
480
std::cout <<
" type="
<< ((
m_type
==WHPB) ?
"WHPB"
:
"SHPB"
);
481
std::cout.width(2);
482
std::cout <<
" region="
<< ( (
m_region
==
TGCRegionType::FORWARD
) ?
"FWD"
:
"END"
);
483
std::cout.width(2);
484
std::cout <<
" id="
<<
m_id
<< std::endl;
485
for
( chip=0; chip<
NumberOfChip
; chip+=1){
486
std::cout<<
"\t["
;
487
std::cout.width(2);
488
std::cout <<
"iChip="
<< chip <<
"]"
<< std::endl;
489
490
// m_highPtBoardOut
491
for
(iBlock=0; iBlock<
NBlockOfDSBChannel
; iBlock+=1){
492
std::cout<<
"\t [highPtBoardOut: "
;
493
std::cout.width(2);
494
std::cout <<
"block="
<< iBlock;
495
if
(
m_highPtBoardOut
->getHit(chip,iBlock)){
496
std::cout.width(2);
497
std::cout <<
" pos="
<<
m_highPtBoardOut
->getPos(chip,iBlock);
498
std::cout.width(4);
499
std::cout <<
" dev="
<<
m_highPtBoardOut
->getDev(chip,iBlock);
500
}
501
std::cout <<
"]"
<< std::endl;
502
}
503
504
// m_lowPtBoardOut
505
for
(iBlock=0; iBlock<
NBlockOfDSBChannel
; iBlock+=1){
506
std::cout<<
"\t [lowPtBoardOut: "
;
507
std::cout.width(2);
508
std::cout <<
"block="
<< iBlock;
509
if
(
m_lowPtBoardOut
->getHit(chip,iBlock)){
510
std::cout.width(2);
511
std::cout <<
" pos="
<<
m_lowPtBoardOut
->getPos(chip,iBlock);
512
std::cout.width(4);
513
std::cout <<
" dev="
<<
m_lowPtBoardOut
->getDev(chip,iBlock);
514
}
515
std::cout <<
"]"
<< std::endl;
516
}
517
}
518
519
std::cout <<
"#HPB [Output] bid="
<<
m_bid
;
520
std::cout.width(2);
521
std::cout <<
" type="
<< ((
m_type
==WHPB) ?
"WHPB"
:
"SHPB"
);
522
std::cout.width(2);
523
std::cout <<
" region="
<< ( (
m_region
==
TGCRegionType::FORWARD
) ?
"FWD"
:
"END"
);
524
std::cout.width(2);
525
std::cout <<
" id="
<<
m_id
<< std::endl;
526
for
( chip=0; chip<
NumberOfChip
; chip+=1){
527
std::cout<<
"\t["
;
528
std::cout.width(2);
529
std::cout <<
"iChip="
<< chip <<
"]"
<< std::endl;
530
for
( iCandidate=0; iCandidate<2; iCandidate+=1){
531
if
(
m_highPtChipOut
->getSel(chip,iCandidate)){
532
std::cout<<
"\t ["
;
533
std::cout.width(2);
534
std::cout <<
"HitID="
<<
m_highPtChipOut
->getHitID(chip,iCandidate);
535
std::cout <<
" Sel:"
<<
m_highPtChipOut
->getSel(chip,iCandidate);
536
if
(
m_highPtChipOut
->getPt(chip,iCandidate)==
PtHigh
)
537
std::cout<<
" Pt:1[high]"
;
538
else
539
std::cout<<
" Pt:0[low ]"
;
540
std::cout.width(2);
541
std::cout <<
" pos="
<<
m_highPtChipOut
->getPos(chip,iCandidate);
542
std::cout.width(4);
543
std::cout <<
" dev="
<<
m_highPtChipOut
->getDev(chip,iCandidate);
544
std::cout <<
"]"
<< std::endl;
545
}
546
}
547
}
548
#endif
549
}
550
551
}
// namespace LVL1TGCTrigger
a
static Double_t a
Definition
LArPhysWaveHECTool.cxx:38
TGCHighPtBoardOut.h
TGCHighPtBoard.h
TGCHighPtChipOut.h
LVL1TGCTrigger::TGCHighPtBoardOut
Definition
TGCHighPtBoardOut.h:26
LVL1TGCTrigger::TGCHighPtBoard::TGCHighPtBoard
TGCHighPtBoard()
Definition
TGCHighPtBoard.cxx:14
LVL1TGCTrigger::TGCHighPtBoard::setDecoderIn
virtual void setDecoderIn()=0
LVL1TGCTrigger::TGCHighPtBoard::m_priorSign
int m_priorSign
Definition
TGCHighPtBoard.h:106
LVL1TGCTrigger::TGCHighPtBoard::createHighPtBoardOut
void createHighPtBoardOut()
Definition
TGCHighPtBoard.cxx:400
LVL1TGCTrigger::TGCHighPtBoard::m_maxDevOred
int m_maxDevOred
Definition
TGCHighPtBoard.h:109
LVL1TGCTrigger::TGCHighPtBoard::m_lowPtBoardOut
TGCHighPtBoardOut * m_lowPtBoardOut
Definition
TGCHighPtBoard.h:90
LVL1TGCTrigger::TGCHighPtBoard::m_nChInTSBRegion
int m_nChInTSBRegion
Definition
TGCHighPtBoard.h:114
LVL1TGCTrigger::TGCHighPtBoard::m_highPtBoardOut
TGCHighPtBoardOut * m_highPtBoardOut
Definition
TGCHighPtBoard.h:89
LVL1TGCTrigger::TGCHighPtBoard::m_type
int m_type
Definition
TGCHighPtBoard.h:103
LVL1TGCTrigger::TGCHighPtBoard::m_region
TGCRegionType m_region
Definition
TGCHighPtBoard.h:104
LVL1TGCTrigger::TGCHighPtBoard::clearDecoderIn
virtual void clearDecoderIn()=0
LVL1TGCTrigger::TGCHighPtBoard::s_NumberOfTSBOut
static constexpr int s_NumberOfTSBOut
Definition
TGCHighPtBoard.h:36
LVL1TGCTrigger::TGCHighPtBoard::m_maxDev
int m_maxDev
Definition
TGCHighPtBoard.h:108
LVL1TGCTrigger::TGCHighPtBoard::m_bid
int m_bid
Definition
TGCHighPtBoard.h:101
LVL1TGCTrigger::TGCHighPtBoard::doCoincidenceMatrix
virtual void doCoincidenceMatrix(int chip, int block, const TGCHitPattern *tHit, const TGCHitPattern *dHit)=0
LVL1TGCTrigger::TGCHighPtBoard::m_highPtChipOut
TGCHighPtChipOut * m_highPtChipOut
Definition
TGCHighPtBoard.h:87
LVL1TGCTrigger::TGCHighPtBoard::clockIn
void clockIn(int bidIn)
Definition
TGCHighPtBoard.cxx:77
LVL1TGCTrigger::TGCHighPtBoard::eraseHighPtOutput
void eraseHighPtOutput()
Definition
TGCHighPtBoard.cxx:154
LVL1TGCTrigger::TGCHighPtBoard::m_DSB
TGCSlaveBoard * m_DSB[NumberOfChip][s_NumberOfDSBOut]
Definition
TGCHighPtBoard.h:92
LVL1TGCTrigger::TGCHighPtBoard::decodeSlaveBoardOut
virtual void decodeSlaveBoardOut(int chip, TGCHitPattern *tHit, TGCHitPattern *dHit)=0
LVL1TGCTrigger::TGCHighPtBoard::m_maxNumberOfHPBData
int m_maxNumberOfHPBData
Definition
TGCHighPtBoard.h:107
LVL1TGCTrigger::TGCHighPtBoard::m_TSB
TGCSlaveBoard * m_TSB[NumberOfChip][s_NumberOfTSBOut]
Definition
TGCHighPtBoard.h:93
LVL1TGCTrigger::TGCHighPtBoard::s_NumberOfDSBOut
static constexpr int s_NumberOfDSBOut
Definition
TGCHighPtBoard.h:37
LVL1TGCTrigger::TGCHighPtBoard::deleteSlaveBoardOut
void deleteSlaveBoardOut()
Definition
TGCHighPtBoard.cxx:106
LVL1TGCTrigger::TGCHighPtBoard::eraseLowPtOutput
void eraseLowPtOutput()
Definition
TGCHighPtBoard.cxx:162
LVL1TGCTrigger::TGCHighPtBoard::m_nChOfDSBOut
int m_nChOfDSBOut
Definition
TGCHighPtBoard.h:111
LVL1TGCTrigger::TGCHighPtBoard::m_idSectorLogic
int m_idSectorLogic
Definition
TGCHighPtBoard.h:102
LVL1TGCTrigger::TGCHighPtBoard::getType
int getType() const
Definition
TGCHighPtBoard.h:130
LVL1TGCTrigger::TGCHighPtBoard::highLowSelector
virtual void highLowSelector(int chip)
Definition
TGCHighPtBoard.cxx:274
LVL1TGCTrigger::TGCHighPtBoard::m_nChOfTSBOut
int m_nChOfTSBOut
Definition
TGCHighPtBoard.h:110
LVL1TGCTrigger::TGCHighPtBoard::loadLowPtOutput
void loadLowPtOutput(int chip, int block, TGCSlaveBoardOut *dataDSB)
Definition
TGCHighPtBoard.cxx:206
LVL1TGCTrigger::TGCHighPtBoard::m_DSBOut
TGCSlaveBoardOut * m_DSBOut[NumberOfChip][s_NumberOfDSBOut]
Definition
TGCHighPtBoard.h:94
LVL1TGCTrigger::TGCHighPtBoard::getTSBOut
TGCSlaveBoardOut * getTSBOut(int chip, int port)
Definition
TGCHighPtBoard.cxx:225
LVL1TGCTrigger::TGCHighPtBoard::createHighPtChipOut
void createHighPtChipOut()
Definition
TGCHighPtBoard.cxx:393
LVL1TGCTrigger::TGCHighPtBoard::~TGCHighPtBoard
virtual ~TGCHighPtBoard()
Definition
TGCHighPtBoard.cxx:42
LVL1TGCTrigger::TGCHighPtBoard::m_id
int m_id
Definition
TGCHighPtBoard.h:100
LVL1TGCTrigger::TGCHighPtBoard::m_decoderInTSB
TGCSlaveBoardOut * m_decoderInTSB[NumberOfChip][NDecoderInTSB]
Definition
TGCHighPtBoard.h:97
LVL1TGCTrigger::TGCHighPtBoard::m_nChOfDSBHit
int m_nChOfDSBHit
Definition
TGCHighPtBoard.h:112
LVL1TGCTrigger::TGCHighPtBoard::eraseOutput
void eraseOutput()
Definition
TGCHighPtBoard.cxx:149
LVL1TGCTrigger::TGCHighPtBoard::getOutput
TGCHighPtChipOut * getOutput()
Definition
TGCHighPtBoard.cxx:144
LVL1TGCTrigger::TGCHighPtBoard::m_nChOfTSBHit
int m_nChOfTSBHit
Definition
TGCHighPtBoard.h:113
LVL1TGCTrigger::TGCHighPtBoard::m_adjacentHPB
TGCHighPtBoard * m_adjacentHPB[NumberOfAdjacentHPB]
Definition
TGCHighPtBoard.h:96
LVL1TGCTrigger::TGCHighPtBoard::doCoincidence
void doCoincidence()
Definition
TGCHighPtBoard.cxx:170
LVL1TGCTrigger::TGCHighPtBoard::collectInput
void collectInput()
Definition
TGCHighPtBoard.cxx:125
LVL1TGCTrigger::TGCHighPtBoard::m_TSBOut
TGCSlaveBoardOut * m_TSBOut[NumberOfChip][s_NumberOfTSBOut]
Definition
TGCHighPtBoard.h:95
LVL1TGCTrigger::TGCHighPtBoard::showResult
void showResult() const
Definition
TGCHighPtBoard.cxx:415
LVL1TGCTrigger::TGCHighPtBoard::createLowPtBoardOut
void createLowPtBoardOut()
Definition
TGCHighPtBoard.cxx:407
LVL1TGCTrigger::TGCHighPtBoard::trackSelector
void trackSelector(int chip, int ptIn)
Definition
TGCHighPtBoard.cxx:230
LVL1TGCTrigger::TGCHighPtBoard::getRegion
TGCRegionType getRegion() const
Definition
TGCHighPtBoard.h:50
LVL1TGCTrigger::TGCHighPtBoard::m_decoderInDSB
TGCSlaveBoardOut * m_decoderInDSB[NumberOfChip][NDecoderInDSB]
Definition
TGCHighPtBoard.h:98
LVL1TGCTrigger::TGCHighPtChipOut
Definition
TGCHighPtChipOut.h:16
LVL1TGCTrigger::TGCHitPattern
Definition
TGCHitPattern.h:11
LVL1TGCTrigger::TGCSlaveBoardOut
Definition
TGCSlaveBoardOut.h:20
LVL1TGCTrigger::TGCSlaveBoardOut::getHit
bool getHit(int iData) const
Definition
TGCSlaveBoardOut.h:131
LVL1TGCTrigger::TGCSlaveBoardOut::getPos
int getPos(int iData) const
Definition
TGCSlaveBoardOut.h:125
LVL1TGCTrigger::TGCSlaveBoardOut::getDev
int getDev(int iData) const
Definition
TGCSlaveBoardOut.h:119
LVL1TGCTrigger
Definition
LVL1TGCTrigger.cxx:48
LVL1TGCTrigger::NumberOfAdjacentHPB
const int NumberOfAdjacentHPB
Definition
TGCHighPtBoard.h:19
LVL1TGCTrigger::NBlockOfDSBChannel
const int NBlockOfDSBChannel
Definition
TGCHighPtBoard.h:21
LVL1TGCTrigger::TGCRegionType::FORWARD
@ FORWARD
Definition
TGCNumbering.h:49
LVL1TGCTrigger::TGCRegionType::ENDCAP
@ ENDCAP
Definition
TGCNumbering.h:49
LVL1TGCTrigger::NDecoderInDSB
const int NDecoderInDSB
Definition
TGCHighPtBoard.h:23
LVL1TGCTrigger::NumberOfChip
const int NumberOfChip
Definition
TGCHighPtBoard.h:20
LVL1TGCTrigger::PtLow
const int PtLow
Definition
TGCHighPtBoard.h:16
LVL1TGCTrigger::FirstCandidate
@ FirstCandidate
Definition
TGCHighPtChipOut.h:13
LVL1TGCTrigger::SecondCandidate
@ SecondCandidate
Definition
TGCHighPtChipOut.h:13
LVL1TGCTrigger::PtHigh
const int PtHigh
Definition
TGCHighPtBoard.h:17
LVL1TGCTrigger::NDecoderInTSB
const int NDecoderInTSB
Definition
TGCHighPtBoard.h:22
Generated on
for ATLAS Offline Software by
1.17.0