1 #ifndef PHASE2GMT_TRACKCONVERTER 2 #define PHASE2GMT_TRACKCONVERTER 17 std::vector<ConvertedTTTrack>
out;
32 if (absCurv >=
uint(
i[0]) && absCurv <
uint(
i[1])) {
36 return (absCurv >>
i[2]) +
i[3];
44 if (absTanL >=
uint(
i[0]) && absTanL <
uint(
i[1])) {
48 return (absTanL >>
i[2]) +
i[3];
65 uint absTanL = tanLambda > 0 ? (tanLambda) : (-tanLambda);
67 int eta = tanLambda > 0 ? (absEta) : (-absEta);
69 ap_int<BITSPHI> phiSec = ap_int<BITSPHI>(phi) -
71 ap_int<BITSPHI> phiCorrected = ap_int<BITSPHI>(phiSec +
track->phiSector() * 910);
76 bstart = wordconcat<wordtype>(
word, bstart, phiSec,
BITSTTPHI);
77 bstart = wordconcat<wordtype>(
word, bstart, tanLambda,
BITSTTTANL);
78 bstart = wordconcat<wordtype>(
word, bstart, z0,
BITSZ0);
80 bstart = wordconcat<wordtype>(
word, bstart,
uint(
track->chi2()), 4);
85 convertedTrack.print();
86 convertedTrack.setTrkPtr(
track);
87 return convertedTrack;
TrackConverter(const edm::ParameterSet &iConfig)
ConvertedTTTrack convert(const edm::Ptr< TTTrack< Ref_Phase2TrackerDigi_ > > &track)
T curvature(T InversePt, const MagneticField &field)
const int etaShifts[4][5]
std::vector< ConvertedTTTrack > convertTracks(const std::vector< edm::Ptr< l1t::TrackerMuon::L1TTTrackType > > &tracks)
uint etaLookup(uint absTanL)
uint ptLookup(uint absCurv)
static constexpr float d0
auto const & tracks
cannot be loose
Class to store the L1 Track Trigger tracks.
const ap_uint< BITSPT > ptLUT[1858]
void setOfflineQuantities(float pt, float eta, float phi)
uint generateQuality(const edm::Ptr< TTTrack< Ref_Phase2TrackerDigi_ > > &track)