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
PRODUCT const & get(ESGetToken< PRODUCT, T > const &iToken) const
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 empty() const
is it an empty phi track segment?
int wheel() const
return wheel number