18 int minBX,
int maxBX,
int bxWindow,
int bxShiftCSC,
int bxShiftRPC,
int bxShiftGEM,
20 const std::vector<int>& zoneBoundaries,
int zoneOverlap,
21 bool includeNeighbor,
bool duplicateTheta,
bool fixZonePhi,
bool useNewZones,
bool fixME11Edges,
22 const std::vector<std::string>& pattDefinitions,
const std::vector<std::string>& symPattDefinitions,
bool useSymPatterns,
23 int thetaWindow,
int thetaWindowZone0,
bool useRPC,
bool useSingleHits,
bool bugSt2PhDiff,
bool bugME11Dupes,
bool bugAmbigThetaWin,
bool twoStationSameBX,
24 int maxRoadsPerZone,
int maxTracks,
bool useSecondEarliest,
bool bugSameSectorPt0,
25 bool readPtLUTFile,
bool fixMode15HighPt,
bool bug9BitDPhi,
bool bugMode7CLCT,
bool bugNegPt,
bool bugGMTPhi,
bool promoteMode7,
int modeQualVer
30 <<
", endcap = " <<
endcap;
return; }
34 <<
", endcap = " << sector;
return; }
35 if (not(tp_geom !=
nullptr))
37 if (not(cond !=
nullptr))
39 if (not(lut !=
nullptr))
41 if (not(pt_assign_engine !=
nullptr))
42 {
edm::LogError(
"L1T") <<
"pt_assign_engine = nullptr";
return; }
101 std::cout <<
"Configure SectorProcessor with fw_version: " << fw_version << std::endl;
104 if (fw_version == 0 || fw_version == 123456)
114 if (fw_version >= 1514764800) {
162 if (fw_version < 1529520380) {
175 else if (fw_version >= 50000) {
225 if (fw_version >= 1496792995)
298 maxBX_ = (fw_version < 47109) ? +4 : +3;
361 bugSt2PhDiff_ = (47109 <= fw_version && fw_version < 47249) ?
true :
false;
370 bugNegPt_ = (fw_version < 47864) ?
true :
false;
389 std::deque<EMTFHitCollection> extended_conv_hits;
392 std::deque<EMTFTrackCollection> extended_best_track_cands;
395 std::map<pattern_ref_t, int> patt_lifetime_map;
404 std::cout <<
"Endcap: " <<
endcap_ <<
" Sector: " <<
sector_ <<
" Event: " << ievent <<
" BX: " << bx << std::endl;
413 extended_best_track_cands,
418 if (bx >=
minBX_ + delayBX) {
419 extended_conv_hits.pop_front();
422 extended_best_track_cands.erase(extended_best_track_cands.end()-
n, extended_best_track_cands.end());
434 std::deque<EMTFHitCollection>& extended_conv_hits,
435 std::deque<EMTFTrackCollection>& extended_best_track_cands,
436 std::map<pattern_ref_t, int>& patt_lifetime_map
507 std::map<int, TriggerPrimitiveCollection> selected_csc_map;
508 std::map<int, TriggerPrimitiveCollection> selected_rpc_map;
509 std::map<int, TriggerPrimitiveCollection> selected_gem_map;
510 std::map<int, TriggerPrimitiveCollection> selected_prim_map;
511 std::map<int, TriggerPrimitiveCollection> inclusive_selected_prim_map;
529 prim_sel.
process(
CSCTag(), muon_primitives, selected_csc_map);
531 prim_sel.
process(
RPCTag(), muon_primitives, selected_rpc_map);
533 prim_sel.
process(
GEMTag(), muon_primitives, selected_gem_map);
534 prim_sel.
merge(selected_csc_map, selected_rpc_map, selected_gem_map, selected_prim_map);
539 prim_conv.
process(selected_prim_map, conv_hits);
540 extended_conv_hits.push_back(conv_hits);
545 prim_sel.
merge_no_truncate(selected_csc_map, selected_rpc_map, selected_gem_map, inclusive_selected_prim_map);
546 prim_conv.
process(inclusive_selected_prim_map, inclusive_conv_hits);
549 selected_csc_map.clear();
550 selected_rpc_map.clear();
551 selected_gem_map.clear();
556 patt_recog.
process(extended_conv_hits, patt_lifetime_map, zone_roads);
560 prim_match.
process(extended_conv_hits, zone_roads, zone_tracks);
564 angle_calc.
process(zone_tracks);
565 extended_best_track_cands.insert(extended_best_track_cands.begin(), zone_tracks.begin(), zone_tracks.end());
569 btrack_sel.
process(extended_best_track_cands, best_tracks);
573 single_hit.
process(conv_hits, best_tracks);
577 pt_assign.
process(best_tracks);
582 out_hits.insert(out_hits.end(), inclusive_conv_hits.begin(), inclusive_conv_hits.end());
583 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
std::vector< std::string > symPattDefinitions_
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, std::string era, 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 thetaWindowZone0, bool useRPC, bool useSingleHits, bool bugSt2PhDiff, bool bugME11Dupes, bool bugAmbigThetaWin, bool twoStationSameBX, int maxRoadsPerZone, int maxTracks, bool useSecondEarliest, bool bugSameSectorPt0, bool readPtLUTFile, bool fixMode15HighPt, bool bug9BitDPhi, bool bugMode7CLCT, bool bugNegPt, bool bugGMTPhi, bool promoteMode7, int modeQualVer)
void merge_no_truncate(const std::map< int, TriggerPrimitiveCollection > &selected_csc_map, const std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, const 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, 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
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int thetaWindow, int thetaWindowZone0, bool bugME11Dupes, bool bugAmbigThetaWin, bool twoStationSameBX)
const SectorProcessorLUT * lut_
std::array< T, NUM_ZONES > zone_array
void process(T tag, const TriggerPrimitiveCollection &muon_primitives, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
l1t::EMTFHitCollection EMTFHitCollection
void process(EventNumber_t ievent, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks) const
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)
PtAssignmentEngine * pt_assign_engine_
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int maxRoadsPerZone, int maxTracks, bool useSecondEarliest, bool bugSameSectorPt0)
void merge(const std::map< int, TriggerPrimitiveCollection > &selected_csc_map, const std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, const std::map< int, TriggerPrimitiveCollection > &selected_gem_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
void process(const std::map< int, TriggerPrimitiveCollection > &selected_prim_map, EMTFHitCollection &conv_hits) const
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 configure(int verbose, int endcap, int sector, int bx, bool fixZonePhi, bool useNewZones, bool bugSt2PhDiff, bool bugME11Dupes)