9 std::vector<ConvertedTTTrack>
out;
18 ap_int<BITSTTCURV>
curvature = ap_int<BITSTTCURV>(
track->getRinvBits());
19 ap_int<BITSPHI> phisec = ap_int<BITSPHI>(ap_int<BITSTTPHI>(
track->getPhiBits()) / 2);
20 ap_int<BITSTTTANL> tanLambda = ap_int<BITSTTTANL>(
track->getTanlBits());
21 ap_int<BITSZ0> z0 = ap_int<BITSZ0>(ap_int<BITSTTZ0>(
track->getZ0Bits()) / (1 << (
BITSTTZ0 -
BITSZ0)));
22 ap_int<BITSD0>
d0 = ap_int<BITSD0>(ap_int<BITSTTD0>(
track->getD0Bits()) / (1 << (
BITSTTD0 -
BITSD0)));
29 tanLambda > 0 ? ap_uint<
BITSTTTANL - 1>(tanLambda) : ap_uint<BITSTTTANL - 1>(-tanLambda);
31 ap_int<BITSETA>
eta = tanLambda > 0 ? ap_int<BITSETA>(absEta) : ap_int<BITSETA>(-absEta);
33 ap_int<BITSPHI> phi = ap_int<BITSPHI>(phisec +
track->phiSector() * 910);
38 bstart = wordconcat<wordtype>(
word, bstart, phi,
BITSPHI);
39 bstart = wordconcat<wordtype>(
word, bstart, tanLambda,
BITSTTTANL);
40 bstart = wordconcat<wordtype>(
word, bstart, z0,
BITSZ0);
47 convertedTrack.
print();
50 return convertedTrack;
std::vector< ConvertedTTTrack > convertTracks(const std::vector< edm::Ptr< l1t::TrackerMuon::L1TTTrackType > > &tracks)
TrackConverter(const edm::ParameterSet &iConfig)
const ap_uint< BITSPT > ptLUT[2251]
ConvertedTTTrack convert(const edm::Ptr< TTTrack< Ref_Phase2TrackerDigi_ > > &track)
void setTrkPtr(const edm::Ptr< TTTrack< Ref_Phase2TrackerDigi_ > > &trkPtr)
T curvature(T InversePt, const MagneticField &field)
uint etaLookup(uint absTanL)
uint ptLookup(uint absCurv)
static constexpr float d0
Class to store the L1 Track Trigger tracks.
void setOfflineQuantities(float pt, float eta, float phi)
uint generateQuality(const edm::Ptr< TTTrack< Ref_Phase2TrackerDigi_ > > &track)