18 int minBX,
int maxBX,
int bxWindow,
int bxShiftCSC,
int bxShiftRPC,
int bxShiftGEM,
19 const std::vector<int>& zoneBoundaries,
int zoneOverlap,
20 bool includeNeighbor,
bool duplicateTheta,
bool fixZonePhi,
bool useNewZones,
bool fixME11Edges,
21 const std::vector<std::string>& pattDefinitions,
const std::vector<std::string>& symPattDefinitions,
bool useSymPatterns,
22 int thetaWindow,
int thetaWindowRPC,
bool useSingleHits,
bool bugSt2PhDiff,
bool bugME11Dupes,
23 int maxRoadsPerZone,
int maxTracks,
bool useSecondEarliest,
bool bugSameSectorPt0,
24 int ptLUTVersion,
bool readPtLUTFile,
bool fixMode15HighPt,
bool bug9BitDPhi,
bool bugMode7CLCT,
bool bugNegPt,
bool bugGMTPhi,
bool promoteMode7
29 <<
", endcap = " <<
endcap;
return; }
33 <<
", endcap = " << sector;
return; }
34 if (not(tp_geom !=
nullptr))
36 if (not(cond !=
nullptr))
38 if (not(lut !=
nullptr))
40 if (not(pt_assign_engine !=
nullptr))
41 {
edm::LogError(
"L1T") <<
"pt_assign_engine = nullptr";
return; }
102 if (fw_version == 0 || fw_version == 123456)
110 if (fw_version >= 50000) {
123 if (fw_version < 1496792995)
143 "3,16:16,7:7,7:6,7:6",
144 "3,14:14,7:7,8:7,8:7",
145 "2,18:17,7:7,7:5,7:5",
146 "2,13:12,7:7,10:7,10:7",
147 "1,22:19,7:7,7:0,7:0",
148 "1,11:8,7:7,14:7,14:7",
149 "0,30:23,7:7,7:0,7:0",
150 "0,7:0,7:7,14:7,14:7" };
153 "3,16:16:14:14,7:7:7:7,8:7:7:6,8:7:7:6",
154 "2,18:17:13:12,7:7:7:7,10:7:7:4,10:7:7:4",
155 "1,22:19:11:8,7:7:7:7,14:7:7:0,14:7:7:0",
156 "0,30:23:7:0,7:7:7:7,14:7:7:0,14:7:7:0" };
179 maxBX_ = (fw_version < 47109) ? +4 : +3;
242 bugSt2PhDiff_ = (47109 <= fw_version && fw_version < 47249) ?
true :
false;
251 bugNegPt_ = (fw_version < 47864) ?
true :
false;
265 std::deque<EMTFHitCollection> extended_conv_hits;
268 std::deque<EMTFTrackCollection> extended_best_track_cands;
271 std::map<pattern_ref_t, int> patt_lifetime_map;
280 std::cout <<
"Endcap: " <<
endcap_ <<
" Sector: " <<
sector_ <<
" Event: " << ievent <<
" BX: " << bx << std::endl;
289 extended_best_track_cands,
294 if (bx >=
minBX_ + delayBX) {
295 extended_conv_hits.pop_front();
298 extended_best_track_cands.erase(extended_best_track_cands.end()-
n, extended_best_track_cands.end());
310 std::deque<EMTFHitCollection>& extended_conv_hits,
311 std::deque<EMTFTrackCollection>& extended_best_track_cands,
312 std::map<pattern_ref_t, int>& patt_lifetime_map
383 std::map<int, TriggerPrimitiveCollection> selected_csc_map;
384 std::map<int, TriggerPrimitiveCollection> selected_rpc_map;
385 std::map<int, TriggerPrimitiveCollection> selected_gem_map;
386 std::map<int, TriggerPrimitiveCollection> selected_prim_map;
387 std::map<int, TriggerPrimitiveCollection> inclusive_selected_prim_map;
405 prim_sel.
process(
CSCTag(), muon_primitives, selected_csc_map);
406 prim_sel.
process(
RPCTag(), muon_primitives, selected_rpc_map);
407 prim_sel.
process(
GEMTag(), muon_primitives, selected_gem_map);
408 prim_sel.
merge(selected_csc_map, selected_rpc_map, selected_gem_map, selected_prim_map);
413 prim_conv.
process(selected_prim_map, conv_hits);
414 extended_conv_hits.push_back(conv_hits);
419 prim_sel.
merge_no_truncate(selected_csc_map, selected_rpc_map, selected_gem_map, inclusive_selected_prim_map);
420 prim_conv.
process(inclusive_selected_prim_map, inclusive_conv_hits);
425 patt_recog.
process(extended_conv_hits, patt_lifetime_map, zone_roads);
429 prim_match.
process(extended_conv_hits, zone_roads, zone_tracks);
433 angle_calc.
process(zone_tracks);
434 extended_best_track_cands.insert(extended_best_track_cands.begin(), zone_tracks.begin(), zone_tracks.end());
438 btrack_sel.
process(extended_best_track_cands, best_tracks);
442 single_hit.
process(conv_hits, best_tracks);
446 pt_assign.
process(best_tracks);
451 out_hits.insert(out_hits.end(), inclusive_conv_hits.begin(), inclusive_conv_hits.end());
452 out_tracks.insert(out_tracks.end(), best_tracks.begin(), best_tracks.end());
void configure_by_fw_version(unsigned fw_version)
std::vector< std::string > pattDefinitions_
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 process(const std::deque< EMTFTrackCollection > &extended_best_track_cands, EMTFTrackCollection &best_tracks) const
std::vector< int > zoneBoundaries_
const ConditionHelper * cond_
void configure(const GeometryTranslator *tp_geom, const SectorProcessorLUT *lut, int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, const std::vector< int > &zoneBoundaries, int zoneOverlap, bool duplicateTheta, bool fixZonePhi, bool useNewZones, bool fixME11Edges, bool bugME11Dupes)
void process(emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
unsigned long long EventNumber_t
void process(const EMTFHitCollection &conv_hits, EMTFTrackCollection &best_tracks) const
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int thetaWindow, int thetaWindowRPC, bool bugME11Dupes)
std::vector< std::string > symPattDefinitions_
void configure(int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, bool includeNeighbor, bool duplicateTheta, bool bugME11Dupes)
const GeometryTranslator * tp_geom_
l1t::EMTFTrackCollection EMTFTrackCollection
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
const SectorProcessorLUT * lut_
void set_pt_lut_version(unsigned pt_lut_version)
std::array< T, NUM_ZONES > zone_array
void process(T tag, const TriggerPrimitiveCollection &muon_primitives, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
void merge_no_truncate(std::map< int, TriggerPrimitiveCollection > &selected_csc_map, std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, std::map< int, TriggerPrimitiveCollection > &selected_gem_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
l1t::EMTFHitCollection EMTFHitCollection
PtAssignmentEngine ** pt_assign_engine_
void process(EventNumber_t ievent, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks) 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 configure(const GeometryTranslator *tp_geom, const ConditionHelper *cond, const SectorProcessorLUT *lut, PtAssignmentEngine **pt_assign_engine, int verbose, int endcap, int sector, int minBX, int maxBX, int bxWindow, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, const std::vector< int > &zoneBoundaries, int zoneOverlap, bool includeNeighbor, bool duplicateTheta, bool fixZonePhi, bool useNewZones, bool fixME11Edges, const std::vector< std::string > &pattDefinitions, const std::vector< std::string > &symPattDefinitions, bool useSymPatterns, int thetaWindow, int thetaWindowRPC, bool useSingleHits, bool bugSt2PhDiff, bool bugME11Dupes, int maxRoadsPerZone, int maxTracks, bool useSecondEarliest, bool bugSameSectorPt0, int ptLUTVersion, bool readPtLUTFile, bool fixMode15HighPt, bool bug9BitDPhi, bool bugMode7CLCT, bool bugNegPt, bool bugGMTPhi, bool promoteMode7)
L1TMuon::TriggerPrimitiveCollection TriggerPrimitiveCollection
void process(EMTFTrackCollection &best_tracks)
void configure(int verbose, int endcap, int sector, int bx, int maxTracks, bool useSingleHits)
void process(const std::deque< EMTFHitCollection > &extended_conv_hits, const emtf::zone_array< EMTFRoadCollection > &zone_roads, emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
void merge(std::map< int, TriggerPrimitiveCollection > &selected_csc_map, std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, std::map< int, TriggerPrimitiveCollection > &selected_gem_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
void configure(int verbose, int endcap, int sector, int bx, bool fixZonePhi, bool useNewZones, bool bugSt2PhDiff, bool bugME11Dupes)
void configure(const PtAssignmentEngine *pt_assign_engine, int verbose, int endcap, int sector, int bx, int ptLUTVersion, bool readPtLUTFile, bool fixMode15HighPt, bool bug9BitDPhi, bool bugMode7CLCT, bool bugNegPt, bool bugGMTPhi, bool promoteMode7)