11 int sector = in_track.
Sector() - 1;
28 (ptlut_data.
bt_vi[0] == 0 && ptlut_data.
bt_vi[1] != 0) ? ptlut_data.
bt_ci[1] + 16 : ptlut_data.
bt_ci[0];
29 int me2_ch_id = ptlut_data.
bt_ci[2];
30 int me3_ch_id = ptlut_data.
bt_ci[3];
31 int me4_ch_id = ptlut_data.
bt_ci[4];
33 int me1_seg_id = (ptlut_data.
bt_vi[0] == 0 && ptlut_data.
bt_vi[1] != 0) ? ptlut_data.
bt_si[1] : ptlut_data.
bt_si[0];
34 int me2_seg_id = ptlut_data.
bt_si[2];
35 int me3_seg_id = ptlut_data.
bt_si[3];
36 int me4_seg_id = ptlut_data.
bt_si[4];
38 auto get_gmt_chamber_me1 = [](
int ch) {
46 else if (ch == 3 + 16)
48 else if (ch == 6 + 16)
50 else if (ch == 9 + 16)
55 auto get_gmt_chamber = [](
int ch) {
69 int EMTF_kBX = (
abs(global_event_BX) % 2048) - 25 + in_track.
BX();
94 for (
const auto& in_track : in_tracks) {
95 int bx = in_track.BX();
97 if (gmtMinBX <= bx && bx <= gmtMaxBX) {
115 int emtfMaxProc = 11;
118 auto sortedCands = std::make_unique<l1t::RegionalMuonCandBxCollection>();
119 sortedCands->clear();
120 sortedCands->setBXRange(minBX, maxBX);
121 for (
int iBX = minBX; iBX <= maxBX; ++iBX) {
122 for (
int proc = emtfMinProc;
proc <= emtfMaxProc;
proc++) {
125 int cand_proc = cand->processor();
128 if (cand_proc !=
proc)
130 sortedCands->push_back(iBX, *cand);
const_iterator end(int bx) const
l1t::EMTFTrackCollection EMTFTrackCollection
void setHwPhi(int bits)
Set compressed relative phi as transmitted by hardware LSB = 2*pi/576 (8 bits)
void sort_uGMT_muons(l1t::RegionalMuonCandBxCollection &cands)
int bunchCrossing() const
void convert(const int global_event_BX, const EMTFTrack &in_track, l1t::RegionalMuonCand &out_cand) const
std::vector< RegionalMuonCand >::const_iterator const_iterator
void setTFIdentifiers(int processor, tftype trackFinder)
Set the processor ID, track-finder type. From these two, the link is set.
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void setTrackSubAddress(bmtfAddress subAddress, int value)
Set a part of the muon candidates track address; specialised for BMTF.
Abs< T >::type abs(const T &t)
void setHwHF(bool bit)
Set HF (halo / fine eta) bit (EMTF: halo -> 1; BMTF: fine eta -> 1)
void setHwQual(int bits)
Set compressed quality code as transmitted by hardware (4 bits)
void setHwPt(int bits)
Set compressed pT as transmitted by hardware LSB = 0.5 (9 bits)
void setHwEta(int bits)
Set compressed eta as transmitted by hardware LSB = 0.010875 (9 bits)
void setHwDXY(int bits)
Set compressed impact parameter with respect to beamspot (4 bits)
void setBXRange(int bxFirst, int bxLast)
void convert_all(const edm::Event &iEvent, const EMTFTrackCollection &in_tracks, l1t::RegionalMuonCandBxCollection &out_cands) const
void setHwSignValid(int bits)
Set whether charge measurement is valid (0 for high pT muons)
int GMT_charge_valid() const
const_iterator begin(int bx) const
void setHwPtUnconstrained(int bits)
Set compressed second displaced pT as transmitted by hardware LSB = 1.0 (8 bits)
void push_back(int bx, T object)
void setHwSign(int bits)
Set charge sign bit (charge = (-1)^(sign))