#include <L1MuDTSEU.h>
Public Member Functions | |
const L1MuDTERS * | ers () const |
return pointer to Extrapolation Result Selector | |
const std::vector< L1MuDTEUX * > & | eux () const |
return pointer to an Extrapolator | |
Extrapolation | ext () const |
return extrapolation type | |
const std::bitset< 12 > & | exTable () const |
return Extrapolator table | |
bool | isNextWheelSEU () const |
is it a next wheel Single Extrapolation Unit | |
bool | isOwnWheelSEU () const |
is it a own wheel Single Extrapolation Unit | |
L1MuDTSEU (const L1MuDTSectorProcessor &sp, Extrapolation ext, unsigned int tsId) | |
constructor | |
void | load (const L1MuDTTrackSegPhi *startTS) |
load data into the SEU | |
int | numberOfExt () const |
return number of successful extrapolations | |
const std::bitset< 12 > & | qsTable () const |
return Quality Sorter table | |
void | reset (unsigned int relAdr) |
reset single extrapolation | |
virtual void | reset () |
reset SEU | |
virtual void | run (const edm::EventSetup &c) |
run SEU | |
unsigned int | tsId () const |
return start track segment identifier (relative address) | |
virtual | ~L1MuDTSEU () |
destructor | |
Private Attributes | |
L1MuDTERS * | m_ERS |
std::vector< L1MuDTEUX * > | m_EUXs |
Extrapolation | m_ext |
std::bitset< 12 > | m_EXtable |
std::bitset< 12 > | m_QStable |
const L1MuDTSectorProcessor & | m_sp |
const L1MuDTTrackSegPhi * | m_startTS |
unsigned int | m_startTS_Id |
Single Extrapolation Unit:
performs for a given start track segment and a given extrapolation type extrapolations to all possible target track segments (12 or 6)
N. Neumeister CERN EP
Definition at line 50 of file L1MuDTSEU.h.
L1MuDTSEU::L1MuDTSEU | ( | const L1MuDTSectorProcessor & | sp, |
Extrapolation | ext, | ||
unsigned int | tsId | ||
) |
constructor
Definition at line 52 of file L1MuDTSEU.cc.
L1MuDTSEU::~L1MuDTSEU | ( | ) | [virtual] |
const L1MuDTERS* L1MuDTSEU::ers | ( | ) | const [inline] |
return pointer to Extrapolation Result Selector
Definition at line 97 of file L1MuDTSEU.h.
References m_ERS.
{ return m_ERS; }
const std::vector<L1MuDTEUX*>& L1MuDTSEU::eux | ( | ) | const [inline] |
return pointer to an Extrapolator
Definition at line 94 of file L1MuDTSEU.h.
References m_EUXs.
Referenced by L1MuDTERS::run().
{ return m_EUXs; }
Extrapolation L1MuDTSEU::ext | ( | ) | const [inline] |
return extrapolation type
Definition at line 82 of file L1MuDTSEU.h.
References m_ext.
Referenced by L1MuDTEUX::load(), L1MuDTEUX::run(), and L1MuDTExtrapolationUnit::run().
{ return m_ext; }
const std::bitset<12>& L1MuDTSEU::exTable | ( | ) | const [inline] |
return Extrapolator table
Definition at line 73 of file L1MuDTSEU.h.
References m_EXtable.
{ return m_EXtable; }
bool L1MuDTSEU::isNextWheelSEU | ( | ) | const [inline] |
is it a next wheel Single Extrapolation Unit
Definition at line 91 of file L1MuDTSEU.h.
References m_startTS_Id.
Referenced by run().
{ return ( m_startTS_Id == 2 || m_startTS_Id == 3 ); }
bool L1MuDTSEU::isOwnWheelSEU | ( | ) | const [inline] |
is it a own wheel Single Extrapolation Unit
Definition at line 88 of file L1MuDTSEU.h.
References m_startTS_Id.
{ return ( m_startTS_Id == 0 || m_startTS_Id == 1 ); }
void L1MuDTSEU::load | ( | const L1MuDTTrackSegPhi * | startTS | ) | [inline] |
load data into the SEU
Definition at line 70 of file L1MuDTSEU.h.
References m_startTS.
{ m_startTS = startTS; }
int L1MuDTSEU::numberOfExt | ( | ) | const |
return number of successful extrapolations
Definition at line 189 of file L1MuDTSEU.cc.
References m_EUXs.
Referenced by run(), and L1MuDTERS::run().
{ int number = 0; vector<L1MuDTEUX*>::const_iterator iter_eux; for ( iter_eux = m_EUXs.begin(); iter_eux != m_EUXs.end(); iter_eux++ ) { if ( (*iter_eux)->result() ) number++; } return number; }
const std::bitset<12>& L1MuDTSEU::qsTable | ( | ) | const [inline] |
return Quality Sorter table
Definition at line 76 of file L1MuDTSEU.h.
References m_QStable.
{ return m_QStable; }
void L1MuDTSEU::reset | ( | void | ) | [virtual] |
reset SEU
Implements L1AbstractProcessor.
Definition at line 157 of file L1MuDTSEU.cc.
References m_ERS, m_EUXs, m_EXtable, m_QStable, m_startTS, and L1MuDTERS::reset().
void L1MuDTSEU::reset | ( | unsigned int | relAdr | ) |
void L1MuDTSEU::run | ( | const edm::EventSetup & | c | ) | [virtual] |
run SEU
Reimplemented from L1AbstractProcessor.
Definition at line 94 of file L1MuDTSEU.cc.
References gather_cfg::cout, L1MuDTSectorProcessor::data(), L1MuDTTFConfig::Debug(), L1MuDTTrackSegPhi::empty(), L1MuDTDataBuffer::getTSphi(), isNextWheelSEU(), m_ERS, m_EUXs, m_ext, m_EXtable, m_QStable, m_sp, m_startTS, m_startTS_Id, numberOfExt(), query::result, L1MuDTERS::run(), filterCSVwithJSON::target, and L1MuDTExtrapolationUnit::which_ext().
{ if ( L1MuDTTFConfig::Debug(3) ) cout << "Run SEU " << m_ext << " " << m_startTS_Id << endl; pair<int,int> ext_pair = L1MuDTExtrapolationUnit::which_ext(m_ext); int target = ext_pair.second; // check if it is a nextWheel or ownWheel SEU bool nextWheel = isNextWheelSEU(); // relative addresses used // nextWheel // extrapolation extrapolation // address address // +--------+--------+ +--------+--------+ // + | | | + | | | // | 4 5 | 6 7 | | | 6 7 | // | | | | | | | | // | +--------+--------+ | +--------+--------+ // |........| | |........| | // phi |..0...1.| 2 3 | phi |........| 2 3 | // |........| | |........| | // | +--------+--------+ | +--------+--------+ // | | | | | | | | // | 8 9 | 10 11 | | | 10 11 | // - | | | - | | | // +--------+--------+ +--------+--------+ // // -- eta -- -- eta -- // loop over all 12 target addresses for ( int reladr = 0; reladr < 12; reladr++ ) { // for the nextWheel extrapolations only reladr: 2,3,6,7,10,11 if ( nextWheel && (reladr/2)%2 == 0 ) continue; const L1MuDTTrackSegPhi* target_ts = m_sp.data()->getTSphi(target, reladr); if ( target_ts && !target_ts->empty() ) { m_EUXs[reladr]->load(m_startTS, target_ts); m_EUXs[reladr]->run(c); if ( m_EUXs[reladr]->result() ) m_EXtable.set(reladr); } } if ( L1MuDTTFConfig::Debug(3) ) { int n_ext = numberOfExt(); if ( n_ext > 0 ) cout << "number of successful EUX : " << n_ext << endl; } if ( m_ERS ) m_ERS->run(); // if ( m_ERS->address(0) != 15 ) m_QStable.set(m_ERS->address(0)); // if ( m_ERS->address(1) != 15 ) m_QStable.set(m_ERS->address(1)); m_QStable = m_EXtable; }
unsigned int L1MuDTSEU::tsId | ( | ) | const [inline] |
return start track segment identifier (relative address)
Definition at line 85 of file L1MuDTSEU.h.
References m_startTS_Id.
Referenced by L1MuDTExtrapolationUnit::run().
{ return m_startTS_Id; }
L1MuDTERS* L1MuDTSEU::m_ERS [private] |
Definition at line 107 of file L1MuDTSEU.h.
Referenced by ers(), L1MuDTSEU(), reset(), run(), and ~L1MuDTSEU().
std::vector<L1MuDTEUX*> L1MuDTSEU::m_EUXs [private] |
Definition at line 106 of file L1MuDTSEU.h.
Referenced by eux(), L1MuDTSEU(), numberOfExt(), reset(), run(), and ~L1MuDTSEU().
Extrapolation L1MuDTSEU::m_ext [private] |
Definition at line 102 of file L1MuDTSEU.h.
std::bitset<12> L1MuDTSEU::m_EXtable [private] |
Definition at line 109 of file L1MuDTSEU.h.
std::bitset<12> L1MuDTSEU::m_QStable [private] |
Definition at line 110 of file L1MuDTSEU.h.
const L1MuDTSectorProcessor& L1MuDTSEU::m_sp [private] |
Definition at line 101 of file L1MuDTSEU.h.
Referenced by L1MuDTSEU(), and run().
const L1MuDTTrackSegPhi* L1MuDTSEU::m_startTS [private] |
Definition at line 105 of file L1MuDTSEU.h.
Referenced by load(), reset(), run(), and ~L1MuDTSEU().
unsigned int L1MuDTSEU::m_startTS_Id [private] |
Definition at line 103 of file L1MuDTSEU.h.
Referenced by isNextWheelSEU(), isOwnWheelSEU(), run(), and tsId().