26 std::deque<EMTFHitCollection> extended_conv_hits;
29 std::deque<EMTFTrackCollection> extended_best_track_cands;
32 std::map<pattern_ref_t, int> patt_lifetime_map;
37 int delayBX =
cfg.bxWindow_ - 1;
39 for (
int bx =
cfg.minBX_;
bx <=
cfg.maxBX_ + delayBX; ++
bx) {
46 bx, muon_primitives, out_hits, out_tracks, extended_conv_hits, extended_best_track_cands, patt_lifetime_map);
49 if (
bx >=
cfg.minBX_ + delayBX) {
50 extended_conv_hits.pop_front();
53 extended_best_track_cands.erase(extended_best_track_cands.end() -
n,
54 extended_best_track_cands.end());
65 std::deque<EMTFHitCollection>& extended_conv_hits,
66 std::deque<EMTFTrackCollection>& extended_best_track_cands,
67 std::map<pattern_ref_t, int>& patt_lifetime_map)
const {
90 cfg.useRun3CCLUT_OTMB_,
91 cfg.useRun3CCLUT_TMB_);
111 cfg.useRun3CCLUT_OTMB_,
112 cfg.useRun3CCLUT_TMB_);
120 cfg.pattDefinitions_,
121 cfg.symPattDefinitions_,
123 cfg.maxRoadsPerZone_,
124 cfg.useSecondEarliest_);
137 cfg.thetaWindowZone0_,
139 cfg.bugAmbigThetaWin_,
140 cfg.twoStationSameBX_);
148 cfg.maxRoadsPerZone_,
150 cfg.useSecondEarliest_,
151 cfg.bugSameSectorPt0_);
158 pt_assign_engine_dxy_,
164 cfg.fixMode15HighPt_,
173 std::map<int, TriggerPrimitiveCollection> selected_dt_map;
174 std::map<int, TriggerPrimitiveCollection> selected_csc_map;
175 std::map<int, TriggerPrimitiveCollection> selected_rpc_map;
176 std::map<int, TriggerPrimitiveCollection> selected_gem_map;
177 std::map<int, TriggerPrimitiveCollection> selected_me0_map;
178 std::map<int, TriggerPrimitiveCollection> selected_prim_map;
179 std::map<int, TriggerPrimitiveCollection> inclusive_selected_prim_map;
203 selected_dt_map, selected_csc_map, selected_rpc_map, selected_gem_map, selected_me0_map, selected_prim_map);
208 prim_conv.
process(selected_prim_map, conv_hits);
209 extended_conv_hits.push_back(conv_hits);
219 inclusive_selected_prim_map);
220 prim_conv.
process(inclusive_selected_prim_map, inclusive_conv_hits);
223 selected_dt_map.clear();
224 selected_csc_map.clear();
225 selected_rpc_map.clear();
226 selected_gem_map.clear();
227 selected_me0_map.clear();
232 patt_recog.
process(extended_conv_hits, patt_lifetime_map, zone_roads);
236 prim_match.
process(extended_conv_hits, zone_roads, zone_tracks);
240 angle_calc.
process(zone_tracks);
241 extended_best_track_cands.insert(
242 extended_best_track_cands.begin(), zone_tracks.begin(), zone_tracks.end());
246 btrack_sel.
process(extended_best_track_cands, best_tracks);
250 single_hit.
process(conv_hits, best_tracks);
254 pt_assign.
process(best_tracks);
259 out_hits.insert(out_hits.end(), inclusive_conv_hits.begin(), inclusive_conv_hits.end());
260 out_tracks.insert(out_tracks.end(), best_tracks.begin(), best_tracks.end());
void merge(const std::map< int, TriggerPrimitiveCollection > &selected_dt_map, const std::map< int, TriggerPrimitiveCollection > &selected_csc_map, const std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, const std::map< int, TriggerPrimitiveCollection > &selected_gem_map, const std::map< int, TriggerPrimitiveCollection > &selected_me0_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
void process(const std::deque< EMTFHitCollection > &extended_conv_hits, const emtf::zone_array< EMTFRoadCollection > &zone_roads, emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
void process(const std::deque< EMTFTrackCollection > &extended_best_track_cands, EMTFTrackCollection &best_tracks) const
l1t::EMTFTrackCollection EMTFTrackCollection
void process(const EMTFHitCollection &conv_hits, EMTFTrackCollection &best_tracks) const
void process(emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
l1t::EMTFHitCollection EMTFHitCollection
void configure(const EMTFSetup *setup, int verbose, int endcap, int sector)
const GeometryTranslator & getGeometryTranslator() const
void merge_no_truncate(const std::map< int, TriggerPrimitiveCollection > &selected_dt_map, const std::map< int, TriggerPrimitiveCollection > &selected_csc_map, const std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, const std::map< int, TriggerPrimitiveCollection > &selected_gem_map, const std::map< int, TriggerPrimitiveCollection > &selected_me0_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
constexpr int MIN_TRIGSECTOR
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int thetaWindow, int thetaWindowZone0, bool bugME11Dupes, bool bugAmbigThetaWin, bool twoStationSameBX)
void process(const std::map< int, TriggerPrimitiveCollection > &selected_prim_map, EMTFHitCollection &conv_hits) const
std::array< T, NUM_ZONES > zone_array
void process(const edm::EventID &event_id, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks) const
void configure(int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, int bxShiftME0, bool includeNeighbor, bool duplicateTheta, bool bugME11Dupes, bool useRun3CCLUT_OTMB, bool useRun3CCLUT_TMB)
const SectorProcessorLUT & getSectorProcessorLUT() const
void process_single_bx(int bx, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks, std::deque< EMTFHitCollection > &extended_conv_hits, std::deque< EMTFTrackCollection > &extended_best_track_cands, std::map< pattern_ref_t, int > &patt_lifetime_map) const
const VersionControl & getVersionControl() const
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, const std::vector< std::string > &pattDefinitions, const std::vector< std::string > &symPattDefinitions, bool useSymPatterns, int maxRoadsPerZone, bool useSecondEarliest)
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int maxRoadsPerZone, int maxTracks, bool useSecondEarliest, bool bugSameSectorPt0)
PtAssignmentEngine * getPtAssignmentEngine() const
void process(const std::deque< EMTFHitCollection > &extended_conv_hits, std::map< pattern_ref_t, int > &patt_lifetime_map, emtf::zone_array< EMTFRoadCollection > &zone_roads) const
void process(EMTFTrackCollection &best_tracks)
void configure(PtAssignmentEngine *pt_assign_engine, PtAssignmentEngineDxy *pt_assign_engine_dxy, int verbose, int endcap, int sector, int bx, bool readPtLUTFile, bool fixMode15HighPt, bool bug9BitDPhi, bool bugMode7CLCT, bool bugNegPt, bool bugGMTPhi, bool promoteMode7, int modeQualVer, std::string pbFileName)
void process(T tag, const TriggerPrimitiveCollection &muon_primitives, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
void configure(int verbose, int endcap, int sector, int bx, int maxTracks, bool useSingleHits)
void configure(const GeometryTranslator *tp_geom, const SectorProcessorLUT *pc_lut, int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, int bxShiftME0, const std::vector< int > &zoneBoundaries, int zoneOverlap, bool duplicateTheta, bool fixZonePhi, bool useNewZones, bool fixME11Edges, bool bugME11Dupes, bool useRun3CCLUT_OTMB, bool useRun3CCLUT_TMB)
constexpr int MAX_TRIGSECTOR
void configure(int verbose, int endcap, int sector, int bx, bool fixZonePhi, bool useNewZones, bool bugSt2PhDiff, bool bugME11Dupes)
L1TMuon::TriggerPrimitiveCollection TriggerPrimitiveCollection
PtAssignmentEngineDxy * getPtAssignmentEngineDxy() const