From 76acd2106fb8f28473e5913819e413e97257a5d1 Mon Sep 17 00:00:00 2001 From: mmusich Date: Sun, 10 Nov 2024 15:40:28 +0100 Subject: [PATCH 1/2] add fillDescriptions for CtfSpecialSeedGenerator and implement customization for HLT menu --- .../python/customizeHLTforCMSSW.py | 10 +++ .../interface/CtfSpecialSeedGenerator.h | 11 ++- .../src/CtfSpecialSeedGenerator.cc | 90 ++++++++++++++++--- .../TkSeedGenerator/src/ClusterChecker.cc | 1 + 4 files changed, 95 insertions(+), 17 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index 262cf89fe1ab3..cd5cb40268b60 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -48,6 +48,14 @@ def customiseForOffline(process): return process +def customiseForXXXX(process): + for prod in producers_by_type(process, 'CtfSpecialSeedGenerator'): + if hasattr(prod, "DontCountDetsAboveNClusters"): + value = prod.DontCountDetsAboveNClusters.value() + delattr(prod, "DontCountDetsAboveNClusters") + # Replace it with cms.uint32 + prod.DontCountDetsAboveNClusters = cms.uint32(value) + return process # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): @@ -57,4 +65,6 @@ def customizeHLTforCMSSW(process, menuType="GRun"): # add call to action function in proper order: newest last! # process = customiseFor12718(process) + process = customiseForXXXX(process) + return process diff --git a/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h b/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h index 7197f3c784f85..e7f96715fe4d1 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h +++ b/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h @@ -6,11 +6,13 @@ * from combinations of hits in pairs of strip layers */ //FWK -#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" //DataFormats #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" @@ -42,14 +44,15 @@ class CtfSpecialSeedGenerator : public edm::stream::EDProducer<> { typedef TrajectoryStateOnSurface TSOS; CtfSpecialSeedGenerator(const edm::ParameterSet& conf); - - ~CtfSpecialSeedGenerator() override; //{}; + ~CtfSpecialSeedGenerator() override = default; void beginRun(edm::Run const&, edm::EventSetup const&) override; void endRun(edm::Run const&, edm::EventSetup const&) override; void produce(edm::Event& e, const edm::EventSetup& c) override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: bool run(const edm::EventSetup& c, const edm::Event& e, TrajectorySeedCollection& output); diff --git a/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc b/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc index aed65e38e7ba1..31c889ef64ca8 100644 --- a/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc +++ b/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc @@ -1,17 +1,15 @@ -#include "RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h" -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" -#include "Geometry/Records/interface/TrackerTopologyRcd.h" #include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h" -#include "TrackingTools/GeomPropagators/interface/StraightLinePlaneCrossing.h" - -#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducerFactory.h" -#include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h" -#include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGeneratorFactory.h" -#include "RecoTracker/TkSeedingLayers/interface/OrderedSeedingHits.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" #include "FWCore/Framework/interface/ConsumesCollector.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h" +#include "RecoTracker/TkSeedingLayers/interface/OrderedSeedingHits.h" +#include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGeneratorFactory.h" +#include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h" +#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducerFactory.h" +#include "TrackingTools/GeomPropagators/interface/StraightLinePlaneCrossing.h" using namespace ctfseeding; @@ -48,8 +46,6 @@ CtfSpecialSeedGenerator::CtfSpecialSeedGenerator(const edm::ParameterSet& conf) } } -CtfSpecialSeedGenerator::~CtfSpecialSeedGenerator() = default; - void CtfSpecialSeedGenerator::endRun(edm::Run const&, edm::EventSetup const&) { theSeedBuilder.reset(); } void CtfSpecialSeedGenerator::beginRun(edm::Run const&, const edm::EventSetup& iSetup) { @@ -278,3 +274,71 @@ bool CtfSpecialSeedGenerator::postCheck(const TrajectorySeed& seed) { << " position on Lower scintillator " << positionLower.second; return false; } + +void CtfSpecialSeedGenerator::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + // Top-level parameters + desc.add("SeedMomentum", 5.0); + desc.add("ErrorRescaling", 50.0); + desc.add("UseScintillatorsConstraint", true); + desc.add("TTRHBuilder", "WithTrackAngle"); + desc.add("SeedsFromPositiveY", true); + desc.add("SeedsFromNegativeY", false); + desc.add("CheckHitsAreOnDifferentLayers", false); + desc.add("SetMomentum", true); + desc.add("requireBOFF", false); + desc.add("maxSeeds", 10000); + + // call the cluster checker to insert directly the configuration + ClusterChecker::fillDescriptions(desc); + + // Vector parameters + desc.add>("Charges", {-1}); + + // RegionFactoryPSet (nested PSet) + { + edm::ParameterSetDescription ps_RegionFactoryPSet; + ps_RegionFactoryPSet.add("ComponentName", "GlobalRegionProducer"); + + edm::ParameterSetDescription ps_RegionPSet; + ps_RegionPSet.setAllowAnything(); + ps_RegionFactoryPSet.add("RegionPSet", ps_RegionPSet)->setComment(""); + desc.add("RegionFactoryPSet", ps_RegionFactoryPSet); + } + + // UpperScintillatorParameters (nested PSet) + { + edm::ParameterSetDescription ps_UpperScintillatorParameters; + ps_UpperScintillatorParameters.add("LenghtInZ", 100.0); + ps_UpperScintillatorParameters.add("GlobalX", 0.0); + ps_UpperScintillatorParameters.add("GlobalY", 300.0); + ps_UpperScintillatorParameters.add("GlobalZ", 50.0); + ps_UpperScintillatorParameters.add("WidthInX", 100.0); + desc.add("UpperScintillatorParameters", ps_UpperScintillatorParameters); + } + + // LowerScintillatorParameters (nested PSet) + { + edm::ParameterSetDescription ps_LowerScintillatorParameters; + ps_LowerScintillatorParameters.add("LenghtInZ", 100.0); + ps_LowerScintillatorParameters.add("GlobalX", 0.0); + ps_LowerScintillatorParameters.add("GlobalY", -100.0); + ps_LowerScintillatorParameters.add("GlobalZ", 50.0); + ps_LowerScintillatorParameters.add("WidthInX", 100.0); + desc.add("LowerScintillatorParameters", ps_LowerScintillatorParameters); + } + + // OrderedHitsFactoryPSets (VPSet) + { + edm::ParameterSetDescription ps_OrderedHitsFactoryPSet; + ps_OrderedHitsFactoryPSet.setAllowAnything(); + std::vector default_OrderedHitsFactoryPSet(1); + + // Add the VPSet (OrderedHitsFactoryPSets) to the top-level description + desc.addVPSet("OrderedHitsFactoryPSets", ps_OrderedHitsFactoryPSet, default_OrderedHitsFactoryPSet); + } + + // Add the top-level description to the descriptions + descriptions.addWithDefaultLabel(desc); +} diff --git a/RecoTracker/TkSeedGenerator/src/ClusterChecker.cc b/RecoTracker/TkSeedGenerator/src/ClusterChecker.cc index b8889acaae884..1181adfc99c6b 100644 --- a/RecoTracker/TkSeedGenerator/src/ClusterChecker.cc +++ b/RecoTracker/TkSeedGenerator/src/ClusterChecker.cc @@ -37,6 +37,7 @@ void ClusterChecker::fillDescriptions(edm::ParameterSetDescription& desc) { desc.add("PixelClusterCollectionLabel", edm::InputTag("siPixelClusters")); desc.add("cut", "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)"); + desc.add("DontCountDetsAboveNClusters", 0); } ClusterChecker::~ClusterChecker() {} From ab12932da9a8d720ed786b58ee3982551c4f05c3 Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 11 Nov 2024 09:02:23 +0100 Subject: [PATCH 2/2] introduce fillDescriptions for SeedCombiner, clean up configuration in RecoTrackerP5_cff and customize HLT menu --- .../Configuration/python/customizeHLTforCMSSW.py | 11 +++++++++-- RecoTracker/Configuration/python/RecoTrackerP5_cff.py | 5 +---- RecoTracker/TkSeedGenerator/plugins/SeedCombiner.cc | 9 +++++++-- RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h | 10 +++++++--- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index cd5cb40268b60..1d87fe0c1011d 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -48,13 +48,20 @@ def customiseForOffline(process): return process -def customiseForXXXX(process): +def customiseHLTFor46647(process): for prod in producers_by_type(process, 'CtfSpecialSeedGenerator'): if hasattr(prod, "DontCountDetsAboveNClusters"): value = prod.DontCountDetsAboveNClusters.value() delattr(prod, "DontCountDetsAboveNClusters") # Replace it with cms.uint32 prod.DontCountDetsAboveNClusters = cms.uint32(value) + + for prod in producers_by_type(process, 'SeedCombiner'): + if hasattr(prod, "PairCollection"): + delattr(prod, "PairCollection") + if hasattr(prod, "TripletCollection"): + delattr(prod, "TripletCollection") + return process # CMSSW version specific customizations @@ -65,6 +72,6 @@ def customizeHLTforCMSSW(process, menuType="GRun"): # add call to action function in proper order: newest last! # process = customiseFor12718(process) - process = customiseForXXXX(process) + process = customiseHLTFor46647(process) return process diff --git a/RecoTracker/Configuration/python/RecoTrackerP5_cff.py b/RecoTracker/Configuration/python/RecoTrackerP5_cff.py index 81b08a72720be..0521d02a773ff 100644 --- a/RecoTracker/Configuration/python/RecoTrackerP5_cff.py +++ b/RecoTracker/Configuration/python/RecoTrackerP5_cff.py @@ -20,10 +20,7 @@ from RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cff import * combinedP5SeedsForCTF = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone( seedCollections = ['combinatorialcosmicseedfinderP5', - 'simpleCosmicBONSeeds'], - #backward compatibility 2.2/3.1 - PairCollection = cms.InputTag('combinatorialcosmicseedfinderP5'), - TripletCollection = cms.InputTag('simpleCosmicBONSeeds') + 'simpleCosmicBONSeeds'] ) from RecoTracker.CkfPattern.CkfTrackCandidatesP5_cff import * diff --git a/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.cc b/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.cc index 29ae13d181762..eb7d187c4bb25 100644 --- a/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.cc +++ b/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.cc @@ -43,8 +43,6 @@ SeedCombiner::SeedCombiner(const edm::ParameterSet& cfg) { } } -SeedCombiner::~SeedCombiner() {} - void SeedCombiner::produce(edm::Event& ev, const edm::EventSetup& es) { // Read inputs, and count total seeds size_t ninputs = inputCollections_.size(); @@ -85,3 +83,10 @@ void SeedCombiner::produce(edm::Event& ev, const edm::EventSetup& es) { // Save result into the event ev.put(std::move(result)); } + +void SeedCombiner::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add >("seedCollections", {}); + desc.addOptional >("clusterRemovalInfos", {}); + descriptions.addWithDefaultLabel(desc); +} diff --git a/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h b/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h index 280fa6a2a6598..7410b1128628b 100644 --- a/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h +++ b/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h @@ -2,9 +2,11 @@ #define RecoTracker_TkSeedGenerator_SeedCombiner_H #include -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" #include "DataFormats/TrackerRecHit2D/interface/ClusterRemovalInfo.h" +#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" #include "FWCore/Utilities/interface/Visibility.h" @@ -17,7 +19,9 @@ namespace edm { class dso_hidden SeedCombiner : public edm::stream::EDProducer<> { public: SeedCombiner(const edm::ParameterSet& cfg); - ~SeedCombiner() override; + ~SeedCombiner() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); void produce(edm::Event& ev, const edm::EventSetup& es) override;