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 {
109 cfg.useRun3CCLUT_OTMB_,
110 cfg.useRun3CCLUT_TMB_);
118 cfg.pattDefinitions_,
119 cfg.symPattDefinitions_,
121 cfg.maxRoadsPerZone_,
122 cfg.useSecondEarliest_);
135 cfg.thetaWindowZone0_,
137 cfg.bugAmbigThetaWin_,
138 cfg.twoStationSameBX_);
146 cfg.maxRoadsPerZone_,
148 cfg.useSecondEarliest_,
149 cfg.bugSameSectorPt0_);
156 pt_assign_engine_dxy_,
162 cfg.fixMode15HighPt_,
171 std::map<int, TriggerPrimitiveCollection> selected_dt_map;
172 std::map<int, TriggerPrimitiveCollection> selected_csc_map;
173 std::map<int, TriggerPrimitiveCollection> selected_rpc_map;
174 std::map<int, TriggerPrimitiveCollection> selected_gem_map;
175 std::map<int, TriggerPrimitiveCollection> selected_me0_map;
176 std::map<int, TriggerPrimitiveCollection> selected_prim_map;
177 std::map<int, TriggerPrimitiveCollection> inclusive_selected_prim_map;
201 selected_dt_map, selected_csc_map, selected_rpc_map, selected_gem_map, selected_me0_map, selected_prim_map);
206 prim_conv.
process(selected_prim_map, conv_hits);
207 extended_conv_hits.push_back(conv_hits);
217 inclusive_selected_prim_map);
218 prim_conv.
process(inclusive_selected_prim_map, inclusive_conv_hits);
221 selected_dt_map.clear();
222 selected_csc_map.clear();
223 selected_rpc_map.clear();
224 selected_gem_map.clear();
225 selected_me0_map.clear();
230 patt_recog.
process(extended_conv_hits, patt_lifetime_map, zone_roads);
234 prim_match.
process(extended_conv_hits, zone_roads, zone_tracks);
238 angle_calc.
process(zone_tracks);
239 extended_best_track_cands.insert(
240 extended_best_track_cands.begin(), zone_tracks.begin(), zone_tracks.end());
244 btrack_sel.
process(extended_best_track_cands, best_tracks);
248 single_hit.
process(conv_hits, best_tracks);
252 pt_assign.
process(best_tracks);
257 out_hits.insert(out_hits.end(), inclusive_conv_hits.begin(), inclusive_conv_hits.end());
258 out_tracks.insert(out_tracks.end(), best_tracks.begin(), best_tracks.end());
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
l1t::EMTFTrackCollection EMTFTrackCollection
void process(const std::deque< EMTFTrackCollection > &extended_best_track_cands, EMTFTrackCollection &best_tracks) const
void process(emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
void process(const EMTFHitCollection &conv_hits, EMTFTrackCollection &best_tracks) const
l1t::EMTFHitCollection EMTFHitCollection
void process(const edm::EventID &event_id, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks) const
PtAssignmentEngine * getPtAssignmentEngine() const
void configure(const EMTFSetup *setup, int verbose, int endcap, int sector)
void configure(int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, int bxShiftME0, bool includeNeighbor, bool duplicateTheta, bool bugME11Dupes)
const VersionControl & getVersionControl() const
constexpr int MIN_TRIGSECTOR
const GeometryTranslator & getGeometryTranslator() 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
static constexpr int verbose
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int thetaWindow, int thetaWindowZone0, bool bugME11Dupes, bool bugAmbigThetaWin, bool twoStationSameBX)
std::array< T, NUM_ZONES > zone_array
void process(T tag, const TriggerPrimitiveCollection &muon_primitives, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
PtAssignmentEngineDxy * getPtAssignmentEngineDxy() 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)
void process(const std::map< int, TriggerPrimitiveCollection > &selected_prim_map, EMTFHitCollection &conv_hits) 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
void process(EMTFTrackCollection &best_tracks)
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 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 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 process(const std::deque< EMTFHitCollection > &extended_conv_hits, const emtf::zone_array< EMTFRoadCollection > &zone_roads, emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
void configure(int verbose, int endcap, int sector, int bx, bool fixZonePhi, bool useNewZones, bool bugSt2PhDiff, bool bugME11Dupes)
L1TMuon::TriggerPrimitiveCollection TriggerPrimitiveCollection
tuple size
Write out results.
const SectorProcessorLUT & getSectorProcessorLUT() const