57 for (
int ext_idx = 0; ext_idx <
MAX_EXT; ext_idx++ ) {
64 unsigned int maxaddr = 4;
66 if ( ext ==
EX12 || ext ==
EX13 || ext ==
EX14 ) maxaddr = 2;
68 for (
unsigned int startAddress = 0; startAddress < maxaddr; startAddress++ ) {
69 SEUId id = make_pair(ext, startAddress);
85 for ( SEUmap::iterator iter =
m_SEUs.begin(); iter !=
m_SEUs.end(); iter++ ) {
86 delete (*iter).second;
105 SEUmap::const_iterator iter;
106 for ( iter =
m_SEUs.begin(); iter !=
m_SEUs.end(); iter++ ) {
108 pair<int,int> ext_pair =
which_ext(((*iter).second)->ext());
109 int start = ext_pair.first;
116 if ( ts != 0 && !ts->
empty() ) {
117 ((*iter).second)->
load(ts);
118 ((*iter).second)->
run(c);
130 for (
unsigned int startAdr = 0; startAdr < 2; startAdr++ ) {
135 for (
int eux = 0; eux < 12; eux++ ) {
136 if ( extab12.test(eux) && !extab21.test(eux) ) {
141 cout <<
" EX12 - EX21 mismatch : "
142 <<
" EX12 : " << extab12 <<
" , "
143 <<
" EX21 : " << extab21 << endl
144 <<
" Cancel: " << SEU12->
ext()
145 <<
" start addr = " << SEU12->
tsId()
146 <<
" target addr = " << eux << endl;
162 SEUmap::const_iterator iter;
163 for ( iter =
m_SEUs.begin(); iter !=
m_SEUs.end(); iter++ ) {
164 ((*iter).second)->
reset();
178 SEUId seuid = make_pair(ext, startAdr);
179 SEUmap::const_iterator iter =
m_SEUs.find(seuid);
180 if ( iter !=
m_SEUs.end() ) ((*iter).second)->reset(relAdr);
197 unsigned short int address = 15;
199 SEUId seuid = make_pair(ext, startAdr);
200 SEUmap::const_iterator iter =
m_SEUs.find(seuid);
201 if ( iter !=
m_SEUs.end() ) address = ((*iter).second)->ers()->address(
id);
220 unsigned short int quality = 0;
222 SEUId seuid = make_pair(ext, startAdr);
223 SEUmap::const_iterator iter =
m_SEUs.find(seuid);
224 if ( iter !=
m_SEUs.end() ) quality = ((*iter).second)->ers()->quality(
id);
241 SEUId seuid = make_pair(ext, startAdr);
242 return m_SEUs[seuid]->exTable();
257 SEUId seuid = make_pair(ext, startAdr);
258 return m_SEUs[seuid]->qsTable();
269 SEUmap::const_iterator iter;
270 for ( iter =
m_SEUs.begin(); iter !=
m_SEUs.end(); iter++ ) {
284 SEUmap::const_iterator iter_seu;
287 for ( iter_seu =
m_SEUs.begin(); iter_seu !=
m_SEUs.end(); iter_seu++ ) {
288 vector<L1MuBMEUX*> vec_eux = ((*iter_seu).second)->eux();
289 vector<L1MuBMEUX*>::const_iterator iter_eux;
290 for ( iter_eux = vec_eux.begin();
291 iter_eux != vec_eux.end(); iter_eux++ ) {
292 if ( (*iter_eux)->result() ) {
293 cout << ((*iter_seu).second)->ext() <<
" "
294 << ((*iter_seu).second)->tsId() <<
" "
295 << (*iter_eux)->id() << endl;
296 cout <<
"start : " << *(*iter_eux)->ts().first << endl;
297 cout <<
"target : " << *(*iter_eux)->ts().second << endl;
298 cout <<
"result : " <<
"quality = " << (*iter_eux)->quality() <<
'\t'
299 <<
"address = " << (*iter_eux)->address() << endl;
309 cout <<
"Results from Extrapolator and Quality Sorter of " <<
m_sp.
id()
312 cout <<
" EXT QSU " << endl;
313 cout <<
" S E U 11 11 " << endl;
314 cout <<
" 109876543210 109876543210 " << endl;
315 cout <<
"-------------------------------------" << endl;
316 for ( iter_seu =
m_SEUs.begin(); iter_seu !=
m_SEUs.end(); iter_seu++ ) {
318 cout << ((*iter_seu).second)->ext() <<
"_ "
319 << ((*iter_seu).second)->tsId() <<
": "
320 << ((*iter_seu).second)->exTable() <<
" "
321 << ((*iter_seu).second)->qsTable() << endl;
344 case EX12 : { source = 1; target = 2;
break; }
345 case EX13 : { source = 1; target = 3;
break; }
346 case EX14 : { source = 1; target = 4;
break; }
347 case EX21 : { source = 1; target = 2;
break; }
348 case EX23 : { source = 2; target = 3;
break; }
349 case EX24 : { source = 2; target = 4;
break; }
350 case EX34 : { source = 3; target = 4;
break; }
351 case EX15 : { source = 1; target = 3;
break; }
352 case EX25 : { source = 2; target = 3;
break; }
353 default : { source = 1; target = 2;
break; }
Extrapolation ext() const
return extrapolation type
tuple start
Check for commandline option errors.
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
const TSPhivector & getTSphi() const
get all track segments from the buffer
const L1MuBMDataBuffer * data() const
return pointer to Data Buffer
static std::string const source
bool empty() const
is it an empty phi track segment?
int wheel() const
return wheel number