|
|
Go to the documentation of this file.
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 {
115 cfg.pattDefinitions_,
116 cfg.symPattDefinitions_,
118 cfg.maxRoadsPerZone_,
119 cfg.useSecondEarliest_);
132 cfg.thetaWindowZone0_,
134 cfg.bugAmbigThetaWin_,
135 cfg.twoStationSameBX_);
143 cfg.maxRoadsPerZone_,
145 cfg.useSecondEarliest_,
146 cfg.bugSameSectorPt0_);
158 cfg.fixMode15HighPt_,
166 std::map<int, TriggerPrimitiveCollection> selected_dt_map;
167 std::map<int, TriggerPrimitiveCollection> selected_csc_map;
168 std::map<int, TriggerPrimitiveCollection> selected_rpc_map;
169 std::map<int, TriggerPrimitiveCollection> selected_gem_map;
170 std::map<int, TriggerPrimitiveCollection> selected_me0_map;
171 std::map<int, TriggerPrimitiveCollection> selected_prim_map;
172 std::map<int, TriggerPrimitiveCollection> inclusive_selected_prim_map;
196 selected_dt_map, selected_csc_map, selected_rpc_map, selected_gem_map, selected_me0_map, selected_prim_map);
201 prim_conv.
process(selected_prim_map, conv_hits);
202 extended_conv_hits.push_back(conv_hits);
212 inclusive_selected_prim_map);
213 prim_conv.
process(inclusive_selected_prim_map, inclusive_conv_hits);
216 selected_dt_map.clear();
217 selected_csc_map.clear();
218 selected_rpc_map.clear();
219 selected_gem_map.clear();
220 selected_me0_map.clear();
225 patt_recog.
process(extended_conv_hits, patt_lifetime_map, zone_roads);
229 prim_match.
process(extended_conv_hits, zone_roads, zone_tracks);
233 angle_calc.
process(zone_tracks);
234 extended_best_track_cands.insert(
235 extended_best_track_cands.begin(), zone_tracks.begin(), zone_tracks.end());
239 btrack_sel.
process(extended_best_track_cands, best_tracks);
243 single_hit.
process(conv_hits, best_tracks);
247 pt_assign.
process(best_tracks);
252 out_hits.insert(out_hits.end(), inclusive_conv_hits.begin(), inclusive_conv_hits.end());
253 out_tracks.insert(out_tracks.end(), best_tracks.begin(), best_tracks.end());
void configure(PtAssignmentEngine *pt_assign_engine, int verbose, int endcap, int sector, int bx, bool readPtLUTFile, bool fixMode15HighPt, bool bug9BitDPhi, bool bugMode7CLCT, bool bugNegPt, bool bugGMTPhi, bool promoteMode7, int modeQualVer)
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)
constexpr int MIN_TRIGSECTOR
const VersionControl & getVersionControl() const
const SectorProcessorLUT & getSectorProcessorLUT() const
void process(emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
void process(const EMTFHitCollection &conv_hits, EMTFTrackCollection &best_tracks) const
void process(const std::map< int, TriggerPrimitiveCollection > &selected_prim_map, EMTFHitCollection &conv_hits) const
void process(T tag, const TriggerPrimitiveCollection &muon_primitives, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
void process(const edm::EventID &event_id, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks) const
constexpr int MAX_TRIGSECTOR
l1t::EMTFTrackCollection EMTFTrackCollection
const GeometryTranslator & getGeometryTranslator() const
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int maxRoadsPerZone, int maxTracks, bool useSecondEarliest, bool bugSameSectorPt0)
l1t::EMTFHitCollection EMTFHitCollection
static constexpr int verbose
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
void configure(int verbose, int endcap, int sector, int bx, int maxTracks, bool useSingleHits)
L1TMuon::TriggerPrimitiveCollection TriggerPrimitiveCollection
void configure(const EMTFSetup *setup, int verbose, int endcap, int sector)
PtAssignmentEngine * getPtAssignmentEngine() const
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int thetaWindow, int thetaWindowZone0, bool bugME11Dupes, bool bugAmbigThetaWin, bool twoStationSameBX)
void configure(int verbose, int endcap, int sector, int bx, bool fixZonePhi, bool useNewZones, bool bugSt2PhDiff, bool bugME11Dupes)
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 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(EMTFTrackCollection &best_tracks)
void configure(int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, int bxShiftME0, bool includeNeighbor, bool duplicateTheta, bool bugME11Dupes)
std::array< T, NUM_ZONES > zone_array
void process(const std::deque< EMTFTrackCollection > &extended_best_track_cands, EMTFTrackCollection &best_tracks) const
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)
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< EMTFHitCollection > &extended_conv_hits, std::map< pattern_ref_t, int > &patt_lifetime_map, emtf::zone_array< EMTFRoadCollection > &zone_roads) const