From 080d8c6a669f3172a63481ed07cd1e811dcd17ca Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Thu, 23 May 2024 10:23:48 +0200 Subject: [PATCH 1/9] add long-track bonus to CkfTrajectoryBuilder --- .../python/MuonCkfTrajectoryBuilder_cfi.py | 2 ++ .../CkfPattern/interface/CkfTrajectoryBuilder.h | 2 ++ .../CkfPattern/python/CkfTrajectoryBuilder_cfi.py | 2 ++ RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc | 12 ++++++++++-- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/RecoMuon/L3TrackFinder/python/MuonCkfTrajectoryBuilder_cfi.py b/RecoMuon/L3TrackFinder/python/MuonCkfTrajectoryBuilder_cfi.py index 42fce0618221a..8e54dc7fabc4d 100644 --- a/RecoMuon/L3TrackFinder/python/MuonCkfTrajectoryBuilder_cfi.py +++ b/RecoMuon/L3TrackFinder/python/MuonCkfTrajectoryBuilder_cfi.py @@ -19,6 +19,8 @@ rescaleErrorIfFail = cms.double(1.0), propagatorOpposite = cms.string('PropagatorWithMaterialOpposite'), lostHitPenalty = cms.double(30.0), + foundHitBonus = cms.double(0.0), + minHitForDoubleBonus = cms.int32(9999), #this is present in HLT config, appears to be dummy # appendToDataLabel = cms.string( "" ), #safety cone size diff --git a/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h b/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h index 209978eb9dd2d..c5d7b8e0d8df7 100644 --- a/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h +++ b/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h @@ -63,6 +63,8 @@ class CkfTrajectoryBuilder : public BaseCkfTrajectoryBuilder { int theMaxCand; /**< Maximum number of trajectory candidates to propagate to the next layer. */ float theLostHitPenalty; /**< Chi**2 Penalty for each lost hit. */ + float theFoundHitBonus; /**< Chi**2 Bonus for each found hit. */ + int theMinHitForDoubleBonus; /**< minimun number of hits to double the bonus above */ bool theIntermediateCleaning; /**< Tells whether an intermediary cleaning stage should take place during TB. */ bool theAlwaysUseInvalidHits; diff --git a/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py b/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py index d4df8e456eb83..8d360b9497e44 100644 --- a/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py +++ b/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py @@ -20,6 +20,8 @@ propagatorOpposite = cms.string('PropagatorWithMaterialOpposite'), # propagatorOpposite = cms.string('PropagatorWithMaterialParabolicMfOpposite'), lostHitPenalty = cms.double(30.0), + foundHitBonus = cms.double(10.0), + minHitForDoubleBonus = cms.int32(8), #SharedSeedCheck = cms.bool(False), seedAs5DHit = cms.bool(False) ) diff --git a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc index 3680471fd89de..dbfb957650e29 100644 --- a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc @@ -40,6 +40,8 @@ CkfTrajectoryBuilder::CkfTrajectoryBuilder(const edm::ParameterSet& conf, : BaseCkfTrajectoryBuilder(conf, iC, std::move(filter)) { theMaxCand = conf.getParameter("maxCand"); theLostHitPenalty = conf.getParameter("lostHitPenalty"); + theFoundHitBonus = conf.getParameter("foundHitBonus"); + theMinHitForDoubleBonus = conf.getParameter("minHitForDoubleBounus"); theIntermediateCleaning = conf.getParameter("intermediateCleaning"); theAlwaysUseInvalidHits = conf.getParameter("alwaysUseInvalidHits"); } @@ -48,6 +50,8 @@ void CkfTrajectoryBuilder::fillPSetDescription(edm::ParameterSetDescription& iDe BaseCkfTrajectoryBuilder::fillPSetDescription(iDesc); iDesc.add("maxCand", 5); iDesc.add("lostHitPenalty", 30.); + iDesc.add("foundHitBonus", 10.); + iDesc.add("minHitForDoubleBounus", 8); iDesc.add("intermediateCleaning", true); iDesc.add("alwaysUseInvalidHits", true); @@ -104,10 +108,14 @@ unsigned int CkfTrajectoryBuilder::limitedCandidates(const std::shared_ptr theMinHitForDoubleBonus ? bonus : 0; + return a.chiSquared() + a.lostHits() * theLostHitPenalty - bonus * a.foundHits(); }; + auto trajCandLess = [&](TempTrajectory const& a, TempTrajectory const& b) { return score(a) < score(b); }; + while (!candidates.empty()) { newCand.clear(); bool full = 0; From eab7107f187e072d0f0f1e403c81c5ff5d4df217 Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Thu, 23 May 2024 10:40:39 +0200 Subject: [PATCH 2/9] cleanup --- .../CkfPattern/plugins/TrajectoryLessByFoundHits.h | 14 -------------- .../CkfPattern/plugins/TrajectorySegmentBuilder.cc | 4 ++-- 2 files changed, 2 insertions(+), 16 deletions(-) delete mode 100644 RecoTracker/CkfPattern/plugins/TrajectoryLessByFoundHits.h diff --git a/RecoTracker/CkfPattern/plugins/TrajectoryLessByFoundHits.h b/RecoTracker/CkfPattern/plugins/TrajectoryLessByFoundHits.h deleted file mode 100644 index 77f81ba420db7..0000000000000 --- a/RecoTracker/CkfPattern/plugins/TrajectoryLessByFoundHits.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef TrajectoryLessByFoundHits_h_ -#define TrajectoryLessByFoundHits_h_ - -#include "TrackingTools/PatternTools/interface/Trajectory.h" -#include - -inline bool lessByFoundHits(const Trajectory& a, const Trajectory& b) { return a.foundHits() < b.foundHits(); } -inline bool lessByFoundHits(const TempTrajectory& a, const TempTrajectory& b) { return a.foundHits() < b.foundHits(); } - -struct TrajectoryLessByFoundHits { - bool operator()(const Trajectory& a, const Trajectory& b) const { return a.foundHits() < b.foundHits(); } - bool operator()(const TempTrajectory& a, const TempTrajectory& b) const { return a.foundHits() < b.foundHits(); } -}; -#endif diff --git a/RecoTracker/CkfPattern/plugins/TrajectorySegmentBuilder.cc b/RecoTracker/CkfPattern/plugins/TrajectorySegmentBuilder.cc index df1d438e1f869..fc9fff86b720b 100644 --- a/RecoTracker/CkfPattern/plugins/TrajectorySegmentBuilder.cc +++ b/RecoTracker/CkfPattern/plugins/TrajectorySegmentBuilder.cc @@ -13,7 +13,6 @@ #include "TrackingTools/MeasurementDet/interface/TrajectoryMeasurementGroup.h" #include "TrackingTools/DetLayers/interface/DetGroup.h" #include "TrackingTools/DetLayers/interface/DetLayer.h" -#include "TrajectoryLessByFoundHits.h" #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h" #include "TrackingTools/DetLayers/interface/GeomDetCompatibilityChecker.h" #include "TrackingTools/MeasurementDet/interface/MeasurementDet.h" @@ -482,7 +481,8 @@ void TrajectorySegmentBuilder::cleanCandidates(vector& candidate int index[NC]; for (int i = 0; i != NC; ++i) index[i] = i; - std::sort(index, index + NC, [&candidates](int i, int j) { return lessByFoundHits(candidates[i], candidates[j]); }); + std::sort( + index, index + NC, [&candidates](int i, int j) { return candidates[i].foundHits() < candidates[j].foundHits(); }); // cout << "SortedCandidates.foundHits"; // for (auto i1 : index) // cout << " " << candidates[i1].foundHits(); From 9b8c5d13b1543d727a519fa3f333f33551a60519 Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Thu, 23 May 2024 12:08:49 +0200 Subject: [PATCH 3/9] fix misspellings --- .../python/trajectoryBuilderForConversions_cfi.py | 2 ++ RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/RecoEgamma/EgammaPhotonProducers/python/trajectoryBuilderForConversions_cfi.py b/RecoEgamma/EgammaPhotonProducers/python/trajectoryBuilderForConversions_cfi.py index 183650f43c4b9..c8d064187a5e7 100644 --- a/RecoEgamma/EgammaPhotonProducers/python/trajectoryBuilderForConversions_cfi.py +++ b/RecoEgamma/EgammaPhotonProducers/python/trajectoryBuilderForConversions_cfi.py @@ -17,6 +17,8 @@ trajectoryFilter = dict(refToPSet_ = 'TrajectoryFilterForConversions'), maxCand = 5, lostHitPenalty = 30., + foundHitBonus = 10., + minHitForDoubleBonus = 8, intermediateCleaning = True, alwaysUseInvalidHits = True, seedAs5DHit = False diff --git a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc index dbfb957650e29..8c8215044628a 100644 --- a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc @@ -41,7 +41,7 @@ CkfTrajectoryBuilder::CkfTrajectoryBuilder(const edm::ParameterSet& conf, theMaxCand = conf.getParameter("maxCand"); theLostHitPenalty = conf.getParameter("lostHitPenalty"); theFoundHitBonus = conf.getParameter("foundHitBonus"); - theMinHitForDoubleBonus = conf.getParameter("minHitForDoubleBounus"); + theMinHitForDoubleBonus = conf.getParameter("minHitForDoubleBonus"); theIntermediateCleaning = conf.getParameter("intermediateCleaning"); theAlwaysUseInvalidHits = conf.getParameter("alwaysUseInvalidHits"); } @@ -51,7 +51,7 @@ void CkfTrajectoryBuilder::fillPSetDescription(edm::ParameterSetDescription& iDe iDesc.add("maxCand", 5); iDesc.add("lostHitPenalty", 30.); iDesc.add("foundHitBonus", 10.); - iDesc.add("minHitForDoubleBounus", 8); + iDesc.add("minHitForDoubleBonus", 8); iDesc.add("intermediateCleaning", true); iDesc.add("alwaysUseInvalidHits", true); From 3457dcbef74177b64bf427a1258f6fd8f657f2b6 Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Thu, 23 May 2024 15:13:39 +0200 Subject: [PATCH 4/9] introduce HLT modifier --- HLTrigger/Configuration/python/customizeHLTforCMSSW.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index b35dfef990fec..a888039d66c0f 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -268,6 +268,14 @@ def customizeHLTfor44576(process): break return process + +def customizeHLTfor45023(process): + for pset in process.psets.values(): + if hasattr(pset, 'ComponentType') and pset.ComponentType == 'CkfTrajectoryBuilder': + pset.foundHitBonus = cms.double(0.0) + pset.minHitForDoubleBonus = cms.int32(9999) + return process + # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): @@ -278,5 +286,6 @@ def customizeHLTforCMSSW(process, menuType="GRun"): process = checkHLTfor43774(process) process = customizeHLTfor44576(process) + process = customizeHLTfor45023(process) return process From 03e19303a17976f757c7748fb9c0194a2c0212d4 Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Fri, 24 May 2024 10:03:06 +0200 Subject: [PATCH 5/9] Make default noop --- .../python/trajectoryBuilderForConversions_cfi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoEgamma/EgammaPhotonProducers/python/trajectoryBuilderForConversions_cfi.py b/RecoEgamma/EgammaPhotonProducers/python/trajectoryBuilderForConversions_cfi.py index c8d064187a5e7..51290a2d9a55a 100644 --- a/RecoEgamma/EgammaPhotonProducers/python/trajectoryBuilderForConversions_cfi.py +++ b/RecoEgamma/EgammaPhotonProducers/python/trajectoryBuilderForConversions_cfi.py @@ -17,8 +17,8 @@ trajectoryFilter = dict(refToPSet_ = 'TrajectoryFilterForConversions'), maxCand = 5, lostHitPenalty = 30., - foundHitBonus = 10., - minHitForDoubleBonus = 8, + foundHitBonus = 0., + minHitForDoubleBonus = 8888, intermediateCleaning = True, alwaysUseInvalidHits = True, seedAs5DHit = False From af6d539f44b2397498444d430efe9199113c24fa Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Fri, 24 May 2024 10:04:14 +0200 Subject: [PATCH 6/9] Make default no-op --- RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py b/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py index 8d360b9497e44..b1ac8c3ead8f5 100644 --- a/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py +++ b/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py @@ -20,8 +20,8 @@ propagatorOpposite = cms.string('PropagatorWithMaterialOpposite'), # propagatorOpposite = cms.string('PropagatorWithMaterialParabolicMfOpposite'), lostHitPenalty = cms.double(30.0), - foundHitBonus = cms.double(10.0), - minHitForDoubleBonus = cms.int32(8), + foundHitBonus = cms.double(0.0), + minHitForDoubleBonus = cms.int32(8888), #SharedSeedCheck = cms.bool(False), seedAs5DHit = cms.bool(False) ) From 56e566058549b2614f664fa7afce11da1f8a7fea Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Fri, 24 May 2024 10:04:48 +0200 Subject: [PATCH 7/9] Make defualt no-op --- RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc index 8c8215044628a..7ee61329f57de 100644 --- a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc @@ -50,8 +50,8 @@ void CkfTrajectoryBuilder::fillPSetDescription(edm::ParameterSetDescription& iDe BaseCkfTrajectoryBuilder::fillPSetDescription(iDesc); iDesc.add("maxCand", 5); iDesc.add("lostHitPenalty", 30.); - iDesc.add("foundHitBonus", 10.); - iDesc.add("minHitForDoubleBonus", 8); + iDesc.add("foundHitBonus", 0.); + iDesc.add("minHitForDoubleBonus", 8888); iDesc.add("intermediateCleaning", true); iDesc.add("alwaysUseInvalidHits", true); From e1e1326ae84256285582a7d9283fc701db735bea Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Fri, 24 May 2024 10:23:45 +0200 Subject: [PATCH 8/9] remove customizer from customizeHLTforCMSSW.py --- HLTrigger/Configuration/python/customizeHLTforCMSSW.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index a888039d66c0f..d2168339adeb0 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -269,13 +269,6 @@ def customizeHLTfor44576(process): return process -def customizeHLTfor45023(process): - for pset in process.psets.values(): - if hasattr(pset, 'ComponentType') and pset.ComponentType == 'CkfTrajectoryBuilder': - pset.foundHitBonus = cms.double(0.0) - pset.minHitForDoubleBonus = cms.int32(9999) - return process - # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): @@ -286,6 +279,5 @@ def customizeHLTforCMSSW(process, menuType="GRun"): process = checkHLTfor43774(process) process = customizeHLTfor44576(process) - process = customizeHLTfor45023(process) return process From e4cbb5024d6d69616f985d06b2a95c51bfb3af92 Mon Sep 17 00:00:00 2001 From: Vincenzo Innocente Date: Fri, 24 May 2024 10:28:16 +0200 Subject: [PATCH 9/9] Update customizeHLTforCMSSW.py --- HLTrigger/Configuration/python/customizeHLTforCMSSW.py | 1 - 1 file changed, 1 deletion(-) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index d2168339adeb0..b35dfef990fec 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -268,7 +268,6 @@ def customizeHLTfor44576(process): break return process - # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"):