58 for (
int ext_idx = 0; ext_idx <
MAX_EXT; ext_idx++ ) {
65 unsigned int maxaddr = 4;
67 if ( ext ==
EX12 || ext ==
EX13 || ext ==
EX14 ) maxaddr = 2;
69 for (
unsigned int startAddress = 0; startAddress < maxaddr; startAddress++ ) {
70 SEUId id = make_pair(ext, startAddress);
86 for ( SEUmap::iterator iter =
m_SEUs.begin(); iter !=
m_SEUs.end(); iter++ ) {
87 delete (*iter).second;
88 (*iter).second =
nullptr;
110 SEUmap::const_iterator iter;
111 for ( iter =
m_SEUs.begin(); iter !=
m_SEUs.end(); iter++ ) {
113 pair<int,int> ext_pair =
which_ext(((*iter).second)->ext());
114 int start = ext_pair.first;
121 if ( ts !=
nullptr && !ts->
empty() ) {
122 ((*iter).second)->
load(ts);
123 ((*iter).second)->
run(c);
135 for (
unsigned int startAdr = 0; startAdr < 2; startAdr++ ) {
140 for (
int eux = 0; eux < 12; eux++ ) {
141 if ( extab12.test(eux) && !extab21.test(eux) ) {
146 cout <<
" EX12 - EX21 mismatch : " 147 <<
" EX12 : " << extab12 <<
" , " 148 <<
" EX21 : " << extab21 << endl
149 <<
" Cancel: " << SEU12->
ext()
150 <<
" start addr = " << SEU12->
tsId()
151 <<
" target addr = " << eux << endl;
167 SEUmap::const_iterator iter;
168 for ( iter =
m_SEUs.begin(); iter !=
m_SEUs.end(); iter++ ) {
169 ((*iter).second)->
reset();
183 SEUId seuid = make_pair(ext, startAdr);
184 SEUmap::const_iterator iter =
m_SEUs.find(seuid);
185 if ( iter !=
m_SEUs.end() ) ((*iter).second)->reset(relAdr);
202 unsigned short int address = 15;
204 SEUId seuid = make_pair(ext, startAdr);
205 SEUmap::const_iterator iter =
m_SEUs.find(seuid);
206 if ( iter !=
m_SEUs.end() ) address = ((*iter).second)->ers()->address(
id);
225 unsigned short int quality = 0;
227 SEUId seuid = make_pair(ext, startAdr);
228 SEUmap::const_iterator iter =
m_SEUs.find(seuid);
229 if ( iter !=
m_SEUs.end() ) quality = ((*iter).second)->ers()->quality(
id);
246 SEUId seuid = make_pair(ext, startAdr);
247 return m_SEUs[seuid]->exTable();
262 SEUId seuid = make_pair(ext, startAdr);
263 return m_SEUs[seuid]->qsTable();
274 SEUmap::const_iterator iter;
275 for ( iter =
m_SEUs.begin(); iter !=
m_SEUs.end(); iter++ ) {
289 SEUmap::const_iterator iter_seu;
292 for ( iter_seu =
m_SEUs.begin(); iter_seu !=
m_SEUs.end(); iter_seu++ ) {
293 vector<L1MuBMEUX*> vec_eux = ((*iter_seu).second)->eux();
294 vector<L1MuBMEUX*>::const_iterator iter_eux;
295 for ( iter_eux = vec_eux.begin();
296 iter_eux != vec_eux.end(); iter_eux++ ) {
297 if ( (*iter_eux)->result() ) {
298 cout << ((*iter_seu).second)->
ext() <<
" " 299 << ((*iter_seu).second)->tsId() <<
" " 300 << (*iter_eux)->id() << endl;
301 cout <<
"start : " << *(*iter_eux)->ts().first << endl;
302 cout <<
"target : " << *(*iter_eux)->ts().second << endl;
303 cout <<
"result : " <<
"quality = " << (*iter_eux)->quality() <<
'\t' 304 <<
"address = " << (*iter_eux)->address() << endl;
314 cout <<
"Results from Extrapolator and Quality Sorter of " <<
m_sp.
id()
317 cout <<
" EXT QSU " << endl;
318 cout <<
" S E U 11 11 " << endl;
319 cout <<
" 109876543210 109876543210 " << endl;
320 cout <<
"-------------------------------------" << endl;
321 for ( iter_seu =
m_SEUs.begin(); iter_seu !=
m_SEUs.end(); iter_seu++ ) {
323 cout << ((*iter_seu).second)->
ext() <<
"_ " 324 << ((*iter_seu).second)->tsId() <<
": " 325 << ((*iter_seu).second)->exTable() <<
" " 326 << ((*iter_seu).second)->qsTable() << endl;
349 case EX12 : { source = 1; target = 2;
break; }
350 case EX13 : { source = 1; target = 3;
break; }
351 case EX14 : { source = 1; target = 4;
break; }
352 case EX21 : { source = 1; target = 2;
break; }
353 case EX23 : { source = 2; target = 3;
break; }
354 case EX24 : { source = 2; target = 4;
break; }
355 case EX34 : { source = 3; target = 4;
break; }
356 case EX15 : { source = 1; target = 3;
break; }
357 case EX25 : { source = 2; target = 3;
break; }
358 default : { source = 1; target = 2;
break; }
Extrapolation ext() const
return extrapolation type
L1MuDTTFParameters l1mudttfparams
int sector() const
return sector number
virtual void run()
run processor logic
unsigned int tsId() const
return start track segment identifier (relative address)
const L1MuBMSecProcId & id() const
return Sector Processor identifier
bool get_soc_run_21(int wh, int sc) const
const TSPhivector & getTSphi() const
get all track segments from the buffer
const L1MuBMDataBuffer * data() const
return pointer to Data Buffer
T const * product() const
static std::string const source
bool get(HolderT &iHolder) const
bool empty() const
is it an empty phi track segment?
int wheel() const
return wheel number