ATLAS Offline Software
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 
8 #include <iostream>
9 #include <cmath>
10 #include <cstdlib>
11 
12 namespace LVL1TGCTrigger {
13 
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 
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;
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();
102  }
103  return;
104 }
105 
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 
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 
145 {
146  return m_highPtChipOut;
147 }
148 
150 {
151  m_highPtChipOut=0;
152 }
153 
155 {
156  if(m_highPtBoardOut!=0){
157  delete m_highPtBoardOut;
159  }
160 }
161 
163 {
164  if(m_lowPtBoardOut!=0){
165  delete m_lowPtBoardOut;
166  m_lowPtBoardOut=0;
167  }
168 }
169 
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 
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 
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);
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);
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);
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);
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);
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);
381  m_highPtChipOut->setHitID(chip,FirstCandidate,highPt1stBlock);
382  // HPT 2nd
383  pos=m_highPtBoardOut->getPos(chip,highPt2ndBlock);
384  dev=m_highPtBoardOut->getDev(chip,highPt2ndBlock);
389  m_highPtChipOut->setHitID(chip,SecondCandidate,highPt2ndBlock);
390  }
391 }
392 
394 {
395  if( m_highPtChipOut != 0 ) delete m_highPtChipOut;
398 }
399 
401 {
402  if( m_highPtBoardOut != 0 ) delete m_highPtBoardOut;
405 }
406 
408 {
409  if( m_lowPtBoardOut != 0 ) delete m_lowPtBoardOut;
412 }
413 
414 
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
LVL1TGCTrigger::TGCHighPtChipOut::setHitID
void setHitID(int chip, int iCandidate, int hitIdIn)
Definition: TGCHighPtChipOut.h:72
LVL1TGCTrigger::TGCHighPtBoardOut::setDev
void setDev(int chip, int iData, int devIn)
Definition: TGCHighPtBoardOut.h:66
LVL1TGCTrigger::TGCHighPtBoard::eraseOutput
void eraseOutput()
Definition: TGCHighPtBoard.cxx:149
LVL1TGCTrigger::TGCRegionType::ENDCAP
@ ENDCAP
LVL1TGCTrigger::PtHigh
const int PtHigh
Definition: TGCHighPtBoard.h:17
LVL1TGCTrigger::TGCHighPtChipOut::setPos
void setPos(int chip, int iCandidate, int posIn)
Definition: TGCHighPtChipOut.h:66
LVL1TGCTrigger::TGCHighPtBoard::~TGCHighPtBoard
virtual ~TGCHighPtBoard()
Definition: TGCHighPtBoard.cxx:42
LVL1TGCTrigger::TGCHighPtBoard::m_type
int m_type
Definition: TGCHighPtBoard.h:103
LVL1TGCTrigger::TGCSlaveBoardOut::getDev
int getDev(int iData) const
Definition: TGCSlaveBoardOut.h:119
LVL1TGCTrigger::TGCHighPtBoard::collectInput
void collectInput()
Definition: TGCHighPtBoard.cxx:125
LVL1TGCTrigger::TGCHighPtBoard::doCoincidence
void doCoincidence()
Definition: TGCHighPtBoard.cxx:170
LVL1TGCTrigger::TGCHighPtBoard::deleteSlaveBoardOut
void deleteSlaveBoardOut()
Definition: TGCHighPtBoard.cxx:106
LVL1TGCTrigger::TGCHighPtBoard::m_DSBOut
TGCSlaveBoardOut * m_DSBOut[NumberOfChip][s_NumberOfDSBOut]
Definition: TGCHighPtBoard.h:94
LVL1TGCTrigger::TGCHighPtBoardOut::setSel
void setSel(int chip, int iData, int selIn)
Definition: TGCHighPtBoardOut.h:135
LVL1TGCTrigger::TGCHighPtBoardOut::getDev
int getDev(int chip, int iData) const
Definition: TGCHighPtBoardOut.h:93
LVL1TGCTrigger::NDecoderInDSB
const int NDecoderInDSB
Definition: TGCHighPtBoard.h:23
LVL1TGCTrigger::TGCHighPtBoard::m_decoderInTSB
TGCSlaveBoardOut * m_decoderInTSB[NumberOfChip][NDecoderInTSB]
Definition: TGCHighPtBoard.h:97
LVL1TGCTrigger::TGCHighPtBoard::loadLowPtOutput
void loadLowPtOutput(int chip, int block, TGCSlaveBoardOut *dataDSB)
Definition: TGCHighPtBoard.cxx:206
LVL1TGCTrigger::TGCHighPtBoard::createHighPtChipOut
void createHighPtChipOut()
Definition: TGCHighPtBoard.cxx:393
LVL1TGCTrigger::FirstCandidate
@ FirstCandidate
Definition: TGCHighPtChipOut.h:13
LVL1TGCTrigger::TGCHighPtBoard::m_nChOfDSBOut
int m_nChOfDSBOut
Definition: TGCHighPtBoard.h:111
LVL1TGCTrigger::TGCHighPtBoard::TGCHighPtBoard
TGCHighPtBoard()
Definition: TGCHighPtBoard.cxx:14
LVL1TGCTrigger::TGCHighPtBoard::m_highPtChipOut
TGCHighPtChipOut * m_highPtChipOut
Definition: TGCHighPtBoard.h:87
LVL1TGCTrigger::TGCSlaveBoard::getTypeName
std::string getTypeName(int typeIn) const
Definition: TGCSlaveBoard.cxx:173
LVL1TGCTrigger::TGCSlaveBoardOut::getNumberOfData
int getNumberOfData() const
Definition: TGCSlaveBoardOut.h:155
LVL1TGCTrigger::TGCRegionType::FORWARD
@ FORWARD
LVL1TGCTrigger::TGCHighPtChipOut::getPt
int getPt(int chip, int iCandidate) const
Definition: TGCHighPtChipOut.h:109
TGCHighPtBoardOut.h
LVL1TGCTrigger::TGCHighPtBoard::getType
int getType() const
Definition: TGCHighPtBoard.h:130
LVL1TGCTrigger::TGCHighPtChipOut::clear
void clear()
Definition: TGCHighPtChipOut.cxx:61
LVL1TGCTrigger::TGCHighPtBoard::m_nChOfDSBHit
int m_nChOfDSBHit
Definition: TGCHighPtBoard.h:112
LVL1TGCTrigger::TGCSlaveBoardOut::getPos
int getPos(int iData) const
Definition: TGCSlaveBoardOut.h:125
LVL1TGCTrigger::TGCHighPtBoard::decodeSlaveBoardOut
virtual void decodeSlaveBoardOut(int chip, TGCHitPattern *tHit, TGCHitPattern *dHit)=0
LVL1TGCTrigger::NumberOfChip
const int NumberOfChip
Definition: TGCHighPtBoard.h:20
LVL1TGCTrigger::PtLow
const int PtLow
Definition: TGCHighPtBoard.h:16
LVL1TGCTrigger::TGCHighPtBoard::m_adjacentHPB
TGCHighPtBoard * m_adjacentHPB[NumberOfAdjacentHPB]
Definition: TGCHighPtBoard.h:96
LVL1TGCTrigger::TGCHighPtBoard::m_priorSign
int m_priorSign
Definition: TGCHighPtBoard.h:106
m_type
TokenType m_type
the type
Definition: TProperty.cxx:44
LVL1TGCTrigger::TGCHighPtBoardOut::setPos
void setPos(int chip, int iData, int posIn)
Definition: TGCHighPtBoardOut.h:73
LVL1TGCTrigger::TGCHighPtBoard::s_NumberOfTSBOut
static constexpr int s_NumberOfTSBOut
Definition: TGCHighPtBoard.h:36
LVL1TGCTrigger::TGCHighPtBoard::m_nChOfTSBHit
int m_nChOfTSBHit
Definition: TGCHighPtBoard.h:113
LVL1TGCTrigger::TGCSlaveBoard::eraseOutput
void eraseOutput()
Definition: TGCSlaveBoard.cxx:230
lumiFormat.i
int i
Definition: lumiFormat.py:92
LVL1TGCTrigger::TGCHighPtChipOut
Definition: TGCHighPtChipOut.h:16
LVL1TGCTrigger::TGCHighPtBoard::createHighPtBoardOut
void createHighPtBoardOut()
Definition: TGCHighPtBoard.cxx:400
LVL1TGCTrigger::SecondCandidate
@ SecondCandidate
Definition: TGCHighPtChipOut.h:13
LVL1TGCTrigger::TGCHighPtBoard::m_decoderInDSB
TGCSlaveBoardOut * m_decoderInDSB[NumberOfChip][NDecoderInDSB]
Definition: TGCHighPtBoard.h:98
LVL1TGCTrigger::TGCHighPtBoard::trackSelector
void trackSelector(int chip, int ptIn)
Definition: TGCHighPtBoard.cxx:230
LVL1TGCTrigger::TGCHighPtBoardOut::getSel
int getSel(int chip, int iData) const
Definition: TGCHighPtBoardOut.h:129
LVL1TGCTrigger::TGCHighPtBoard::m_maxNumberOfHPBData
int m_maxNumberOfHPBData
Definition: TGCHighPtBoard.h:107
LVL1TGCTrigger::TGCHighPtChipOut::getHitID
int getHitID(int chip, int iCandidate) const
Definition: TGCHighPtChipOut.h:102
LVL1TGCTrigger::TGCHighPtBoard::m_region
TGCRegionType m_region
Definition: TGCHighPtBoard.h:104
LVL1TGCTrigger::TGCHighPtBoard::m_bid
int m_bid
Definition: TGCHighPtBoard.h:101
LVL1TGCTrigger::TGCHighPtBoard::s_NumberOfDSBOut
static constexpr int s_NumberOfDSBOut
Definition: TGCHighPtBoard.h:37
LVL1TGCTrigger::NDecoderInTSB
const int NDecoderInTSB
Definition: TGCHighPtBoard.h:22
LVL1TGCTrigger::TGCHighPtBoard::clearDecoderIn
virtual void clearDecoderIn()=0
LVL1TGCTrigger::TGCSlaveBoardOut
Definition: TGCSlaveBoardOut.h:20
LVL1TGCTrigger::TGCHighPtBoardOut
Definition: TGCHighPtBoardOut.h:26
LVL1TGCTrigger::TGCHighPtChipOut::setDev
void setDev(int chip, int iCandidate, int devIn)
Definition: TGCHighPtChipOut.h:60
LVL1TGCTrigger::TGCHighPtChipOut::setPt
void setPt(int chip, int iCandidate, int ptIn)
Definition: TGCHighPtChipOut.h:78
LVL1TGCTrigger
Definition: LVL1TGCTrigger.cxx:49
TGCHighPtChipOut.h
LVL1TGCTrigger::TGCSlaveBoardOut::getHit
bool getHit(int iData) const
Definition: TGCSlaveBoardOut.h:131
LVL1TGCTrigger::TGCHitPattern
Definition: TGCHitPattern.h:11
LVL1TGCTrigger::TGCHighPtBoardOut::getHit
bool getHit(int chip, int iData) const
Definition: TGCHighPtBoardOut.h:117
LVL1TGCTrigger::TGCHighPtBoard::clockIn
void clockIn(int bidIn)
Definition: TGCHighPtBoard.cxx:77
LVL1TGCTrigger::TGCHighPtChipOut::getDev
int getDev(int chip, int iCandidate) const
Definition: TGCHighPtChipOut.h:90
LVL1TGCTrigger::TGCHighPtChipOut::getSel
int getSel(int chip, int iCandidate) const
Definition: TGCHighPtChipOut.h:121
LVL1TGCTrigger::TGCSlaveBoard::getId
int getId() const
Definition: TGCSlaveBoard.h:41
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
LVL1TGCTrigger::TGCHighPtBoard::eraseHighPtOutput
void eraseHighPtOutput()
Definition: TGCHighPtBoard.cxx:154
LVL1TGCTrigger::TGCHighPtBoard::showResult
void showResult() const
Definition: TGCHighPtBoard.cxx:415
LVL1TGCTrigger::TGCHighPtBoardOut::getPos
int getPos(int chip, int iData) const
Definition: TGCHighPtBoardOut.h:99
LVL1TGCTrigger::TGCHighPtBoard::doCoincidenceMatrix
virtual void doCoincidenceMatrix(int chip, int block, const TGCHitPattern *tHit, const TGCHitPattern *dHit)=0
LVL1TGCTrigger::TGCHighPtBoard::eraseLowPtOutput
void eraseLowPtOutput()
Definition: TGCHighPtBoard.cxx:162
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
LVL1TGCTrigger::TGCHighPtBoardOut::clear
void clear()
Definition: TGCHighPtBoardOut.cxx:19
LVL1TGCTrigger::TGCSlaveBoardOut::getOrigin
const TGCSlaveBoard * getOrigin() const
Definition: TGCSlaveBoardOut.h:113
LVL1TGCTrigger::NumberOfAdjacentHPB
const int NumberOfAdjacentHPB
Definition: TGCHighPtBoard.h:19
LVL1TGCTrigger::TGCHighPtBoard::m_lowPtBoardOut
TGCHighPtBoardOut * m_lowPtBoardOut
Definition: TGCHighPtBoard.h:90
a
TList * a
Definition: liststreamerinfos.cxx:10
LVL1TGCTrigger::TGCHighPtChipOut::getPos
int getPos(int chip, int iCandidate) const
Definition: TGCHighPtChipOut.h:96
LVL1TGCTrigger::TGCHighPtBoard::m_DSB
TGCSlaveBoard * m_DSB[NumberOfChip][s_NumberOfDSBOut]
Definition: TGCHighPtBoard.h:92
LVL1TGCTrigger::TGCHighPtBoard::setDecoderIn
virtual void setDecoderIn()=0
LVL1TGCTrigger::NBlockOfDSBChannel
const int NBlockOfDSBChannel
Definition: TGCHighPtBoard.h:21
LVL1TGCTrigger::TGCHighPtBoardOut::setPt
void setPt(int chip, int iData, int ptIn)
Definition: TGCHighPtBoardOut.h:80
LVL1TGCTrigger::TGCSlaveBoard::getOutput
TGCSlaveBoardOut * getOutput()
Definition: TGCSlaveBoard.h:38
LVL1TGCTrigger::TGCHighPtBoard::m_TSB
TGCSlaveBoard * m_TSB[NumberOfChip][s_NumberOfTSBOut]
Definition: TGCHighPtBoard.h:93
LVL1TGCTrigger::TGCHighPtBoard::getTSBOut
TGCSlaveBoardOut * getTSBOut(int chip, int port)
Definition: TGCHighPtBoard.cxx:225
LVL1TGCTrigger::TGCHighPtBoard::m_id
int m_id
Definition: TGCHighPtBoard.h:100
LVL1TGCTrigger::TGCHighPtBoard::getOutput
TGCHighPtChipOut * getOutput()
Definition: TGCHighPtBoard.cxx:144
LVL1TGCTrigger::TGCHighPtBoard::m_TSBOut
TGCSlaveBoardOut * m_TSBOut[NumberOfChip][s_NumberOfTSBOut]
Definition: TGCHighPtBoard.h:95
LVL1TGCTrigger::TGCHighPtChipOut::setSel
void setSel(int chip, int iCandidate, int selIn)
Definition: TGCHighPtChipOut.h:127
LVL1TGCTrigger::TGCSlaveBoardOut::print
void print() const
Definition: TGCSlaveBoardOut.cxx:193
LVL1TGCTrigger::TGCHighPtBoard::createLowPtBoardOut
void createLowPtBoardOut()
Definition: TGCHighPtBoard.cxx:407
LVL1TGCTrigger::TGCHighPtBoard::highLowSelector
virtual void highLowSelector(int chip)
Definition: TGCHighPtBoard.cxx:274
TGCHighPtBoard.h
LVL1TGCTrigger::TGCHighPtBoard::m_highPtBoardOut
TGCHighPtBoardOut * m_highPtBoardOut
Definition: TGCHighPtBoard.h:89
fitman.k
k
Definition: fitman.py:528
LVL1TGCTrigger::TGCHighPtBoard::m_maxDev
int m_maxDev
Definition: TGCHighPtBoard.h:108
LVL1TGCTrigger::TGCSlaveBoard::getRegion
TGCRegionType getRegion() const
Definition: TGCSlaveBoard.h:52
LVL1TGCTrigger::TGCHighPtBoardOut::setHit
void setHit(int chip, int iData, bool hitIn)
Definition: TGCHighPtBoardOut.h:123