23 if (conv_hits.empty())
36 for (
int sub_ID = 5; sub_ID >= 0; sub_ID--) {
37 int subsector = 1 + (sub_ID / 3);
38 int CSC_ID = 1 + (sub_ID % 3);
41 for (
const auto & conv_hits_it : conv_hits) {
44 if (conv_hits_it.Subsector() != subsector || conv_hits_it.CSC_ID() != CSC_ID)
48 if (conv_hits_it.Is_CSC() != 1)
52 if (conv_hits_it.Station() != 1 || (conv_hits_it.Ring() % 3) != 1)
56 if ( (conv_hits_it.Endcap() == 1) != (
endcap_ == 1) || conv_hits_it.Sector() !=
sector_ )
60 bool already_used =
false;
63 for (
const auto & best_tracks_it : best_tracks) {
66 if (best_tracks_it.Mode() < 8)
72 const EMTFHit& conv_hit_j = best_tracks_it.Hits().front();
75 (conv_hits_it.Subsystem() == conv_hit_j.
Subsystem()) &&
76 (conv_hits_it.PC_station() == conv_hit_j.
PC_station()) &&
77 (conv_hits_it.PC_chamber() == conv_hit_j.
PC_chamber()) &&
78 ((conv_hits_it.Ring() % 3) == (conv_hit_j.
Ring() % 3)) &&
79 (conv_hits_it.Strip() == conv_hit_j.
Strip()) &&
81 (conv_hits_it.BX() == conv_hit_j.
BX()) &&
95 if (zone_code & 0b1000) zone = 4;
96 else if (zone_code & 0b0100) zone = 3;
97 else if (zone_code & 0b0010) zone = 2;
98 else if (zone_code & 0b0001) zone = 1;
100 edm::LogError(
"L1T") <<
"EMTF SingleHitTrack.cc - bizzare case where zone_code = " << zone_code;
return;
120 new_trk.
set_ph_num ( conv_hits_it.Zone_hit() );
123 new_trk.
set_theta ( conv_hits_it.Theta() );
124 new_trk.
set_eta ( conv_hits_it.Eta() );
130 one_hit_trks.push_back( new_trk );
132 if (
int(best_tracks.size()) +
int(one_hit_trks.size()) >=
maxTracks_)
136 if (!one_hit_trks.empty())
141 if (!one_hit_trks.empty())
147 best_tracks.insert(best_tracks.end(), one_hit_trks.begin(), one_hit_trks.end());
void set_second_bx(int bits)
void set_sector(int bits)
void set_phi_fp(int bits)
void set_first_bx(int bits)
void set_ph_num(int bits)
void process(const EMTFHitCollection &conv_hits, EMTFTrackCollection &best_tracks) const
void set_PtLUT(EMTFPtLUT bits)
void set_sector_idx(int bits)
l1t::EMTFTrackCollection EMTFTrackCollection
void set_track_num(int bits)
l1t::EMTFHitCollection EMTFHitCollection
void set_theta_fp(int bits)
void set_winner(int bits)
void set_theta(float val)
void set_endcap(int bits)
void push_Hit(const EMTFHit &hit)
void set_phi_loc(float val)
void configure(int verbose, int endcap, int sector, int bx, int maxTracks, bool useSingleHits)
void set_phi_glob(float val)
void set_mode_inv(int bits)