58 theExtFilter(sp.tf().
config()->getExtTSFilter()),
59 nbit_phi(sp.tf().
config()->getNbitsExtPhi()),
60 nbit_phib(sp.tf().
config()->getNbitsExtPhib()) {}
101 cout <<
"Error: EUX has no data loaded" << endl;
131 cout <<
"EUX : using look-up table : " << static_cast<Extrapolation>(lut_idx) << endl;
159 int phib_start = (
m_start->
phib() >> sh_phib) << sh_phib;
161 phib_start += (1 << sh_phib) - 1;
164 int diff = phi_target - phi_start;
168 int offset = -2144 >> sh_phi;
170 int low = extLUTs.
getLow(lut_idx, phib_start);
173 low += (1 << sh_phi) - 1;
175 high += (1 << sh_phi) - 1;
179 int phi_offset = phi_target -
offset;
180 if ((lut_idx ==
EX34) || (lut_idx ==
EX21))
181 phi_offset = phi_start +
offset;
182 if (phi_offset >= (1 << (
nbit_phi - 1)) - 1)
184 if (phi_offset < -(1 << (
nbit_phi - 1)) + 1)
194 m_quality = (qual_st == 7) ? 0 : qual_st + 1;
196 m_quality = (qual_ta == 7) ? 0 : qual_ta + 1;
235 pair<const L1MuDTTrackSegPhi*, const L1MuDTTrackSegPhi*>
L1MuDTEUX::ts()
const {
236 return pair<const L1MuDTTrackSegPhi*, const L1MuDTTrackSegPhi*>(
m_start,
m_target);
244 int new_sector = sector % 12;
246 new_sector = new_sector - 12;
248 new_sector = new_sector + 12;
bool result() const
return extrapolation result
int wheel() const
return wheel
int wheel() const
return wheel number
std::pair< const L1MuDTTrackSegPhi *, const L1MuDTTrackSegPhi * > ts() const
return pointer to start and target track segment
const L1MuDTTrackFinder & tf() const
return reference to barrel MTTF
int getLow(int ext_ind, int address) const
get low_value for a given address
int sector() const
return sector number
void reset()
reset Extrapolator
unsigned short int get_soc_qcut_st2(int wh, int sc) const
int phib() const
return phib
unsigned short int get_soc_qcut_st1(int wh, int sc) const
void load(const L1MuDTTrackSegPhi *start_ts, const L1MuDTTrackSegPhi *target_ts)
load data into EUX
unsigned short int get_soc_qcut_st4(int wh, int sc) const
const L1MuDTSecProcId & id() const
return Sector Processor identifier
int id() const
return Extrapolation identifier
unsigned int quality() const
return extrapolation quality
unsigned short const nbit_phib
int phi() const
return phi
unsigned short const nbit_phi
Abs< T >::type abs(const T &t)
int sec_mod(int) const
output sector numbers in the range -6 to +5
int getHigh(int ext_ind, int address) const
get high_value for a given address
bool operator==(const L1MuDTEUX &) const
equal operator
L1MuDTEUX(const L1MuDTSectorProcessor &sp, const L1MuDTSEU &seu, int id)
constructor
unsigned short int address() const
return extrapolation address (0-11) (address = 15 indicates negative ext. result) ...
int sector() const
return sector
static L1MuDTTFConfig * config()
return configuration
int quality() const
return quality code
const L1MuDTTrackSegPhi * m_target
unsigned short int m_quality
const L1MuDTSectorProcessor & m_sp
void run(const L1MuDTExtLut &extLUTs, const L1MuDTTFParameters &pars)
run Extrapolator
Extrapolation ext() const
return extrapolation type
const L1MuDTTrackSegPhi * m_start
unsigned short int m_address
bool get_soc_openlut_extr(int wh, int sc) const