diff --git a/Calibration/HcalIsolatedTrackReco/python/HITmixedPairRegGenerator_cfi.py b/Calibration/HcalIsolatedTrackReco/python/HITmixedPairRegGenerator_cfi.py index 92af88581afa7..d2f46cf5b0618 100644 --- a/Calibration/HcalIsolatedTrackReco/python/HITmixedPairRegGenerator_cfi.py +++ b/Calibration/HcalIsolatedTrackReco/python/HITmixedPairRegGenerator_cfi.py @@ -3,7 +3,7 @@ HITmixedPairRegGenerator = cms.EDProducer("SeedGeneratorFromRegionHitsEDProducer", OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('MixedLayerPairs') + SeedingLayers = cms.InputTag('MixedLayerPairs') ), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('none') diff --git a/Calibration/HcalIsolatedTrackReco/python/HITpixelPairRegGenerator_cfi.py b/Calibration/HcalIsolatedTrackReco/python/HITpixelPairRegGenerator_cfi.py index 6c9c282747016..af5fd8240a58c 100644 --- a/Calibration/HcalIsolatedTrackReco/python/HITpixelPairRegGenerator_cfi.py +++ b/Calibration/HcalIsolatedTrackReco/python/HITpixelPairRegGenerator_cfi.py @@ -3,7 +3,7 @@ HITpixelPairRegGenerator = cms.EDProducer("SeedGeneratorFromRegionHitsEDProducer", OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs') + SeedingLayers = cms.InputTag('PixelLayerPairs') ), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('none') diff --git a/Calibration/HcalIsolatedTrackReco/python/HITpixelTripletRegGenerator_cfi.py b/Calibration/HcalIsolatedTrackReco/python/HITpixelTripletRegGenerator_cfi.py index 0f647f27831e8..529d09b94225e 100644 --- a/Calibration/HcalIsolatedTrackReco/python/HITpixelTripletRegGenerator_cfi.py +++ b/Calibration/HcalIsolatedTrackReco/python/HITpixelTripletRegGenerator_cfi.py @@ -4,7 +4,7 @@ HITpixelTripletRegGenerator = cms.EDProducer("SeedGeneratorFromRegionHitsEDProducer", OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), PixelTripletHLTGenerator = cms.PSet( useBending = cms.bool(True), useFixedPreFiltering = cms.bool(False), diff --git a/FastSimulation/Tracking/python/IterativeDetachedTripletStep_cff.py b/FastSimulation/Tracking/python/IterativeDetachedTripletStep_cff.py index 536b64f039afd..a9691d7900bca 100644 --- a/FastSimulation/Tracking/python/IterativeDetachedTripletStep_cff.py +++ b/FastSimulation/Tracking/python/IterativeDetachedTripletStep_cff.py @@ -30,8 +30,8 @@ # 'BPix1+BPix2+FPix1_neg', # 'BPix1+FPix1_pos+FPix2_pos', # 'BPix1+FPix1_neg+FPix2_neg'] -from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import pixellayertriplets -iterativeDetachedTripletSeeds.layerList = pixellayertriplets.layerList +from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import PixelLayerTriplets +iterativeDetachedTripletSeeds.layerList = PixelLayerTriplets.layerList # candidate producer #from FastSimulation.Tracking.IterativeSecondCandidateProducer_cff import * diff --git a/FastSimulation/Tracking/python/IterativeInitialStep_cff.py b/FastSimulation/Tracking/python/IterativeInitialStep_cff.py index 719730a238b59..f3ed3499c7b58 100644 --- a/FastSimulation/Tracking/python/IterativeInitialStep_cff.py +++ b/FastSimulation/Tracking/python/IterativeInitialStep_cff.py @@ -29,8 +29,8 @@ # 'BPix1+BPix2+FPix1_neg', # 'BPix1+FPix1_pos+FPix2_pos', # 'BPix1+FPix1_neg+FPix2_neg'] -from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import pixellayertriplets -iterativeInitialSeeds.layerList = pixellayertriplets.layerList +from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import PixelLayerTriplets +iterativeInitialSeeds.layerList = PixelLayerTriplets.layerList # candidate producer import FastSimulation.Tracking.TrackCandidateProducer_cfi diff --git a/FastSimulation/Tracking/python/IterativeLowPtTripletStep_cff.py b/FastSimulation/Tracking/python/IterativeLowPtTripletStep_cff.py index d543ba42b3e83..d478eaba2405d 100644 --- a/FastSimulation/Tracking/python/IterativeLowPtTripletStep_cff.py +++ b/FastSimulation/Tracking/python/IterativeLowPtTripletStep_cff.py @@ -29,8 +29,8 @@ # 'BPix1+BPix2+FPix1_neg', # 'BPix1+FPix1_pos+FPix2_pos', # 'BPix1+FPix1_neg+FPix2_neg'] -from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import pixellayertriplets -iterativeLowPtTripletSeeds.layerList = pixellayertriplets.layerList +from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import PixelLayerTriplets +iterativeLowPtTripletSeeds.layerList = PixelLayerTriplets.layerList # candidate producer import FastSimulation.Tracking.TrackCandidateProducer_cfi diff --git a/FastSimulation/Tracking/python/PixelTripletSeedProducer_cff.py b/FastSimulation/Tracking/python/PixelTripletSeedProducer_cff.py index dedc6443bb794..3347173252f5d 100644 --- a/FastSimulation/Tracking/python/PixelTripletSeedProducer_cff.py +++ b/FastSimulation/Tracking/python/PixelTripletSeedProducer_cff.py @@ -17,5 +17,5 @@ # 'BPix1+BPix2+FPix1_neg', # 'BPix1+FPix1_pos+FPix2_pos', # 'BPix1+FPix1_neg+FPix2_neg'] -from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import pixellayertriplets -pixelTripletSeeds.layerList = pixellayertriplets.layerList +from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import PixelLayerTriplets +pixelTripletSeeds.layerList = PixelLayerTriplets.layerList diff --git a/RecoEgamma/EgammaElectronAlgos/interface/SeedFilter.h b/RecoEgamma/EgammaElectronAlgos/interface/SeedFilter.h index fad4c304e39b2..89e314f95744a 100644 --- a/RecoEgamma/EgammaElectronAlgos/interface/SeedFilter.h +++ b/RecoEgamma/EgammaElectronAlgos/interface/SeedFilter.h @@ -24,6 +24,7 @@ class SeedGeneratorFromRegionHits; class MagneticField; +namespace edm { class ConsumesCollector; } class SeedFilter { public: @@ -34,7 +35,8 @@ class SeedFilter { }; SeedFilter(const edm::ParameterSet& conf, - const Tokens& tokens); + const Tokens& tokens, + edm::ConsumesCollector& iC); ~SeedFilter(); void seeds(edm::Event&, const edm::EventSetup&, const reco::SuperClusterRef &, TrajectorySeedCollection *); diff --git a/RecoEgamma/EgammaElectronAlgos/src/SeedFilter.cc b/RecoEgamma/EgammaElectronAlgos/src/SeedFilter.cc index c530d40320620..77152412635ed 100644 --- a/RecoEgamma/EgammaElectronAlgos/src/SeedFilter.cc +++ b/RecoEgamma/EgammaElectronAlgos/src/SeedFilter.cc @@ -32,7 +32,8 @@ using namespace std; using namespace reco; SeedFilter::SeedFilter(const edm::ParameterSet& conf, - const SeedFilter::Tokens& tokens) + const SeedFilter::Tokens& tokens, + edm::ConsumesCollector& iC) { edm::LogInfo("EtaPhiRegionSeedFactory") << "Enter the EtaPhiRegionSeedFactory"; edm::ParameterSet regionPSet = conf.getParameter("RegionPSet"); @@ -56,7 +57,7 @@ SeedFilter::SeedFilter(const edm::ParameterSet& conf, hitsfactoryMode_ = hitsfactoryPSet.getUntrackedParameter("useOnDemandTracker"); // get orderd hits generator from factory - OrderedHitsGenerator* hitsGenerator = OrderedHitsGeneratorFactory::get()->create(hitsfactoryName, hitsfactoryPSet); + OrderedHitsGenerator* hitsGenerator = OrderedHitsGeneratorFactory::get()->create(hitsfactoryName, hitsfactoryPSet, iC); // start seed generator // FIXME?? diff --git a/RecoEgamma/EgammaElectronProducers/plugins/ElectronSeedProducer.cc b/RecoEgamma/EgammaElectronProducers/plugins/ElectronSeedProducer.cc index 447cafe9d43e1..493f0815c6a21 100644 --- a/RecoEgamma/EgammaElectronProducers/plugins/ElectronSeedProducer.cc +++ b/RecoEgamma/EgammaElectronProducers/plugins/ElectronSeedProducer.cc @@ -40,6 +40,7 @@ #include "FWCore/Framework/interface/EDProducer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -49,7 +50,7 @@ using namespace reco ; ElectronSeedProducer::ElectronSeedProducer( const edm::ParameterSet& iConfig ) : //conf_(iConfig), - seedFilter_(0), applyHOverECut_(true), hcalHelper_(0), + applyHOverECut_(true), hcalHelper_(0), caloGeom_(0), caloGeomCacheId_(0), caloTopo_(0), caloTopoCacheId_(0) { conf_ = iConfig.getParameter("SeedConfiguration") ; @@ -115,12 +116,9 @@ ElectronSeedProducer::ElectronSeedProducer( const edm::ParameterSet& iConfig ) superClusters_[1]= consumes(iConfig.getParameter("endcapSuperClusters")) ; - //register your products - produces() ; -} - - -void ElectronSeedProducer::beginRun(edm::Run const&, edm::EventSetup const&) { + // Construction of SeedFilter was in beginRun() with the comment + // below, but it has to be done here because of ConsumesCollector + // // FIXME: because of a bug presumably in tracker seeding, // perhaps in CombinedHitPairGenerator, badly caching some EventSetup product, // we must redo the SeedFilter for each run. @@ -128,14 +126,20 @@ void ElectronSeedProducer::beginRun(edm::Run const&, edm::EventSetup const&) { SeedFilter::Tokens sf_tokens; sf_tokens.token_bs = beamSpotTag_; sf_tokens.token_vtx = filterVtxTag_; - seedFilter_ = new SeedFilter(conf_,sf_tokens) ; + edm::ConsumesCollector iC = consumesCollector(); + seedFilter_.reset(new SeedFilter(conf_, sf_tokens, iC)); } + + //register your products + produces() ; +} + + +void ElectronSeedProducer::beginRun(edm::Run const&, edm::EventSetup const&) { } void ElectronSeedProducer::endRun(edm::Run const&, edm::EventSetup const&) { - delete seedFilter_ ; - seedFilter_ = 0 ; } ElectronSeedProducer::~ElectronSeedProducer() diff --git a/RecoEgamma/EgammaElectronProducers/plugins/ElectronSeedProducer.h b/RecoEgamma/EgammaElectronProducers/plugins/ElectronSeedProducer.h index ffa2946004bb9..a2c622d3f15e9 100644 --- a/RecoEgamma/EgammaElectronProducers/plugins/ElectronSeedProducer.h +++ b/RecoEgamma/EgammaElectronProducers/plugins/ElectronSeedProducer.h @@ -67,7 +67,7 @@ class ElectronSeedProducer : public edm::EDProducer edm::ParameterSet conf_ ; ElectronSeedGenerator * matcher_ ; - SeedFilter * seedFilter_; + std::unique_ptr seedFilter_; TrajectorySeedCollection * theInitialSeedColl ; diff --git a/RecoEgamma/EgammaHLTProducers/interface/EgammaHLTRegionalPixelSeedGeneratorProducers.h b/RecoEgamma/EgammaHLTProducers/interface/EgammaHLTRegionalPixelSeedGeneratorProducers.h index e5c8f418f79cc..3add8a76ea6a6 100644 --- a/RecoEgamma/EgammaHLTProducers/interface/EgammaHLTRegionalPixelSeedGeneratorProducers.h +++ b/RecoEgamma/EgammaHLTProducers/interface/EgammaHLTRegionalPixelSeedGeneratorProducers.h @@ -43,8 +43,7 @@ class EgammaHLTRegionalPixelSeedGeneratorProducers : public edm::EDProducer private: - edm::ParameterSet conf_; - SeedGeneratorFromRegionHits *combinatorialSeedGenerator; + std::unique_ptr combinatorialSeedGenerator; double ptmin_; double vertexz_; double originradius_; diff --git a/RecoEgamma/EgammaHLTProducers/src/EgammaHLTRegionalPixelSeedGeneratorProducers.cc b/RecoEgamma/EgammaHLTProducers/src/EgammaHLTRegionalPixelSeedGeneratorProducers.cc index 4fc137ef52ce7..1af99217d4144 100644 --- a/RecoEgamma/EgammaHLTProducers/src/EgammaHLTRegionalPixelSeedGeneratorProducers.cc +++ b/RecoEgamma/EgammaHLTProducers/src/EgammaHLTRegionalPixelSeedGeneratorProducers.cc @@ -15,6 +15,7 @@ #include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" @@ -39,24 +40,38 @@ using namespace std; using namespace reco; -EgammaHLTRegionalPixelSeedGeneratorProducers::EgammaHLTRegionalPixelSeedGeneratorProducers(edm::ParameterSet const& conf) : conf_(conf),combinatorialSeedGenerator(0) +EgammaHLTRegionalPixelSeedGeneratorProducers::EgammaHLTRegionalPixelSeedGeneratorProducers(edm::ParameterSet const& conf) { produces(); - ptmin_ = conf_.getParameter("ptMin"); - vertexz_ = conf_.getParameter("vertexZ"); - originradius_= conf_.getParameter("originRadius"); - halflength_ = conf_.getParameter("originHalfLength"); - deltaEta_ = conf_.getParameter("deltaEtaRegion"); - deltaPhi_ = conf_.getParameter("deltaPhiRegion"); + ptmin_ = conf.getParameter("ptMin"); + vertexz_ = conf.getParameter("vertexZ"); + originradius_= conf.getParameter("originRadius"); + halflength_ = conf.getParameter("originHalfLength"); + deltaEta_ = conf.getParameter("deltaEtaRegion"); + deltaPhi_ = conf.getParameter("deltaPhiRegion"); - candTag_ = consumes(conf_.getParameter< edm::InputTag > ("candTag")); - candTagEle_ = consumes(conf_.getParameter< edm::InputTag > ("candTagEle")); + candTag_ = consumes(conf.getParameter< edm::InputTag > ("candTag")); + candTagEle_ = consumes(conf.getParameter< edm::InputTag > ("candTagEle")); BSProducer_ = consumes(conf.getParameter("BSProducer")); - useZvertex_ = conf_.getParameter("UseZInVertex"); + useZvertex_ = conf.getParameter("UseZInVertex"); + edm::ParameterSet hitsfactoryPSet = conf.getParameter("OrderedHitsFactoryPSet"); + std::string hitsfactoryName = hitsfactoryPSet.getParameter("ComponentName"); + + // get orderd hits generator from factory + edm::ConsumesCollector iC = consumesCollector(); + OrderedHitsGenerator* hitsGenerator = OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet, iC); + + // start seed generator + edm::ParameterSet creatorPSet; + creatorPSet.addParameter("propagator","PropagatorWithMaterial"); + + combinatorialSeedGenerator.reset(new SeedGeneratorFromRegionHits( hitsGenerator, 0, + SeedCreatorFactory::get()->create("SeedFromConsecutiveHitsCreator", creatorPSet) + )); // setup orderedhits setup (in order to tell seed generator to use pairs/triplets, which layers) } @@ -81,35 +96,18 @@ void EgammaHLTRegionalPixelSeedGeneratorProducers::fillDescriptions(edm::Configu edm::ParameterSetDescription orederedHitsPSET; orederedHitsPSET.add("ComponentName", "StandardHitPairGenerator"); - orederedHitsPSET.add("SeedingLayers", "hltESPPixelLayerPairs"); + orederedHitsPSET.add("SeedingLayers", edm::InputTag("hltESPPixelLayerPairs")); orederedHitsPSET.add("maxElement", 0); desc.add("OrderedHitsFactoryPSet", orederedHitsPSET); descriptions.add(("hltEgammaHLTRegionalPixelSeedGeneratorProducers"), desc); } -void EgammaHLTRegionalPixelSeedGeneratorProducers::endRun(edm::Run const&run, const edm::EventSetup& es) -{ - delete combinatorialSeedGenerator; - combinatorialSeedGenerator=0; -} +void EgammaHLTRegionalPixelSeedGeneratorProducers::endRun(edm::Run const&run, const edm::EventSetup& es) {} void EgammaHLTRegionalPixelSeedGeneratorProducers::beginRun(edm::Run const&run, const edm::EventSetup& es) { - edm::ParameterSet hitsfactoryPSet = conf_.getParameter("OrderedHitsFactoryPSet"); - std::string hitsfactoryName = hitsfactoryPSet.getParameter("ComponentName"); - - // get orderd hits generator from factory - OrderedHitsGenerator* hitsGenerator = OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet); - - // start seed generator - edm::ParameterSet creatorPSet; - creatorPSet.addParameter("propagator","PropagatorWithMaterial"); - - combinatorialSeedGenerator = new SeedGeneratorFromRegionHits( hitsGenerator, 0, - SeedCreatorFactory::get()->create("SeedFromConsecutiveHitsCreator", creatorPSet) - ); } // Functions that gets called by framework every event diff --git a/RecoHI/HiMuonAlgos/python/HiRegitMuonDetachedTripletStep_cff.py b/RecoHI/HiMuonAlgos/python/HiRegitMuonDetachedTripletStep_cff.py index bd1a1e2540da3..0a65626e49521 100644 --- a/RecoHI/HiMuonAlgos/python/HiRegitMuonDetachedTripletStep_cff.py +++ b/RecoHI/HiMuonAlgos/python/HiRegitMuonDetachedTripletStep_cff.py @@ -26,9 +26,7 @@ ) # SEEDING LAYERS -hiRegitMuDetachedTripletStepSeedLayers = RecoHI.HiTracking.hiRegitDetachedTripletStep_cff.hiRegitDetachedTripletStepSeedLayers.clone( - ComponentName = 'hiRegitMuDetachedTripletStepSeedLayers' - ) +hiRegitMuDetachedTripletStepSeedLayers = RecoHI.HiTracking.hiRegitDetachedTripletStep_cff.hiRegitDetachedTripletStepSeedLayers.clone() hiRegitMuDetachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('hiRegitMuDetachedTripletStepClusters') hiRegitMuDetachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('hiRegitMuDetachedTripletStepClusters') @@ -86,6 +84,7 @@ hiRegitMuonDetachedTripletStep = cms.Sequence(hiRegitMuDetachedTripletStepClusters* + hiRegitMuDetachedTripletStepSeedLayers* hiRegitMuDetachedTripletStepSeeds* hiRegitMuDetachedTripletStepTrackCandidates* hiRegitMuDetachedTripletStepTracks* diff --git a/RecoHI/HiMuonAlgos/python/HiRegitMuonLowPtTripletStep_cff.py b/RecoHI/HiMuonAlgos/python/HiRegitMuonLowPtTripletStep_cff.py index 1279844cdad15..95feeb7e078d3 100644 --- a/RecoHI/HiMuonAlgos/python/HiRegitMuonLowPtTripletStep_cff.py +++ b/RecoHI/HiMuonAlgos/python/HiRegitMuonLowPtTripletStep_cff.py @@ -23,9 +23,7 @@ ) # SEEDING LAYERS -hiRegitMuLowPtTripletStepSeedLayers = RecoHI.HiTracking.hiRegitLowPtTripletStep_cff.hiRegitLowPtTripletStepSeedLayers.clone( - ComponentName = 'hiRegitMuLowPtTripletStepSeedLayers' - ) +hiRegitMuLowPtTripletStepSeedLayers = RecoHI.HiTracking.hiRegitLowPtTripletStep_cff.hiRegitLowPtTripletStepSeedLayers.clone() hiRegitMuLowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('hiRegitMuLowPtTripletStepClusters') hiRegitMuLowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('hiRegitMuLowPtTripletStepClusters') @@ -90,6 +88,7 @@ ) hiRegitMuonLowPtTripletStep = cms.Sequence(hiRegitMuLowPtTripletStepClusters* + hiRegitMuLowPtTripletStepSeedLayers* hiRegitMuLowPtTripletStepSeeds* hiRegitMuLowPtTripletStepTrackCandidates* hiRegitMuLowPtTripletStepTracks* diff --git a/RecoHI/HiMuonAlgos/python/HiRegitMuonMixedTripletStep_cff.py b/RecoHI/HiMuonAlgos/python/HiRegitMuonMixedTripletStep_cff.py index d89e47ed4d6fc..dc9bb4f58ec2b 100644 --- a/RecoHI/HiMuonAlgos/python/HiRegitMuonMixedTripletStep_cff.py +++ b/RecoHI/HiMuonAlgos/python/HiRegitMuonMixedTripletStep_cff.py @@ -26,9 +26,7 @@ # SEEDING LAYERS A -hiRegitMuMixedTripletStepSeedLayersA = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepSeedLayersA.clone( - ComponentName = 'hiRegitMuMixedTripletStepSeedLayersA' - ) +hiRegitMuMixedTripletStepSeedLayersA = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepSeedLayersA.clone() hiRegitMuMixedTripletStepSeedLayersA.BPix.skipClusters = cms.InputTag('hiRegitMuMixedTripletStepClusters') hiRegitMuMixedTripletStepSeedLayersA.FPix.skipClusters = cms.InputTag('hiRegitMuMixedTripletStepClusters') hiRegitMuMixedTripletStepSeedLayersA.TEC.skipClusters = cms.InputTag('hiRegitMuMixedTripletStepClusters') @@ -44,9 +42,7 @@ hiRegitMuMixedTripletStepSeedsA.OrderedHitsFactoryPSet.SeedingLayers = 'hiRegitMuMixedTripletStepSeedLayersA' # SEEDING LAYERS B -hiRegitMuMixedTripletStepSeedLayersB = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepSeedLayersB.clone( - ComponentName = 'hiRegitMuMixedTripletStepSeedLayersB', - ) +hiRegitMuMixedTripletStepSeedLayersB = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepSeedLayersB.clone() hiRegitMuMixedTripletStepSeedLayersB.BPix.skipClusters = cms.InputTag('hiRegitMuMixedTripletStepClusters') hiRegitMuMixedTripletStepSeedLayersB.TIB.skipClusters = cms.InputTag('hiRegitMuMixedTripletStepClusters') @@ -120,7 +116,9 @@ ) #end of clone hiRegitMuonMixedTripletStep = cms.Sequence(hiRegitMuMixedTripletStepClusters* + hiRegitMuMixedTripletStepSeedLayersA* hiRegitMuMixedTripletStepSeedsA* + hiRegitMuMixedTripletStepSeedLayersB* hiRegitMuMixedTripletStepSeedsB* hiRegitMuMixedTripletStepSeeds* hiRegitMuMixedTripletStepTrackCandidates* diff --git a/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelLessStep_cff.py b/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelLessStep_cff.py index 9ea50a090b6d6..61272a7f5462e 100644 --- a/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelLessStep_cff.py +++ b/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelLessStep_cff.py @@ -24,9 +24,7 @@ ) # SEEDING LAYERS -hiRegitMuPixelLessStepSeedLayers = RecoTracker.IterativeTracking.PixelLessStep_cff.pixelLessStepSeedLayers.clone( - ComponentName = 'hiRegitMuPixelLessStepSeedLayers', - ) +hiRegitMuPixelLessStepSeedLayers = RecoTracker.IterativeTracking.PixelLessStep_cff.pixelLessStepSeedLayers.clone() hiRegitMuPixelLessStepSeedLayers.TIB.skipClusters = cms.InputTag('hiRegitMuPixelLessStepClusters') hiRegitMuPixelLessStepSeedLayers.TID.skipClusters = cms.InputTag('hiRegitMuPixelLessStepClusters') hiRegitMuPixelLessStepSeedLayers.TEC.skipClusters = cms.InputTag('hiRegitMuPixelLessStepClusters') @@ -89,6 +87,7 @@ ) hiRegitMuonPixelLessStep = cms.Sequence(hiRegitMuPixelLessStepClusters* + hiRegitMuPixelLessStepSeedLayers* hiRegitMuPixelLessStepSeeds* hiRegitMuPixelLessStepTrackCandidates* hiRegitMuPixelLessStepTracks* diff --git a/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelPairStep_cff.py b/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelPairStep_cff.py index f17462080d3e2..892acaff3fc31 100644 --- a/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelPairStep_cff.py +++ b/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelPairStep_cff.py @@ -27,9 +27,7 @@ # SEEDING LAYERS -hiRegitMuPixelPairStepSeedLayers = RecoHI.HiTracking.hiRegitPixelPairStep_cff.hiRegitPixelPairStepSeedLayers.clone( - ComponentName = 'hiRegitMuPixelPairStepSeedLayers' - ) +hiRegitMuPixelPairStepSeedLayers = RecoHI.HiTracking.hiRegitPixelPairStep_cff.hiRegitPixelPairStepSeedLayers.clone() hiRegitMuPixelPairStepSeedLayers.BPix.skipClusters = cms.InputTag('hiRegitMuPixelPairStepClusters') hiRegitMuPixelPairStepSeedLayers.FPix.skipClusters = cms.InputTag('hiRegitMuPixelPairStepClusters') @@ -95,6 +93,7 @@ ) hiRegitMuonPixelPairStep = cms.Sequence(hiRegitMuPixelPairStepClusters* + hiRegitMuPixelPairStepSeedLayers* hiRegitMuPixelPairStepSeeds* hiRegitMuPixelPairStepTrackCandidates* hiRegitMuPixelPairStepTracks* diff --git a/RecoHI/HiMuonAlgos/python/HiRegitMuonTobTecStep_cff.py b/RecoHI/HiMuonAlgos/python/HiRegitMuonTobTecStep_cff.py index 6036d2397fe9a..957dba607df6b 100644 --- a/RecoHI/HiMuonAlgos/python/HiRegitMuonTobTecStep_cff.py +++ b/RecoHI/HiMuonAlgos/python/HiRegitMuonTobTecStep_cff.py @@ -24,9 +24,7 @@ ) # SEEDING LAYERS -hiRegitMuTobTecStepSeedLayers = RecoTracker.IterativeTracking.TobTecStep_cff.tobTecStepSeedLayers.clone( - ComponentName = cms.string('hiRegitMuTobTecStepSeedLayers'), - ) +hiRegitMuTobTecStepSeedLayers = RecoTracker.IterativeTracking.TobTecStep_cff.tobTecStepSeedLayers.clone() hiRegitMuTobTecStepSeedLayers.TOB.skipClusters = cms.InputTag('hiRegitMuTobTecStepClusters') hiRegitMuTobTecStepSeedLayers.TEC.skipClusters = cms.InputTag('hiRegitMuTobTecStepClusters') @@ -97,6 +95,7 @@ ) hiRegitMuonTobTecStep = cms.Sequence(hiRegitMuTobTecStepClusters* + hiRegitMuTobTecStepSeedLayers* hiRegitMuTobTecStepSeeds* hiRegitMuTobTecStepTrackCandidates* hiRegitMuTobTecStepTracks* diff --git a/RecoHI/HiTracking/python/HIPixel3PrimTracks_cfi.py b/RecoHI/HiTracking/python/HIPixel3PrimTracks_cfi.py index 6165458a8dba6..b84377247ba77 100644 --- a/RecoHI/HiTracking/python/HIPixel3PrimTracks_cfi.py +++ b/RecoHI/HiTracking/python/HIPixel3PrimTracks_cfi.py @@ -4,6 +4,7 @@ from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import * from RecoHI.HiTracking.HIPixelTrackFilter_cfi import * from RecoHI.HiTracking.HITrackingRegionProducer_cfi import * +from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import * hiPixel3PrimTracks = cms.EDProducer("PixelTrackProducer", @@ -20,7 +21,7 @@ # Ordered Hits OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string( "StandardHitTripletGenerator" ), - SeedingLayers = cms.string( "PixelLayerTriplets" ), + SeedingLayers = cms.InputTag( "PixelLayerTriplets" ), GeneratorPSet = cms.PSet( PixelTripletHLTGenerator ) diff --git a/RecoHI/HiTracking/python/HIPixel3ProtoTracks_cfi.py b/RecoHI/HiTracking/python/HIPixel3ProtoTracks_cfi.py index ff338abdcc590..c5721c426e873 100644 --- a/RecoHI/HiTracking/python/HIPixel3ProtoTracks_cfi.py +++ b/RecoHI/HiTracking/python/HIPixel3ProtoTracks_cfi.py @@ -3,6 +3,7 @@ from RecoPixelVertexing.PixelTriplets.PixelTripletHLTGenerator_cfi import * from RecoHI.HiTracking.HIPixelTrackFilter_cfi import * from RecoHI.HiTracking.HITrackingRegionProducer_cfi import * +from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import * hiPixel3ProtoTracks = cms.EDProducer( "PixelTrackProducer", @@ -20,7 +21,7 @@ # Ordered Hits OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string( "StandardHitTripletGenerator" ), - SeedingLayers = cms.string( "PixelLayerTriplets" ), + SeedingLayers = cms.InputTag( "PixelLayerTriplets" ), GeneratorPSet = cms.PSet( PixelTripletHLTGenerator ) diff --git a/RecoHI/HiTracking/python/HIPixelTripletSeeds_cff.py b/RecoHI/HiTracking/python/HIPixelTripletSeeds_cff.py index 67ccdb90901c6..29d2fd2f55f40 100644 --- a/RecoHI/HiTracking/python/HIPixelTripletSeeds_cff.py +++ b/RecoHI/HiTracking/python/HIPixelTripletSeeds_cff.py @@ -9,4 +9,4 @@ InputCollection = 'hiPixel3PrimTracks' ) -hiPrimSeeds = cms.Sequence( hiPixel3PrimTracks * hiPixelTrackSeeds ) \ No newline at end of file +hiPrimSeeds = cms.Sequence( PixelLayerTriplets * hiPixel3PrimTracks * hiPixelTrackSeeds ) diff --git a/RecoHI/HiTracking/python/HIPixelVertices_cff.py b/RecoHI/HiTracking/python/HIPixelVertices_cff.py index c85a68a934a90..f6fa94f31df5a 100644 --- a/RecoHI/HiTracking/python/HIPixelVertices_cff.py +++ b/RecoHI/HiTracking/python/HIPixelVertices_cff.py @@ -19,6 +19,7 @@ from RecoHI.HiTracking.HISelectedVertex_cfi import * hiPixelVertices = cms.Sequence(hiPixelClusterVertex + * PixelLayerTriplets * hiPixel3ProtoTracks * hiPixelMedianVertex * hiSelectedProtoTracks diff --git a/RecoHI/HiTracking/python/hiMixedTripletStep_cff.py b/RecoHI/HiTracking/python/hiMixedTripletStep_cff.py index aa235a0adad4d..e062e2f6f70f3 100644 --- a/RecoHI/HiTracking/python/hiMixedTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiMixedTripletStep_cff.py @@ -24,22 +24,15 @@ # SEEDING LAYERS -hiMixedTripletSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('hiMixedTripletSeedLayersA'), +hiMixedTripletSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('FPix1_pos+FPix2_pos+TEC1_pos', 'FPix1_neg+FPix2_neg+TEC1_neg'), #'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('hiMixedTripletClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('hiMixedTripletClusters') @@ -74,8 +67,7 @@ # SEEDING LAYERS -hiMixedTripletSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('hiMixedTripletSeedLayersB'), +hiMixedTripletSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring( #'BPix1+BPix2+TIB1', #'BPix1+BPix2+TIB2', @@ -84,9 +76,6 @@ 'BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('hiMixedTripletClusters') @@ -207,7 +196,9 @@ hiMixedTripletStep = cms.Sequence( hiMixedTripletClusters* + hiMixedTripletSeedLayersA* hiMixedTripletSeedsA* + hiMixedTripletSeedLayersB* hiMixedTripletSeedsB* hiMixedTripletSeeds* hiMixedTripletTrackCandidates* diff --git a/RecoHI/HiTracking/python/hiPixelPairStep_cff.py b/RecoHI/HiTracking/python/hiPixelPairStep_cff.py index 2a4b12a293ffe..c37c47a17fa75 100644 --- a/RecoHI/HiTracking/python/hiPixelPairStep_cff.py +++ b/RecoHI/HiTracking/python/hiPixelPairStep_cff.py @@ -24,8 +24,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi -hiPixelPairSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi.pixellayerpairs.clone( - ComponentName = 'hiPixelPairSeedLayers', +hiPixelPairSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi.PixelLayerPairs.clone( layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', 'BPix1+FPix1_pos', 'BPix1+FPix1_neg', 'BPix2+FPix1_pos', 'BPix2+FPix1_neg', @@ -42,7 +41,7 @@ # sigmaZVertex is only used when usedFixedError is True -Matt hiPixelPairSeeds.RegionFactoryPSet.RegionPSet.sigmaZVertex = 4.0 hiPixelPairSeeds.RegionFactoryPSet.RegionPSet.useFixedError = cms.bool(False) -hiPixelPairSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('hiPixelPairSeedLayers') +hiPixelPairSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('hiPixelPairSeedLayers') hiPixelPairSeeds.OrderedHitsFactoryPSet.maxElement = 5000000 hiPixelPairSeeds.ClusterCheckPSet.MaxNumberOfPixelClusters = 5000000 hiPixelPairSeeds.ClusterCheckPSet.MaxNumberOfCosmicClusters = 50000000 @@ -126,6 +125,7 @@ # Final sequence hiPixelPairStep = cms.Sequence(hiPixelPairClusters* + hiPixelPairSeedLayers* hiPixelPairSeeds* hiPixelPairTrackCandidates* hiPixelPairGlobalPrimTracks* diff --git a/RecoHI/HiTracking/python/hiRegitDetachedTripletStep_cff.py b/RecoHI/HiTracking/python/hiRegitDetachedTripletStep_cff.py index 379d000467387..5ce0d00ad9346 100644 --- a/RecoHI/HiTracking/python/hiRegitDetachedTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitDetachedTripletStep_cff.py @@ -31,9 +31,7 @@ # SEEDING LAYERS -hiRegitDetachedTripletStepSeedLayers = RecoTracker.IterativeTracking.DetachedTripletStep_cff.detachedTripletStepSeedLayers.clone( - ComponentName = 'hiRegitDetachedTripletStepSeedLayers' - ) +hiRegitDetachedTripletStepSeedLayers = RecoTracker.IterativeTracking.DetachedTripletStep_cff.detachedTripletStepSeedLayers.clone() hiRegitDetachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('hiRegitDetachedTripletStepClusters') hiRegitDetachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('hiRegitDetachedTripletStepClusters') @@ -101,6 +99,7 @@ hiRegitDetachedTripletStep = cms.Sequence(hiRegitDetachedTripletStepClusters* + hiRegitDetachedTripletStepSeedLayers* hiRegitDetachedTripletStepSeeds* hiRegitDetachedTripletStepTrackCandidates* hiRegitDetachedTripletStepTracks* diff --git a/RecoHI/HiTracking/python/hiRegitLowPtTripletStep_cff.py b/RecoHI/HiTracking/python/hiRegitLowPtTripletStep_cff.py index ea3695646be8a..ee2b55d08cf15 100644 --- a/RecoHI/HiTracking/python/hiRegitLowPtTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitLowPtTripletStep_cff.py @@ -30,9 +30,7 @@ # SEEDING LAYERS -hiRegitLowPtTripletStepSeedLayers = RecoTracker.IterativeTracking.LowPtTripletStep_cff.lowPtTripletStepSeedLayers.clone( - ComponentName = 'hiRegitLowPtTripletStepSeedLayers' - ) +hiRegitLowPtTripletStepSeedLayers = RecoTracker.IterativeTracking.LowPtTripletStep_cff.lowPtTripletStepSeedLayers.clone() hiRegitLowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('hiRegitLowPtTripletStepClusters') hiRegitLowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('hiRegitLowPtTripletStepClusters') @@ -103,6 +101,7 @@ hiRegitLowPtTripletStep = cms.Sequence(hiRegitLowPtTripletStepClusters* + hiRegitLowPtTripletStepSeedLayers* hiRegitLowPtTripletStepSeeds* hiRegitLowPtTripletStepTrackCandidates* hiRegitLowPtTripletStepTracks* diff --git a/RecoHI/HiTracking/python/hiRegitMixedTripletStep_cff.py b/RecoHI/HiTracking/python/hiRegitMixedTripletStep_cff.py index 282d677b6ad3b..4d66db8f6d8ee 100644 --- a/RecoHI/HiTracking/python/hiRegitMixedTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitMixedTripletStep_cff.py @@ -31,9 +31,7 @@ # SEEDING LAYERS A -hiRegitMixedTripletStepSeedLayersA = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepSeedLayersA.clone( - ComponentName = 'hiRegitMixedTripletStepSeedLayersA' - ) +hiRegitMixedTripletStepSeedLayersA = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepSeedLayersA.clone() hiRegitMixedTripletStepSeedLayersA.BPix.skipClusters = cms.InputTag('hiRegitMixedTripletStepClusters') hiRegitMixedTripletStepSeedLayersA.FPix.skipClusters = cms.InputTag('hiRegitMixedTripletStepClusters') hiRegitMixedTripletStepSeedLayersA.TEC.skipClusters = cms.InputTag('hiRegitMixedTripletStepClusters') @@ -51,9 +49,7 @@ hiRegitMixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.ptMin = 1.0 # SEEDING LAYERS B -hiRegitMixedTripletStepSeedLayersB = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepSeedLayersB.clone( - ComponentName = 'hiRegitMixedTripletStepSeedLayersB', - ) +hiRegitMixedTripletStepSeedLayersB = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepSeedLayersB.clone() hiRegitMixedTripletStepSeedLayersB.BPix.skipClusters = cms.InputTag('hiRegitMixedTripletStepClusters') hiRegitMixedTripletStepSeedLayersB.TIB.skipClusters = cms.InputTag('hiRegitMixedTripletStepClusters') hiRegitMixedTripletStepSeedLayersB.layerList = cms.vstring('BPix2+BPix3+TIB1','BPix2+BPix3+TIB2') @@ -125,7 +121,9 @@ ) #end of clone hiRegitMixedTripletStep = cms.Sequence(hiRegitMixedTripletStepClusters* + hiRegitMixedTripletStepSeedLayersA* hiRegitMixedTripletStepSeedsA* + hiRegitMixedTripletStepSeedLayersB* hiRegitMixedTripletStepSeedsB* hiRegitMixedTripletStepSeeds* hiRegitMixedTripletStepTrackCandidates* diff --git a/RecoHI/HiTracking/python/hiRegitPixelPairStep_cff.py b/RecoHI/HiTracking/python/hiRegitPixelPairStep_cff.py index 4eefd8cdfe060..a9c10d70d95be 100644 --- a/RecoHI/HiTracking/python/hiRegitPixelPairStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitPixelPairStep_cff.py @@ -30,9 +30,7 @@ # SEEDING LAYERS -hiRegitPixelPairStepSeedLayers = RecoTracker.IterativeTracking.PixelPairStep_cff.pixelPairStepSeedLayers.clone( - ComponentName = 'hiRegitPixelPairStepSeedLayers' - ) +hiRegitPixelPairStepSeedLayers = RecoTracker.IterativeTracking.PixelPairStep_cff.pixelPairStepSeedLayers.clone() hiRegitPixelPairStepSeedLayers.BPix.skipClusters = cms.InputTag('hiRegitPixelPairStepClusters') hiRegitPixelPairStepSeedLayers.FPix.skipClusters = cms.InputTag('hiRegitPixelPairStepClusters') @@ -101,6 +99,7 @@ ) #end of clone hiRegitPixelPairStep = cms.Sequence(hiRegitPixelPairStepClusters* + hiRegitPixelPairStepSeedLayers* hiRegitPixelPairStepSeeds* hiRegitPixelPairStepTrackCandidates* hiRegitPixelPairStepTracks* diff --git a/RecoHI/HiTracking/python/hiSecondPixelTripletStep_cff.py b/RecoHI/HiTracking/python/hiSecondPixelTripletStep_cff.py index a3c98a7e3fbf5..a5015f02c184f 100644 --- a/RecoHI/HiTracking/python/hiSecondPixelTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiSecondPixelTripletStep_cff.py @@ -26,9 +26,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -hiSecondPixelTripletSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'hiSecondPixelTripletSeedLayers' - ) +hiSecondPixelTripletSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() hiSecondPixelTripletSeedLayers.BPix.skipClusters = cms.InputTag('hiSecondPixelTripletClusters') hiSecondPixelTripletSeedLayers.FPix.skipClusters = cms.InputTag('hiSecondPixelTripletClusters') @@ -139,6 +137,7 @@ hiSecondPixelTripletStep = cms.Sequence(hiFirstStepFilter* hiSecondPixelTripletClusters* + hiSecondPixelTripletSeedLayers* hiSecondPixelTripletSeeds* hiSecondPixelTripletTrackCandidates* hiSecondPixelTripletGlobalPrimTracks* diff --git a/RecoLocalTracker/SubCollectionProducers/python/splitter_tracking_setup_cff.py b/RecoLocalTracker/SubCollectionProducers/python/splitter_tracking_setup_cff.py index 5b306144a49ff..4b4465974fae0 100644 --- a/RecoLocalTracker/SubCollectionProducers/python/splitter_tracking_setup_cff.py +++ b/RecoLocalTracker/SubCollectionProducers/python/splitter_tracking_setup_cff.py @@ -39,9 +39,7 @@ from RecoTracker.IterativeTracking.InitialStep_cff import * import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'initialStepSeedLayers' - ) +initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() initialStepSeedLayers.BPix.HitProducer = 'mySiPixelRecHits' initialStepSeedLayers.FPix.HitProducer = 'mySiPixelRecHits' diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc b/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc index 4e4a3e6e0ec25..aaede7cb3585f 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc @@ -4,6 +4,7 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Framework/interface/ConsumesCollector.h" @@ -56,6 +57,11 @@ TSGFromL1Muon::TSGFromL1Muon(const edm::ParameterSet& cfg) edm::ParameterSet filterPSet = theConfig.getParameter("FilterPSet"); std::string filterName = filterPSet.getParameter("ComponentName"); theFilter.reset(PixelTrackFilterFactory::get()->create( filterName, filterPSet, iC)); + + edm::ParameterSet hitsfactoryPSet = + theConfig.getParameter("OrderedHitsFactoryPSet"); + std::string hitsfactoryName = hitsfactoryPSet.getParameter("ComponentName"); + theHitGenerator = OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet, iC); } TSGFromL1Muon::~TSGFromL1Muon() @@ -74,11 +80,6 @@ void TSGFromL1Muon::beginRun(const edm::Run & run, const edm::EventSetup&es) TrackingRegionProducerFactory::get()->create(regfactoryName,regfactoryPSet, consumesCollector()); theRegionProducer = dynamic_cast(p); - edm::ParameterSet hitsfactoryPSet = - theConfig.getParameter("OrderedHitsFactoryPSet"); - std::string hitsfactoryName = hitsfactoryPSet.getParameter("ComponentName"); - theHitGenerator = OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet); - edm::ParameterSet fitterPSet = theConfig.getParameter("FitterPSet"); std::string fitterName = fitterPSet.getParameter("ComponentName"); PixelFitter * f = PixelFitterFactory::get()->create( fitterName, fitterPSet); diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGFromOrderedHits.cc b/RecoMuon/TrackerSeedGenerator/plugins/TSGFromOrderedHits.cc index a555dba00c0b9..8307b496f9cb6 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGFromOrderedHits.cc +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGFromOrderedHits.cc @@ -12,18 +12,13 @@ TSGFromOrderedHits::TSGFromOrderedHits(const edm::ParameterSet &pset,edm::ConsumesCollector & iC) : theLastRun(0), theConfig(pset), theGenerator(0) -{ - init(); -} -void TSGFromOrderedHits::init() { edm::ParameterSet hitsfactoryPSet = theConfig.getParameter("OrderedHitsFactoryPSet"); std::string hitsfactoryName = hitsfactoryPSet.getParameter("ComponentName"); OrderedHitsGenerator* hitsGenerator = - OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet); + OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet, iC); - if (theGenerator) delete theGenerator; edm::ParameterSet creatorPSet; creatorPSet.addParameter("propagator","PropagatorWithMaterial"); theGenerator = new SeedGeneratorFromRegionHits(hitsGenerator, 0, @@ -40,7 +35,5 @@ TSGFromOrderedHits::~TSGFromOrderedHits() void TSGFromOrderedHits::run(TrajectorySeedCollection &seeds, const edm::Event &ev, const edm::EventSetup &es, const TrackingRegion& region) { - edm::RunNumber_t thisRun = ev.run(); - if (thisRun != theLastRun) { theLastRun = thisRun; init(); } theGenerator->run( seeds, region, ev, es); } diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGSmart.cc b/RecoMuon/TrackerSeedGenerator/plugins/TSGSmart.cc index 8c1443815fafa..bdfe151d46396 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGSmart.cc +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGSmart.cc @@ -22,7 +22,7 @@ TSGSmart::TSGSmart(const edm::ParameterSet &pset,edm::ConsumesCollector& iC) PairPSet.getParameter("OrderedHitsFactoryPSet"); std::string pairhitsfactoryName = pairhitsfactoryPSet.getParameter("ComponentName"); OrderedHitsGenerator* pairhitsGenerator = - OrderedHitsGeneratorFactory::get()->create( pairhitsfactoryName, pairhitsfactoryPSet); + OrderedHitsGeneratorFactory::get()->create( pairhitsfactoryName, pairhitsfactoryPSet, iC); thePairGenerator = new SeedGeneratorFromRegionHits( pairhitsGenerator, 0, @@ -34,7 +34,7 @@ TSGSmart::TSGSmart(const edm::ParameterSet &pset,edm::ConsumesCollector& iC) TripletPSet.getParameter("OrderedHitsFactoryPSet"); std::string triplethitsfactoryName = triplethitsfactoryPSet.getParameter("ComponentName"); OrderedHitsGenerator* triplethitsGenerator = - OrderedHitsGeneratorFactory::get()->create( triplethitsfactoryName, triplethitsfactoryPSet); + OrderedHitsGeneratorFactory::get()->create( triplethitsfactoryName, triplethitsfactoryPSet, iC); theTripletGenerator = new SeedGeneratorFromRegionHits( triplethitsGenerator, 0, SeedCreatorFactory::get()->create("SeedFromConsecutiveHitsCreator", creatorPSet) ); @@ -44,7 +44,7 @@ TSGSmart::TSGSmart(const edm::ParameterSet &pset,edm::ConsumesCollector& iC) MixedPSet.getParameter("OrderedHitsFactoryPSet"); std::string mixedhitsfactoryName = mixedhitsfactoryPSet.getParameter("ComponentName"); OrderedHitsGenerator* mixedhitsGenerator = - OrderedHitsGeneratorFactory::get()->create( mixedhitsfactoryName, mixedhitsfactoryPSet); + OrderedHitsGeneratorFactory::get()->create( mixedhitsfactoryName, mixedhitsfactoryPSet, iC); theMixedGenerator = new SeedGeneratorFromRegionHits( mixedhitsGenerator, 0, SeedCreatorFactory::get()->create("SeedFromConsecutiveHitsCreator", creatorPSet) ); diff --git a/RecoMuon/TrackerSeedGenerator/python/TSGFromCombinedHits_cfi.py b/RecoMuon/TrackerSeedGenerator/python/TSGFromCombinedHits_cfi.py index 41ca608a57dc4..19249452e174e 100644 --- a/RecoMuon/TrackerSeedGenerator/python/TSGFromCombinedHits_cfi.py +++ b/RecoMuon/TrackerSeedGenerator/python/TSGFromCombinedHits_cfi.py @@ -8,7 +8,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet( useBending = cms.bool(True), useFixedPreFiltering = cms.bool(False), @@ -27,7 +27,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs'), + SeedingLayers = cms.InputTag('PixelLayerPairs'), useOnDemandTracker = cms.untracked.int32( 0 ), maxElement = cms.uint32( 0 ) ), @@ -41,7 +41,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('MixedLayerPairs'), + SeedingLayers = cms.InputTag('MixedLayerPairs'), useOnDemandTracker = cms.untracked.int32( 0 ), maxElement = cms.uint32( 0 ) ), diff --git a/RecoMuon/TrackerSeedGenerator/python/TSGFromL1_cfi.py b/RecoMuon/TrackerSeedGenerator/python/TSGFromL1_cfi.py index 6d56b57b52e90..503702d2c2ca8 100644 --- a/RecoMuon/TrackerSeedGenerator/python/TSGFromL1_cfi.py +++ b/RecoMuon/TrackerSeedGenerator/python/TSGFromL1_cfi.py @@ -36,7 +36,7 @@ ), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs') + SeedingLayers = cms.InputTag('PixelLayerPairs') ) ) diff --git a/RecoMuon/TrackerSeedGenerator/python/TSGFromMixedPairs_cfi.py b/RecoMuon/TrackerSeedGenerator/python/TSGFromMixedPairs_cfi.py index 0767f633ec64f..4ac62f4392a57 100644 --- a/RecoMuon/TrackerSeedGenerator/python/TSGFromMixedPairs_cfi.py +++ b/RecoMuon/TrackerSeedGenerator/python/TSGFromMixedPairs_cfi.py @@ -4,7 +4,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('MixedLayerPairs'), + SeedingLayers = cms.InputTag('MixedLayerPairs'), useOnDemandTracker = cms.untracked.int32( 0 ), maxElement = cms.uint32( 0 ) ), diff --git a/RecoMuon/TrackerSeedGenerator/python/TSGFromPixelPairs_cfi.py b/RecoMuon/TrackerSeedGenerator/python/TSGFromPixelPairs_cfi.py index 5d10c897fa141..c078827c028d4 100644 --- a/RecoMuon/TrackerSeedGenerator/python/TSGFromPixelPairs_cfi.py +++ b/RecoMuon/TrackerSeedGenerator/python/TSGFromPixelPairs_cfi.py @@ -5,7 +5,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs'), + SeedingLayers = cms.InputTag('PixelLayerPairs'), useOnDemandTracker = cms.untracked.int32( 0 ), maxElement = cms.uint32( 0 ) ), diff --git a/RecoMuon/TrackerSeedGenerator/python/TSGFromPixelTriplets_cfi.py b/RecoMuon/TrackerSeedGenerator/python/TSGFromPixelTriplets_cfi.py index 1a42445dffd4e..6203ab8c87d6e 100644 --- a/RecoMuon/TrackerSeedGenerator/python/TSGFromPixelTriplets_cfi.py +++ b/RecoMuon/TrackerSeedGenerator/python/TSGFromPixelTriplets_cfi.py @@ -5,7 +5,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet( PixelTripletHLTGenerator ) diff --git a/RecoMuon/TrackerSeedGenerator/python/TSGSmart_cff.py b/RecoMuon/TrackerSeedGenerator/python/TSGSmart_cff.py index 1661e1890d82a..cb2def872b6b0 100644 --- a/RecoMuon/TrackerSeedGenerator/python/TSGSmart_cff.py +++ b/RecoMuon/TrackerSeedGenerator/python/TSGSmart_cff.py @@ -8,7 +8,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs') + SeedingLayers = cms.InputTag('PixelLayerPairs') ), TTRHBuilder = cms.string('WithTrackAngle') ), @@ -16,7 +16,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet( PixelTripletHLTGenerator ) @@ -27,7 +27,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('MixedLayerPairs') + SeedingLayers = cms.InputTag('MixedLayerPairs') ), TTRHBuilder = cms.string('WithTrackAngle') ) diff --git a/RecoMuon/TrackerSeedGenerator/python/TSGs_cff.py b/RecoMuon/TrackerSeedGenerator/python/TSGs_cff.py index ba34f9df0efff..1393cf1a68f3e 100644 --- a/RecoMuon/TrackerSeedGenerator/python/TSGs_cff.py +++ b/RecoMuon/TrackerSeedGenerator/python/TSGs_cff.py @@ -11,7 +11,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet( useBending = cms.bool(True), useFixedPreFiltering = cms.bool(False), @@ -30,7 +30,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs'), + SeedingLayers = cms.InputTag('PixelLayerPairs'), useOnDemandTracker = cms.untracked.int32( 0 ), maxElement = cms.uint32( 0 ) ), @@ -44,7 +44,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('MixedLayerPairs'), + SeedingLayers = cms.InputTag('MixedLayerPairs'), useOnDemandTracker = cms.untracked.int32( 0 ), maxElement = cms.uint32( 0 ) ), @@ -76,7 +76,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet( PixelTripletHLTGenerator ) @@ -102,7 +102,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('MixedLayerPairs'), + SeedingLayers = cms.InputTag('MixedLayerPairs'), useOnDemandTracker = cms.untracked.int32( 0 ), maxElement = cms.uint32( 0 ) ), @@ -126,7 +126,7 @@ ComponentName = cms.string('TSGFromOrderedHits'), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs'), + SeedingLayers = cms.InputTag('PixelLayerPairs'), useOnDemandTracker = cms.untracked.int32( 0 ), maxElement = cms.uint32( 0 ) ), diff --git a/RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py b/RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py index f52d1621dab6e..ca4fb6f144f26 100644 --- a/RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py +++ b/RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py @@ -6,5 +6,5 @@ # #from RecoPixelVertexing.PixelVertexFinding.PixelVertexes_cff import * from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import * -recopixelvertexing = cms.Sequence(pixelTracks*pixelVertices) +recopixelvertexing = cms.Sequence(PixelLayerTriplets*pixelTracks*pixelVertices) diff --git a/RecoPixelVertexing/PixelLowPtUtilities/interface/PixelTripletLowPtGenerator.h b/RecoPixelVertexing/PixelLowPtUtilities/interface/PixelTripletLowPtGenerator.h index 05ae6fd8bfe1b..8e243427c6a7d 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/interface/PixelTripletLowPtGenerator.h +++ b/RecoPixelVertexing/PixelLowPtUtilities/interface/PixelTripletLowPtGenerator.h @@ -8,7 +8,6 @@ */ #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h" @@ -31,13 +30,14 @@ class PixelTripletLowPtGenerator : virtual ~PixelTripletLowPtGenerator() { delete thePairGenerator; delete theFilter; } - virtual void init( const HitPairGenerator & pairs, - const std::vector & layers, LayerCacheType* layerCache); + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) override; + + void init( const HitPairGenerator & pairs, LayerCacheType* layerCache) override; virtual void hitTriplets(const TrackingRegion& region, OrderedHitTriplets & trs, const edm::Event & ev, const edm::EventSetup& es); const HitPairGenerator & pairGenerator() const { return *thePairGenerator; } - const std::vector & thirdLayers() const { return theLayers; } private: void getTracker (const edm::EventSetup& es); @@ -48,7 +48,7 @@ class PixelTripletLowPtGenerator : edm::ParameterSet ps; HitPairGenerator * thePairGenerator; - std::vector theLayers; + std::vector theLayers; LayerCacheType * theLayerCache; double nSigMultipleScattering; diff --git a/RecoPixelVertexing/PixelLowPtUtilities/python/AllPixelTracks_cfi.py b/RecoPixelVertexing/PixelLowPtUtilities/python/AllPixelTracks_cfi.py index 6c57cd1e79732..d7a636db81131 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/python/AllPixelTracks_cfi.py +++ b/RecoPixelVertexing/PixelLowPtUtilities/python/AllPixelTracks_cfi.py @@ -27,7 +27,7 @@ # Ordered hits OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet( ComponentName = cms.string('PixelTripletLowPtGenerator'), checkClusterShape = cms.bool(False), diff --git a/RecoPixelVertexing/PixelLowPtUtilities/python/MinBiasTracking_cff.py b/RecoPixelVertexing/PixelLowPtUtilities/python/MinBiasTracking_cff.py index 86f2751486627..1dc737b6f98e4 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/python/MinBiasTracking_cff.py +++ b/RecoPixelVertexing/PixelLowPtUtilities/python/MinBiasTracking_cff.py @@ -9,7 +9,8 @@ ################################### # First step, triplets, r=0.2 cm -firstStep = cms.Sequence(pixel3ProtoTracks +firstStep = cms.Sequence(PixelLayerTriplets + * pixel3ProtoTracks * pixel3Vertices * pixel3PrimTracks * primSeeds @@ -21,6 +22,7 @@ secondStep = cms.Sequence(secondClusters * secondPixelRecHits * secondStripRecHits + * SecondLayerTriplets * pixelSecoTracks * secoSeeds * secoTrackCandidates @@ -31,6 +33,7 @@ thirdStep = cms.Sequence( thirdClusters * thirdPixelRecHits * thirdStripRecHits + * ThirdLayerPairs * pixelTertTracks * tertSeeds * tertTrackCandidates diff --git a/RecoPixelVertexing/PixelLowPtUtilities/python/common_cff.py b/RecoPixelVertexing/PixelLowPtUtilities/python/common_cff.py index 05ad4fadb65de..4f285be4573e8 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/python/common_cff.py +++ b/RecoPixelVertexing/PixelLowPtUtilities/python/common_cff.py @@ -14,20 +14,6 @@ ComponentName = cms.string('TransientTrackBuilder'), ) -# Pixel barrel errors -BPixError = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006) -) - -# Pixel endcap errors -FPixError = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036) -) - # Trajectory builder GroupedCkfTrajectoryBuilder.maxCand = 5 GroupedCkfTrajectoryBuilder.intermediateCleaning = False diff --git a/RecoPixelVertexing/PixelLowPtUtilities/python/secondStep_cff.py b/RecoPixelVertexing/PixelLowPtUtilities/python/secondStep_cff.py index cc1f30ba7ade1..65e32d81558c6 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/python/secondStep_cff.py +++ b/RecoPixelVertexing/PixelLowPtUtilities/python/secondStep_cff.py @@ -25,22 +25,17 @@ ################################# # Secondary triplets -from RecoPixelVertexing.PixelLowPtUtilities.common_cff import BPixError -from RecoPixelVertexing.PixelLowPtUtilities.common_cff import FPixError -secondLayerTriplets = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('SecondLayerTriplets'), +SecondLayerTriplets = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg'), BPix = cms.PSet( - BPixError, TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('secondPixelRecHits') ), FPix = cms.PSet( - FPixError, TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('secondPixelRecHits') ) diff --git a/RecoPixelVertexing/PixelLowPtUtilities/python/thirdStep_cff.py b/RecoPixelVertexing/PixelLowPtUtilities/python/thirdStep_cff.py index 4a2a928019daf..0912225376aa8 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/python/thirdStep_cff.py +++ b/RecoPixelVertexing/PixelLowPtUtilities/python/thirdStep_cff.py @@ -26,10 +26,7 @@ ################################# # Tertiary pairs -from RecoPixelVertexing.PixelLowPtUtilities.common_cff import BPixError -from RecoPixelVertexing.PixelLowPtUtilities.common_cff import FPixError -thirdLayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('ThirdLayerPairs'), +ThirdLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', @@ -44,12 +41,10 @@ # 'FPix1_pos+FPix2_pos', # 'FPix1_neg+FPix2_neg'), BPix = cms.PSet( - BPixError, TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('thirdPixelRecHits') ), FPix = cms.PSet( - FPixError, TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('thirdPixelRecHits') ) diff --git a/RecoPixelVertexing/PixelLowPtUtilities/src/PixelTripletLowPtGenerator.cc b/RecoPixelVertexing/PixelLowPtUtilities/src/PixelTripletLowPtGenerator.cc index 5be01078cd2ea..da117592e2aab 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/src/PixelTripletLowPtGenerator.cc +++ b/RecoPixelVertexing/PixelLowPtUtilities/src/PixelTripletLowPtGenerator.cc @@ -19,11 +19,9 @@ using namespace ctfseeding; /*****************************************************************************/ void PixelTripletLowPtGenerator::init(const HitPairGenerator & pairs, - const vector & layers, LayerCacheType* layerCache) { thePairGenerator = pairs.clone(); - theLayers = layers; theLayerCache = layerCache; checkMultipleScattering = ps.getParameter("checkMultipleScattering"); @@ -34,6 +32,13 @@ void PixelTripletLowPtGenerator::init(const HitPairGenerator & pairs, builderName = ps.getParameter("TTRHBuilder"); } +/*****************************************************************************/ +void PixelTripletLowPtGenerator::setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) { + thePairGenerator->setSeedingLayers(pairLayers); + theLayers = thirdLayers; +} + /*****************************************************************************/ void PixelTripletLowPtGenerator::getTracker (const edm::EventSetup& es) @@ -87,7 +92,7 @@ void PixelTripletLowPtGenerator::hitTriplets( // Set aliases const RecHitsSortedInPhi **thirdHitMap = new const RecHitsSortedInPhi*[size]; for(int il=0; ilsubDetector() diff --git a/RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackReconstruction.h b/RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackReconstruction.h index 3d56e63a3b9d2..72d3cd9a3cb17 100644 --- a/RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackReconstruction.h +++ b/RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackReconstruction.h @@ -5,6 +5,7 @@ #include "RecoPixelVertexing/PixelTrackFitting/interface/TracksWithHits.h" #include "FWCore/Framework/interface/ConsumesCollector.h" +#include class PixelFitter; class PixelTrackCleaner; @@ -32,7 +33,7 @@ class PixelTrackReconstruction { const PixelFitter * theFitter; std::unique_ptr theFilter; PixelTrackCleaner * theCleaner; - OrderedHitsGenerator * theGenerator; + std::unique_ptr theGenerator; TrackingRegionProducer* theRegionProducer; QuadrupletSeedMerger *theMerger_; }; diff --git a/RecoPixelVertexing/PixelTrackFitting/python/PixelTrackReconstruction_cfi.py b/RecoPixelVertexing/PixelTrackFitting/python/PixelTrackReconstruction_cfi.py index cba717b612db3..484c26ac63646 100644 --- a/RecoPixelVertexing/PixelTrackFitting/python/PixelTrackReconstruction_cfi.py +++ b/RecoPixelVertexing/PixelTrackFitting/python/PixelTrackReconstruction_cfi.py @@ -24,7 +24,7 @@ ), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet( PixelTripletHLTGeneratorWithFilter ) diff --git a/RecoPixelVertexing/PixelTrackFitting/src/PixelTrackReconstruction.cc b/RecoPixelVertexing/PixelTrackFitting/src/PixelTrackReconstruction.cc index e10345bbb999b..f1cddd03a13c4 100644 --- a/RecoPixelVertexing/PixelTrackFitting/src/PixelTrackReconstruction.cc +++ b/RecoPixelVertexing/PixelTrackFitting/src/PixelTrackReconstruction.cc @@ -35,19 +35,18 @@ using edm::ParameterSet; PixelTrackReconstruction::PixelTrackReconstruction(const ParameterSet& cfg, edm::ConsumesCollector && iC) - : theConfig(cfg), theFitter(0), theCleaner(0), theGenerator(0), theRegionProducer(0), theMerger_(0) + : theConfig(cfg), theFitter(0), theCleaner(0), theRegionProducer(0), theMerger_(0) { if ( cfg.exists("SeedMergerPSet") ) { edm::ParameterSet mergerPSet = theConfig.getParameter( "SeedMergerPSet" ); std::string seedmergerTTRHBuilderLabel = mergerPSet.getParameter( "ttrhBuilderLabel" ); - std::string seedmergerLayerListName = mergerPSet.getParameter( "layerListName" ); + edm::ParameterSet seedmergerLayerList = mergerPSet.getParameter( "layerList" ); bool seedmergerAddTriplets = mergerPSet.getParameter( "addRemainingTriplets" ); bool seedmergerMergeTriplets = mergerPSet.getParameter( "mergeTriplets" ); - theMerger_ = new QuadrupletSeedMerger(); + theMerger_ = new QuadrupletSeedMerger(seedmergerLayerList, iC); theMerger_->setMergeTriplets( seedmergerMergeTriplets ); theMerger_->setAddRemainingTriplets( seedmergerAddTriplets ); theMerger_->setTTRHBuilderLabel( seedmergerTTRHBuilderLabel ); - theMerger_->setLayerListName( seedmergerLayerListName ); } ParameterSet filterPSet = theConfig.getParameter("FilterPSet"); @@ -59,6 +58,11 @@ PixelTrackReconstruction::PixelTrackReconstruction(const ParameterSet& cfg, } } + ParameterSet orderedPSet = + theConfig.getParameter("OrderedHitsFactoryPSet"); + std::string orderedName = orderedPSet.getParameter("ComponentName"); + theGenerator.reset(OrderedHitsGeneratorFactory::get()->create( orderedName, orderedPSet, iC)); + ParameterSet regfactoryPSet = theConfig.getParameter("RegionFactoryPSet"); std::string regfactoryName = regfactoryPSet.getParameter("ComponentName"); theRegionProducer = TrackingRegionProducerFactory::get()->create(regfactoryName,regfactoryPSet, std::move(iC)); @@ -74,18 +78,13 @@ void PixelTrackReconstruction::halt() { delete theFitter; theFitter=0; delete theCleaner; theCleaner=0; - delete theGenerator; theGenerator=0; + delete theRegionProducer; theRegionProducer=0; delete theMerger_; theMerger_=0; } void PixelTrackReconstruction::init(const edm::EventSetup& es) { - ParameterSet orderedPSet = - theConfig.getParameter("OrderedHitsFactoryPSet"); - std::string orderedName = orderedPSet.getParameter("ComponentName"); - theGenerator = OrderedHitsGeneratorFactory::get()->create( orderedName, orderedPSet); - ParameterSet fitterPSet = theConfig.getParameter("FitterPSet"); std::string fitterName = fitterPSet.getParameter("ComponentName"); theFitter = PixelFitterFactory::get()->create( fitterName, fitterPSet); diff --git a/RecoPixelVertexing/PixelTrackFitting/test/test_cfg.py b/RecoPixelVertexing/PixelTrackFitting/test/test_cfg.py index 5b38d7efe3534..061b46c47f748 100644 --- a/RecoPixelVertexing/PixelTrackFitting/test/test_cfg.py +++ b/RecoPixelVertexing/PixelTrackFitting/test/test_cfg.py @@ -69,5 +69,5 @@ process.test = cms.EDAnalyzer("PixelTrackTest", TrackCollection = cms.string("pixelTracks2")) -process.p=cms.Path(process.siPixelDigis*process.pixeltrackerlocalreco*process.offlineBeamSpot*process.pixelTracks2*process.test) +process.p=cms.Path(process.siPixelDigis*process.pixeltrackerlocalreco*process.offlineBeamSpot*process.PixelLayerTriplets*process.pixelTracks2*process.test) diff --git a/RecoPixelVertexing/PixelTriplets/BuildFile.xml b/RecoPixelVertexing/PixelTriplets/BuildFile.xml index 90e081530f24c..c5652e0d76d6d 100644 --- a/RecoPixelVertexing/PixelTriplets/BuildFile.xml +++ b/RecoPixelVertexing/PixelTriplets/BuildFile.xml @@ -9,6 +9,7 @@ + diff --git a/RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h b/RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h index cfc6d2019f400..5e19c86b1f97d 100644 --- a/RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h +++ b/RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h @@ -10,8 +10,7 @@ #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGenerator.h" #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" - +#include "RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h" #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h" @@ -21,8 +20,11 @@ class HitTripletGeneratorFromPairAndLayers : public HitTripletGenerator { typedef LayerHitMapCache LayerCacheType; virtual ~HitTripletGeneratorFromPairAndLayers() {} - virtual void init( const HitPairGenerator & pairs, - const std::vector& layers, LayerCacheType* layerCache) = 0; + + virtual void init( const HitPairGenerator & pairs, LayerCacheType* layerCache) = 0; + + virtual void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) = 0; }; #endif diff --git a/RecoPixelVertexing/PixelTriplets/interface/LayerTriplets.h b/RecoPixelVertexing/PixelTriplets/interface/LayerTriplets.h index b888663df1d72..cfac708ab5d35 100644 --- a/RecoPixelVertexing/PixelTriplets/interface/LayerTriplets.h +++ b/RecoPixelVertexing/PixelTriplets/interface/LayerTriplets.h @@ -8,21 +8,15 @@ */ #include -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" +#include "RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h" -class LayerTriplets { -public: - typedef std::pair SeedingLayerPair; - typedef std::pair > LayerPairAndLayers; +namespace LayerTriplets { + using Layer = SeedingLayerSetsHits::SeedingLayer; + using LayerSet = SeedingLayerSetsHits::SeedingLayerSet; + using LayerSetAndLayers = std::pair >; - LayerTriplets( const ctfseeding::SeedingLayerSets & sets) : theSets(sets) {} - - std::vector layers() const; - -private: - ctfseeding::SeedingLayerSets theSets; -}; + std::vector layers(const SeedingLayerSetsHits& sets); +} #endif diff --git a/RecoPixelVertexing/PixelTriplets/interface/QuadrupletSeedMerger.h b/RecoPixelVertexing/PixelTriplets/interface/QuadrupletSeedMerger.h index aa38dad5cda93..6ccc7881921c9 100644 --- a/RecoPixelVertexing/PixelTriplets/interface/QuadrupletSeedMerger.h +++ b/RecoPixelVertexing/PixelTriplets/interface/QuadrupletSeedMerger.h @@ -42,6 +42,7 @@ #include "RecoPixelVertexing/PixelTriplets/interface/OrderedHitSeeds.h" class TrackerTopology; +namespace edm { class ConsumesCollector; } /// /// helper class for extracting info @@ -78,7 +79,7 @@ class QuadrupletSeedMerger { public: - QuadrupletSeedMerger( ); + explicit QuadrupletSeedMerger(const edm::ParameterSet& iConfig, edm::ConsumesCollector& iC); ~QuadrupletSeedMerger(); void update(const edm::EventSetup& ); @@ -89,7 +90,6 @@ class QuadrupletSeedMerger { void printHit( const TrackingRecHit* ) const; void printHit( const TransientTrackingRecHit::ConstRecHitPointer& ) const; void printNtuplet( const SeedingHitSet& ) const; - void setLayerListName( std::string ); void setMergeTriplets( bool ); void setAddRemainingTriplets( bool ); void setTTRHBuilderLabel( std::string ); @@ -102,10 +102,10 @@ class QuadrupletSeedMerger { // bool isValidQuadruplet( const SeedingHitSet&, const std::vector& ) const; + SeedingLayerSetsBuilder theLayerBuilder_; ctfseeding::SeedingLayerSets theLayerSets_; edm::ESHandle theTrackerGeometry_; edm::ESHandle theTTRHBuilder_; - std::string layerListName_; bool isMergeTriplets_; bool isAddRemainingTriplets_; std::string theTTRHBuilderLabel_; diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CombinedHitTripletGenerator.cc b/RecoPixelVertexing/PixelTriplets/plugins/CombinedHitTripletGenerator.cc index 6e8fa45a0aa3f..3ec6a6d7390ef 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/CombinedHitTripletGenerator.cc +++ b/RecoPixelVertexing/PixelTriplets/plugins/CombinedHitTripletGenerator.cc @@ -1,77 +1,38 @@ #include "CombinedHitTripletGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h" #include "RecoTracker/TkHitPairs/interface/HitPairGeneratorFromLayerPair.h" #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h" #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayersFactory.h" #include "RecoPixelVertexing/PixelTriplets/interface/LayerTriplets.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "DataFormats/Common/interface/Handle.h" - -using namespace std; -using namespace ctfseeding; - -CombinedHitTripletGenerator::CombinedHitTripletGenerator(const edm::ParameterSet& cfg) - : initialised(false), theConfig(cfg) -{ } - -void CombinedHitTripletGenerator::init(const edm::ParameterSet & cfg, const edm::EventSetup& es) -{ -// edm::ParameterSet leyerPSet = cfg.getParameter("LayerPSet"); -// SeedingLayerSets layerSets = SeedingLayerSetsBuilder(leyerPSet).layers(es); - - std::string layerBuilderName = cfg.getParameter("SeedingLayers"); - edm::ESHandle layerBuilder; - es.get().get(layerBuilderName, layerBuilder); - - SeedingLayerSets layerSets = layerBuilder->layers(es); - - - vector::const_iterator it; - vector trilayers=LayerTriplets(layerSets).layers(); - - for (it = trilayers.begin(); it != trilayers.end(); it++) { - SeedingLayer first = (*it).first.first; - SeedingLayer second = (*it).first.second; - vector thirds = (*it).second; - - edm::ParameterSet generatorPSet = theConfig.getParameter("GeneratorPSet"); - std::string generatorName = generatorPSet.getParameter("ComponentName"); - - HitTripletGeneratorFromPairAndLayers * aGen = - HitTripletGeneratorFromPairAndLayersFactory::get()->create(generatorName,generatorPSet); - - aGen->init( HitPairGeneratorFromLayerPair( first, second, &theLayerCache), - thirds, &theLayerCache); - - theGenerators.push_back( aGen); - } - - initialised = true; - -} - -CombinedHitTripletGenerator::~CombinedHitTripletGenerator() +CombinedHitTripletGenerator::CombinedHitTripletGenerator(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) : + theSeedingLayerToken(iC.consumes(cfg.getParameter("SeedingLayers"))) { - GeneratorContainer::const_iterator it; - for (it = theGenerators.begin(); it!= theGenerators.end(); it++) { - delete (*it); - } + edm::ParameterSet generatorPSet = cfg.getParameter("GeneratorPSet"); + std::string generatorName = generatorPSet.getParameter("ComponentName"); + theGenerator.reset(HitTripletGeneratorFromPairAndLayersFactory::get()->create(generatorName, generatorPSet)); + theGenerator->init(HitPairGeneratorFromLayerPair(0, 1, &theLayerCache), &theLayerCache); } +CombinedHitTripletGenerator::~CombinedHitTripletGenerator() {} void CombinedHitTripletGenerator::hitTriplets( const TrackingRegion& region, OrderedHitTriplets & result, const edm::Event& ev, const edm::EventSetup& es) { - if (!initialised) init(theConfig,es); - - GeneratorContainer::const_iterator i; - for (i=theGenerators.begin(); i!=theGenerators.end(); i++) { - (**i).hitTriplets( region, result, ev, es); + edm::Handle hlayers; + ev.getByToken(theSeedingLayerToken, hlayers); + const SeedingLayerSetsHits& layers = *hlayers; + if(layers.numberOfLayersInSet() != 3) + throw cms::Exception("Configuration") << "CombinedHitTripletGenerator expects SeedingLayerSetsHits::numberOfLayersInSet() to be 3, got " << layers.numberOfLayersInSet(); + + std::vector trilayers = LayerTriplets::layers(layers); + for(const auto& setAndLayers: trilayers) { + theGenerator->setSeedingLayers(setAndLayers.first, setAndLayers.second); + theGenerator->hitTriplets( region, result, ev, es); } theLayerCache.clear(); } diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CombinedHitTripletGenerator.h b/RecoPixelVertexing/PixelTriplets/plugins/CombinedHitTripletGenerator.h index 5abfcb32f16fc..745684e8f5f16 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/CombinedHitTripletGenerator.h +++ b/RecoPixelVertexing/PixelTriplets/plugins/CombinedHitTripletGenerator.h @@ -7,13 +7,18 @@ */ #include +#include #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGenerator.h" #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/EDGetToken.h" + +#include +#include class TrackingRegion; class HitTripletGeneratorFromPairAndLayers; -namespace ctfseeding { class SeedingLayer;} +class SeedingLayerSetsHits; namespace edm { class Event; } namespace edm { class EventSetup; } @@ -24,7 +29,7 @@ class CombinedHitTripletGenerator : public HitTripletGenerator { public: - CombinedHitTripletGenerator( const edm::ParameterSet& cfg); + CombinedHitTripletGenerator( const edm::ParameterSet& cfg, edm::ConsumesCollector& iC); virtual ~CombinedHitTripletGenerator(); @@ -33,14 +38,10 @@ class CombinedHitTripletGenerator : public HitTripletGenerator { const edm::Event & ev, const edm::EventSetup& es); private: - void init(const edm::ParameterSet & cfg, const edm::EventSetup& es); - - mutable bool initialised; + edm::EDGetTokenT theSeedingLayerToken; - edm::ParameterSet theConfig; LayerCacheType theLayerCache; - typedef std::vector GeneratorContainer; - GeneratorContainer theGenerators; + std::unique_ptr theGenerator; }; #endif diff --git a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletHLTGenerator.cc b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletHLTGenerator.cc index 33c311f4b67a1..f4115dc8012bc 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletHLTGenerator.cc +++ b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletHLTGenerator.cc @@ -54,14 +54,18 @@ PixelTripletHLTGenerator::~PixelTripletHLTGenerator() { } void PixelTripletHLTGenerator::init( const HitPairGenerator & pairs, - const std::vector & layers, LayerCacheType* layerCache) { thePairGenerator = pairs.clone(); - theLayers = layers; theLayerCache = layerCache; } +void PixelTripletHLTGenerator::setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) { + thePairGenerator->setSeedingLayers(pairLayers); + theLayers = thirdLayers; +} + void PixelTripletHLTGenerator::hitTriplets(const TrackingRegion& region, OrderedHitTriplets & result, const edm::Event & ev, @@ -98,7 +102,7 @@ void PixelTripletHLTGenerator::hitTriplets(const TrackingRegion& region, // fill the prediction vector for (int il=0; il!=size; ++il) { - thirdHitMap[il] = &(*theLayerCache)(&theLayers[il], region, ev, es); + thirdHitMap[il] = &(*theLayerCache)(theLayers[il], region, ev, es); auto const & hits = *thirdHitMap[il]; ThirdHitRZPrediction & pred = preds[il]; pred.initLayer(theLayers[il].detLayer()); diff --git a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletHLTGenerator.h b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletHLTGenerator.h index 5ee5c081eb860..9db4828868fe1 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletHLTGenerator.h +++ b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletHLTGenerator.h @@ -10,7 +10,6 @@ #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGenerator.h" #include "CombinedHitTripletGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h" @@ -29,14 +28,15 @@ typedef CombinedHitTripletGenerator::LayerCacheType LayerCacheType; virtual ~PixelTripletHLTGenerator(); - virtual void init( const HitPairGenerator & pairs, - const std::vector & layers, LayerCacheType* layerCache); + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) override; + + void init( const HitPairGenerator & pairs, LayerCacheType* layerCache) override; virtual void hitTriplets( const TrackingRegion& region, OrderedHitTriplets & trs, const edm::Event & ev, const edm::EventSetup& es); const HitPairGenerator & pairGenerator() const { return *thePairGenerator; } - const std::vector & thirdLayers() const { return theLayers; } private: bool checkPhiInRange(float phi, float phi1, float phi2) const; @@ -45,7 +45,7 @@ typedef CombinedHitTripletGenerator::LayerCacheType LayerCacheType; private: HitPairGenerator * thePairGenerator; - std::vector theLayers; + std::vector theLayers; LayerCacheType * theLayerCache; bool useFixedPreFiltering; diff --git a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletLargeTipGenerator.cc b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletLargeTipGenerator.cc index 009906f53605c..4783b15b74d8c 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletLargeTipGenerator.cc +++ b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletLargeTipGenerator.cc @@ -23,7 +23,6 @@ #include using namespace std; -using namespace ctfseeding; typedef PixelRecoRange Range; @@ -55,14 +54,17 @@ PixelTripletLargeTipGenerator::PixelTripletLargeTipGenerator(const edm::Paramete } void PixelTripletLargeTipGenerator::init(const HitPairGenerator & pairs, - const std::vector &layers, LayerCacheType *layerCache) { thePairGenerator = pairs.clone(); - theLayers = layers; theLayerCache = layerCache; } +void PixelTripletLargeTipGenerator::setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) { + thePairGenerator->setSeedingLayers(pairLayers); + theLayers = thirdLayers; +} namespace { inline @@ -115,7 +117,7 @@ void PixelTripletLargeTipGenerator::hitTriplets(const TrackingRegion& region, const RecHitsSortedInPhi * thirdHitMap[size]; for(int il = 0; il < size; il++) { - thirdHitMap[il] = &(*theLayerCache)(&theLayers[il], region, ev, es); + thirdHitMap[il] = &(*theLayerCache)(theLayers[il], region, ev, es); auto const & hits = *thirdHitMap[il]; const DetLayer *layer = theLayers[il].detLayer(); @@ -300,7 +302,7 @@ void PixelTripletLargeTipGenerator::hitTriplets(const TrackingRegion& region, MatchedHitRZCorrectionFromBending l2rzFixup(doublets.hit(ip,HitDoublets::outer)->det()->geographicalId(), tTopo); MatchedHitRZCorrectionFromBending l3rzFixup = predRZ.rzPositionFixup; - thirdHitMap[il] = &(*theLayerCache)(&theLayers[il], region, ev, es); + thirdHitMap[il] = &(*theLayerCache)(theLayers[il], region, ev, es); auto const & hits = *thirdHitMap[il]; for (auto KDdata : foundNodes) { GlobalPoint p3 = hits.gp(KDdata); diff --git a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletLargeTipGenerator.h b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletLargeTipGenerator.h index 1df8689a4dc8e..74d1a3232f541 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletLargeTipGenerator.h +++ b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletLargeTipGenerator.h @@ -10,7 +10,6 @@ #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGenerator.h" #include "CombinedHitTripletGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h" @@ -28,14 +27,15 @@ typedef CombinedHitTripletGenerator::LayerCacheType LayerCacheType; virtual ~PixelTripletLargeTipGenerator() { delete thePairGenerator; } - virtual void init( const HitPairGenerator & pairs, - const std::vector & layers, LayerCacheType* layerCache); + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) override; + + void init( const HitPairGenerator & pairs, LayerCacheType* layerCache) override; virtual void hitTriplets( const TrackingRegion& region, OrderedHitTriplets & trs, const edm::Event & ev, const edm::EventSetup& es); const HitPairGenerator & pairGenerator() const { return *thePairGenerator; } - const std::vector & thirdLayers() const { return theLayers; } private: @@ -46,7 +46,7 @@ typedef CombinedHitTripletGenerator::LayerCacheType LayerCacheType; private: HitPairGenerator * thePairGenerator; - std::vector theLayers; + std::vector theLayers; LayerCacheType * theLayerCache; bool useFixedPreFiltering; diff --git a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletNoTipGenerator.cc b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletNoTipGenerator.cc index 8c5a01f2a9254..508c4ac24c2be 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletNoTipGenerator.cc +++ b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletNoTipGenerator.cc @@ -20,7 +20,6 @@ typedef PixelRecoRange Range; template T sqr(T t) { return t * t;} using namespace std; -using namespace ctfseeding; PixelTripletNoTipGenerator:: PixelTripletNoTipGenerator(const edm::ParameterSet& cfg) : thePairGenerator(0), @@ -33,14 +32,18 @@ PixelTripletNoTipGenerator:: PixelTripletNoTipGenerator(const edm::ParameterSet& { } void PixelTripletNoTipGenerator::init( const HitPairGenerator & pairs, - const std::vector & layers, LayerCacheType* layerCache) { thePairGenerator = pairs.clone(); - theLayers = layers; theLayerCache = layerCache; } +void PixelTripletNoTipGenerator::setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) { + thePairGenerator->setSeedingLayers(pairLayers); + theLayers = thirdLayers; +} + void PixelTripletNoTipGenerator::hitTriplets( const TrackingRegion& region, OrderedHitTriplets & result, @@ -70,7 +73,7 @@ void PixelTripletNoTipGenerator::hitTriplets( const RecHitsSortedInPhi **thirdHitMap = new const RecHitsSortedInPhi*[size]; for (int il=0; il <=size-1; il++) { - thirdHitMap[il] = &(*theLayerCache)(&theLayers[il], region, ev, es); + thirdHitMap[il] = &(*theLayerCache)(theLayers[il], region, ev, es); } const HitPairGeneratorFromLayerPair * pairGen = dynamic_cast(thePairGenerator); diff --git a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletNoTipGenerator.h b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletNoTipGenerator.h index 2e04752ec0629..b0477824618ce 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletNoTipGenerator.h +++ b/RecoPixelVertexing/PixelTriplets/plugins/PixelTripletNoTipGenerator.h @@ -4,7 +4,6 @@ #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h" #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "CombinedHitTripletGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" namespace edm { class Event; class EventSetup; } @@ -19,18 +18,19 @@ typedef CombinedHitTripletGenerator::LayerCacheType LayerCacheType; virtual ~PixelTripletNoTipGenerator() { delete thePairGenerator; } - virtual void init( const HitPairGenerator & pairs, - const std::vector & layers, LayerCacheType* layerCache); + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) override; + + void init( const HitPairGenerator & pairs, LayerCacheType* layerCache) override; virtual void hitTriplets( const TrackingRegion& region, OrderedHitTriplets & trs, const edm::Event & ev, const edm::EventSetup& es); const HitPairGenerator & pairGenerator() const { return *thePairGenerator; } - const std::vector & thirdLayers() const { return theLayers; } private: HitPairGenerator * thePairGenerator; - std::vector theLayers; + std::vector theLayers; LayerCacheType * theLayerCache; float extraHitRZtolerance; float extraHitRPhitolerance; diff --git a/RecoPixelVertexing/PixelTriplets/python/quadrupletseedmerging_cff.py b/RecoPixelVertexing/PixelTriplets/python/quadrupletseedmerging_cff.py index 490a894aa470f..ecdf49d17ba93 100644 --- a/RecoPixelVertexing/PixelTriplets/python/quadrupletseedmerging_cff.py +++ b/RecoPixelVertexing/PixelTriplets/python/quadrupletseedmerging_cff.py @@ -2,9 +2,8 @@ import FWCore.ParameterSet.Config as cms # creating quadruplet SeedingLayerSets for the merger; -pixelseedmergerlayers = cms.ESProducer( "SeedingLayersESProducer", +PixelSeedMergerQuadruplets = cms.PSet( appendToDataLabel = cms.string( "" ), - ComponentName = cms.string( "PixelSeedMergerQuadruplets" ), # this simply describes all possible layer/disk combinations # on which quadruplets are expected to appear @@ -27,18 +26,12 @@ ), BPix = cms.PSet( - useErrorsFromParam = cms.bool( True ), - hitErrorRPhi = cms.double( 0.0027 ), TTRHBuilder = cms.string( "TTRHBuilderPixelOnly" ), HitProducer = cms.string( "hltSiPixelRecHits" ), - hitErrorRZ = cms.double( 0.0060 ) ), FPix = cms.PSet( - useErrorsFromParam = cms.bool( True ), - hitErrorRPhi = cms.double( 0.0051 ), TTRHBuilder = cms.string( "TTRHBuilderPixelOnly" ), HitProducer = cms.string( "hltSiPixelRecHits" ), - hitErrorRZ = cms.double( 0.0036 ) ), TEC = cms.PSet( ) ) diff --git a/RecoPixelVertexing/PixelTriplets/src/LayerTriplets.cc b/RecoPixelVertexing/PixelTriplets/src/LayerTriplets.cc index d37668b5ae648..b283444ae4e27 100644 --- a/RecoPixelVertexing/PixelTriplets/src/LayerTriplets.cc +++ b/RecoPixelVertexing/PixelTriplets/src/LayerTriplets.cc @@ -1,30 +1,28 @@ #include "RecoPixelVertexing/PixelTriplets/interface/LayerTriplets.h" -using namespace ctfseeding; -std::vector LayerTriplets::layers() const -{ - std::vector result; - typedef std::vector::iterator IR; +namespace LayerTriplets { +std::vector layers(const SeedingLayerSetsHits& sets) { + std::vector result; + if(sets.numberOfLayersInSet() != 3) + return result; - typedef SeedingLayerSets::const_iterator IL; - for (IL il=theSets.begin(), ilEnd= theSets.end(); il != ilEnd; ++il) { - const SeedingLayers & set = *il; - if (set.size() != 3) continue; - SeedingLayerPair layerPair = std::make_pair(set[0], set[1]); + for(LayerSet set: sets) { bool added = false; - for (IR ir = result.begin(); ir < result.end(); ++ir) { - const SeedingLayerPair & resPair = ir->first; - if (resPair.first ==layerPair.first && resPair.second == layerPair.second) { - std::vector & thirds = ir->second; + + for(auto ir = result.begin(); ir < result.end(); ++ir) { + const LayerSet & resSet = ir->first; + if (resSet[0].index() == set[0].index() && resSet[1].index() == set[1].index()) { + std::vector& thirds = ir->second; thirds.push_back( set[2] ); added = true; break; } } if (!added) { - LayerPairAndLayers lpl = std::make_pair(layerPair, std::vector(1, set[2]) ); + LayerSetAndLayers lpl = std::make_pair(set, std::vector(1, set[2]) ); result.push_back(lpl); } } return result; } +} diff --git a/RecoPixelVertexing/PixelTriplets/src/QuadrupletSeedMerger.cc b/RecoPixelVertexing/PixelTriplets/src/QuadrupletSeedMerger.cc index 3765ad060ae27..d5a702c35abbc 100644 --- a/RecoPixelVertexing/PixelTriplets/src/QuadrupletSeedMerger.cc +++ b/RecoPixelVertexing/PixelTriplets/src/QuadrupletSeedMerger.cc @@ -63,17 +63,15 @@ namespace { /// /// /// -QuadrupletSeedMerger::QuadrupletSeedMerger( ) { +QuadrupletSeedMerger::QuadrupletSeedMerger(const edm::ParameterSet& iConfig, edm::ConsumesCollector& iC): + theLayerBuilder_(iConfig, iC) + { // by default, do not.. // ..merge triplets isMergeTriplets_ = false; // ..add remaining triplets isAddRemainingTriplets_ = false; - - // default is the layer list from plain quadrupletseedmerging_cff - // unless configured contrarily via setLayerListName() - layerListName_ = std::string( "PixelSeedMergerQuadruplets" ); } void QuadrupletSeedMerger::update(const edm::EventSetup& es) { @@ -108,9 +106,9 @@ const OrderedSeedingHits& QuadrupletSeedMerger::mergeTriplets( const OrderedSeed const TrackerTopology *tTopo=tTopoHand.product(); // the list of layers on which quadruplets should be formed - edm::ESHandle layerBuilder; - es.get().get( layerListName_.c_str(), layerBuilder ); - theLayerSets_ = layerBuilder->layers( es ); // this is a vector > + if(theLayerBuilder_.check(es)) { + theLayerSets_ = theLayerBuilder_.layers( es ); // this is a vector > + } // make a working copy of the input triplets @@ -586,15 +584,6 @@ void QuadrupletSeedMerger::setTTRHBuilderLabel( std::string label ) { -/// -/// -/// -void QuadrupletSeedMerger::setLayerListName( std::string layerListName ) { - layerListName_ = layerListName; -} - - - /// /// /// diff --git a/RecoPixelVertexing/PixelTriplets/test/HitTripletProducer.cc b/RecoPixelVertexing/PixelTriplets/test/HitTripletProducer.cc index 1326e2d96b4ec..444114ffb32ee 100644 --- a/RecoPixelVertexing/PixelTriplets/test/HitTripletProducer.cc +++ b/RecoPixelVertexing/PixelTriplets/test/HitTripletProducer.cc @@ -1,6 +1,7 @@ #include "FWCore/Framework/interface/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -40,6 +41,12 @@ HitTripletProducer::HitTripletProducer(const edm::ParameterSet& conf) edm::LogInfo("HitTripletProducer")<<" CTOR"; hCPU = new TH1D ("hCPU","hCPU",140,0.,0.070); hNum = new TH1D ("hNum","hNum",250,0.,500.); + + edm::ParameterSet orderedPSet = + theConfig.getParameter("OrderedHitsFactoryPSet"); + std::string orderedName = orderedPSet.getParameter("ComponentName"); + edm::ConsumesCollector iC = consumesCollector(); + theGenerator = OrderedHitsGeneratorFactory::get()->create( orderedName, orderedPSet, iC); } HitTripletProducer::~HitTripletProducer() @@ -56,11 +63,6 @@ HitTripletProducer::~HitTripletProducer() void HitTripletProducer::init(const edm::EventSetup& es) { std::cout << "INIT called" << std::endl; - edm::ParameterSet orderedPSet = - theConfig.getParameter("OrderedHitsFactoryPSet"); - std::string orderedName = orderedPSet.getParameter("ComponentName"); - theGenerator = OrderedHitsGeneratorFactory::get()->create( orderedName, orderedPSet); - edm::ParameterSet regfactoryPSet = theConfig.getParameter("RegionFactoryPSet"); std::string regfactoryName = regfactoryPSet.getParameter("ComponentName"); diff --git a/RecoPixelVertexing/PixelTriplets/test/trip_cfg.py b/RecoPixelVertexing/PixelTriplets/test/trip_cfg.py index fcbf9d9d701c9..c6260566577dd 100644 --- a/RecoPixelVertexing/PixelTriplets/test/trip_cfg.py +++ b/RecoPixelVertexing/PixelTriplets/test/trip_cfg.py @@ -34,7 +34,7 @@ process.triplets = cms.EDAnalyzer("HitTripletProducer", OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string("StandardHitTripletGenerator"), - SeedingLayers = cms.string("PixelLayerTriplets"), + SeedingLayers = cms.InputTag("PixelLayerTriplets"), GeneratorPSet = cms.PSet( PixelTripletHLTGenerator ) # GeneratorPSet = cms.PSet( PixelTripletLargeTipGenerator ) ), @@ -49,4 +49,4 @@ #process.triplets.RegionFactoryPSet.RegionPSet.originRadius = cms.double(0.001) #process.triplets.RegionFactoryPSet.RegionPSet.originHalfLength = cms.double(0.0001) -process.p = cms.Path(pixeltrackerlocalreco+process.triplets) +process.p = cms.Path(pixeltrackerlocalreco+process.PixelLayerTriplets+process.triplets) diff --git a/RecoTauTag/HLTProducers/python/TauRegionalPixelSeedGenerator_cfi.py b/RecoTauTag/HLTProducers/python/TauRegionalPixelSeedGenerator_cfi.py index 087fe03e0f51f..cc289f905f470 100644 --- a/RecoTauTag/HLTProducers/python/TauRegionalPixelSeedGenerator_cfi.py +++ b/RecoTauTag/HLTProducers/python/TauRegionalPixelSeedGenerator_cfi.py @@ -3,7 +3,7 @@ tauRegionalPixelSeedGenerator = cms.EDProducer("SeedGeneratorFromRegionHitsEDProducer", OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs') + SeedingLayers = cms.InputTag('PixelLayerPairs') ), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('none') diff --git a/RecoTracker/Configuration/python/RecoTrackerNotStandard_cff.py b/RecoTracker/Configuration/python/RecoTrackerNotStandard_cff.py index db640199fa836..87e4c4d90bfcc 100644 --- a/RecoTracker/Configuration/python/RecoTrackerNotStandard_cff.py +++ b/RecoTracker/Configuration/python/RecoTrackerNotStandard_cff.py @@ -19,8 +19,8 @@ from RecoTracker.TrackProducer.CTFPixelLess_cff import * from RecoTracker.TrackProducer.CTFCombinedSeeds_cff import * ctfTracksNoOverlaps = cms.Sequence(ckfTrackCandidatesNoOverlaps*ctfNoOverlaps) -ctfTracksPixelLess = cms.Sequence(globalPixelLessSeeds*ckfTrackCandidatesPixelLess*ctfPixelLess) -ctfTracksCombinedSeeds = cms.Sequence(globalSeedsFromPairsWithVertices*globalSeedsFromTriplets*globalCombinedSeeds*ckfTrackCandidatesCombinedSeeds*ctfCombinedSeeds) +ctfTracksPixelLess = cms.Sequence(pixelLessLayerPairs4PixelLessTracking*globalPixelLessSeeds*ckfTrackCandidatesPixelLess*ctfPixelLess) +ctfTracksCombinedSeeds = cms.Sequence(MixedLayerPairs*globalSeedsFromPairsWithVertices*PixelLayerTriplets*globalSeedsFromTriplets*globalCombinedSeeds*ckfTrackCandidatesCombinedSeeds*ctfCombinedSeeds) # # Regional reconstruction for cosmics diff --git a/RecoTracker/ConversionSeedGenerators/interface/CombinedHitPairGeneratorForPhotonConversion.h b/RecoTracker/ConversionSeedGenerators/interface/CombinedHitPairGeneratorForPhotonConversion.h index 6f6eeecd24c2c..2e38244cdbdab 100644 --- a/RecoTracker/ConversionSeedGenerators/interface/CombinedHitPairGeneratorForPhotonConversion.h +++ b/RecoTracker/ConversionSeedGenerators/interface/CombinedHitPairGeneratorForPhotonConversion.h @@ -2,21 +2,19 @@ #define CombinedHitPairGeneratorForPhotonConversion_H #include +#include #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/EDGetToken.h" class TrackingRegion; class OrderedHitPairs; class HitPairGeneratorFromLayerPairForPhotonConversion; -namespace ctfseeding { class SeedingLayer;} +class SeedingLayerSetsHits; namespace edm { class Event; class EventSetup; } -#include "FWCore/Framework/interface/ESWatcher.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" - #include "RecoTracker/ConversionSeedGenerators/interface/ConversionRegion.h" /** \class CombinedHitPairGeneratorForPhotonConversion @@ -28,18 +26,17 @@ class CombinedHitPairGeneratorForPhotonConversion : public HitPairGenerator { typedef LayerHitMapCache LayerCacheType; public: - CombinedHitPairGeneratorForPhotonConversion(const edm::ParameterSet & cfg); + CombinedHitPairGeneratorForPhotonConversion(const edm::ParameterSet & cfg, edm::ConsumesCollector& iC); virtual ~CombinedHitPairGeneratorForPhotonConversion(); - void add(const ctfseeding::SeedingLayer & inner, - const ctfseeding::SeedingLayer & outer); + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) override; /// form base class virtual void hitPairs(const TrackingRegion&, OrderedHitPairs&, const edm::Event&, const edm::EventSetup&){}; /// from base class virtual CombinedHitPairGeneratorForPhotonConversion * clone() const - { return new CombinedHitPairGeneratorForPhotonConversion(theConfig); } + { return new CombinedHitPairGeneratorForPhotonConversion(*this); } /*Added to the original class*/ const OrderedHitPairs & run( @@ -55,21 +52,13 @@ class CombinedHitPairGeneratorForPhotonConversion : public HitPairGenerator { /*------------------------*/ private: CombinedHitPairGeneratorForPhotonConversion(const CombinedHitPairGeneratorForPhotonConversion & cb); - void init(const ctfseeding::SeedingLayerSets & layerSets); - void init(const edm::ParameterSet & cfg, const edm::EventSetup& es); - void cleanup(); - - mutable bool initialised; - edm::ParameterSet theConfig; + edm::EDGetTokenT theSeedingLayerToken; uint32_t maxHitPairsPerTrackAndGenerator; LayerCacheType theLayerCache; - edm::ESWatcher theESWatcher; - - typedef std::vector Container; - Container theGenerators; + std::unique_ptr theGenerator; OrderedHitPairs thePairs; diff --git a/RecoTracker/ConversionSeedGenerators/interface/CombinedHitQuadrupletGeneratorForPhotonConversion.h b/RecoTracker/ConversionSeedGenerators/interface/CombinedHitQuadrupletGeneratorForPhotonConversion.h index 7aad984dc15d2..70e2cf7b54391 100644 --- a/RecoTracker/ConversionSeedGenerators/interface/CombinedHitQuadrupletGeneratorForPhotonConversion.h +++ b/RecoTracker/ConversionSeedGenerators/interface/CombinedHitQuadrupletGeneratorForPhotonConversion.h @@ -2,21 +2,18 @@ #define CombinedHitQuadrupletGeneratorForPhotonConversion_H #include +#include #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" - +#include "FWCore/Utilities/interface/EDGetToken.h" class TrackingRegion; class OrderedHitPairs; class HitQuadrupletGeneratorFromLayerPairForPhotonConversion; -namespace ctfseeding { class SeedingLayer;} +class SeedingLayerSetsHits; namespace edm { class Event; class EventSetup; } -#include "FWCore/Framework/interface/ESWatcher.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" - #include "RecoTracker/ConversionSeedGenerators/interface/ConversionRegion.h" /** \class CombinedHitQuadrupletGeneratorForPhotonConversion @@ -28,18 +25,17 @@ class CombinedHitQuadrupletGeneratorForPhotonConversion : public HitPairGenerato typedef LayerHitMapCache LayerCacheType; public: - CombinedHitQuadrupletGeneratorForPhotonConversion(const edm::ParameterSet & cfg); + CombinedHitQuadrupletGeneratorForPhotonConversion(const edm::ParameterSet & cfg, edm::ConsumesCollector& iC); virtual ~CombinedHitQuadrupletGeneratorForPhotonConversion(); - void add(const ctfseeding::SeedingLayer & inner, - const ctfseeding::SeedingLayer & outer); + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) override; /// form base class virtual void hitPairs(const TrackingRegion&, OrderedHitPairs&, const edm::Event&, const edm::EventSetup&); /// from base class virtual CombinedHitQuadrupletGeneratorForPhotonConversion * clone() const - { return new CombinedHitQuadrupletGeneratorForPhotonConversion(theConfig); } + { return new CombinedHitQuadrupletGeneratorForPhotonConversion(*this); } const OrderedHitPairs & run(const TrackingRegion& region, const edm::Event & ev, const edm::EventSetup& es); @@ -49,20 +45,12 @@ class CombinedHitQuadrupletGeneratorForPhotonConversion : public HitPairGenerato /*------------------------*/ private: CombinedHitQuadrupletGeneratorForPhotonConversion(const CombinedHitQuadrupletGeneratorForPhotonConversion & cb); - void init(const ctfseeding::SeedingLayerSets & layerSets); - void init(const edm::ParameterSet & cfg, const edm::EventSetup& es); - void cleanup(); - - mutable bool initialised; - edm::ParameterSet theConfig; + edm::EDGetTokenT theSeedingLayerToken; LayerCacheType theLayerCache; - edm::ESWatcher theESWatcher; - - typedef std::vector Container; - Container theGenerators; + std::unique_ptr theGenerator; OrderedHitPairs thePairs; diff --git a/RecoTracker/ConversionSeedGenerators/interface/HitPairGeneratorFromLayerPairForPhotonConversion.h b/RecoTracker/ConversionSeedGenerators/interface/HitPairGeneratorFromLayerPairForPhotonConversion.h index 7608aaa26e766..bc6fab902bc3c 100644 --- a/RecoTracker/ConversionSeedGenerators/interface/HitPairGeneratorFromLayerPairForPhotonConversion.h +++ b/RecoTracker/ConversionSeedGenerators/interface/HitPairGeneratorFromLayerPairForPhotonConversion.h @@ -3,7 +3,6 @@ #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" #include "FWCore/Framework/interface/EventSetup.h" #include "RecoTracker/ConversionSeedGenerators/interface/ConversionRegion.h" @@ -16,16 +15,19 @@ class HitPairGeneratorFromLayerPairForPhotonConversion : public HitPairGenerator public: typedef CombinedHitPairGenerator::LayerCacheType LayerCacheType; - typedef ctfseeding::SeedingLayer Layer; + typedef SeedingLayerSetsHits::SeedingLayerSet Layers; + typedef SeedingLayerSetsHits::SeedingLayer Layer; - HitPairGeneratorFromLayerPairForPhotonConversion(const Layer& inner, - const Layer& outer, + HitPairGeneratorFromLayerPairForPhotonConversion(unsigned int inner, + unsigned int outer, LayerCacheType* layerCache, unsigned int nSize=30000, unsigned int max=0); virtual ~HitPairGeneratorFromLayerPairForPhotonConversion() { } + void setSeedingLayers(Layers layers) override { theSeedingLayers = layers; } + void hitPairs( const ConversionRegion& convRegion, const TrackingRegion& reg, OrderedHitPairs & prs, const edm::Event & ev, const edm::EventSetup& es); @@ -36,8 +38,8 @@ class HitPairGeneratorFromLayerPairForPhotonConversion : public HitPairGenerator return new HitPairGeneratorFromLayerPairForPhotonConversion(*this); } - const Layer & innerLayer() const { return theInnerLayer; } - const Layer & outerLayer() const { return theOuterLayer; } + Layer innerLayer() const { return theSeedingLayers[theInnerLayer]; } + Layer outerLayer() const { return theSeedingLayers[theOuterLayer]; } float getLayerRadius(const DetLayer& layer); float getLayerZ(const DetLayer& layer); @@ -53,8 +55,9 @@ class HitPairGeneratorFromLayerPairForPhotonConversion : public HitPairGenerator double getCot(double dz, double dr); LayerCacheType & theLayerCache; - Layer theOuterLayer; - Layer theInnerLayer; + Layers theSeedingLayers; + const unsigned int theOuterLayer; + const unsigned int theInnerLayer; std::stringstream *ss; diff --git a/RecoTracker/ConversionSeedGenerators/interface/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h b/RecoTracker/ConversionSeedGenerators/interface/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h index 6b3d4481ae3ad..24ac549df2163 100644 --- a/RecoTracker/ConversionSeedGenerators/interface/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h +++ b/RecoTracker/ConversionSeedGenerators/interface/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h @@ -3,7 +3,6 @@ #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" #include "FWCore/Framework/interface/EventSetup.h" #include "RecoTracker/ConversionSeedGenerators/interface/ConversionRegion.h" @@ -16,16 +15,19 @@ class HitQuadrupletGeneratorFromLayerPairForPhotonConversion : public HitPairGen public: typedef CombinedHitPairGenerator::LayerCacheType LayerCacheType; - typedef ctfseeding::SeedingLayer Layer; + typedef SeedingLayerSetsHits::SeedingLayerSet Layers; + typedef SeedingLayerSetsHits::SeedingLayer Layer; - HitQuadrupletGeneratorFromLayerPairForPhotonConversion(const Layer& inner, - const Layer& outer, + HitQuadrupletGeneratorFromLayerPairForPhotonConversion(unsigned int inner, + unsigned int outer, LayerCacheType* layerCache, unsigned int nSize=30000, unsigned int max=0); virtual ~HitQuadrupletGeneratorFromLayerPairForPhotonConversion() { } + void setSeedingLayers(Layers layers) override { theSeedingLayers = layers; } + virtual void hitPairs( const TrackingRegion& reg, OrderedHitPairs & prs, const edm::Event & ev, const edm::EventSetup& es); @@ -33,8 +35,8 @@ class HitQuadrupletGeneratorFromLayerPairForPhotonConversion : public HitPairGen return new HitQuadrupletGeneratorFromLayerPairForPhotonConversion(*this); } - const Layer & innerLayer() const { return theInnerLayer; } - const Layer & outerLayer() const { return theOuterLayer; } + Layer innerLayer() const { return theSeedingLayers[theInnerLayer]; } + Layer outerLayer() const { return theSeedingLayers[theOuterLayer]; } bool failCheckRZCompatibility(const RecHitsSortedInPhi::Hit & hit, const DetLayer& layer, const HitRZCompatibility *checkRZ, const TrackingRegion & region); //void checkPhiRange(double phi1, double phi2); @@ -52,8 +54,9 @@ class HitQuadrupletGeneratorFromLayerPairForPhotonConversion : public HitPairGen private: LayerCacheType & theLayerCache; - Layer theOuterLayer; - Layer theInnerLayer; + Layers theSeedingLayers; + const unsigned int theOuterLayer; + const unsigned int theInnerLayer; std::stringstream *ss; diff --git a/RecoTracker/ConversionSeedGenerators/interface/PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h b/RecoTracker/ConversionSeedGenerators/interface/PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h index 0db3120c02b73..8054f8462117f 100644 --- a/RecoTracker/ConversionSeedGenerators/interface/PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h +++ b/RecoTracker/ConversionSeedGenerators/interface/PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.h @@ -59,14 +59,14 @@ class PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo{ const edm::ParameterSet _conf; TrajectorySeedCollection *seedCollection; - edm::ParameterSet hitsfactoryPSet,creatorPSet,regfactoryPSet; + edm::ParameterSet creatorPSet; ClusterChecker theClusterCheck; edm::ParameterSet SeedComparitorPSet,QuadCutPSet; bool theSilentOnClusterCheck; - CombinedHitQuadrupletGeneratorForPhotonConversion * theHitsGenerator; + std::unique_ptr theHitsGenerator; SeedForPhotonConversionFromQuadruplets *theSeedCreator; - GlobalTrackingRegionProducerFromBeamSpot* theRegionProducer; + std::unique_ptr theRegionProducer; typedef std::vector Regions; diff --git a/RecoTracker/ConversionSeedGenerators/interface/PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h b/RecoTracker/ConversionSeedGenerators/interface/PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h index e7861823b7c50..05edc5056ee27 100644 --- a/RecoTracker/ConversionSeedGenerators/interface/PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h +++ b/RecoTracker/ConversionSeedGenerators/interface/PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h @@ -21,7 +21,7 @@ #include "RecoTracker/ConversionSeedGenerators/interface/CombinedHitPairGeneratorForPhotonConversion.h" -#include "RecoTracker/SpecialSeedGenerators/interface/ClusterChecker.h" +#include "RecoTracker/TkSeedGenerator/interface/ClusterChecker.h" #include "RecoTracker/TkTrackingRegions/plugins/GlobalTrackingRegionProducerFromBeamSpot.h" #include "FWCore/Framework/interface/ConsumesCollector.h" @@ -62,12 +62,12 @@ class PhotonConversionTrajectorySeedProducerFromSingleLegAlgo{ TrajectorySeedCollection *seedCollection; TrajectorySeedCollection *seedCollectionOfSourceTracks; - CombinedHitPairGeneratorForPhotonConversion * theHitsGenerator; + std::unique_ptr theHitsGenerator; SeedForPhotonConversion1Leg *theSeedCreator; - GlobalTrackingRegionProducerFromBeamSpot* theRegionProducer; + std::unique_ptr theRegionProducer; - edm::ParameterSet hitsfactoryPSet,creatorPSet,regfactoryPSet; + edm::ParameterSet creatorPSet; ClusterChecker theClusterCheck; bool theSilentOnClusterCheck; diff --git a/RecoTracker/ConversionSeedGenerators/python/ConversionStep2_cff.py b/RecoTracker/ConversionSeedGenerators/python/ConversionStep2_cff.py index 3f577cc2ca0b1..94e45bd54f5a8 100644 --- a/RecoTracker/ConversionSeedGenerators/python/ConversionStep2_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/ConversionStep2_cff.py @@ -13,8 +13,7 @@ Common = cms.PSet(maxChi2 = cms.double(30.0)) ) -conv2LayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('conv2LayerPairs'), +conv2LayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix2+BPix3', @@ -89,19 +88,13 @@ ), BPix = cms.PSet( - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('conv2Clusters'), ), FPix = cms.PSet( - hitErrorRZ = cms.double(0.0036), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('conv2Clusters'), ), TIB1 = cms.PSet( @@ -298,6 +291,7 @@ ) #end of clone Conv2Step = cms.Sequence( conv2Clusters + + conv2LayerPairs + photonConvTrajSeedFromQuadruplets + conv2TrackCandidates + conv2StepTracks diff --git a/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py b/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py index 1636fb36a19e0..fa4b5e61b9c94 100644 --- a/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py @@ -14,8 +14,7 @@ Common = cms.PSet(maxChi2 = cms.double(30.0)) ) -convLayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('convLayerPairs'), +convLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix2+BPix3', @@ -102,19 +101,13 @@ ), BPix = cms.PSet( - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('convClusters'), ), FPix = cms.PSet( - hitErrorRZ = cms.double(0.0036), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('convClusters'), ), TIB1 = cms.PSet( @@ -313,6 +306,7 @@ ) #end of clone ConvStep = cms.Sequence( convClusters + + convLayerPairs + photonConvTrajSeedFromSingleLeg + convTrackCandidates + convStepTracks diff --git a/RecoTracker/ConversionSeedGenerators/python/Phase1PU140_ConversionStep_cff.py b/RecoTracker/ConversionSeedGenerators/python/Phase1PU140_ConversionStep_cff.py index d3b5f70354406..05d55b9c8e9b8 100644 --- a/RecoTracker/ConversionSeedGenerators/python/Phase1PU140_ConversionStep_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/Phase1PU140_ConversionStep_cff.py @@ -14,8 +14,7 @@ Common = cms.PSet(maxChi2 = cms.double(30.0)) ) -convLayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('convLayerPairs'), +convLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix2+BPix3', @@ -102,19 +101,13 @@ ), BPix = cms.PSet( - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('convClusters'), ), FPix = cms.PSet( - hitErrorRZ = cms.double(0.0036), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('convClusters'), ), TIB1 = cms.PSet( @@ -314,6 +307,7 @@ ) #end of clone ConvStep = cms.Sequence( convClusters + + convLayerPairs + photonConvTrajSeedFromSingleLeg + convTrackCandidates + convStepTracks diff --git a/RecoTracker/ConversionSeedGenerators/python/Phase1PU140_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py b/RecoTracker/ConversionSeedGenerators/python/Phase1PU140_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py index 18813a861ddb5..628f0e155337d 100644 --- a/RecoTracker/ConversionSeedGenerators/python/Phase1PU140_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py +++ b/RecoTracker/ConversionSeedGenerators/python/Phase1PU140_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py @@ -15,7 +15,7 @@ OrderedHitsFactoryPSet = cms.PSet( maxHitPairsPerTrackAndGenerator = cms.uint32(10), maxElement = cms.uint32(100000), - SeedingLayers = cms.string('convLayerPairs') + SeedingLayers = cms.InputTag('convLayerPairs') ), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('none') diff --git a/RecoTracker/ConversionSeedGenerators/python/Phase1PU70_ConversionStep_cff.py b/RecoTracker/ConversionSeedGenerators/python/Phase1PU70_ConversionStep_cff.py index 6a751e2151369..f30fb5403131b 100644 --- a/RecoTracker/ConversionSeedGenerators/python/Phase1PU70_ConversionStep_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/Phase1PU70_ConversionStep_cff.py @@ -14,8 +14,7 @@ Common = cms.PSet(maxChi2 = cms.double(30.0)) ) -convLayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('convLayerPairs'), +convLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix2+BPix3', @@ -102,19 +101,13 @@ ), BPix = cms.PSet( - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('convClusters'), ), FPix = cms.PSet( - hitErrorRZ = cms.double(0.0036), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('convClusters'), ), TIB1 = cms.PSet( @@ -314,6 +307,7 @@ ) #end of clone ConvStep = cms.Sequence( convClusters + + convLayerPairs + photonConvTrajSeedFromSingleLeg + convTrackCandidates + convStepTracks diff --git a/RecoTracker/ConversionSeedGenerators/python/Phase1PU70_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py b/RecoTracker/ConversionSeedGenerators/python/Phase1PU70_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py index 7d183324b3b72..059b2c8fdafdc 100644 --- a/RecoTracker/ConversionSeedGenerators/python/Phase1PU70_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py +++ b/RecoTracker/ConversionSeedGenerators/python/Phase1PU70_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py @@ -15,7 +15,7 @@ OrderedHitsFactoryPSet = cms.PSet( maxHitPairsPerTrackAndGenerator = cms.uint32(10), maxElement = cms.uint32(100000), - SeedingLayers = cms.string('convLayerPairs') + SeedingLayers = cms.InputTag('convLayerPairs') ), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('none') diff --git a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromQuadruplets_cff.py b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromQuadruplets_cff.py index 482a98f56d216..347437a0bf00c 100644 --- a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromQuadruplets_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromQuadruplets_cff.py @@ -28,8 +28,7 @@ ClusterProducer = 'convClusters' ) -convLayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('convLayerPairs'), +convLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix2+BPix3', @@ -104,18 +103,12 @@ ), BPix = cms.PSet( - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('convPixelRecHits'), - useErrorsFromParam = cms.bool(True) ), FPix = cms.PSet( - hitErrorRZ = cms.double(0.0036), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('convPixelRecHits'), - useErrorsFromParam = cms.bool(True) ), TIB1 = cms.PSet( TTRHBuilder = cms.string('WithTrackAngle'), @@ -315,6 +308,7 @@ #) convSequence = cms.Sequence( TrackRefitterStd * convFilter * convClusters * convPixelRecHits * convStripRecHits + * convLayerPairs * photonConvTrajSeedFromQuadruplets *convTrackCandidates*convStepTracks #*convStepLoose*convStepTight diff --git a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi.py b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi.py index 81769b5de57c7..87024d9efee75 100644 --- a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi.py +++ b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi.py @@ -9,7 +9,7 @@ DoxcheckSeedCandidates = cms.bool(False), OrderedHitsFactoryPSet = cms.PSet( maxElement = cms.uint32(900000), - SeedingLayers = cms.string('conv2LayerPairs') + SeedingLayers = cms.InputTag('conv2LayerPairs') ), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('PixelClusterShapeSeedComparitor'), #'LowPtClusterShapeSeedComparitor') #none diff --git a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_cff.py b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_cff.py index 0c96b0a9b9e2f..b36149c54b07e 100644 --- a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_cff.py @@ -28,8 +28,7 @@ ClusterProducer = 'convClusters' ) -convLayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('convLayerPairs'), +convLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix2+BPix3', @@ -113,18 +112,12 @@ ), BPix = cms.PSet( - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('convPixelRecHits'), - useErrorsFromParam = cms.bool(True) ), FPix = cms.PSet( - hitErrorRZ = cms.double(0.0036), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('convPixelRecHits'), - useErrorsFromParam = cms.bool(True) ), TIB1 = cms.PSet( TTRHBuilder = cms.string('WithTrackAngle'), @@ -314,6 +307,7 @@ ) convSequence = cms.Sequence( TrackRefitterStd * convFilter * convClusters * convPixelRecHits * convStripRecHits + * convLayerPairs * photonConvTrajSeedFromSingleLeg *convTrackCandidates*convStepTracks #*convStepLoose*convStepTight diff --git a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py index a3c72befd1bf0..3f0d73d81614f 100644 --- a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py +++ b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py @@ -15,7 +15,7 @@ OrderedHitsFactoryPSet = cms.PSet( maxHitPairsPerTrackAndGenerator = cms.uint32(10), maxElement = cms.uint32(40000), - SeedingLayers = cms.string('convLayerPairs') + SeedingLayers = cms.InputTag('convLayerPairs') ), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('none') diff --git a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_gsf_cff.py b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_gsf_cff.py index 5c4a207dc31c2..b03c1461ab28e 100644 --- a/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_gsf_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/PhotonConversionTrajectorySeedProducerFromSingleLeg_gsf_cff.py @@ -38,8 +38,7 @@ ClusterProducer = 'convClusters' ) -convLayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('convLayerPairs'), +convLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix2+BPix3', @@ -123,18 +122,12 @@ ), BPix = cms.PSet( - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('convPixelRecHits'), - useErrorsFromParam = cms.bool(True) ), FPix = cms.PSet( - hitErrorRZ = cms.double(0.0036), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('convPixelRecHits'), - useErrorsFromParam = cms.bool(True) ), TIB1 = cms.PSet( TTRHBuilder = cms.string('WithTrackAngle'), @@ -324,6 +317,7 @@ ) convSequence = cms.Sequence( TrackRefitterStd * convFilter * convClustersA * convClusters * convPixelRecHits * convStripRecHits + * convLayerPairs * photonConvTrajSeedFromSingleLeg *convTrackCandidates*convStepTracks #*convStepLoose*convStepTight diff --git a/RecoTracker/ConversionSeedGenerators/python/PostLS1_ConversionStep_cff.py b/RecoTracker/ConversionSeedGenerators/python/PostLS1_ConversionStep_cff.py index 8d3ddd819b052..2f577da6c5a22 100644 --- a/RecoTracker/ConversionSeedGenerators/python/PostLS1_ConversionStep_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/PostLS1_ConversionStep_cff.py @@ -14,8 +14,7 @@ Common = cms.PSet(maxChi2 = cms.double(30.0)) ) -convLayerPairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('convLayerPairs'), +convLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix2+BPix3', @@ -102,19 +101,13 @@ ), BPix = cms.PSet( - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('convClusters'), ), FPix = cms.PSet( - hitErrorRZ = cms.double(0.0036), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - useErrorsFromParam = cms.bool(True), skipClusters = cms.InputTag('convClusters'), ), TIB1 = cms.PSet( @@ -313,6 +306,7 @@ ) #end of clone ConvStep = cms.Sequence( convClusters + + convLayerPairs + photonConvTrajSeedFromSingleLeg + convTrackCandidates + convStepTracks diff --git a/RecoTracker/ConversionSeedGenerators/python/PostLS1_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py b/RecoTracker/ConversionSeedGenerators/python/PostLS1_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py index a3c72befd1bf0..3f0d73d81614f 100644 --- a/RecoTracker/ConversionSeedGenerators/python/PostLS1_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py +++ b/RecoTracker/ConversionSeedGenerators/python/PostLS1_PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi.py @@ -15,7 +15,7 @@ OrderedHitsFactoryPSet = cms.PSet( maxHitPairsPerTrackAndGenerator = cms.uint32(10), maxElement = cms.uint32(40000), - SeedingLayers = cms.string('convLayerPairs') + SeedingLayers = cms.InputTag('convLayerPairs') ), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('none') diff --git a/RecoTracker/ConversionSeedGenerators/src/CombinedHitPairGeneratorForPhotonConversion.cc b/RecoTracker/ConversionSeedGenerators/src/CombinedHitPairGeneratorForPhotonConversion.cc index 49d407ccfe506..d44a461078e1e 100644 --- a/RecoTracker/ConversionSeedGenerators/src/CombinedHitPairGeneratorForPhotonConversion.cc +++ b/RecoTracker/ConversionSeedGenerators/src/CombinedHitPairGeneratorForPhotonConversion.cc @@ -1,62 +1,30 @@ #include "RecoTracker/ConversionSeedGenerators/interface/CombinedHitPairGeneratorForPhotonConversion.h" #include "RecoTracker/ConversionSeedGenerators/interface/HitPairGeneratorFromLayerPairForPhotonConversion.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/ESWatcher.h" -#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "DataFormats/Common/interface/Handle.h" - -using namespace std; -using namespace ctfseeding; - -CombinedHitPairGeneratorForPhotonConversion::CombinedHitPairGeneratorForPhotonConversion(const edm::ParameterSet& cfg) - : initialised(false), theConfig(cfg) +CombinedHitPairGeneratorForPhotonConversion::CombinedHitPairGeneratorForPhotonConversion(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC): + theSeedingLayerToken(iC.consumes(cfg.getParameter("SeedingLayers"))) { theMaxElement = cfg.getParameter("maxElement"); maxHitPairsPerTrackAndGenerator = cfg.getParameter("maxHitPairsPerTrackAndGenerator"); - + theGenerator.reset(new HitPairGeneratorFromLayerPairForPhotonConversion(0, 1, &theLayerCache, 0, maxHitPairsPerTrackAndGenerator)); } -void CombinedHitPairGeneratorForPhotonConversion::init(const edm::ParameterSet & cfg, const edm::EventSetup& es) +CombinedHitPairGeneratorForPhotonConversion::CombinedHitPairGeneratorForPhotonConversion(const CombinedHitPairGeneratorForPhotonConversion & cb): + theSeedingLayerToken(cb.theSeedingLayerToken), + maxHitPairsPerTrackAndGenerator(cb.maxHitPairsPerTrackAndGenerator) { - theMaxElement = cfg.getParameter("maxElement"); - maxHitPairsPerTrackAndGenerator = cfg.getParameter("maxHitPairsPerTrackAndGenerator"); - - std::string layerBuilderName = cfg.getParameter("SeedingLayers"); - edm::ESHandle layerBuilder; - es.get().get(layerBuilderName, layerBuilder); - - SeedingLayerSets layerSets = layerBuilder->layers(es); - init(layerSets); + theMaxElement = cb.theMaxElement; + theGenerator.reset(new HitPairGeneratorFromLayerPairForPhotonConversion(0, 1, &theLayerCache, 0, maxHitPairsPerTrackAndGenerator)); } -void CombinedHitPairGeneratorForPhotonConversion::init(const SeedingLayerSets & layerSets) -{ - initialised = true; - typedef SeedingLayerSets::const_iterator IL; - for (IL il=layerSets.begin(), ilEnd=layerSets.end(); il != ilEnd; ++il) { - const SeedingLayers & set = *il; - if (set.size() != 2) continue; - add( set[0], set[1] ); - } -} - -void CombinedHitPairGeneratorForPhotonConversion::cleanup() -{ - Container::const_iterator it; - for (it = theGenerators.begin(); it!= theGenerators.end(); it++) { - delete (*it); - } - theGenerators.clear(); -} -CombinedHitPairGeneratorForPhotonConversion::~CombinedHitPairGeneratorForPhotonConversion() { cleanup(); } +CombinedHitPairGeneratorForPhotonConversion::~CombinedHitPairGeneratorForPhotonConversion() {} -void CombinedHitPairGeneratorForPhotonConversion::add( const SeedingLayer& inner, const SeedingLayer& outer) -{ - theGenerators.push_back( new HitPairGeneratorFromLayerPairForPhotonConversion( inner, outer, &theLayerCache, 0, maxHitPairsPerTrackAndGenerator)); +void CombinedHitPairGeneratorForPhotonConversion::setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) { + assert(0 == "not implemented"); } const OrderedHitPairs & CombinedHitPairGeneratorForPhotonConversion::run( @@ -74,19 +42,18 @@ void CombinedHitPairGeneratorForPhotonConversion::hitPairs( const TrackingRegion& region, OrderedHitPairs & result, const edm::Event& ev, const edm::EventSetup& es) { - if (theESWatcher.check(es) || !initialised ) { - cleanup(); - init(theConfig,es); - } + edm::Handle hlayers; + ev.getByToken(theSeedingLayerToken, hlayers); + assert(hlayers->numberOfLayersInSet() == 2); - Container::const_iterator i; - OrderedHitPairs resultTmp; + OrderedHitPairs resultTmp; // why is this needed? resultTmp.reserve(maxHitPairsPerTrackAndGenerator); - - for (i=theGenerators.begin(); i!=theGenerators.end() && result.size() < theMaxElement; i++) { + for(SeedingLayerSetsHits::LayerSetIndex i=0; isize(); ++i) { resultTmp.clear(); - (**i).hitPairs(convRegion, region, resultTmp, ev, es); + theGenerator->setSeedingLayers((*hlayers)[i]); + theGenerator->hitPairs( convRegion, region, resultTmp, ev, es); // why resultTmp and not result? result.insert(result.end(),resultTmp.begin(),resultTmp.end()); } + //theLayerCache.clear(); //Don't want to clear now, because have to loop on all the tracks. will be cleared later, calling a specific method } diff --git a/RecoTracker/ConversionSeedGenerators/src/CombinedHitQuadrupletGeneratorForPhotonConversion.cc b/RecoTracker/ConversionSeedGenerators/src/CombinedHitQuadrupletGeneratorForPhotonConversion.cc index f7c50f828b9cc..8971ca3c3a0f0 100644 --- a/RecoTracker/ConversionSeedGenerators/src/CombinedHitQuadrupletGeneratorForPhotonConversion.cc +++ b/RecoTracker/ConversionSeedGenerators/src/CombinedHitQuadrupletGeneratorForPhotonConversion.cc @@ -1,59 +1,28 @@ #include "RecoTracker/ConversionSeedGenerators/interface/CombinedHitQuadrupletGeneratorForPhotonConversion.h" #include "RecoTracker/ConversionSeedGenerators/interface/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/ESWatcher.h" -#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "DataFormats/Common/interface/Handle.h" - -using namespace std; -using namespace ctfseeding; - -CombinedHitQuadrupletGeneratorForPhotonConversion::CombinedHitQuadrupletGeneratorForPhotonConversion(const edm::ParameterSet& cfg) - : initialised(false), theConfig(cfg) +CombinedHitQuadrupletGeneratorForPhotonConversion::CombinedHitQuadrupletGeneratorForPhotonConversion(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) + : theSeedingLayerToken(iC.consumes(cfg.getParameter("SeedingLayers"))) { theMaxElement = cfg.getParameter("maxElement"); + theGenerator.reset(new HitQuadrupletGeneratorFromLayerPairForPhotonConversion( 0, 1, &theLayerCache, 0, theMaxElement)); } -void CombinedHitQuadrupletGeneratorForPhotonConversion::init(const edm::ParameterSet & cfg, const edm::EventSetup& es) +CombinedHitQuadrupletGeneratorForPhotonConversion::CombinedHitQuadrupletGeneratorForPhotonConversion(const CombinedHitQuadrupletGeneratorForPhotonConversion & cb) + : theSeedingLayerToken(cb.theSeedingLayerToken) { - theMaxElement = cfg.getParameter("maxElement"); - - std::string layerBuilderName = cfg.getParameter("SeedingLayers"); - edm::ESHandle layerBuilder; - es.get().get(layerBuilderName, layerBuilder); - - SeedingLayerSets layerSets = layerBuilder->layers(es); - init(layerSets); + theMaxElement = cb.theMaxElement; + theGenerator.reset(new HitQuadrupletGeneratorFromLayerPairForPhotonConversion( 0, 1, &theLayerCache, 0, theMaxElement)); } -void CombinedHitQuadrupletGeneratorForPhotonConversion::init(const SeedingLayerSets & layerSets) -{ - initialised = true; - typedef SeedingLayerSets::const_iterator IL; - for (IL il=layerSets.begin(), ilEnd=layerSets.end(); il != ilEnd; ++il) { - const SeedingLayers & set = *il; - if (set.size() != 2) continue; - add( set[0], set[1] ); - } -} -void CombinedHitQuadrupletGeneratorForPhotonConversion::cleanup() -{ - Container::const_iterator it; - for (it = theGenerators.begin(); it!= theGenerators.end(); it++) { - delete (*it); - } - theGenerators.clear(); -} - -CombinedHitQuadrupletGeneratorForPhotonConversion::~CombinedHitQuadrupletGeneratorForPhotonConversion() { cleanup(); } +CombinedHitQuadrupletGeneratorForPhotonConversion::~CombinedHitQuadrupletGeneratorForPhotonConversion() {} -void CombinedHitQuadrupletGeneratorForPhotonConversion::add( const SeedingLayer& inner, const SeedingLayer& outer) -{ - theGenerators.push_back( new HitQuadrupletGeneratorFromLayerPairForPhotonConversion( inner, outer, &theLayerCache, 0, theMaxElement)); +void CombinedHitQuadrupletGeneratorForPhotonConversion::setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) { + assert(0 == "not implemented"); } const OrderedHitPairs & CombinedHitQuadrupletGeneratorForPhotonConversion::run(const TrackingRegion& region, const edm::Event & ev, const edm::EventSetup& es) @@ -67,15 +36,14 @@ const OrderedHitPairs & CombinedHitQuadrupletGeneratorForPhotonConversion::run(c void CombinedHitQuadrupletGeneratorForPhotonConversion::hitPairs(const TrackingRegion& region, OrderedHitPairs & result, const edm::Event& ev, const edm::EventSetup& es) { - if (theESWatcher.check(es) || !initialised ) { - cleanup(); - init(theConfig,es); - } - size_t maxHitQuadruplets=1000000; - Container::const_iterator i; - for (i=theGenerators.begin(); i!=theGenerators.end() && result.size() < maxHitQuadruplets; i++) { - (**i).hitPairs(region, result, ev, es); + edm::Handle hlayers; + ev.getByToken(theSeedingLayerToken, hlayers); + assert(hlayers->numberOfLayersInSet() == 2); + + for(SeedingLayerSetsHits::LayerSetIndex i=0; isize() && result.size() < maxHitQuadruplets; ++i) { + theGenerator->setSeedingLayers((*hlayers)[i]); + theGenerator->hitPairs( region, result, ev, es); } theLayerCache.clear(); } diff --git a/RecoTracker/ConversionSeedGenerators/src/HitPairGeneratorFromLayerPairForPhotonConversion.cc b/RecoTracker/ConversionSeedGenerators/src/HitPairGeneratorFromLayerPairForPhotonConversion.cc index eda8300c44806..afbd0d1d80b39 100644 --- a/RecoTracker/ConversionSeedGenerators/src/HitPairGeneratorFromLayerPairForPhotonConversion.cc +++ b/RecoTracker/ConversionSeedGenerators/src/HitPairGeneratorFromLayerPairForPhotonConversion.cc @@ -13,10 +13,8 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" using namespace GeomDetEnumerators; -using namespace ctfseeding; using namespace std; #include "RecoTracker/TkMSParametrization/interface/PixelRecoUtilities.h" @@ -35,8 +33,8 @@ template inline T sqr( T t) {return t*t;} #include "DataFormats/Math/interface/deltaPhi.h" HitPairGeneratorFromLayerPairForPhotonConversion::HitPairGeneratorFromLayerPairForPhotonConversion( - const Layer& inner, - const Layer& outer, + unsigned int inner, + unsigned int outer, LayerCacheType* layerCache, unsigned int nSize, unsigned int max) @@ -58,23 +56,26 @@ void HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs(const Conversion typedef OrderedHitPair::OuterRecHit OuterHit; typedef RecHitsSortedInPhi::Hit Hit; + Layer innerLayerObj = innerLayer(); + Layer outerLayerObj = outerLayer(); + #ifdef mydebug_Seed - (*ss) << "In " << theInnerLayer.name() << " Out " << theOuterLayer.name() << std::endl; + (*ss) << "In " << innerLayerObj.name() << " Out " << outerLayerObj.name() << std::endl; #endif - if(!checkBoundaries(*theInnerLayer.detLayer(),convRegion,40.,60.)) return; //FIXME, the maxSearchR(Z) are not optimized - if(!checkBoundaries(*theOuterLayer.detLayer(),convRegion,50.,60.)) return; //FIXME, the maxSearchR(Z) are not optimized + if(!checkBoundaries(*innerLayerObj.detLayer(),convRegion,40.,60.)) return; //FIXME, the maxSearchR(Z) are not optimized + if(!checkBoundaries(*outerLayerObj.detLayer(),convRegion,50.,60.)) return; //FIXME, the maxSearchR(Z) are not optimized /*get hit sorted in phi for each layer: NB: doesn't apply any region cut*/ - const RecHitsSortedInPhi & innerHitsMap = theLayerCache(&theInnerLayer, region, event, es); + const RecHitsSortedInPhi & innerHitsMap = theLayerCache(innerLayerObj, region, event, es); if (innerHitsMap.empty()) return; - const RecHitsSortedInPhi& outerHitsMap = theLayerCache(&theOuterLayer, region, event, es); + const RecHitsSortedInPhi& outerHitsMap = theLayerCache(outerLayerObj, region, event, es); if (outerHitsMap.empty()) return; /*----------------*/ /*This object will check the compatibility of the his in phi among the two layers. */ - //InnerDeltaPhi deltaPhi(*theInnerLayer.detLayer(), region, es); + //InnerDeltaPhi deltaPhi(innerLayerObj.detLayer(), region, es); static const float nSigmaRZ = std::sqrt(12.f); // static const float nSigmaPhi = 3.f; @@ -83,7 +84,7 @@ void HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs(const Conversion float innerPhimin, innerPhimax; /*Getting only the Hits in the outer layer that are compatible with the conversion region*/ - if(!getPhiRange(outerPhimin,outerPhimax,*theOuterLayer.detLayer(),convRegion,es)) return; + if(!getPhiRange(outerPhimin,outerPhimax,*outerLayerObj.detLayer(),convRegion,es)) return; outerHitsMap.hits( outerPhimin, outerPhimax, outerHits); #ifdef mydebug_Seed @@ -100,7 +101,7 @@ void HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs(const Conversion #endif /*Check the compatibility of the ohit with the eta of the seeding track*/ - if(checkRZCompatibilityWithSeedTrack(ohit,*theOuterLayer.detLayer(),convRegion)) continue; + if(checkRZCompatibilityWithSeedTrack(ohit,*outerLayerObj.detLayer(),convRegion)) continue; /* //Do I need this? it uses a compatibility that probably I wouldn't @@ -110,7 +111,7 @@ void HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs(const Conversion if (phiRange.empty()) continue; */ - const HitRZCompatibility *checkRZ = region.checkRZ(theInnerLayer.detLayer(), ohit, es); + const HitRZCompatibility *checkRZ = region.checkRZ(innerLayerObj.detLayer(), ohit, es); if(!checkRZ) { #ifdef mydebug_Seed (*ss) << "*******\nNo valid checkRZ\n*******" << std::endl; @@ -120,7 +121,7 @@ void HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs(const Conversion /*Get only the inner hits compatible with the conversion region*/ innerHits.clear(); - if(!getPhiRange(innerPhimin,innerPhimax,*theInnerLayer.detLayer(),convRegion,es)) continue; + if(!getPhiRange(innerPhimin,innerPhimax,*innerLayerObj.detLayer(),convRegion,es)) continue; innerHitsMap.hits(innerPhimin, innerPhimax, innerHits); #ifdef mydebug_Seed @@ -137,12 +138,12 @@ void HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs(const Conversion #endif /*Check the compatibility of the ohit with the eta of the seeding track*/ - if(checkRZCompatibilityWithSeedTrack(*ih,*theInnerLayer.detLayer(),convRegion)) continue; + if(checkRZCompatibilityWithSeedTrack(*ih,*innerLayerObj.detLayer(),convRegion)) continue; float r_reduced = std::sqrt( sqr(innPos.x()-region.origin().x())+sqr(innPos.y()-region.origin().y())); Range allowed; Range hitRZ; - if (theInnerLayer.detLayer()->location() == barrel) { + if (innerLayerObj.detLayer()->location() == barrel) { allowed = checkRZ->range(r_reduced); float zErr = nSigmaRZ * (*ih)->errorGlobalZ(); hitRZ = Range(innPos.z()-zErr, innPos.z()+zErr); diff --git a/RecoTracker/ConversionSeedGenerators/src/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc b/RecoTracker/ConversionSeedGenerators/src/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc index a304111c9cf20..facc769c72223 100644 --- a/RecoTracker/ConversionSeedGenerators/src/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc +++ b/RecoTracker/ConversionSeedGenerators/src/HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc @@ -13,10 +13,8 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" using namespace GeomDetEnumerators; -using namespace ctfseeding; using namespace std; #include "RecoTracker/TkMSParametrization/interface/PixelRecoUtilities.h" @@ -35,8 +33,8 @@ template inline T sqr( T t) {return t*t;} #include "DataFormats/Math/interface/deltaPhi.h" HitQuadrupletGeneratorFromLayerPairForPhotonConversion::HitQuadrupletGeneratorFromLayerPairForPhotonConversion( - const Layer& inner, - const Layer& outer, + unsigned int inner, + unsigned int outer, LayerCacheType* layerCache, unsigned int nSize, unsigned int max) @@ -57,21 +55,24 @@ void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs(const Trac typedef OrderedHitPair::OuterRecHit OuterHit; typedef RecHitsSortedInPhi::Hit Hit; + Layer innerLayerObj = innerLayer(); + Layer outerLayerObj = outerLayer(); + size_t totCountP2=0, totCountP1=0, totCountM2=0, totCountM1=0, selCount=0; #ifdef mydebug_QSeed - (*ss) << "In " << theInnerLayer.name() << " Out " << theOuterLayer.name() << std::endl; + (*ss) << "In " << innerLayerObj.name() << " Out " << theOuterLayer.name() << std::endl; #endif /*get hit sorted in phi for each layer: NB: doesn't apply any region cut*/ - const RecHitsSortedInPhi & innerHitsMap = theLayerCache(&theInnerLayer, region, event, es); + const RecHitsSortedInPhi & innerHitsMap = theLayerCache(innerLayerObj, region, event, es); if (innerHitsMap.empty()) return; - const RecHitsSortedInPhi& outerHitsMap = theLayerCache(&theOuterLayer, region, event, es); + const RecHitsSortedInPhi& outerHitsMap = theLayerCache(outerLayerObj, region, event, es); if (outerHitsMap.empty()) return; /*----------------*/ /*This object will check the compatibility of the his in phi among the two layers. */ - //InnerDeltaPhi deltaPhi(*theInnerLayer.detLayer(), region, es); + //InnerDeltaPhi deltaPhi(*innerLayerObj.detLayer(), region, es); vector innerHits; // float outerPhimin, outerPhimax; @@ -87,7 +88,7 @@ void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs(const Trac GlobalPoint oPos = ohit->globalPosition(); totCountP2++; - const HitRZCompatibility *checkRZ = region.checkRZ(theOuterLayer.detLayer(), ohit, es); + const HitRZCompatibility *checkRZ = region.checkRZ(outerLayerObj.detLayer(), ohit, es); for(nextoh=oh+1;nextoh!=outerHits.second; ++nextoh){ RecHitsSortedInPhi::Hit nohit = (*nextoh).hit(); @@ -105,7 +106,7 @@ void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs(const Trac totCountM2++; /*Check the compatibility of the ohit with the eta of the seeding track*/ - if(failCheckRZCompatibility(nohit,*theOuterLayer.detLayer(),checkRZ,region)) continue; + if(failCheckRZCompatibility(nohit,*outerLayerObj.detLayer(),checkRZ,region)) continue; /* //Do I need this? it uses a compatibility that probably I wouldn't @@ -128,8 +129,8 @@ void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs(const Trac (*ss) << "\tiphimin, iphimax " << innerPhimin << " " << innerPhimax << std::endl; #endif - const HitRZCompatibility *checkRZb = region.checkRZ(theInnerLayer.detLayer(), ohit, es); - const HitRZCompatibility *checkRZc = region.checkRZ(theInnerLayer.detLayer(), nohit, es); + const HitRZCompatibility *checkRZb = region.checkRZ(innerLayerObj.detLayer(), ohit, es); + const HitRZCompatibility *checkRZc = region.checkRZ(innerLayerObj.detLayer(), nohit, es); /*Loop on inner hits*/ vector::const_iterator ieh = innerHits.end(); @@ -146,9 +147,9 @@ void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs(const Trac totCountP1++; /*Check the compatibility of the ihit with the two outer hits*/ - if(failCheckRZCompatibility(ihit,*theInnerLayer.detLayer(),checkRZb,region) + if(failCheckRZCompatibility(ihit,*innerLayerObj.detLayer(),checkRZb,region) || - failCheckRZCompatibility(ihit,*theInnerLayer.detLayer(),checkRZc,region) ) continue; + failCheckRZCompatibility(ihit,*innerLayerObj.detLayer(),checkRZc,region) ) continue; for ( vector::const_iterator nextih=ih+1; nextih != ieh; ++nextih) { @@ -166,9 +167,9 @@ void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs(const Trac totCountM1++; /*Check the compatibility of the nihit with the two outer hits*/ - if(failCheckRZCompatibility(nihit,*theInnerLayer.detLayer(),checkRZb,region) + if(failCheckRZCompatibility(nihit,*innerLayerObj.detLayer(),checkRZb,region) || - failCheckRZCompatibility(nihit,*theInnerLayer.detLayer(),checkRZc,region) ) continue; + failCheckRZCompatibility(nihit,*innerLayerObj.detLayer(),checkRZc,region) ) continue; /*Sguazz modifica qui*/ if(failCheckSlopeTest(ohit,nohit,ihit,nihit,region)) continue; @@ -180,7 +181,7 @@ void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs(const Trac delete checkRZb; delete checkRZc; #ifdef mydebug_QSeed - (*ss) << "In " << theInnerLayer.name() << " Out " << theOuterLayer.name() + (*ss) << "In " << innerLayerObj.name() << " Out " << outerLayerObj.name() << "\tP2 " << totCountP2 << "\tM2 " << totCountM2 << "\tP1 " << totCountP1 @@ -205,7 +206,7 @@ void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs(const Trac delete checkRZ; } #ifdef mydebug_QSeed - (*ss) << "In " << theInnerLayer.name() << " Out " << theOuterLayer.name() + (*ss) << "In " << innerLayerObj.name() << " Out " << outerLayerObj.name() << "\tP2 " << totCountP2 << "\tM2 " << totCountM2 << "\tP1 " << totCountP1 diff --git a/RecoTracker/ConversionSeedGenerators/src/PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc b/RecoTracker/ConversionSeedGenerators/src/PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc index 8f874ab708921..c0f58d2feba03 100644 --- a/RecoTracker/ConversionSeedGenerators/src/PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc +++ b/RecoTracker/ConversionSeedGenerators/src/PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo.cc @@ -22,37 +22,30 @@ PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo:: PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo(const edm::ParameterSet & conf, edm::ConsumesCollector && iC) :_conf(conf),seedCollection(0), - hitsfactoryPSet(conf.getParameter("OrderedHitsFactoryPSet")), creatorPSet(conf.getParameter("SeedCreatorPSet")), - regfactoryPSet(conf.getParameter("RegionFactoryPSet")), - theClusterCheck(conf.getParameter("ClusterCheckPSet"), std::move(iC)), + theClusterCheck(conf.getParameter("ClusterCheckPSet"), iC), SeedComparitorPSet(conf.getParameter("SeedComparitorPSet")), QuadCutPSet(conf.getParameter("QuadCutPSet")), - theSilentOnClusterCheck(conf.getParameter("ClusterCheckPSet").getUntrackedParameter("silentClusterCheck",false)){ + theSilentOnClusterCheck(conf.getParameter("ClusterCheckPSet").getUntrackedParameter("silentClusterCheck",false)), + theHitsGenerator(new CombinedHitQuadrupletGeneratorForPhotonConversion(conf.getParameter("OrderedHitsFactoryPSet"), iC)), + theRegionProducer(new GlobalTrackingRegionProducerFromBeamSpot(conf.getParameter("RegionFactoryPSet"), iC)) { - theRegionProducer = new GlobalTrackingRegionProducerFromBeamSpot(regfactoryPSet, std::move(iC)); - token_vertex = iC.consumes(_conf.getParameter("primaryVerticesTag")); init(); } PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo::~PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo() { - if(theRegionProducer!=NULL) - delete theRegionProducer; } void PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo:: clear(){ - if(theHitsGenerator!=NULL) - delete theHitsGenerator; if(theSeedCreator!=NULL) delete theSeedCreator; } void PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo:: init(){ - theHitsGenerator = new CombinedHitQuadrupletGeneratorForPhotonConversion(hitsfactoryPSet); theSeedCreator = new SeedForPhotonConversionFromQuadruplets(creatorPSet); } diff --git a/RecoTracker/ConversionSeedGenerators/src/PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc b/RecoTracker/ConversionSeedGenerators/src/PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc index 57dcdc94b2735..af352ba1d47f6 100644 --- a/RecoTracker/ConversionSeedGenerators/src/PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc +++ b/RecoTracker/ConversionSeedGenerators/src/PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.cc @@ -16,10 +16,10 @@ PhotonConversionTrajectorySeedProducerFromSingleLegAlgo:: PhotonConversionTrajectorySeedProducerFromSingleLegAlgo(const edm::ParameterSet & conf, edm::ConsumesCollector && iC) :_conf(conf),seedCollection(0),seedCollectionOfSourceTracks(0), - hitsfactoryPSet(conf.getParameter("OrderedHitsFactoryPSet")), + theHitsGenerator(new CombinedHitPairGeneratorForPhotonConversion(conf.getParameter("OrderedHitsFactoryPSet"), iC)), + theRegionProducer(new GlobalTrackingRegionProducerFromBeamSpot(conf.getParameter("RegionFactoryPSet"), iC)), creatorPSet(conf.getParameter("SeedCreatorPSet")), - regfactoryPSet(conf.getParameter("RegionFactoryPSet")), - theClusterCheck(conf.getParameter("ClusterCheckPSet"), std::move(iC)), + theClusterCheck(conf.getParameter("ClusterCheckPSet"), iC), theSilentOnClusterCheck(conf.getParameter("ClusterCheckPSet").getUntrackedParameter("silentClusterCheck",false)), _vtxMinDoF(conf.getParameter("vtxMinDoF")), _maxDZSigmas(conf.getParameter("maxDZSigmas")), @@ -32,26 +32,20 @@ PhotonConversionTrajectorySeedProducerFromSingleLegAlgo(const edm::ParameterSet token_vertex = iC.consumes(_primaryVtxInputTag); token_bs = iC.consumes(_beamSpotInputTag); token_refitter = iC.consumes(_conf.getParameter("TrackRefitter")); - theRegionProducer = new GlobalTrackingRegionProducerFromBeamSpot(regfactoryPSet, std::move(iC)); init(); } PhotonConversionTrajectorySeedProducerFromSingleLegAlgo::~PhotonConversionTrajectorySeedProducerFromSingleLegAlgo() { - if(theRegionProducer!=NULL) - delete theRegionProducer; } void PhotonConversionTrajectorySeedProducerFromSingleLegAlgo:: clear(){ - if(theHitsGenerator!=NULL) - delete theHitsGenerator; if(theSeedCreator!=NULL) delete theSeedCreator; } void PhotonConversionTrajectorySeedProducerFromSingleLegAlgo:: init(){ - theHitsGenerator = new CombinedHitPairGeneratorForPhotonConversion(hitsfactoryPSet); theSeedCreator = new SeedForPhotonConversion1Leg(creatorPSet); } diff --git a/RecoTracker/IterativeTracking/python/DetachedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/DetachedTripletStep_cff.py index 8934f6c3121c5..c8c7b00e55f15 100644 --- a/RecoTracker/IterativeTracking/python/DetachedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/DetachedTripletStep_cff.py @@ -25,9 +25,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'detachedTripletStepSeedLayers' - ) +detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() detachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('detachedTripletStepClusters') detachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('detachedTripletStepClusters') @@ -214,6 +212,7 @@ ) DetachedTripletStep = cms.Sequence(detachedTripletStepClusters* + detachedTripletStepSeedLayers* detachedTripletStepSeeds* detachedTripletStepTrackCandidates* detachedTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/ElectronSeeds_cff.py b/RecoTracker/IterativeTracking/python/ElectronSeeds_cff.py index cedadb846256a..e1060bff46ec4 100644 --- a/RecoTracker/IterativeTracking/python/ElectronSeeds_cff.py +++ b/RecoTracker/IterativeTracking/python/ElectronSeeds_cff.py @@ -18,25 +18,18 @@ oldClusterRemovalInfo = cms.InputTag("mixedTripletStepSeedClusterMask") ) -tripletElectronSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tripletElectronSeedLayers'), +tripletElectronSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), skipClusters = cms.InputTag('pixelLessStepSeedClusterMask') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036), skipClusters = cms.InputTag('pixelLessStepSeedClusterMask') ) ) @@ -53,7 +46,7 @@ ) ) ) -tripletElectronSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('tripletElectronSeedLayers') +tripletElectronSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('tripletElectronSeedLayers') from RecoLocalTracker.SubCollectionProducers.SeedClusterRemover_cfi import seedClusterRemover tripletElectronClusterMask = seedClusterRemover.clone( @@ -61,25 +54,18 @@ oldClusterRemovalInfo = cms.InputTag("pixelLessStepSeedClusterMask") ) -pixelPairElectronSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelPairElectronSeedLayers'), +pixelPairElectronSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', 'BPix1+FPix1_pos', 'BPix1+FPix1_neg', 'BPix1+FPix2_pos', 'BPix1+FPix2_neg', 'BPix2+FPix1_pos', 'BPix2+FPix1_neg', 'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('tripletElectronClusterMask') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('tripletElectronClusterMask') @@ -91,10 +77,9 @@ pixelPairElectronSeeds.RegionFactoryPSet.RegionPSet.ptMin = 1.0 pixelPairElectronSeeds.RegionFactoryPSet.RegionPSet.originRadius = 0.015 pixelPairElectronSeeds.RegionFactoryPSet.RegionPSet.fixedError = 0.03 -pixelPairElectronSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('pixelPairElectronSeedLayers') +pixelPairElectronSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('pixelPairElectronSeedLayers') -stripPairElectronSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('stripPairElectronSeedLayers'), +stripPairElectronSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TIB1+TIB2', 'TIB1+TID1_pos', 'TIB1+TID1_neg', 'TID2_pos+TID3_pos', 'TID2_neg+TID3_neg', 'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos', 'TEC1_neg+TEC2_neg','TEC2_neg+TEC3_neg','TEC3_neg+TEC4_neg','TEC3_neg+TEC5_neg'), @@ -146,9 +131,12 @@ pixelPairStepSeedClusterMask* mixedTripletStepSeedClusterMask* pixelLessStepSeedClusterMask* + tripletElectronSeedLayers* tripletElectronSeeds* tripletElectronClusterMask* + pixelPairElectronSeedLayers* pixelPairElectronSeeds* + stripPairElectronSeedLayers* stripPairElectronSeeds* newCombinedSeeds) diff --git a/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py index 8e303db905cd3..1a3ed4dc47869 100644 --- a/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py @@ -15,9 +15,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -highPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'highPtTripletStepSeedLayers' - ) +highPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() highPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('highPtTripletStepClusters') highPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('highPtTripletStepClusters') @@ -106,6 +104,7 @@ # Final sequence HighPtTripletStep = cms.Sequence(highPtTripletStepClusters* + highPtTripletStepSeedLayers* highPtTripletStepSeeds* highPtTripletStepTrackCandidates* highPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/InitialStep_cff.py b/RecoTracker/IterativeTracking/python/InitialStep_cff.py index 21f998f3390d2..2387488a479ae 100644 --- a/RecoTracker/IterativeTracking/python/InitialStep_cff.py +++ b/RecoTracker/IterativeTracking/python/InitialStep_cff.py @@ -19,9 +19,7 @@ ) # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'initialStepSeedLayers' - ) +initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() initialStepSeedLayers.BPix.skipClusters = cms.InputTag('initialStepClusters') initialStepSeedLayers.FPix.skipClusters = cms.InputTag('initialStepClusters') @@ -139,6 +137,7 @@ # Final sequence InitialStep = cms.Sequence(initialStepClusters* + initialStepSeedLayers* initialStepSeeds* initialStepTrackCandidates* initialStepTracks* diff --git a/RecoTracker/IterativeTracking/python/LargeD0_PixelPairStep_cff.py b/RecoTracker/IterativeTracking/python/LargeD0_PixelPairStep_cff.py index 5d08dd5fbe2b3..058f52a96a8c9 100644 --- a/RecoTracker/IterativeTracking/python/LargeD0_PixelPairStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LargeD0_PixelPairStep_cff.py @@ -66,11 +66,9 @@ #SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi -largeD0step2layerpairs = RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi.pixellayerpairs.clone( - ComponentName = 'largeD0step2LayerPairs' - ) -largeD0step2layerpairs.BPix.HitProducer = 'largeD0step2PixelRecHits' -largeD0step2layerpairs.FPix.HitProducer = 'largeD0step2PixelRecHits' +largeD0step2LayerPairs = RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi.PixelLayerPairs.clone() +largeD0step2LayerPairs.BPix.HitProducer = 'largeD0step2PixelRecHits' +largeD0step2LayerPairs.FPix.HitProducer = 'largeD0step2PixelRecHits' #SEEDS import RecoTracker.TkSeedGenerator.GlobalPixelSeeds_cff @@ -200,6 +198,7 @@ largeD0step2 = cms.Sequence(trkfilter2* largeD0step2Clusters* largeD0step2PixelRecHits*largeD0step2StripRecHits* + largeD0step2LayerPairs* largeD0step2Seeds* largeD0step2TrackCandidates* largeD0step2WithMaterialTracks* diff --git a/RecoTracker/IterativeTracking/python/LargeD0_PixelTibTidTecStep_cff.py b/RecoTracker/IterativeTracking/python/LargeD0_PixelTibTidTecStep_cff.py index 7d14e1f66ddab..8747fdba8c7fd 100644 --- a/RecoTracker/IterativeTracking/python/LargeD0_PixelTibTidTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LargeD0_PixelTibTidTecStep_cff.py @@ -62,14 +62,12 @@ ) #SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelAndStripLayerPairs_cfi -largeD0step3layerpairs = RecoTracker.TkSeedingLayers.PixelAndStripLayerPairs_cfi.pixelandstriplayerpairs.clone( - ComponentName = 'largeD0step3LayerPairs', - ) -largeD0step3layerpairs.BPix.HitProducer = 'largeD0step3PixelRecHits' -largeD0step3layerpairs.FPix.HitProducer = 'largeD0step3PixelRecHits' -largeD0step3layerpairs.TIB.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit' -largeD0step3layerpairs.TID.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit' -largeD0step3layerpairs.TEC.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit' +largeD0step3LayerPairs = RecoTracker.TkSeedingLayers.PixelAndStripLayerPairs_cfi.PixelAndStripLayerPairs.clone() +largeD0step3LayerPairs.BPix.HitProducer = 'largeD0step3PixelRecHits' +largeD0step3LayerPairs.FPix.HitProducer = 'largeD0step3PixelRecHits' +largeD0step3LayerPairs.TIB.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit' +largeD0step3LayerPairs.TID.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit' +largeD0step3LayerPairs.TEC.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit' #SEEDS import RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff @@ -203,6 +201,7 @@ largeD0step3 = cms.Sequence(trkfilter3* largeD0step3Clusters* largeD0step3PixelRecHits*largeD0step3StripRecHits* + largeD0step3LayerPairs* largeD0step3Seeds* largeD0step3TrackCandidates* largeD0step3WithMaterialTracks* diff --git a/RecoTracker/IterativeTracking/python/LargeD0_PixelTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LargeD0_PixelTripletStep_cff.py index b46793a03fea9..4b7bde7bb8b27 100644 --- a/RecoTracker/IterativeTracking/python/LargeD0_PixelTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LargeD0_PixelTripletStep_cff.py @@ -46,11 +46,9 @@ ) #SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -largeD0step1layertriplets = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'largeD0step1LayerTriplets', -) -largeD0step1layertriplets.BPix.HitProducer = 'largeD0step1PixelRecHits' -largeD0step1layertriplets.FPix.HitProducer = 'largeD0step1PixelRecHits' +largeD0step1LayerTriplets = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() +largeD0step1LayerTriplets.BPix.HitProducer = 'largeD0step1PixelRecHits' +largeD0step1LayerTriplets.FPix.HitProducer = 'largeD0step1PixelRecHits' #SEEDS import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff @@ -175,6 +173,7 @@ largeD0step1 = cms.Sequence(trkfilter1* largeD0step1Clusters* largeD0step1PixelRecHits*largeD0step1StripRecHits* + largeD0step1LayerTriplets* largeD0step1Seeds* largeD0step1TrackCandidates* largeD0step1WithMaterialTracks* diff --git a/RecoTracker/IterativeTracking/python/LargeD0_TibTidTecStep_cff.py b/RecoTracker/IterativeTracking/python/LargeD0_TibTidTecStep_cff.py index 5130ce04258e4..3487d4bd18aff 100644 --- a/RecoTracker/IterativeTracking/python/LargeD0_TibTidTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LargeD0_TibTidTecStep_cff.py @@ -53,12 +53,10 @@ ) #SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLessLayerPairs_cfi -largeD0step4layerpairs = RecoTracker.TkSeedingLayers.PixelLessLayerPairs_cfi.pixellesslayerpairs.clone( - ComponentName = 'largeD0step4LayerPairs', -) -largeD0step4layerpairs.TIB.matchedRecHits = 'largeD0step4StripRecHits:matchedRecHit' -largeD0step4layerpairs.TID.matchedRecHits = 'largeD0step4StripRecHits:matchedRecHit' -largeD0step4layerpairs.TEC.matchedRecHits = 'largeD0step4StripRecHits:matchedRecHit' +largeD0step4LayerPairs = RecoTracker.TkSeedingLayers.PixelLessLayerPairs_cfi.PixelLessLayerPairs.clone() +largeD0step4LayerPairs.TIB.matchedRecHits = 'largeD0step4StripRecHits:matchedRecHit' +largeD0step4LayerPairs.TID.matchedRecHits = 'largeD0step4StripRecHits:matchedRecHit' +largeD0step4LayerPairs.TEC.matchedRecHits = 'largeD0step4StripRecHits:matchedRecHit' #SEEDS import RecoTracker.TkSeedGenerator.GlobalPixelLessSeeds_cff @@ -188,6 +186,7 @@ largeD0step4 = cms.Sequence(trkfilter4* largeD0step4Clusters* largeD0step4PixelRecHits*largeD0step4StripRecHits* + largeD0step4LayerPairs* largeD0step4Seeds* largeD0step4TrackCandidates* largeD0step4WithMaterialTracks* diff --git a/RecoTracker/IterativeTracking/python/LargeD0_TobTecStep_cff.py b/RecoTracker/IterativeTracking/python/LargeD0_TobTecStep_cff.py index 72707720c9f24..d71de86aa4077 100644 --- a/RecoTracker/IterativeTracking/python/LargeD0_TobTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LargeD0_TobTecStep_cff.py @@ -53,11 +53,9 @@ ) #SEEDING LAYERS import RecoTracker.TkSeedingLayers.TobTecLayerPairs_cfi -largeD0step5layerpairs = RecoTracker.TkSeedingLayers.TobTecLayerPairs_cfi.tobteclayerpairs.clone( - ComponentName = 'largeD0step5LayerPairs', -) -largeD0step5layerpairs.TOB.matchedRecHits = 'largeD0step5StripRecHits:matchedRecHit' -largeD0step5layerpairs.TEC.matchedRecHits = 'largeD0step5StripRecHits:matchedRecHit' +largeD0step5LayerPairs = RecoTracker.TkSeedingLayers.TobTecLayerPairs_cfi.TobTecLayerPairs.clone() +largeD0step5LayerPairs.TOB.matchedRecHits = 'largeD0step5StripRecHits:matchedRecHit' +largeD0step5LayerPairs.TEC.matchedRecHits = 'largeD0step5StripRecHits:matchedRecHit' #SEEDS from RecoTracker.TkSeedGenerator.GlobalPixelLessSeeds_cff import * @@ -190,6 +188,7 @@ largeD0step5 = cms.Sequence(trkfilter5* largeD0step5Clusters* largeD0step5PixelRecHits*largeD0step5StripRecHits* + largeD0step5LayerPairs* largeD0step5Seeds* largeD0step5TrackCandidates* largeD0step5WithMaterialTracks* diff --git a/RecoTracker/IterativeTracking/python/LowPU_DetachedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPU_DetachedTripletStep_cff.py index 6b11803f6aae6..a9498db9536f2 100644 --- a/RecoTracker/IterativeTracking/python/LowPU_DetachedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPU_DetachedTripletStep_cff.py @@ -22,9 +22,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'detachedTripletStepSeedLayers' - ) +detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() detachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('detachedTripletStepClusters') detachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('detachedTripletStepClusters') @@ -212,6 +210,7 @@ ) DetachedTripletStep = cms.Sequence(detachedTripletStepClusters* + detachedTripletStepSeedLayers* detachedTripletStepSeeds* detachedTripletStepTrackCandidates* detachedTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/LowPU_LowPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPU_LowPtTripletStep_cff.py index f98055fbc01d7..e55a431f88f9b 100644 --- a/RecoTracker/IterativeTracking/python/LowPU_LowPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPU_LowPtTripletStep_cff.py @@ -16,9 +16,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'lowPtTripletStepSeedLayers' - ) +lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() lowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtTripletStepClusters') lowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtTripletStepClusters') @@ -159,6 +157,7 @@ # Final sequence LowPtTripletStep = cms.Sequence(lowPtTripletStepClusters* + lowPtTripletStepSeedLayers* lowPtTripletStepSeeds* lowPtTripletStepTrackCandidates* lowPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/LowPU_MixedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPU_MixedTripletStep_cff.py index 39e83196f33cb..97c9dc7552fcb 100644 --- a/RecoTracker/IterativeTracking/python/LowPU_MixedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPU_MixedTripletStep_cff.py @@ -19,8 +19,7 @@ ) # SEEDING LAYERS -mixedTripletStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersA'), +mixedTripletStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg', @@ -29,17 +28,11 @@ 'FPix1_pos+FPix2_pos+TEC2_pos', 'FPix1_neg+FPix2_neg+TEC2_neg', 'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -68,13 +61,9 @@ mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.originRadius = 1.5 # SEEDING LAYERS -mixedTripletStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersB'), +mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -289,7 +278,9 @@ MixedTripletStep = cms.Sequence(mixedTripletStepClusters* + mixedTripletStepSeedLayersA* mixedTripletStepSeedsA* + mixedTripletStepSeedLayersB* mixedTripletStepSeedsB* mixedTripletStepSeeds* mixedTripletStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/LowPU_PixelLessStep_cff.py b/RecoTracker/IterativeTracking/python/LowPU_PixelLessStep_cff.py index 86bc851094b49..cf14fe75ca801 100644 --- a/RecoTracker/IterativeTracking/python/LowPU_PixelLessStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPU_PixelLessStep_cff.py @@ -20,8 +20,7 @@ ) # SEEDING LAYERS -pixelLessStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayersA'), +pixelLessStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TIB1+TID1_pos','TIB1+TID1_neg', 'TID3_pos+TEC1_pos','TID3_neg+TEC1_neg', 'TID1_pos+TID2_pos','TID2_pos+TID3_pos', @@ -68,8 +67,7 @@ ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter') ) -pixelLessStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayersB'), +pixelLessStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TIB1+TIB2', 'TIB2+TIB3', 'TID3_pos+TEC1_pos','TID3_neg+TEC1_neg'), TIB1 = cms.PSet( TTRHBuilder = cms.string('WithTrackAngle'), @@ -237,7 +235,9 @@ PixelLessStep = cms.Sequence(pixelLessStepClusters* + pixelLessStepSeedLayersA* pixelLessStepSeedsA* + pixelLessStepSeedLayersB* pixelLessStepSeedsB* pixelLessStepSeeds* pixelLessStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/LowPU_PixelPairStep_cff.py b/RecoTracker/IterativeTracking/python/LowPU_PixelPairStep_cff.py index 1d19cf484539d..d3d7186f884d4 100644 --- a/RecoTracker/IterativeTracking/python/LowPU_PixelPairStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPU_PixelPairStep_cff.py @@ -17,25 +17,18 @@ ) # SEEDING LAYERS -pixelPairStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelPairStepSeedLayers'), +pixelPairStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', 'BPix1+FPix1_pos', 'BPix1+FPix1_neg', 'BPix2+FPix1_pos', 'BPix2+FPix1_neg', 'BPix1+FPix2_pos', 'BPix1+FPix2_neg', 'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') @@ -48,7 +41,7 @@ pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.3 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 0.015 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.fixedError = 0.03 -pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('pixelPairStepSeedLayers') +pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('pixelPairStepSeedLayers') # QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi @@ -157,6 +150,7 @@ # Final sequence PixelPairStep = cms.Sequence(pixelPairStepClusters* + pixelPairStepSeedLayers* pixelPairStepSeeds* pixelPairStepTrackCandidates* pixelPairStepTracks* diff --git a/RecoTracker/IterativeTracking/python/LowPU_TobTecStep_cff.py b/RecoTracker/IterativeTracking/python/LowPU_TobTecStep_cff.py index e8e8f88bc854b..5716f044f76e1 100644 --- a/RecoTracker/IterativeTracking/python/LowPU_TobTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPU_TobTecStep_cff.py @@ -19,8 +19,7 @@ ) # SEEDING LAYERS -tobTecStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayersA'), +tobTecStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TOB1+TOB2', 'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos', 'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos', @@ -53,8 +52,7 @@ # SEEDING LAYERS -tobTecStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayersB'), +tobTecStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TIB4+TOB1', 'TOB2+TOB3', 'TOB1+TEC1_pos', 'TOB1+TEC1_neg', 'TEC2_pos+TEC3_pos', 'TEC2_neg+TEC3_neg', @@ -302,7 +300,9 @@ ) #end of clone TobTecStep = cms.Sequence(tobTecStepClusters* + tobTecStepSeedLayersA* tobTecStepSeedsA* + tobTecStepSeedLayersB* tobTecStepSeedsB* tobTecStepSeeds* tobTecStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py index 3cf29cf93ffc0..530aebdb1ef76 100644 --- a/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py @@ -16,9 +16,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtBarrelTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'lowPtBarrelTripletStepSeedLayers' - ) +lowPtBarrelTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() lowPtBarrelTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtBarrelTripletStepClusters') lowPtBarrelTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtBarrelTripletStepClusters') lowPtBarrelTripletStepSeedLayers.layerList = cms.vstring('BPix1+BPix2+BPix3') @@ -159,6 +157,7 @@ # Final sequence LowPtBarrelTripletStep = cms.Sequence(lowPtBarrelTripletStepClusters* + lowPtBarrelTripletStepSeedLayers* lowPtBarrelTripletStepSeeds* lowPtBarrelTripletStepTrackCandidates* lowPtBarrelTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/LowPtForwardTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPtForwardTripletStep_cff.py index 01a1ea1f98614..007444634b44c 100644 --- a/RecoTracker/IterativeTracking/python/LowPtForwardTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPtForwardTripletStep_cff.py @@ -16,9 +16,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtForwardTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'lowPtForwardTripletStepSeedLayers' - ) +lowPtForwardTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() lowPtForwardTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtForwardTripletStepClusters') lowPtForwardTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtForwardTripletStepClusters') lowPtForwardTripletStepSeedLayers.layerList = cms.vstring('BPix1+BPix2+FPix1_pos', @@ -113,6 +111,7 @@ # Final sequence LowPtForwardTripletStep = cms.Sequence(lowPtForwardTripletStepClusters* + lowPtForwardTripletStepSeedLayers* lowPtForwardTripletStepSeeds* lowPtForwardTripletStepTrackCandidates* lowPtForwardTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/LowPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPtTripletStep_cff.py index 7b8116e77d4cc..877122f739a39 100644 --- a/RecoTracker/IterativeTracking/python/LowPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPtTripletStep_cff.py @@ -17,9 +17,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'lowPtTripletStepSeedLayers' - ) +lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() lowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtTripletStepClusters') lowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtTripletStepClusters') @@ -135,6 +133,7 @@ # Final sequence LowPtTripletStep = cms.Sequence(lowPtTripletStepClusters* + lowPtTripletStepSeedLayers* lowPtTripletStepSeeds* lowPtTripletStepTrackCandidates* lowPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py index 64805b0e756c2..f85cdc3e515c1 100644 --- a/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py @@ -19,24 +19,17 @@ ) # SEEDING LAYERS -mixedTripletStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersA'), +mixedTripletStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg', 'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -73,13 +66,9 @@ ) # SEEDING LAYERS -mixedTripletStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersB'), +mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix2+BPix3+TIB1'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -300,7 +289,9 @@ MixedTripletStep = cms.Sequence(mixedTripletStepClusters* + mixedTripletStepSeedLayersA* mixedTripletStepSeedsA* + mixedTripletStepSeedLayersB* mixedTripletStepSeedsB* mixedTripletStepSeeds* mixedTripletStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU140_DetachedQuadStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU140_DetachedQuadStep_cff.py index ecded6d43d0bc..8bd9b581c71bf 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU140_DetachedQuadStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU140_DetachedQuadStep_cff.py @@ -22,8 +22,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = cms.string('detachedQuadStepSeedLayers'), +detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone( layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -41,6 +40,7 @@ PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0 import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets detachedQuadStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone( RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone( ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'), @@ -51,7 +51,7 @@ ) ), SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') @@ -235,6 +235,7 @@ ) DetachedQuadStep = cms.Sequence(detachedQuadStepClusters* + detachedQuadStepSeedLayers* detachedQuadStepSeeds* detachedQuadStepTrackCandidates* detachedQuadStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU140_ElectronSeeds_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU140_ElectronSeeds_cff.py index f8cc222867695..1a5e70b3585fb 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU140_ElectronSeeds_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU140_ElectronSeeds_cff.py @@ -14,8 +14,7 @@ oldClusterRemovalInfo = cms.InputTag("highPtTripletStepSeedClusterMask") ) -tripletElectronSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tripletElectronSeedLayers'), +tripletElectronSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -28,19 +27,13 @@ 'BPix1+FPix2_pos+FPix3_pos', 'BPix1+FPix2_neg+FPix3_neg', 'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), skipClusters = cms.InputTag('pixelPairStepSeedClusterMask') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036), skipClusters = cms.InputTag('pixelPairStepSeedClusterMask') ) ) @@ -57,7 +50,7 @@ ) ) ) -tripletElectronSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('tripletElectronSeedLayers') +tripletElectronSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('tripletElectronSeedLayers') tripletElectronSeeds.ClusterCheckPSet.doClusterCheck = cms.bool(False) tripletElectronSeeds.OrderedHitsFactoryPSet.maxElement = cms.uint32(0) @@ -82,5 +75,6 @@ electronSeedsSeq = cms.Sequence(initialStepSeedClusterMask* highPtTripletStepSeedClusterMask* pixelPairStepSeedClusterMask* + tripletElectronSeedLayers* tripletElectronSeeds* newCombinedSeeds) diff --git a/RecoTracker/IterativeTracking/python/Phase1PU140_HighPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU140_HighPtTripletStep_cff.py index 62b72f77935c2..761a338bebd2d 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU140_HighPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU140_HighPtTripletStep_cff.py @@ -19,8 +19,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -highPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = cms.string('highPtTripletStepSeedLayers'), +highPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone( layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -165,6 +164,7 @@ # Final sequence HighPtTripletStep = cms.Sequence(highPtTripletStepClusters* + highPtTripletStepSeedLayers* highPtTripletStepSeeds* highPtTripletStepTrackCandidates* highPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU140_InitialStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU140_InitialStep_cff.py index 3ef9ed0e379c9..2c135e84a06cf 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU140_InitialStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU140_InitialStep_cff.py @@ -9,6 +9,7 @@ # seeding from RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff import * from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets initialStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone( RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone( ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'), @@ -19,7 +20,7 @@ ) ), SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') diff --git a/RecoTracker/IterativeTracking/python/Phase1PU140_LowPtQuadStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU140_LowPtQuadStep_cff.py index d9af15bd0bc0a..b0e05c7784377 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU140_LowPtQuadStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU140_LowPtQuadStep_cff.py @@ -19,8 +19,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = cms.string('lowPtQuadStepSeedLayers'), +lowPtQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone( layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -35,6 +34,7 @@ # SEEDS import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets lowPtQuadStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone( RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone( ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'), @@ -45,7 +45,7 @@ ) ), SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') @@ -176,6 +176,7 @@ # Final sequence LowPtQuadStep = cms.Sequence(lowPtQuadStepClusters* + lowPtQuadStepSeedLayers* lowPtQuadStepSeeds* lowPtQuadStepTrackCandidates* lowPtQuadStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU140_LowPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU140_LowPtTripletStep_cff.py index 862a6ffcc2dbf..4654980793b87 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU140_LowPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU140_LowPtTripletStep_cff.py @@ -16,8 +16,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = cms.string('lowPtTripletStepSeedLayers'), +lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone( layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -167,6 +166,7 @@ # Final sequence LowPtTripletStep = cms.Sequence(lowPtTripletStepClusters* + lowPtTripletStepSeedLayers* lowPtTripletStepSeeds* lowPtTripletStepTrackCandidates* lowPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU140_PixelPairStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU140_PixelPairStep_cff.py index 372ad10b9c7ad..dec8fced6ae5c 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU140_PixelPairStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU140_PixelPairStep_cff.py @@ -17,8 +17,7 @@ ) # SEEDING LAYERS -pixelPairStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelPairStepSeedLayers'), +pixelPairStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', 'BPix2+BPix4', 'BPix3+BPix4', 'BPix1+FPix1_pos', 'BPix1+FPix1_neg', @@ -26,17 +25,11 @@ 'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg', 'FPix2_pos+FPix3_pos', 'FPix2_neg+FPix3_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') @@ -49,7 +42,7 @@ pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 1.5 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 0.015 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.fixedError = 0.03 -pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('pixelPairStepSeedLayers') +pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('pixelPairStepSeedLayers') pixelPairStepSeeds.SeedComparitorPSet = cms.PSet( ComponentName = cms.string('PixelClusterShapeSeedComparitor'), @@ -168,6 +161,7 @@ # Final sequence PixelPairStep = cms.Sequence(pixelPairStepClusters* + pixelPairStepSeedLayers* pixelPairStepSeeds* pixelPairStepTrackCandidates* pixelPairStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_DetachedQuadStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_DetachedQuadStep_cff.py index b2e3905c5e3c1..eab9114f9d96f 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_DetachedQuadStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_DetachedQuadStep_cff.py @@ -22,8 +22,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = cms.string('detachedQuadStepSeedLayers'), +detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone( layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -41,6 +40,7 @@ PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0 import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets detachedQuadStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone( RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone( ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'), @@ -51,7 +51,7 @@ ) ), SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') @@ -235,6 +235,7 @@ ) DetachedQuadStep = cms.Sequence(detachedQuadStepClusters* + detachedQuadStepSeedLayers* detachedQuadStepSeeds* detachedQuadStepTrackCandidates* detachedQuadStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_ElectronSeeds_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_ElectronSeeds_cff.py index f8cc222867695..1a5e70b3585fb 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_ElectronSeeds_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_ElectronSeeds_cff.py @@ -14,8 +14,7 @@ oldClusterRemovalInfo = cms.InputTag("highPtTripletStepSeedClusterMask") ) -tripletElectronSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tripletElectronSeedLayers'), +tripletElectronSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -28,19 +27,13 @@ 'BPix1+FPix2_pos+FPix3_pos', 'BPix1+FPix2_neg+FPix3_neg', 'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), skipClusters = cms.InputTag('pixelPairStepSeedClusterMask') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036), skipClusters = cms.InputTag('pixelPairStepSeedClusterMask') ) ) @@ -57,7 +50,7 @@ ) ) ) -tripletElectronSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('tripletElectronSeedLayers') +tripletElectronSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('tripletElectronSeedLayers') tripletElectronSeeds.ClusterCheckPSet.doClusterCheck = cms.bool(False) tripletElectronSeeds.OrderedHitsFactoryPSet.maxElement = cms.uint32(0) @@ -82,5 +75,6 @@ electronSeedsSeq = cms.Sequence(initialStepSeedClusterMask* highPtTripletStepSeedClusterMask* pixelPairStepSeedClusterMask* + tripletElectronSeedLayers* tripletElectronSeeds* newCombinedSeeds) diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_HighPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_HighPtTripletStep_cff.py index e79ae78deefd8..c5d04e6cbbcc7 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_HighPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_HighPtTripletStep_cff.py @@ -19,8 +19,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -highPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = cms.string('highPtTripletStepSeedLayers'), +highPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone( layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -165,6 +164,7 @@ # Final sequence HighPtTripletStep = cms.Sequence(highPtTripletStepClusters* + highPtTripletStepSeedLayers* highPtTripletStepSeeds* highPtTripletStepTrackCandidates* highPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_InitialStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_InitialStep_cff.py index e1e5bb6ed4db3..60c635b07181c 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_InitialStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_InitialStep_cff.py @@ -9,6 +9,7 @@ # seeding from RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff import * from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets initialStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone( RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone( ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'), @@ -19,7 +20,7 @@ ) ), SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_LowPtQuadStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_LowPtQuadStep_cff.py index 87adc3ed69b9f..9f09525dadd16 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_LowPtQuadStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_LowPtQuadStep_cff.py @@ -19,8 +19,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = cms.string('lowPtQuadStepSeedLayers'), +lowPtQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone( layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -35,6 +34,7 @@ # SEEDS import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets lowPtQuadStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone( RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone( ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'), @@ -45,7 +45,7 @@ ) ), SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') @@ -176,6 +176,7 @@ # Final sequence LowPtQuadStep = cms.Sequence(lowPtQuadStepClusters* + lowPtQuadStepSeedLayers* lowPtQuadStepSeeds* lowPtQuadStepTrackCandidates* lowPtQuadStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_LowPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_LowPtTripletStep_cff.py index 2e2dfbff71595..9b8f7f1c8c151 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_LowPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_LowPtTripletStep_cff.py @@ -16,8 +16,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = cms.string('lowPtTripletStepSeedLayers'), +lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone( layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', 'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg', @@ -171,6 +170,7 @@ # Final sequence LowPtTripletStep = cms.Sequence(lowPtTripletStepClusters* + lowPtTripletStepSeedLayers* lowPtTripletStepSeeds* lowPtTripletStepTrackCandidates* lowPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_MixedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_MixedTripletStep_cff.py index a01ef0d4152c6..94956601efb56 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_MixedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_MixedTripletStep_cff.py @@ -19,8 +19,7 @@ ) # SEEDING LAYERS -mixedTripletStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersA'), +mixedTripletStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg', 'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg', @@ -28,17 +27,11 @@ 'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg', 'FPix2_pos+FPix3_pos+TEC1_pos', 'FPix2_neg+FPix3_neg+TEC1_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -77,13 +70,9 @@ mixedTripletStepSeedsA.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0) # SEEDING LAYERS -mixedTripletStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersB'), +mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4','BPix1+BPix2+BPix4', 'BPix1+BPix3+BPix4'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -294,7 +283,9 @@ ) MixedTripletStep = cms.Sequence(mixedTripletStepClusters* + mixedTripletStepSeedLayersA* mixedTripletStepSeedsA* + mixedTripletStepSeedLayersB* mixedTripletStepSeedsB* mixedTripletStepSeeds* mixedTripletStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_PixelPairStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_PixelPairStep_cff.py index 72a3f2bff44a7..bb054b836eb9a 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_PixelPairStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_PixelPairStep_cff.py @@ -17,8 +17,7 @@ ) # SEEDING LAYERS -pixelPairStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelPairStepSeedLayers'), +pixelPairStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', 'BPix2+BPix4', 'BPix3+BPix4', 'BPix1+FPix1_pos', 'BPix1+FPix1_neg', @@ -26,17 +25,11 @@ 'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg', 'FPix2_pos+FPix3_pos', 'FPix2_neg+FPix3_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') @@ -49,7 +42,7 @@ pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 1.2 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 0.015 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.fixedError = 0.03 -pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('pixelPairStepSeedLayers') +pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('pixelPairStepSeedLayers') pixelPairStepSeeds.SeedComparitorPSet = cms.PSet( ComponentName = cms.string('PixelClusterShapeSeedComparitor'), @@ -168,6 +161,7 @@ # Final sequence PixelPairStep = cms.Sequence(pixelPairStepClusters* + pixelPairStepSeedLayers* pixelPairStepSeeds* pixelPairStepTrackCandidates* pixelPairStepTracks* diff --git a/RecoTracker/IterativeTracking/python/Phase1PU70_TobTecStep_cff.py b/RecoTracker/IterativeTracking/python/Phase1PU70_TobTecStep_cff.py index dd8f12e78207f..9aadfa55a3026 100644 --- a/RecoTracker/IterativeTracking/python/Phase1PU70_TobTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/Phase1PU70_TobTecStep_cff.py @@ -36,9 +36,7 @@ ) # SEEDING LAYERS -tobTecStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayers'), - +tobTecStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TOB1+TOB2', 'TOB1+TEC1_pos', 'TOB1+TEC1_neg', 'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos', @@ -253,6 +251,7 @@ TobTecStep = cms.Sequence(tobTecStepClusters* tobTecStepSeedClusters* + tobTecStepSeedLayers* tobTecStepSeeds* tobTecStepTrackCandidates* tobTecStepTracks* diff --git a/RecoTracker/IterativeTracking/python/PixelLessStep_cff.py b/RecoTracker/IterativeTracking/python/PixelLessStep_cff.py index 3238831a43100..9005e8549ecc6 100644 --- a/RecoTracker/IterativeTracking/python/PixelLessStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PixelLessStep_cff.py @@ -29,8 +29,7 @@ ) # SEEDING LAYERS -pixelLessStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayers'), +pixelLessStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TIB1+TIB2', 'TID1_pos+TID2_pos','TID2_pos+TID3_pos', 'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos','TEC4_pos+TEC5_pos', @@ -224,6 +223,7 @@ PixelLessStep = cms.Sequence(pixelLessStepClusters* pixelLessStepSeedClusters* + pixelLessStepSeedLayers* pixelLessStepSeeds* pixelLessStepTrackCandidates* pixelLessStepTracks* diff --git a/RecoTracker/IterativeTracking/python/PixelLessTripletStep_cff.py b/RecoTracker/IterativeTracking/python/PixelLessTripletStep_cff.py index 6188d4dd8193e..766095884b5e4 100644 --- a/RecoTracker/IterativeTracking/python/PixelLessTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PixelLessTripletStep_cff.py @@ -3,8 +3,7 @@ from RecoTracker.IterativeTracking.PixelLessStep_cff import * # SEEDING LAYERS -pixelLessStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayers'), +pixelLessStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring( #TIB 'TIB1+TIB2+MTIB3', @@ -95,6 +94,7 @@ PixelLessStep = cms.Sequence( pixelLessStepClusters* + pixelLessStepSeedLayers* pixelLessStepSeeds* pixelLessStepTrackCandidates* pixelLessStepTracks* diff --git a/RecoTracker/IterativeTracking/python/PixelPairStep_cff.py b/RecoTracker/IterativeTracking/python/PixelPairStep_cff.py index 17b5df4f0d854..767871fdd6571 100644 --- a/RecoTracker/IterativeTracking/python/PixelPairStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PixelPairStep_cff.py @@ -17,24 +17,17 @@ ) # SEEDING LAYERS -pixelPairStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelPairStepSeedLayers'), +pixelPairStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', 'BPix1+FPix1_pos', 'BPix1+FPix1_neg', 'BPix2+FPix1_pos', 'BPix2+FPix1_neg', 'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') @@ -47,7 +40,7 @@ pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 0.015 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.fixedError = 0.03 -pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('pixelPairStepSeedLayers') +pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('pixelPairStepSeedLayers') pixelPairStepSeeds.SeedComparitorPSet = cms.PSet( ComponentName = cms.string('PixelClusterShapeSeedComparitor'), @@ -131,6 +124,7 @@ # Final sequence PixelPairStep = cms.Sequence(pixelPairStepClusters* + pixelPairStepSeedLayers* pixelPairStepSeeds* pixelPairStepTrackCandidates* pixelPairStepTracks* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_DetachedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_DetachedTripletStep_cff.py index f0692b39d26f4..0d3ba10745fbd 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_DetachedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_DetachedTripletStep_cff.py @@ -22,9 +22,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'detachedTripletStepSeedLayers' - ) +detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() detachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('detachedTripletStepClusters') detachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('detachedTripletStepClusters') @@ -208,6 +206,7 @@ ) DetachedTripletStep = cms.Sequence(detachedTripletStepClusters* + detachedTripletStepSeedLayers* detachedTripletStepSeeds* detachedTripletStepTrackCandidates* detachedTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_InitialStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_InitialStep_cff.py index 76dd669379b9d..872469188608c 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_InitialStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_InitialStep_cff.py @@ -20,9 +20,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'initialStepSeedLayers' - ) +initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() initialStepSeedLayers.BPix.skipClusters = cms.InputTag('initialStepClusters') initialStepSeedLayers.FPix.skipClusters = cms.InputTag('initialStepClusters') @@ -115,6 +113,7 @@ # Final sequence InitialStep = cms.Sequence(initialStepClusters* + initialStepSeedLayers* initialStepSeeds* initialStepTrackCandidates* initialStepTracks* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_LowPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_LowPtTripletStep_cff.py index 9f8acdaa112b1..dc1ae30dfdc9b 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_LowPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_LowPtTripletStep_cff.py @@ -19,9 +19,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'lowPtTripletStepSeedLayers' - ) +lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() lowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtTripletStepClusters') lowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtTripletStepClusters') @@ -135,6 +133,7 @@ # Final sequence LowPtTripletStep = cms.Sequence(lowPtTripletStepClusters* + lowPtTripletStepSeedLayers* lowPtTripletStepSeeds* lowPtTripletStepTrackCandidates* lowPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_MixedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_MixedTripletStep_cff.py index aeb1b6838e7f6..1bb92e7025338 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_MixedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_MixedTripletStep_cff.py @@ -19,8 +19,7 @@ ) # SEEDING LAYERS -mixedTripletStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersA'), +mixedTripletStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg', @@ -28,17 +27,11 @@ 'FPix1_pos+FPix2_pos+TEC1_pos', 'FPix1_neg+FPix2_neg+TEC1_neg', 'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -75,13 +68,9 @@ ) # SEEDING LAYERS -mixedTripletStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersB'), +mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -300,7 +289,9 @@ MixedTripletStep = cms.Sequence(mixedTripletStepClusters* + mixedTripletStepSeedLayersA* mixedTripletStepSeedsA* + mixedTripletStepSeedLayersB* mixedTripletStepSeedsB* mixedTripletStepSeeds* mixedTripletStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_PixelLessStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_PixelLessStep_cff.py index a619ac0de4798..90b2196d7660c 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_PixelLessStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_PixelLessStep_cff.py @@ -36,8 +36,7 @@ ) # SEEDING LAYERS -pixelLessStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayersA'), +pixelLessStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TIB1+TIB2'), TIB = cms.PSet( TTRHBuilder = cms.string('WithTrackAngle'), @@ -64,8 +63,7 @@ ) # SEEDING LAYERS -pixelLessStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayersB'), +pixelLessStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TID1_pos+TID2_pos','TID2_pos+TID3_pos', 'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos','TEC4_pos+TEC5_pos', 'TID1_neg+TID2_neg','TID2_neg+TID3_neg', @@ -224,7 +222,9 @@ PixelLessStep = cms.Sequence(pixelLessStepClusters* pixelLessStepSeedClusters* + pixelLessStepSeedLayersA* pixelLessStepSeedsA* + pixelLessStepSeedLayersB* pixelLessStepSeedsB* pixelLessStepSeeds* pixelLessStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_PixelLessTripletStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_PixelLessTripletStep_cff.py index 129b7e174991c..f7b60c6317ee3 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_PixelLessTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_PixelLessTripletStep_cff.py @@ -3,8 +3,7 @@ from RecoTracker.IterativeTracking.PostLS1_PixelLessStep_cff import * # SEEDING LAYERS BARREL -pixelLessStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayersA'), +pixelLessStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring( #TIB 'TIB1+TIB2+MTIB3', @@ -67,8 +66,7 @@ ) # SEEDING LAYERS ENDCAP -pixelLessStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayersB'), +pixelLessStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring( #TID 'TID1_pos+TID2_pos+MTID3_pos','TID1_neg+TID2_neg+MTID3_neg',#ring 3 (mono) @@ -144,7 +142,9 @@ ) PixelLessStep = cms.Sequence(pixelLessStepClusters* + pixelLessStepSeedLayersA* pixelLessStepSeedsA* + pixelLessStepSeedLayersB* pixelLessStepSeedsB* pixelLessStepSeeds* pixelLessStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_PixelPairStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_PixelPairStep_cff.py index b18bb2ee21441..738b9d93f96c2 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_PixelPairStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_PixelPairStep_cff.py @@ -17,24 +17,17 @@ ) # SEEDING LAYERS -pixelPairStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelPairStepSeedLayers'), +pixelPairStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', 'BPix1+FPix1_pos', 'BPix1+FPix1_neg', 'BPix2+FPix1_pos', 'BPix2+FPix1_neg', 'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') @@ -47,7 +40,7 @@ pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 0.015 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.fixedError = 0.03 -pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('pixelPairStepSeedLayers') +pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('pixelPairStepSeedLayers') pixelPairStepSeeds.SeedComparitorPSet = cms.PSet( ComponentName = cms.string('PixelClusterShapeSeedComparitor'), @@ -129,6 +122,7 @@ # Final sequence PixelPairStep = cms.Sequence(pixelPairStepClusters* + pixelPairStepSeedLayers* pixelPairStepSeeds* pixelPairStepTrackCandidates* pixelPairStepTracks* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_TobTecHybridStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_TobTecHybridStep_cff.py index 9c36f2741e04b..205bce3f2c489 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_TobTecHybridStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_TobTecHybridStep_cff.py @@ -3,8 +3,7 @@ from RecoTracker.IterativeTracking.TobTecStep_cff import * # TRIPLET SEEDING LAYERS -tobTecStepSeedLayersTripl = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayersTripl'), +tobTecStepSeedLayersTripl = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring( #TOB 'TOB1+TOB2+MTOB3', @@ -89,8 +88,7 @@ ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter') ) # PAIR SEEDING LAYERS -tobTecStepSeedLayersPair = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayersPair'), +tobTecStepSeedLayersPair = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TOB1+TEC1_pos','TOB1+TEC1_neg', 'TEC1_pos+TEC2_pos','TEC1_neg+TEC2_neg', 'TEC2_pos+TEC3_pos','TEC2_neg+TEC3_neg', @@ -135,7 +133,9 @@ TobTecStep = cms.Sequence(tobTecStepClusters* + tobTecStepSeedLayersTripl* tobTecStepSeedsTripl* + tobTecStepSeedLayersPair* tobTecStepSeedsPair* tobTecStepSeeds* tobTecStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/PostLS1_TobTecStep_cff.py b/RecoTracker/IterativeTracking/python/PostLS1_TobTecStep_cff.py index 14c19513e2b9a..e923d7433ce18 100644 --- a/RecoTracker/IterativeTracking/python/PostLS1_TobTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PostLS1_TobTecStep_cff.py @@ -36,9 +36,7 @@ ) # SEEDING LAYERS -tobTecStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayers'), - +tobTecStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TOB1+TOB2', 'TOB1+TEC1_pos', 'TOB1+TEC1_neg', 'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos', @@ -257,6 +255,7 @@ TobTecStep = cms.Sequence(tobTecStepClusters* tobTecStepSeedClusters* + tobTecStepSeedLayers* tobTecStepSeeds* tobTecStepTrackCandidates* tobTecStepTracks* diff --git a/RecoTracker/IterativeTracking/python/RunI_DetachedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/RunI_DetachedTripletStep_cff.py index 488261acf87c6..3c88124b55155 100644 --- a/RecoTracker/IterativeTracking/python/RunI_DetachedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/RunI_DetachedTripletStep_cff.py @@ -22,9 +22,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'detachedTripletStepSeedLayers' - ) +detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() detachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('detachedTripletStepClusters') detachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('detachedTripletStepClusters') @@ -210,6 +208,7 @@ ) DetachedTripletStep = cms.Sequence(detachedTripletStepClusters* + detachedTripletStepSeedLayers* detachedTripletStepSeeds* detachedTripletStepTrackCandidates* detachedTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/RunI_LowPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/RunI_LowPtTripletStep_cff.py index 095defecd69ac..11518eeaa1317 100644 --- a/RecoTracker/IterativeTracking/python/RunI_LowPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/RunI_LowPtTripletStep_cff.py @@ -16,9 +16,7 @@ # SEEDING LAYERS import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi -lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone( - ComponentName = 'lowPtTripletStepSeedLayers' - ) +lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone() lowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtTripletStepClusters') lowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtTripletStepClusters') @@ -134,6 +132,7 @@ # Final sequence LowPtTripletStep = cms.Sequence(lowPtTripletStepClusters* + lowPtTripletStepSeedLayers* lowPtTripletStepSeeds* lowPtTripletStepTrackCandidates* lowPtTripletStepTracks* diff --git a/RecoTracker/IterativeTracking/python/RunI_MixedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/RunI_MixedTripletStep_cff.py index a8f7d51eb0d35..0bb9a0c94c2e5 100644 --- a/RecoTracker/IterativeTracking/python/RunI_MixedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/RunI_MixedTripletStep_cff.py @@ -19,8 +19,7 @@ ) # SEEDING LAYERS -mixedTripletStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersA'), +mixedTripletStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg', @@ -28,17 +27,11 @@ 'FPix1_pos+FPix2_pos+TEC1_pos', 'FPix1_neg+FPix2_neg+TEC1_neg', 'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRZ = cms.double(0.006), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -75,13 +68,9 @@ ) # SEEDING LAYERS -mixedTripletStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('mixedTripletStepSeedLayersB'), +mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('mixedTripletStepClusters') @@ -302,7 +291,9 @@ MixedTripletStep = cms.Sequence(mixedTripletStepClusters* + mixedTripletStepSeedLayersA* mixedTripletStepSeedsA* + mixedTripletStepSeedLayersB* mixedTripletStepSeedsB* mixedTripletStepSeeds* mixedTripletStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/RunI_PixelLessStep_cff.py b/RecoTracker/IterativeTracking/python/RunI_PixelLessStep_cff.py index ea3576217a4a3..bb23d71780537 100644 --- a/RecoTracker/IterativeTracking/python/RunI_PixelLessStep_cff.py +++ b/RecoTracker/IterativeTracking/python/RunI_PixelLessStep_cff.py @@ -20,8 +20,7 @@ ) # SEEDING LAYERS -pixelLessStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessStepSeedLayers'), +pixelLessStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TIB1+TIB2', 'TID1_pos+TID2_pos','TID2_pos+TID3_pos', 'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos','TEC4_pos+TEC5_pos', @@ -178,6 +177,7 @@ PixelLessStep = cms.Sequence(pixelLessStepClusters* + pixelLessStepSeedLayers* pixelLessStepSeeds* pixelLessStepTrackCandidates* pixelLessStepTracks* diff --git a/RecoTracker/IterativeTracking/python/RunI_PixelPairStep_cff.py b/RecoTracker/IterativeTracking/python/RunI_PixelPairStep_cff.py index 4ce0d1fa01d49..52afcbee6501d 100644 --- a/RecoTracker/IterativeTracking/python/RunI_PixelPairStep_cff.py +++ b/RecoTracker/IterativeTracking/python/RunI_PixelPairStep_cff.py @@ -17,24 +17,17 @@ ) # SEEDING LAYERS -pixelPairStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelPairStepSeedLayers'), +pixelPairStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', 'BPix1+FPix1_pos', 'BPix1+FPix1_neg', 'BPix2+FPix1_pos', 'BPix2+FPix1_neg', 'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), - hitErrorRZ = cms.double(0.006), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), - hitErrorRZ = cms.double(0.0036), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), skipClusters = cms.InputTag('pixelPairStepClusters') @@ -47,7 +40,7 @@ pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 0.015 pixelPairStepSeeds.RegionFactoryPSet.RegionPSet.fixedError = 0.03 -pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.string('pixelPairStepSeedLayers') +pixelPairStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('pixelPairStepSeedLayers') pixelPairStepSeeds.SeedComparitorPSet = cms.PSet( ComponentName = cms.string('PixelClusterShapeSeedComparitor'), @@ -131,6 +124,7 @@ # Final sequence PixelPairStep = cms.Sequence(pixelPairStepClusters* + pixelPairStepSeedLayers* pixelPairStepSeeds* pixelPairStepTrackCandidates* pixelPairStepTracks* diff --git a/RecoTracker/IterativeTracking/python/RunI_TobTecStep_cff.py b/RecoTracker/IterativeTracking/python/RunI_TobTecStep_cff.py index f6935942de200..ba9fa6428a004 100644 --- a/RecoTracker/IterativeTracking/python/RunI_TobTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/RunI_TobTecStep_cff.py @@ -19,9 +19,7 @@ ) # SEEDING LAYERS -tobTecStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayers'), - +tobTecStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TOB1+TOB2', 'TOB1+TEC1_pos', 'TOB1+TEC1_neg', 'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos', @@ -233,6 +231,7 @@ TobTecStep = cms.Sequence(tobTecStepClusters* + tobTecStepSeedLayers* tobTecStepSeeds* tobTecStepTrackCandidates* tobTecStepTracks* diff --git a/RecoTracker/IterativeTracking/python/TobTecHybridStep_cff.py b/RecoTracker/IterativeTracking/python/TobTecHybridStep_cff.py index ab1597a982e9d..05abf0a43b93a 100644 --- a/RecoTracker/IterativeTracking/python/TobTecHybridStep_cff.py +++ b/RecoTracker/IterativeTracking/python/TobTecHybridStep_cff.py @@ -3,8 +3,7 @@ from RecoTracker.IterativeTracking.TobTecStep_cff import * # TRIPLET SEEDING LAYERS -tobTecStepSeedLayersTripl = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayersTripl'), +tobTecStepSeedLayersTripl = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring( #TOB 'TOB1+TOB2+MTOB3', @@ -89,8 +88,7 @@ ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter') ) # PAIR SEEDING LAYERS -tobTecStepSeedLayersPair = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayersPair'), +tobTecStepSeedLayersPair = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TOB1+TEC1_pos','TOB1+TEC1_neg', 'TEC1_pos+TEC2_pos','TEC1_neg+TEC2_neg', 'TEC2_pos+TEC3_pos','TEC2_neg+TEC3_neg', @@ -135,7 +133,9 @@ TobTecStep = cms.Sequence(tobTecStepClusters* + tobTecStepSeedLayersTripl* tobTecStepSeedsTripl* + tobTecStepSeedLayersPair* tobTecStepSeedsPair* tobTecStepSeeds* tobTecStepTrackCandidates* diff --git a/RecoTracker/IterativeTracking/python/TobTecStep_cff.py b/RecoTracker/IterativeTracking/python/TobTecStep_cff.py index 9670fce34bec9..a348c4344b710 100644 --- a/RecoTracker/IterativeTracking/python/TobTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/TobTecStep_cff.py @@ -29,9 +29,7 @@ # SEEDING LAYERS -tobTecStepSeedLayers = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('tobTecStepSeedLayers'), - +tobTecStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TOB1+TOB2', 'TOB1+TEC1_pos', 'TOB1+TEC1_neg', 'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos', @@ -244,6 +242,7 @@ TobTecStep = cms.Sequence(tobTecStepClusters* tobTecStepSeedClusters* + tobTecStepSeedLayers* tobTecStepSeeds* tobTecStepTrackCandidates* tobTecStepTracks* diff --git a/RecoTracker/SeedingLayerSetsHits/BuildFile.xml b/RecoTracker/SeedingLayerSetsHits/BuildFile.xml new file mode 100644 index 0000000000000..cfff6f1de6a13 --- /dev/null +++ b/RecoTracker/SeedingLayerSetsHits/BuildFile.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h b/RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h new file mode 100644 index 0000000000000..a4fdda77bbd01 --- /dev/null +++ b/RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h @@ -0,0 +1,221 @@ +#ifndef RecoTracker_SeedingLayerSet_SeedingLayerSetsHits +#define RecoTracker_SeedingLayerSet_SeedingLayerSetsHits + +#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" + +#include +#include +#include + +class DetLayer; + +/** + * Class to store TransientTrackingRecHits, names, and DetLayer + * pointers of each ctfseeding::SeedingLayer as they come from + * SeedingLayerSetsBuilder. + * + * In contrast to ctfseeding::SeedingLayerSets, this class requires + * that all contained SeedingLayerSets have the same number of layers + * in each set. + * + * This class was created in part for SeedingLayer getByToken + * migration, and in part as a performance improvement. + */ +class SeedingLayerSetsHits { +public: + typedef TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer; + typedef std::vector Hits; + + typedef unsigned short LayerSetIndex; + typedef unsigned short LayerIndex; + typedef unsigned int HitIndex; + + /** + * Auxiliary class to represent a single SeedingLayer. Holds a + * pointer to SeedingLayerSetsHits and the index of the + * SeedingLayer. All calls are forwarded to SeedingLayerSetsHits. + */ + class SeedingLayer { + public: + SeedingLayer(): seedingLayerSets_(0), index_(0) {} + SeedingLayer(const SeedingLayerSetsHits *sls, LayerIndex index): + seedingLayerSets_(sls), index_(index) {} + + /** + * Index of the SeedingLayer within SeedingLayerSetsHits. + * + * The index is unique within a SeedingLayerSetsHits object, and + * is the same for all SeedingLayers with the same name. + */ + LayerIndex index() const { return index_; } + const std::string& name() const { return (*seedingLayerSets_->layerNames_)[index_]; } + const DetLayer *detLayer() const { return seedingLayerSets_->layerDets_[index_]; } + Hits hits() const { return seedingLayerSets_->hits(index_); } + + private: + const SeedingLayerSetsHits *seedingLayerSets_; + LayerIndex index_; + }; + + /** + * Auxiliary class to represent a set of SeedingLayers (e.g. BPIX1+BPIX2+BPIX3). + * + * Holds a pointer to SeedingLayerSetsHits, and iterators to + * SeedingLayerSetsHits::layerSetIndices_ to for the first and last+1 + * layer of the set. + */ + class SeedingLayerSet { + public: + class const_iterator { + public: + typedef std::vector::const_iterator internal_iterator_type; + typedef SeedingLayer value_type; + typedef internal_iterator_type::difference_type difference_type; + + const_iterator(): seedingLayerSets_(0) {} + const_iterator(const SeedingLayerSetsHits *sls, internal_iterator_type iter): seedingLayerSets_(sls), iter_(iter) {} + + value_type operator*() const { return SeedingLayer(seedingLayerSets_, *iter_); } + + const_iterator& operator++() { ++iter_; return *this; } + const_iterator operator++(int) { + const_iterator clone(*this); + ++clone; + return clone; + } + + bool operator==(const const_iterator& other) const { return iter_ == other.iter_; } + bool operator!=(const const_iterator& other) const { return !operator==(other); } + + private: + const SeedingLayerSetsHits *seedingLayerSets_; + internal_iterator_type iter_; + }; + + SeedingLayerSet(): seedingLayerSets_(0) {} + SeedingLayerSet(const SeedingLayerSetsHits *sls, std::vector::const_iterator begin, std::vector::const_iterator end): + seedingLayerSets_(sls), begin_(begin), end_(end) {} + + /// Number of layers in this set + LayerSetIndex size() const { return end_-begin_; } + + /// Get a given SeedingLayer (index is between 0 and size()-1) + SeedingLayer operator[](LayerSetIndex index) const { + return SeedingLayer(seedingLayerSets_, *(begin_+index)); + } + + // iterators for range-for + const_iterator begin() const { return const_iterator(seedingLayerSets_, begin_); } + const_iterator cbegin() const { return begin(); } + const_iterator end() const { return const_iterator(seedingLayerSets_, end_); } + const_iterator cend() const { return end(); } + + private: + const SeedingLayerSetsHits *seedingLayerSets_; + std::vector::const_iterator begin_; // Iterator to SeedingLayerSetsHits::layerSetIndices_, first layer + std::vector::const_iterator end_; // Iterator to SeedingLayerSetsHits::layerSetIndices_, last+1 layer + }; + + class const_iterator { + public: + typedef std::vector::const_iterator internal_iterator_type; + typedef SeedingLayerSet value_type; + typedef internal_iterator_type::difference_type difference_type; + + const_iterator(): seedingLayerSets_(0) {} + const_iterator(const SeedingLayerSetsHits *sls, internal_iterator_type iter): seedingLayerSets_(sls), iter_(iter) {} + + value_type operator*() const { return SeedingLayerSet(seedingLayerSets_, iter_, iter_+seedingLayerSets_->nlayers_); } + + const_iterator& operator++() { std::advance(iter_, seedingLayerSets_->nlayers_); return *this; } + const_iterator operator++(int) { + const_iterator clone(*this); + ++clone; + return clone; + } + + bool operator==(const const_iterator& other) const { return iter_ == other.iter_; } + bool operator!=(const const_iterator& other) const { return !operator==(other); } + + private: + const SeedingLayerSetsHits *seedingLayerSets_; + internal_iterator_type iter_; + }; + + + SeedingLayerSetsHits(); + + /** + * Constructor. + * + * \param nlayers Number of layers in each SeedingLayerSet + * \param layerSetIndices Pointer to a vector holding the indices of layer sets (pointer to vector is stored) + * \param layerNames Pointer to a vector holding the layer names (pointer to vector is stored) + * \param layerDets Vector of pointers to layer DetLayer objects (vector is copied, i.e. DetLayer pointers are stored) + */ + SeedingLayerSetsHits(unsigned short nlayers, + const std::vector *layerSetIndices, + const std::vector *layerNames, + const std::vector& layerDets); + + ~SeedingLayerSetsHits(); + + void swapHits(std::vector& layerHitIndices, Hits& hits); + + + /// Get number of layers in each SeedingLayerSets + unsigned short numberOfLayersInSet() const { return nlayers_; } + /// Get the number of SeedingLayerSets + unsigned short size() const { return nlayers_ > 0 ? layerSetIndices_->size() / nlayers_ : 0; } + + /// Get the SeedingLayerSet at a given index + SeedingLayerSet operator[](LayerSetIndex index) const { + std::vector::const_iterator begin = layerSetIndices_->begin()+nlayers_*index; + std::vector::const_iterator end = begin+nlayers_; + return SeedingLayerSet(this, begin, end); + } + + // iterators for range-for + const_iterator begin() const { return const_iterator(this, layerSetIndices_->begin()); } + const_iterator cbegin() const { return begin(); } + const_iterator end() const { return const_iterator(this, layerSetIndices_->end()); } + const_iterator cend() const { return end(); } + + // for more efficient edm::Event::put() + void swap(SeedingLayerSetsHits& other) { + std::swap(nlayers_, other.nlayers_); + std::swap(layerSetIndices_, other.layerSetIndices_); + layerHitIndices_.swap(other.layerHitIndices_); + std::swap(layerNames_, other.layerNames_); + layerDets_.swap(other.layerDets_); + rechits_.swap(other.rechits_); + } + + void print() const; + +private: + Hits hits(LayerIndex layerIndex) const; + + /// Number of layers in a SeedingLayerSet + unsigned short nlayers_; + + /** + * Stores SeedingLayerSets as nlayers_ consecutive layer indices. + * Layer indices point to layerHitRanges_, layerNames_, and + * layerDets_. Hence layerSetIndices.size() == nlayers_*"number of layer sets" + */ + const std::vector *layerSetIndices_; + + // following are indexed by LayerIndex + std::vector layerHitIndices_; // Indices to first hits in rechits_ + const std::vector *layerNames_; // Names of the layers + std::vector layerDets_; // Pointers to corresponding DetLayer objects + + /** + * List of RecHits of all SeedingLayers. Hits of each layer are + * identified by the begin indices in layerHitIndices_. + */ + std::vector rechits_; +}; + +#endif diff --git a/RecoTracker/SeedingLayerSetsHits/src/SeedingLayerSetsHits.cc b/RecoTracker/SeedingLayerSetsHits/src/SeedingLayerSetsHits.cc new file mode 100644 index 0000000000000..92262be1fc4b9 --- /dev/null +++ b/RecoTracker/SeedingLayerSetsHits/src/SeedingLayerSetsHits.cc @@ -0,0 +1,53 @@ +#include "RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include +#include +#include + +SeedingLayerSetsHits::SeedingLayerSetsHits(): nlayers_(0), layerSetIndices_(nullptr), layerNames_(nullptr) {} +SeedingLayerSetsHits::SeedingLayerSetsHits(unsigned short nlayers, + const std::vector *layerSetIndices, + const std::vector *layerNames, + const std::vector& layerDets): + nlayers_(nlayers), + layerSetIndices_(layerSetIndices), + layerNames_(layerNames), + layerDets_(layerDets) +{} +SeedingLayerSetsHits::~SeedingLayerSetsHits() {} + + + +void SeedingLayerSetsHits::swapHits(std::vector& layerHitIndices, Hits& hits) { + layerHitIndices_.swap(layerHitIndices); + rechits_.swap(hits); +} + +SeedingLayerSetsHits::Hits SeedingLayerSetsHits::hits(LayerIndex layerIndex) const { + HitIndex begin = layerHitIndices_[layerIndex]; + ++layerIndex; + HitIndex end = layerIndex < layerHitIndices_.size() ? layerHitIndices_[layerIndex] : rechits_.size(); + + Hits ret; + ret.reserve(end-begin); + std::copy(rechits_.begin()+begin, rechits_.begin()+end, std::back_inserter(ret)); + return ret; +} + + +void SeedingLayerSetsHits::print() const { + std::stringstream ss; + ss << "SeedingLayerSetsHits with " << numberOfLayersInSet() << " layers in each LayerSets, LayerSets has " << size() << " items\n"; + for(LayerSetIndex iLayers=0; iLayers wslsn; + }; +} diff --git a/RecoTracker/SeedingLayerSetsHits/src/classes_def.xml b/RecoTracker/SeedingLayerSetsHits/src/classes_def.xml new file mode 100644 index 0000000000000..76d566c2bd2c8 --- /dev/null +++ b/RecoTracker/SeedingLayerSetsHits/src/classes_def.xml @@ -0,0 +1,4 @@ + + + + diff --git a/RecoTracker/SpecialSeedGenerators/interface/BeamHaloPairGenerator.h b/RecoTracker/SpecialSeedGenerators/interface/BeamHaloPairGenerator.h index aad429e6520fb..f99dfb59c353c 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/BeamHaloPairGenerator.h +++ b/RecoTracker/SpecialSeedGenerators/interface/BeamHaloPairGenerator.h @@ -10,17 +10,18 @@ #include "RecoTracker/TkHitPairs/interface/OrderedHitPairs.h" #include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" #include "RecoTracker/TkSeedingLayers/interface/OrderedSeedingHits.h" +#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h" class BeamHaloPairGenerator : public OrderedHitsGenerator { public: - BeamHaloPairGenerator(const edm::ParameterSet& conf); + BeamHaloPairGenerator(const edm::ParameterSet& conf, edm::ConsumesCollector& iC); virtual ~BeamHaloPairGenerator(){}; virtual const OrderedSeedingHits& run(const TrackingRegion& region, const edm::Event & ev, const edm::EventSetup& es); private: - ctfseeding::SeedingLayerSets init(const edm::EventSetup& es); - edm::ParameterSet conf_; + SeedingLayerSetsBuilder theLayerBuilder; + ctfseeding::SeedingLayerSets theLss; OrderedHitPairs hitPairs; double theMaxTheta; }; diff --git a/RecoTracker/SpecialSeedGenerators/interface/CosmicTrackingRegion.h b/RecoTracker/SpecialSeedGenerators/interface/CosmicTrackingRegion.h index 8c28762bdbd16..179304890002f 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/CosmicTrackingRegion.h +++ b/RecoTracker/SpecialSeedGenerators/interface/CosmicTrackingRegion.h @@ -76,6 +76,11 @@ class CosmicTrackingRegion : public TrackingRegionBase { const edm::EventSetup& es, const ctfseeding::SeedingLayer* layer) const; + TrackingRegion::Hits hits( + const edm::Event& ev, + const edm::EventSetup& es, + const SeedingLayerSetsHits::SeedingLayer& layer) const override; + virtual HitRZCompatibility* checkRZ( const DetLayer* layer, const Hit & outerHit, @@ -88,6 +93,11 @@ class CosmicTrackingRegion : public TrackingRegionBase { std::string name() const { return "CosmicTrackingRegion"; } private: + template + TrackingRegion::Hits hits_( + const edm::Event& ev, + const edm::EventSetup& es, + const T& layer) const; std::string measurementTrackerName_; }; diff --git a/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h b/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h index 4baa52575768a..321910bf70cdb 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h +++ b/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h @@ -82,7 +82,7 @@ class CtfSpecialSeedGenerator : public edm::EDProducer //PropagationDirection outInPropagationDirection; //GenericPairOrTripletGenerator* hitsGeneratorOutIn; //GenericPairOrTripletGenerator* hitsGeneratorInOut; - std::vector theGenerators; + std::vector > theGenerators; std::vector thePropDirs; std::vector theNavDirs; TrackingRegionProducer* theRegionProducer; diff --git a/RecoTracker/SpecialSeedGenerators/interface/GenericPairGenerator.h b/RecoTracker/SpecialSeedGenerators/interface/GenericPairGenerator.h index 88c2c829ec03a..d43b0ff03843c 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/GenericPairGenerator.h +++ b/RecoTracker/SpecialSeedGenerators/interface/GenericPairGenerator.h @@ -13,16 +13,15 @@ class GenericPairGenerator : public OrderedHitsGenerator { public: - GenericPairGenerator(const edm::ParameterSet& conf); + GenericPairGenerator(const edm::ParameterSet& conf, edm::ConsumesCollector& iC); virtual ~GenericPairGenerator(){}; virtual const OrderedSeedingHits& run(const TrackingRegion& region, const edm::Event & ev, const edm::EventSetup& es); void clear() { hitPairs.clear();} private: - ctfseeding::SeedingLayerSets init(const edm::EventSetup& es); - //edm::ParameterSet conf_; SeedingLayerSetsBuilder theLsb; + ctfseeding::SeedingLayerSets theLss; OrderedHitPairs hitPairs; }; diff --git a/RecoTracker/SpecialSeedGenerators/interface/GenericTripletGenerator.h b/RecoTracker/SpecialSeedGenerators/interface/GenericTripletGenerator.h index df921dd6a88fc..a2f88294b605c 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/GenericTripletGenerator.h +++ b/RecoTracker/SpecialSeedGenerators/interface/GenericTripletGenerator.h @@ -15,19 +15,18 @@ class GenericTripletGenerator : public OrderedHitsGenerator { public: - GenericTripletGenerator(const edm::ParameterSet& conf); + GenericTripletGenerator(const edm::ParameterSet& conf, edm::ConsumesCollector& iC); virtual ~GenericTripletGenerator(){}; virtual const OrderedSeedingHits& run(const TrackingRegion& region, const edm::Event & ev, const edm::EventSetup& es); void clear() {hitTriplets.clear();} private: - ctfseeding::SeedingLayerSets init(const edm::EventSetup& es); std::pair qualityFilter(const OrderedHitTriplet& oht, const std::map& map, const ctfseeding::SeedingLayers& ls) const; - //edm::ParameterSet conf_; SeedingLayerSetsBuilder theLsb; + ctfseeding::SeedingLayerSets theLss; OrderedHitTriplets hitTriplets; }; diff --git a/RecoTracker/SpecialSeedGenerators/interface/SimpleCosmicBONSeeder.h b/RecoTracker/SpecialSeedGenerators/interface/SimpleCosmicBONSeeder.h index 8075837f4e212..debb340a0a33a 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/SimpleCosmicBONSeeder.h +++ b/RecoTracker/SpecialSeedGenerators/interface/SimpleCosmicBONSeeder.h @@ -60,6 +60,7 @@ class SimpleCosmicBONSeeder : public edm::EDProducer std::string builderName; SeedingLayerSetsBuilder theLsb; + ctfseeding::SeedingLayerSets theLss; GlobalTrackingRegion region_; double pMin_; bool writeTriplets_; diff --git a/RecoTracker/SpecialSeedGenerators/python/CombinatorialSeedGeneratorForBeamHalo_cfi.py b/RecoTracker/SpecialSeedGenerators/python/CombinatorialSeedGeneratorForBeamHalo_cfi.py index 5f835387f0ea7..4e84aab5a9da8 100644 --- a/RecoTracker/SpecialSeedGenerators/python/CombinatorialSeedGeneratorForBeamHalo_cfi.py +++ b/RecoTracker/SpecialSeedGenerators/python/CombinatorialSeedGeneratorForBeamHalo_cfi.py @@ -24,11 +24,8 @@ rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit") ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036) ), TEC = cms.PSet( minRing = cms.int32(5), diff --git a/RecoTracker/SpecialSeedGenerators/src/BeamHaloPairGenerator.cc b/RecoTracker/SpecialSeedGenerators/src/BeamHaloPairGenerator.cc index ab9d9735b95b0..f5585fe1e107f 100644 --- a/RecoTracker/SpecialSeedGenerators/src/BeamHaloPairGenerator.cc +++ b/RecoTracker/SpecialSeedGenerators/src/BeamHaloPairGenerator.cc @@ -1,33 +1,28 @@ #include "RecoTracker/SpecialSeedGenerators/interface/BeamHaloPairGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h" typedef TransientTrackingRecHit::ConstRecHitPointer SeedingHit; #include "FWCore/MessageLogger/interface/MessageLogger.h" using namespace ctfseeding; -BeamHaloPairGenerator::BeamHaloPairGenerator(const edm::ParameterSet& conf): conf_(conf){ +BeamHaloPairGenerator::BeamHaloPairGenerator(const edm::ParameterSet& conf, edm::ConsumesCollector& iC): + theLayerBuilder(conf.getParameter("LayerPSet"), iC) +{ edm::LogInfo("CtfSpecialSeedGenerator|BeamHaloPairGenerator") << "Constructing BeamHaloPairGenerator"; theMaxTheta=conf.getParameter("maxTheta"); theMaxTheta=fabs(sin(theMaxTheta)); } -SeedingLayerSets BeamHaloPairGenerator::init(const edm::EventSetup& es){ - edm::ParameterSet leyerPSet = conf_.getParameter("LayerPSet"); - SeedingLayerSetsBuilder lsBuilder(leyerPSet); - SeedingLayerSets lss = lsBuilder.layers(es); - return lss; -} - - const OrderedSeedingHits& BeamHaloPairGenerator::run(const TrackingRegion& region, const edm::Event& e, const edm::EventSetup& es){ hitPairs.clear(); - SeedingLayerSets lss = init(es); + if(theLayerBuilder.check(es)) { + theLss = theLayerBuilder.layers(es); + } SeedingLayerSets::const_iterator iLss; - for (iLss = lss.begin(); iLss != lss.end(); iLss++){ + for (iLss = theLss.begin(); iLss != theLss.end(); iLss++){ SeedingLayers ls = *iLss; if (ls.size() != 2){ throw cms::Exception("CtfSpecialSeedGenerator") << "You are using " << ls.size() <<" layers in set instead of 2 "; diff --git a/RecoTracker/SpecialSeedGenerators/src/CosmicTrackingRegion.cc b/RecoTracker/SpecialSeedGenerators/src/CosmicTrackingRegion.cc index 0e984c45f7985..da0012fb604ef 100644 --- a/RecoTracker/SpecialSeedGenerators/src/CosmicTrackingRegion.cc +++ b/RecoTracker/SpecialSeedGenerators/src/CosmicTrackingRegion.cc @@ -28,6 +28,21 @@ TrackingRegion::Hits CosmicTrackingRegion::hits(const edm::Event& ev, const edm::EventSetup& es, const ctfseeding::SeedingLayer* layer) const { + return hits_(ev, es, *layer); +} + +TrackingRegion::Hits CosmicTrackingRegion::hits(const edm::Event& ev, + const edm::EventSetup& es, + const SeedingLayerSetsHits::SeedingLayer& layer) const +{ + return hits_(ev, es, layer); +} + +template +TrackingRegion::Hits CosmicTrackingRegion::hits_(const edm::Event& ev, + const edm::EventSetup& es, + const T& layer) const +{ //get and name collections //++++++++++++++++++++++++ @@ -36,8 +51,8 @@ TrackingRegion::Hits CosmicTrackingRegion::hits(const edm::Event& ev, TrackingRegion::Hits result; //detector layer - const DetLayer * detLayer = layer->detLayer(); - LogDebug("CosmicTrackingRegion") << "Looking at hits on subdet/layer " << layer->name(); + const DetLayer * detLayer = layer.detLayer(); + LogDebug("CosmicTrackingRegion") << "Looking at hits on subdet/layer " << layer.name(); EtaPhiMeasurementEstimator est(0.3,0.3); //magnetic field diff --git a/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc b/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc index f26b483623970..6331d6b87f5d9 100644 --- a/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc +++ b/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc @@ -12,6 +12,7 @@ #include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" using namespace ctfseeding; @@ -31,6 +32,14 @@ CtfSpecialSeedGenerator::CtfSpecialSeedGenerator(const edm::ParameterSet& conf): edm::ParameterSet regfactoryPSet = conf_.getParameter("RegionFactoryPSet"); std::string regfactoryName = regfactoryPSet.getParameter("ComponentName"); theRegionProducer = TrackingRegionProducerFactory::get()->create(regfactoryName,regfactoryPSet, consumesCollector()); + + std::vector pSets = conf_.getParameter >("OrderedHitsFactoryPSets"); + std::vector::const_iterator iPSet; + edm::ConsumesCollector iC = consumesCollector(); + for (iPSet = pSets.begin(); iPSet != pSets.end(); iPSet++){ + std::string hitsfactoryName = iPSet->getParameter("ComponentName"); + theGenerators.emplace_back(OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, *iPSet, iC)); + } } CtfSpecialSeedGenerator::~CtfSpecialSeedGenerator(){ @@ -39,11 +48,6 @@ CtfSpecialSeedGenerator::~CtfSpecialSeedGenerator(){ void CtfSpecialSeedGenerator::endRun(edm::Run const&, edm::EventSetup const&){ if (theSeedBuilder) { delete theSeedBuilder; theSeedBuilder = 0; } if (theRegionProducer) { delete theRegionProducer; theRegionProducer = 0; } - std::vector::iterator iGen; - for (iGen = theGenerators.begin(); iGen != theGenerators.end(); iGen++){ - delete (*iGen); - } - theGenerators.clear(); } void CtfSpecialSeedGenerator::beginRun(edm::Run const&, const edm::EventSetup& iSetup){ @@ -109,8 +113,6 @@ void CtfSpecialSeedGenerator::beginRun(edm::Run const&, const edm::EventSetup& i std::vector pSets = conf_.getParameter >("OrderedHitsFactoryPSets"); std::vector::const_iterator iPSet; for (iPSet = pSets.begin(); iPSet != pSets.end(); iPSet++){ - std::string hitsfactoryName = iPSet->getParameter("ComponentName"); - theGenerators.push_back(OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, *iPSet)); std::string propagationDirection = iPSet->getParameter("PropagationDirection"); if (propagationDirection == "alongMomentum") thePropDirs.push_back(alongMomentum); else thePropDirs.push_back(oppositeToMomentum); @@ -167,9 +169,8 @@ bool CtfSpecialSeedGenerator::run(const edm::EventSetup& iSetup, bool ok = true; for (iReg = regions.begin(); iReg != regions.end(); iReg++){ if(!theSeedBuilder->momentumFromPSet()) theSeedBuilder->setMomentumTo((*iReg)->ptMin()); - std::vector::const_iterator iGen; int i = 0; - for (iGen = theGenerators.begin(); iGen != theGenerators.end(); iGen++){ + for (auto iGen = theGenerators.begin(); iGen != theGenerators.end(); iGen++){ ok = buildSeeds(iSetup, e, (*iGen)->run(**iReg, e, iSetup), diff --git a/RecoTracker/SpecialSeedGenerators/src/GenericPairGenerator.cc b/RecoTracker/SpecialSeedGenerators/src/GenericPairGenerator.cc index e496a9d721fe6..cbc6425d45a9f 100644 --- a/RecoTracker/SpecialSeedGenerators/src/GenericPairGenerator.cc +++ b/RecoTracker/SpecialSeedGenerators/src/GenericPairGenerator.cc @@ -6,28 +6,22 @@ typedef TransientTrackingRecHit::ConstRecHitPointer SeedingHit; using namespace ctfseeding; -GenericPairGenerator::GenericPairGenerator(const edm::ParameterSet& conf): - theLsb(conf.getParameter("LayerPSet")){ +GenericPairGenerator::GenericPairGenerator(const edm::ParameterSet& conf, edm::ConsumesCollector& iC): + theLsb(conf.getParameter("LayerPSet"), iC){ edm::LogInfo("CtfSpecialSeedGenerator|GenericPairGenerator") << "Constructing GenericPairGenerator"; } -SeedingLayerSets GenericPairGenerator::init(const edm::EventSetup& es){ - //edm::ParameterSet leyerPSet = conf_.getParameter("LayerPSet"); - //SeedingLayerSetsBuilder lsBuilder(leyerPSet); - SeedingLayerSets lss = theLsb.layers(es); - return lss; -} - - const OrderedSeedingHits& GenericPairGenerator::run(const TrackingRegion& region, const edm::Event& e, const edm::EventSetup& es){ hitPairs.clear(); hitPairs.reserve(0); - SeedingLayerSets lss = init(es); + if(theLsb.check(es)) { + theLss = theLsb.layers(es); + } SeedingLayerSets::const_iterator iLss; - for (iLss = lss.begin(); iLss != lss.end(); iLss++){ + for (iLss = theLss.begin(); iLss != theLss.end(); iLss++){ SeedingLayers ls = *iLss; if (ls.size() != 2){ throw cms::Exception("CtfSpecialSeedGenerator") << "You are using " << ls.size() <<" layers in set instead of 2 "; diff --git a/RecoTracker/SpecialSeedGenerators/src/GenericTripletGenerator.cc b/RecoTracker/SpecialSeedGenerators/src/GenericTripletGenerator.cc index 0c66791f0cc14..90f0b73258015 100644 --- a/RecoTracker/SpecialSeedGenerators/src/GenericTripletGenerator.cc +++ b/RecoTracker/SpecialSeedGenerators/src/GenericTripletGenerator.cc @@ -8,30 +8,23 @@ typedef TransientTrackingRecHit::ConstRecHitPointer SeedingHit; using namespace ctfseeding; -GenericTripletGenerator::GenericTripletGenerator(const edm::ParameterSet& conf): - //conf_(conf), - theLsb(conf.getParameter("LayerPSet")){ +GenericTripletGenerator::GenericTripletGenerator(const edm::ParameterSet& conf, edm::ConsumesCollector& iC): + theLsb(conf.getParameter("LayerPSet"), iC) { edm::LogInfo("CtfSpecialSeedGenerator|GenericTripletGenerator") << "Constructing GenericTripletGenerator"; } -SeedingLayerSets GenericTripletGenerator::init(const edm::EventSetup& es){ - //edm::ParameterSet leyerPSet = conf_.getParameter("LayerPSet"); - //SeedingLayerSetsBuilder lsBuilder(leyerPSet); - SeedingLayerSets lss = theLsb.layers(es); - return lss; -} - - const OrderedSeedingHits& GenericTripletGenerator::run(const TrackingRegion& region, const edm::Event& e, const edm::EventSetup& es){ hitTriplets.clear(); hitTriplets.reserve(0); - SeedingLayerSets lss = init(es); + if(theLsb.check(es)) { + theLss = theLsb.layers(es); + } SeedingLayerSets::const_iterator iLss; std::map radius_triplet_map; - for (iLss = lss.begin(); iLss != lss.end(); iLss++){ + for (iLss = theLss.begin(); iLss != theLss.end(); iLss++){ SeedingLayers ls = *iLss; if (ls.size() != 3){ throw cms::Exception("CtfSpecialSeedGenerator") << "You are using " << ls.size() <<" layers in set instead of 3 "; diff --git a/RecoTracker/SpecialSeedGenerators/src/SimpleCosmicBONSeeder.cc b/RecoTracker/SpecialSeedGenerators/src/SimpleCosmicBONSeeder.cc index c7bf8610aa651..7483472f71975 100644 --- a/RecoTracker/SpecialSeedGenerators/src/SimpleCosmicBONSeeder.cc +++ b/RecoTracker/SpecialSeedGenerators/src/SimpleCosmicBONSeeder.cc @@ -9,6 +9,7 @@ #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h" #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h" #include "FWCore/Utilities/interface/isFinite.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" typedef TransientTrackingRecHit::ConstRecHitPointer SeedingHit; #include @@ -16,7 +17,7 @@ typedef TransientTrackingRecHit::ConstRecHitPointer SeedingHit; using namespace std; SimpleCosmicBONSeeder::SimpleCosmicBONSeeder(edm::ParameterSet const& conf) : conf_(conf), - theLsb(conf.getParameter("TripletsPSet")), + theLsb(conf.getParameter("TripletsPSet"), consumesCollector()), writeTriplets_(conf.getParameter("writeTriplets")), seedOnMiddle_(conf.existsAs("seedOnMiddle") ? conf.getParameter("seedOnMiddle") : false), rescaleError_(conf.existsAs("rescaleError") ? conf.getParameter("rescaleError") : 1.0), @@ -171,12 +172,14 @@ bool SimpleCosmicBONSeeder::triplets(const edm::Event& e, const edm::EventSetup& hitTriplets.clear(); hitTriplets.reserve(0); - SeedingLayerSets lss = theLsb.layers(es); + if(theLsb.check(es)) { + theLss = theLsb.layers(es); + } SeedingLayerSets::const_iterator iLss; double minRho = region_.ptMin() / ( 0.003 * magfield->inTesla(GlobalPoint(0,0,0)).z() ); - for (iLss = lss.begin(); iLss != lss.end(); iLss++){ + for (iLss = theLss.begin(); iLss != theLss.end(); iLss++){ SeedingLayers ls = *iLss; if (ls.size() != 3){ throw cms::Exception("CtfSpecialSeedGenerator") << "You are using " << ls.size() <<" layers in set instead of 3 "; @@ -189,8 +192,8 @@ bool SimpleCosmicBONSeeder::triplets(const edm::Event& e, const edm::EventSetup& std::vector::const_iterator iOuterHit,iMiddleHit,iInnerHit; if (tripletsVerbosity_ > 0) { - std::cout << "GenericTripletGenerator iLss = " << layerTripletNames_[iLss - lss.begin()] - << " (" << (iLss - lss.begin()) << "): # = " + std::cout << "GenericTripletGenerator iLss = " << layerTripletNames_[iLss - theLss.begin()] + << " (" << (iLss - theLss.begin()) << "): # = " << innerHits.size() << "/" << middleHits.size() << "/" << outerHits.size() << std::endl; } @@ -292,8 +295,8 @@ bool SimpleCosmicBONSeeder::triplets(const edm::Event& e, const edm::EventSetup& } } if ((tripletsVerbosity_ > 0) && (hitTriplets.size() > sizBefore)) { - std::cout << " iLss = " << layerTripletNames_[iLss - lss.begin()] - << " (" << (iLss - lss.begin()) << "): # = " + std::cout << " iLss = " << layerTripletNames_[iLss - theLss.begin()] + << " (" << (iLss - theLss.begin()) << "): # = " << innerHits.size() << "/" << middleHits.size() << "/" << outerHits.size() << ": Found " << (hitTriplets.size() - sizBefore) << " seeds [running total: " << hitTriplets.size() << "]" << std::endl ; diff --git a/RecoTracker/TkHitPairs/BuildFile.xml b/RecoTracker/TkHitPairs/BuildFile.xml index ce58d69e1f890..1a05550b34871 100644 --- a/RecoTracker/TkHitPairs/BuildFile.xml +++ b/RecoTracker/TkHitPairs/BuildFile.xml @@ -10,6 +10,7 @@ + diff --git a/RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h b/RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h index 17c573c5dd438..127b03e53bf97 100644 --- a/RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h +++ b/RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h @@ -5,17 +5,16 @@ #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/EDGetToken.h" class TrackingRegion; class OrderedHitPairs; class HitPairGeneratorFromLayerPair; -namespace ctfseeding { class SeedingLayer;} +class SeedingLayerSetsHits; namespace edm { class Event; class EventSetup; } -#include "FWCore/Framework/interface/ESWatcher.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" +#include /** \class CombinedHitPairGenerator * Hides set of HitPairGeneratorFromLayerPair generators. @@ -26,11 +25,10 @@ class CombinedHitPairGenerator : public HitPairGenerator { typedef LayerHitMapCache LayerCacheType; public: - CombinedHitPairGenerator(const edm::ParameterSet & cfg); + CombinedHitPairGenerator(const edm::ParameterSet & cfg, edm::ConsumesCollector& iC); virtual ~CombinedHitPairGenerator(); - void add(const ctfseeding::SeedingLayer & inner, - const ctfseeding::SeedingLayer & outer); + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) override; /// form base class virtual void hitPairs( const TrackingRegion& reg, @@ -38,24 +36,16 @@ class CombinedHitPairGenerator : public HitPairGenerator { /// from base class virtual CombinedHitPairGenerator * clone() const - { return new CombinedHitPairGenerator(theConfig); } + { return new CombinedHitPairGenerator(*this); } private: CombinedHitPairGenerator(const CombinedHitPairGenerator & cb); - void init(const ctfseeding::SeedingLayerSets & layerSets); - void init(const edm::ParameterSet & cfg, const edm::EventSetup& es); - void cleanup(); - - mutable bool initialised; - edm::ParameterSet theConfig; + edm::EDGetTokenT theSeedingLayerToken; LayerCacheType theLayerCache; - edm::ESWatcher theESWatcher; - - typedef std::vector Container; - Container theGenerators; + std::unique_ptr theGenerator; }; #endif diff --git a/RecoTracker/TkHitPairs/interface/CosmicHitPairGenerator.h b/RecoTracker/TkHitPairs/interface/CosmicHitPairGenerator.h index 1a687bf025813..08be73ba376d3 100644 --- a/RecoTracker/TkHitPairs/interface/CosmicHitPairGenerator.h +++ b/RecoTracker/TkHitPairs/interface/CosmicHitPairGenerator.h @@ -28,6 +28,8 @@ class CosmicHitPairGenerator : public HitPairGenerator{ ~CosmicHitPairGenerator(); + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) override {} + /// add generators based on layers // void add(const DetLayer* inner, const DetLayer* outer); void add(const LayerWithHits* inner, diff --git a/RecoTracker/TkHitPairs/interface/CosmicHitPairGeneratorFromLayerPair.h b/RecoTracker/TkHitPairs/interface/CosmicHitPairGeneratorFromLayerPair.h index 6a9cedf28533a..96eb538a6e3bc 100644 --- a/RecoTracker/TkHitPairs/interface/CosmicHitPairGeneratorFromLayerPair.h +++ b/RecoTracker/TkHitPairs/interface/CosmicHitPairGeneratorFromLayerPair.h @@ -48,6 +48,8 @@ class CosmicHitPairGeneratorFromLayerPair : public HitPairGenerator { const edm::EventSetup& iSetup); virtual ~CosmicHitPairGeneratorFromLayerPair() { } + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) override {} + // virtual OrderedHitPairs hitPairs( const TrackingRegion& region,const edm::EventSetup& iSetup ) { // return HitPairGenerator::hitPairs(region, iSetup); // } diff --git a/RecoTracker/TkHitPairs/interface/HitPairGenerator.h b/RecoTracker/TkHitPairs/interface/HitPairGenerator.h index cd4c0c7321054..17f9077a0d643 100644 --- a/RecoTracker/TkHitPairs/interface/HitPairGenerator.h +++ b/RecoTracker/TkHitPairs/interface/HitPairGenerator.h @@ -11,6 +11,7 @@ #include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h" #include "RecoTracker/TkHitPairs/interface/OrderedHitPairs.h" #include "RecoTracker/TkHitPairs/interface/RecHitsSortedInPhi.h" +#include "RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h" class TrackingRegion; namespace edm { class Event; class EventSetup; } @@ -22,6 +23,8 @@ class HitPairGenerator : public OrderedHitsGenerator { virtual ~HitPairGenerator() { } + virtual void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) = 0; + virtual const OrderedHitPairs & run( const TrackingRegion& region, const edm::Event & ev, const edm::EventSetup& es); diff --git a/RecoTracker/TkHitPairs/interface/HitPairGeneratorFromLayerPair.h b/RecoTracker/TkHitPairs/interface/HitPairGeneratorFromLayerPair.h index 9fb39f14a8541..a4ee9eb0d1a5e 100644 --- a/RecoTracker/TkHitPairs/interface/HitPairGeneratorFromLayerPair.h +++ b/RecoTracker/TkHitPairs/interface/HitPairGeneratorFromLayerPair.h @@ -3,8 +3,6 @@ #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" -#include "FWCore/Framework/interface/EventSetup.h" class DetLayer; class TrackingRegion; @@ -14,34 +12,37 @@ class HitPairGeneratorFromLayerPair : public HitPairGenerator { public: typedef CombinedHitPairGenerator::LayerCacheType LayerCacheType; - typedef ctfseeding::SeedingLayer Layer; - - HitPairGeneratorFromLayerPair(const Layer& inner, - const Layer& outer, - LayerCacheType* layerCache, + typedef SeedingLayerSetsHits::SeedingLayerSet Layers; + typedef SeedingLayerSetsHits::SeedingLayer Layer; + + HitPairGeneratorFromLayerPair(unsigned int inner, + unsigned int outer, + LayerCacheType* layerCache, unsigned int nSize=30000, unsigned int max=0); virtual ~HitPairGeneratorFromLayerPair() { } + void setSeedingLayers(Layers layers) override { theSeedingLayers = layers; } - virtual HitDoublets doublets( const TrackingRegion& reg, + virtual HitDoublets doublets( const TrackingRegion& reg, const edm::Event & ev, const edm::EventSetup& es); - virtual void hitPairs( const TrackingRegion& reg, OrderedHitPairs & prs, + virtual void hitPairs( const TrackingRegion& reg, OrderedHitPairs & prs, const edm::Event & ev, const edm::EventSetup& es); virtual HitPairGeneratorFromLayerPair* clone() const { return new HitPairGeneratorFromLayerPair(*this); } - const Layer & innerLayer() const { return theInnerLayer; } - const Layer & outerLayer() const { return theOuterLayer; } + Layer innerLayer() const { return theSeedingLayers[theInnerLayer]; } + Layer outerLayer() const { return theSeedingLayers[theOuterLayer]; } private: LayerCacheType & theLayerCache; - Layer const theOuterLayer; - Layer const theInnerLayer; + Layers theSeedingLayers; + const unsigned int theOuterLayer; + const unsigned int theInnerLayer; }; #endif diff --git a/RecoTracker/TkHitPairs/interface/LayerHitMapCache.h b/RecoTracker/TkHitPairs/interface/LayerHitMapCache.h index 7ffdbd3af2496..f8b0fdc1dcac9 100644 --- a/RecoTracker/TkHitPairs/interface/LayerHitMapCache.h +++ b/RecoTracker/TkHitPairs/interface/LayerHitMapCache.h @@ -7,7 +7,7 @@ #include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h" #include "RecoTracker/TkHitPairs/interface/RecHitsSortedInPhi.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" +#include "RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h" #include "FWCore/Framework/interface/EventSetup.h" @@ -45,26 +45,25 @@ class LayerHitMapCache { void clear() { theCache.clear(); } - const RecHitsSortedInPhi & - operator()(const ctfseeding::SeedingLayer * layer, const TrackingRegion & region, + const RecHitsSortedInPhi & + operator()(const SeedingLayerSetsHits::SeedingLayer& layer, const TrackingRegion & region, const edm::Event & iEvent, const edm::EventSetup & iSetup) { - int key = layer->seqNum(); + int key = layer.index(); assert (key>=0); const RecHitsSortedInPhi * lhm = theCache.get(key); if (lhm==nullptr) { - lhm=new RecHitsSortedInPhi (region.hits(iEvent,iSetup,layer), region.origin(), layer->detLayer()); + lhm=new RecHitsSortedInPhi (region.hits(iEvent,iSetup,layer), region.origin(), layer.detLayer()); lhm->theOrigin = region.origin(); - LogDebug("LayerHitMapCache")<<" I got"<< lhm->all().second-lhm->all().first<<" hits in the cache for: "<detLayer(); - theCache.add( key, lhm); + LogDebug("LayerHitMapCache")<<" I got"<< lhm->all().second-lhm->all().first<<" hits in the cache for: "<theOrigin << std::endl; - LogDebug("LayerHitMapCache")<<" I got"<< lhm->all().second-lhm->all().first<<" hits FROM THE cache for: "<detLayer(); + LogDebug("LayerHitMapCache")<<" I got"<< lhm->all().second-lhm->all().first<<" hits FROM THE cache for: "<(cfg.getParameter("SeedingLayers"))) { theMaxElement = cfg.getParameter("maxElement"); + theGenerator.reset(new HitPairGeneratorFromLayerPair(0, 1, &theLayerCache, 0, theMaxElement)); } -void CombinedHitPairGenerator::init(const edm::ParameterSet & cfg, const edm::EventSetup& es) -{ - theMaxElement = cfg.getParameter("maxElement"); - - std::string layerBuilderName = cfg.getParameter("SeedingLayers"); - edm::ESHandle layerBuilder; - es.get().get(layerBuilderName, layerBuilder); - - SeedingLayerSets layerSets = layerBuilder->layers(es); - init(layerSets); -} - -void CombinedHitPairGenerator::init(const SeedingLayerSets & layerSets) +CombinedHitPairGenerator::CombinedHitPairGenerator(const CombinedHitPairGenerator& cb): + theSeedingLayerToken(cb.theSeedingLayerToken), + theGenerator(new HitPairGeneratorFromLayerPair(0, 1, &theLayerCache, 0, cb.theMaxElement)) { - initialised = true; - typedef SeedingLayerSets::const_iterator IL; - for (IL il=layerSets.begin(), ilEnd=layerSets.end(); il != ilEnd; ++il) { - const SeedingLayers & set = *il; - if (set.size() != 2) continue; - add( set[0], set[1] ); - } + theMaxElement = cb.theMaxElement; } -void CombinedHitPairGenerator::cleanup() -{ - Container::const_iterator it; - for (it = theGenerators.begin(); it!= theGenerators.end(); it++) { - delete (*it); - } - theGenerators.clear(); -} - -CombinedHitPairGenerator::~CombinedHitPairGenerator() { cleanup(); } +CombinedHitPairGenerator::~CombinedHitPairGenerator() {} -void CombinedHitPairGenerator::add( const SeedingLayer& inner, const SeedingLayer& outer) -{ - theGenerators.push_back( new HitPairGeneratorFromLayerPair( inner, outer, &theLayerCache, 0, theMaxElement)); +void CombinedHitPairGenerator::setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers) { + assert(0 == "not implemented"); } void CombinedHitPairGenerator::hitPairs( const TrackingRegion& region, OrderedHitPairs & result, const edm::Event& ev, const edm::EventSetup& es) { - if (theESWatcher.check(es) || !initialised ) { - cleanup(); - init(theConfig,es); + edm::Handle hlayers; + ev.getByToken(theSeedingLayerToken, hlayers); + const SeedingLayerSetsHits& layers = *hlayers; + if(layers.numberOfLayersInSet() != 2) + throw cms::Exception("Configuration") << "CombinedHitPairGenerator expects SeedingLayerSetsHits::numberOfLayersInSet() to be 2, got " << layers.numberOfLayersInSet(); + + for(SeedingLayerSetsHits::SeedingLayerSet layerSet: layers) { + theGenerator->setSeedingLayers(layerSet); + theGenerator->hitPairs( region, result, ev, es); } - Container::const_iterator i; - for (i=theGenerators.begin(); i!=theGenerators.end(); i++) { - (**i).hitPairs( region, result, ev, es); - } theLayerCache.clear(); LogDebug("CombinedHitPairGenerator")<<" total number of pairs provided back CHPG : "< Range; @@ -33,8 +30,8 @@ namespace { #include "FWCore/Framework/interface/ESHandle.h" HitPairGeneratorFromLayerPair::HitPairGeneratorFromLayerPair( - const Layer& inner, - const Layer& outer, + unsigned int inner, + unsigned int outer, LayerCacheType* layerCache, unsigned int nSize, unsigned int max) @@ -77,12 +74,11 @@ namespace { } - void HitPairGeneratorFromLayerPair::hitPairs( const TrackingRegion & region, OrderedHitPairs & result, const edm::Event& iEvent, const edm::EventSetup& iSetup) { - - auto const & ds = doublets(region,iEvent,iSetup); + + auto const & ds = doublets(region, iEvent, iSetup); for (std::size_t i=0; i!=ds.size(); ++i) { result.push_back( OrderedHitPair( ds.hit(i,HitDoublets::inner),ds.hit(i,HitDoublets::outer) )); } @@ -93,38 +89,41 @@ void HitPairGeneratorFromLayerPair::hitPairs( } -HitDoublets HitPairGeneratorFromLayerPair::doublets( const TrackingRegion& region, +HitDoublets HitPairGeneratorFromLayerPair::doublets( const TrackingRegion& region, const edm::Event & iEvent, const edm::EventSetup& iSetup) { typedef OrderedHitPair::InnerRecHit InnerHit; typedef OrderedHitPair::OuterRecHit OuterHit; typedef RecHitsSortedInPhi::Hit Hit; - const RecHitsSortedInPhi & innerHitsMap = theLayerCache(&theInnerLayer, region, iEvent, iSetup); + Layer innerLayerObj = innerLayer(); + Layer outerLayerObj = outerLayer(); + + const RecHitsSortedInPhi & innerHitsMap = theLayerCache(innerLayerObj, region, iEvent, iSetup); if (innerHitsMap.empty()) return HitDoublets(innerHitsMap,innerHitsMap); - - const RecHitsSortedInPhi& outerHitsMap = theLayerCache(&theOuterLayer, region, iEvent, iSetup); + + const RecHitsSortedInPhi& outerHitsMap = theLayerCache(outerLayerObj, region, iEvent, iSetup); if (outerHitsMap.empty()) return HitDoublets(innerHitsMap,outerHitsMap); HitDoublets result(innerHitsMap,outerHitsMap); result.reserve(std::max(innerHitsMap.size(),outerHitsMap.size())); - InnerDeltaPhi deltaPhi(*theOuterLayer.detLayer(), *theInnerLayer.detLayer(), region, iSetup); + InnerDeltaPhi deltaPhi(*outerLayerObj.detLayer(), *innerLayerObj.detLayer(), region, iSetup); - // std::cout << "layers " << theInnerLayer.detLayer()->seqNum() << " " << theOuterLayer.detLayer()->seqNum() << std::endl; + // std::cout << "layers " << theInnerLayer.detLayer()->seqNum() << " " << outerLayer.detLayer()->seqNum() << std::endl; // constexpr float nSigmaRZ = std::sqrt(12.f); constexpr float nSigmaPhi = 3.f; - for (int io = 0; io!=int(outerHitsMap.theHits.size()); ++io) { + for (int io = 0; io!=int(outerHitsMap.theHits.size()); ++io) { Hit const & ohit = outerHitsMap.theHits[io].hit(); - PixelRecoRange phiRange = deltaPhi(outerHitsMap.x[io], - outerHitsMap.y[io], - outerHitsMap.z[io], + PixelRecoRange phiRange = deltaPhi(outerHitsMap.x[io], + outerHitsMap.y[io], + outerHitsMap.z[io], nSigmaPhi*outerHitsMap.drphi[io] - ); + ); if (phiRange.empty()) continue; - const HitRZCompatibility *checkRZ = region.checkRZ(theInnerLayer.detLayer(), ohit, iSetup,theOuterLayer.detLayer(), + const HitRZCompatibility *checkRZ = region.checkRZ(innerLayerObj.detLayer(), ohit, iSetup, outerLayerObj.detLayer(), outerHitsMap.rv(io),outerHitsMap.z[io], outerHitsMap.isBarrel ? outerHitsMap.du[io] : outerHitsMap.dv[io], outerHitsMap.isBarrel ? outerHitsMap.dv[io] : outerHitsMap.du[io] @@ -170,5 +169,3 @@ HitDoublets HitPairGeneratorFromLayerPair::doublets( const TrackingRegion& regio LogDebug("HitPairGeneratorFromLayerPair")<<" total number of pairs provided back: "< #include "RecoTracker/TkSeedGenerator/interface/MultiHitGenerator.h" #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" +#include "RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h" #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h" class MultiHitGeneratorFromPairAndLayers : public MultiHitGenerator { @@ -19,8 +19,10 @@ class MultiHitGeneratorFromPairAndLayers : public MultiHitGenerator { typedef LayerHitMapCache LayerCacheType; virtual ~MultiHitGeneratorFromPairAndLayers() {} - virtual void init( const HitPairGenerator & pairs, - const std::vector& layers, LayerCacheType* layerCache) = 0; + virtual void init( const HitPairGenerator & pairs, LayerCacheType* layerCache) = 0; + + virtual void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) = 0; }; #endif diff --git a/RecoTracker/TkSeedGenerator/plugins/CombinedMultiHitGenerator.cc b/RecoTracker/TkSeedGenerator/plugins/CombinedMultiHitGenerator.cc index 6c367a9920b38..8c7f180edfd3e 100644 --- a/RecoTracker/TkSeedGenerator/plugins/CombinedMultiHitGenerator.cc +++ b/RecoTracker/TkSeedGenerator/plugins/CombinedMultiHitGenerator.cc @@ -1,77 +1,38 @@ #include "CombinedMultiHitGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h" #include "RecoTracker/TkHitPairs/interface/HitPairGeneratorFromLayerPair.h" #include "RecoTracker/TkSeedGenerator/interface/MultiHitGeneratorFromPairAndLayers.h" #include "RecoTracker/TkSeedGenerator/interface/MultiHitGeneratorFromPairAndLayersFactory.h" #include "RecoPixelVertexing/PixelTriplets/interface/LayerTriplets.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "DataFormats/Common/interface/Handle.h" - -using namespace std; -using namespace ctfseeding; - -CombinedMultiHitGenerator::CombinedMultiHitGenerator(const edm::ParameterSet& cfg) - : initialised(false), theConfig(cfg) -{ } - -void CombinedMultiHitGenerator::init(const edm::ParameterSet & cfg, const edm::EventSetup& es) -{ -// edm::ParameterSet leyerPSet = cfg.getParameter("LayerPSet"); -// SeedingLayerSets layerSets = SeedingLayerSetsBuilder(leyerPSet).layers(es); - - std::string layerBuilderName = cfg.getParameter("SeedingLayers"); - edm::ESHandle layerBuilder; - es.get().get(layerBuilderName, layerBuilder); - - SeedingLayerSets layerSets = layerBuilder->layers(es); - - - vector::const_iterator it; - vector trilayers=LayerTriplets(layerSets).layers(); - - for (it = trilayers.begin(); it != trilayers.end(); it++) { - SeedingLayer first = (*it).first.first; - SeedingLayer second = (*it).first.second; - vector thirds = (*it).second; - - edm::ParameterSet generatorPSet = theConfig.getParameter("GeneratorPSet"); - std::string generatorName = generatorPSet.getParameter("ComponentName"); - - MultiHitGeneratorFromPairAndLayers * aGen = - MultiHitGeneratorFromPairAndLayersFactory::get()->create(generatorName,generatorPSet); - - aGen->init( HitPairGeneratorFromLayerPair( first, second, &theLayerCache), - thirds, &theLayerCache); - - theGenerators.push_back( aGen); - } - - initialised = true; - -} - -CombinedMultiHitGenerator::~CombinedMultiHitGenerator() +CombinedMultiHitGenerator::CombinedMultiHitGenerator(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC): + theSeedingLayerToken(iC.consumes(cfg.getParameter("SeedingLayers"))) { - GeneratorContainer::const_iterator it; - for (it = theGenerators.begin(); it!= theGenerators.end(); it++) { - delete (*it); - } + edm::ParameterSet generatorPSet = cfg.getParameter("GeneratorPSet"); + std::string generatorName = generatorPSet.getParameter("ComponentName"); + theGenerator.reset(MultiHitGeneratorFromPairAndLayersFactory::get()->create(generatorName, generatorPSet)); + theGenerator->init(HitPairGeneratorFromLayerPair( 0, 1, &theLayerCache), &theLayerCache); } +CombinedMultiHitGenerator::~CombinedMultiHitGenerator() {} void CombinedMultiHitGenerator::hitSets( const TrackingRegion& region, OrderedMultiHits & result, const edm::Event& ev, const edm::EventSetup& es) { - if (!initialised) init(theConfig,es); - - GeneratorContainer::const_iterator i; - for (i=theGenerators.begin(); i!=theGenerators.end(); i++) { - (**i).hitSets( region, result, ev, es); + edm::Handle hlayers; + ev.getByToken(theSeedingLayerToken, hlayers); + const SeedingLayerSetsHits& layers = *hlayers; + if(layers.numberOfLayersInSet() != 3) + throw cms::Exception("Configuration") << "CombinedMultiHitGenerator expects SeedingLayerSetsHits::numberOfLayersInSet() to be 3, got " << layers.numberOfLayersInSet(); + + std::vector trilayers = LayerTriplets::layers(layers); + for(const auto& setAndLayers: trilayers) { + theGenerator->setSeedingLayers(setAndLayers.first, setAndLayers.second); + theGenerator->hitSets( region, result, ev, es); } theLayerCache.clear(); } diff --git a/RecoTracker/TkSeedGenerator/plugins/CombinedMultiHitGenerator.h b/RecoTracker/TkSeedGenerator/plugins/CombinedMultiHitGenerator.h index f4aea2646c8ac..fcb54432ac34c 100644 --- a/RecoTracker/TkSeedGenerator/plugins/CombinedMultiHitGenerator.h +++ b/RecoTracker/TkSeedGenerator/plugins/CombinedMultiHitGenerator.h @@ -7,13 +7,15 @@ */ #include +#include #include "RecoTracker/TkSeedGenerator/interface/MultiHitGenerator.h" #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/EDGetToken.h" class TrackingRegion; +class SeedingLayerSetsHits; class MultiHitGeneratorFromPairAndLayers; -namespace ctfseeding { class SeedingLayer;} namespace edm { class Event; } namespace edm { class EventSetup; } @@ -24,7 +26,7 @@ class CombinedMultiHitGenerator : public MultiHitGenerator { public: - CombinedMultiHitGenerator( const edm::ParameterSet& cfg); + CombinedMultiHitGenerator( const edm::ParameterSet& cfg, edm::ConsumesCollector& iC); virtual ~CombinedMultiHitGenerator(); @@ -33,14 +35,10 @@ class CombinedMultiHitGenerator : public MultiHitGenerator { const edm::Event & ev, const edm::EventSetup& es); private: - void init(const edm::ParameterSet & cfg, const edm::EventSetup& es); + edm::EDGetTokenT theSeedingLayerToken; - mutable bool initialised; - - edm::ParameterSet theConfig; LayerCacheType theLayerCache; - typedef std::vector GeneratorContainer; - GeneratorContainer theGenerators; + std::unique_ptr theGenerator; }; #endif diff --git a/RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.cc b/RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.cc index bec0d9e21a943..80526a6ec9976 100644 --- a/RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.cc +++ b/RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.cc @@ -33,7 +33,6 @@ #include using namespace std; -using namespace ctfseeding; typedef PixelRecoRange Range; @@ -80,14 +79,17 @@ MultiHitGeneratorFromChi2::MultiHitGeneratorFromChi2(const edm::ParameterSet& cf } void MultiHitGeneratorFromChi2::init(const HitPairGenerator & pairs, - const std::vector &layers, LayerCacheType *layerCache) { thePairGenerator = pairs.clone(); - theLayers = layers; theLayerCache = layerCache; } +void MultiHitGeneratorFromChi2::setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) { + thePairGenerator->setSeedingLayers(pairLayers); + theLayers = thirdLayers; +} namespace { inline @@ -160,7 +162,7 @@ void MultiHitGeneratorFromChi2::hitSets(const TrackingRegion& region, //gc: loop over each layer for(int il = 0; il < size; il++) { - thirdHitMap[il] = &(*theLayerCache)(&theLayers[il], region, ev, es); + thirdHitMap[il] = &(*theLayerCache)(theLayers[il], region, ev, es); if (debug) cout << "considering third layer: " << theLayers[il].name() << " with hits: " << thirdHitMap[il]->all().second-thirdHitMap[il]->all().first << endl; const DetLayer *layer = theLayers[il].detLayer(); LayerRZPredictions &predRZ = mapPred[theLayers[il].name()]; diff --git a/RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.h b/RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.h index 5b051b8c43148..98d914f959b4e 100644 --- a/RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.h +++ b/RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.h @@ -10,7 +10,6 @@ #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" #include "RecoTracker/TkSeedGenerator/interface/MultiHitGenerator.h" #include "CombinedMultiHitGenerator.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "RecoTracker/TkSeedGenerator/interface/MultiHitGeneratorFromPairAndLayers.h" @@ -29,14 +28,16 @@ typedef CombinedMultiHitGenerator::LayerCacheType LayerCacheType; virtual ~MultiHitGeneratorFromChi2() { delete thePairGenerator; } - virtual void init( const HitPairGenerator & pairs, - const std::vector & layers, LayerCacheType* layerCache); + void init( const HitPairGenerator & pairs, LayerCacheType* layerCache) override; + + void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, + std::vector thirdLayers) override; + virtual void hitSets( const TrackingRegion& region, OrderedMultiHits & trs, const edm::Event & ev, const edm::EventSetup& es); const HitPairGenerator & pairGenerator() const { return *thePairGenerator; } - const std::vector & thirdLayers() const { return theLayers; } private: @@ -47,7 +48,7 @@ typedef CombinedMultiHitGenerator::LayerCacheType LayerCacheType; private: HitPairGenerator * thePairGenerator; - std::vector theLayers; + std::vector theLayers; LayerCacheType * theLayerCache; const ClusterShapeHitFilter* filter; diff --git a/RecoTracker/TkSeedGenerator/plugins/SeedGeneratorFromRegionHitsEDProducer.cc b/RecoTracker/TkSeedGenerator/plugins/SeedGeneratorFromRegionHitsEDProducer.cc index 90d62aa387ed6..17c2bb466e60b 100644 --- a/RecoTracker/TkSeedGenerator/plugins/SeedGeneratorFromRegionHitsEDProducer.cc +++ b/RecoTracker/TkSeedGenerator/plugins/SeedGeneratorFromRegionHitsEDProducer.cc @@ -2,6 +2,7 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" @@ -24,7 +25,7 @@ SeedGeneratorFromRegionHitsEDProducer::SeedGeneratorFromRegionHitsEDProducer( const edm::ParameterSet& cfg) - : theConfig(cfg), theGenerator(0), theRegionProducer(0), + : theConfig(cfg), theRegionProducer(0), theClusterCheck(cfg.getParameter("ClusterCheckPSet"),consumesCollector()), theMerger_(0) { @@ -33,13 +34,13 @@ SeedGeneratorFromRegionHitsEDProducer::SeedGeneratorFromRegionHitsEDProducer( moduleName = cfg.getParameter("@module_label"); // seed merger & its settings + edm::ConsumesCollector iC = consumesCollector(); if ( cfg.exists("SeedMergerPSet")) { edm::ParameterSet mergerPSet = theConfig.getParameter( "SeedMergerPSet" ); - theMerger_=new QuadrupletSeedMerger(); + theMerger_=new QuadrupletSeedMerger(mergerPSet.getParameter( "layerList" ), iC); theMerger_->setTTRHBuilderLabel( mergerPSet.getParameter( "ttrhBuilderLabel" ) ); theMerger_->setMergeTriplets( mergerPSet.getParameter( "mergeTriplets" ) ); theMerger_->setAddRemainingTriplets( mergerPSet.getParameter( "addRemainingTriplets" ) ); - theMerger_->setLayerListName( mergerPSet.getParameter( "layerListName" ) ); } edm::ParameterSet regfactoryPSet = @@ -47,6 +48,25 @@ SeedGeneratorFromRegionHitsEDProducer::SeedGeneratorFromRegionHitsEDProducer( std::string regfactoryName = regfactoryPSet.getParameter("ComponentName"); theRegionProducer = TrackingRegionProducerFactory::get()->create(regfactoryName,regfactoryPSet, consumesCollector()); + edm::ParameterSet hitsfactoryPSet = + theConfig.getParameter("OrderedHitsFactoryPSet"); + std::string hitsfactoryName = hitsfactoryPSet.getParameter("ComponentName"); + OrderedHitsGenerator* hitsGenerator = + OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet, iC); + + edm::ParameterSet comparitorPSet = + theConfig.getParameter("SeedComparitorPSet"); + std::string comparitorName = comparitorPSet.getParameter("ComponentName"); + SeedComparitor * aComparitor = (comparitorName == "none") ? + 0 : SeedComparitorFactory::get()->create( comparitorName, comparitorPSet); + + edm::ParameterSet creatorPSet = + theConfig.getParameter("SeedCreatorPSet"); + std::string creatorName = creatorPSet.getParameter("ComponentName"); + SeedCreator * aCreator = SeedCreatorFactory::get()->create( creatorName, creatorPSet); + + theGenerator.reset(new SeedGeneratorFromRegionHits(hitsGenerator, aComparitor, aCreator)); + produces(); } @@ -56,29 +76,10 @@ SeedGeneratorFromRegionHitsEDProducer::~SeedGeneratorFromRegionHitsEDProducer() } void SeedGeneratorFromRegionHitsEDProducer::endRun(edm::Run const&run, const edm::EventSetup& es) { - delete theGenerator; } void SeedGeneratorFromRegionHitsEDProducer::beginRun(edm::Run const&run, const edm::EventSetup& es) { - edm::ParameterSet hitsfactoryPSet = - theConfig.getParameter("OrderedHitsFactoryPSet"); - std::string hitsfactoryName = hitsfactoryPSet.getParameter("ComponentName"); - OrderedHitsGenerator* hitsGenerator = - OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet); - - edm::ParameterSet comparitorPSet = - theConfig.getParameter("SeedComparitorPSet"); - std::string comparitorName = comparitorPSet.getParameter("ComponentName"); - SeedComparitor * aComparitor = (comparitorName == "none") ? - 0 : SeedComparitorFactory::get()->create( comparitorName, comparitorPSet); - - edm::ParameterSet creatorPSet = - theConfig.getParameter("SeedCreatorPSet"); - std::string creatorName = creatorPSet.getParameter("ComponentName"); - SeedCreator * aCreator = SeedCreatorFactory::get()->create( creatorName, creatorPSet); - - theGenerator = new SeedGeneratorFromRegionHits(hitsGenerator, aComparitor, aCreator); } void SeedGeneratorFromRegionHitsEDProducer::produce(edm::Event& ev, const edm::EventSetup& es) diff --git a/RecoTracker/TkSeedGenerator/plugins/SeedGeneratorFromRegionHitsEDProducer.h b/RecoTracker/TkSeedGenerator/plugins/SeedGeneratorFromRegionHitsEDProducer.h index 2d0fab49bec49..b7d7738b8f1b0 100644 --- a/RecoTracker/TkSeedGenerator/plugins/SeedGeneratorFromRegionHitsEDProducer.h +++ b/RecoTracker/TkSeedGenerator/plugins/SeedGeneratorFromRegionHitsEDProducer.h @@ -24,7 +24,7 @@ class SeedGeneratorFromRegionHitsEDProducer : public edm::EDProducer { private: edm::ParameterSet theConfig; - SeedGeneratorFromRegionHits * theGenerator; + std::unique_ptr theGenerator; TrackingRegionProducer* theRegionProducer; ClusterChecker theClusterCheck; QuadrupletSeedMerger *theMerger_; diff --git a/RecoTracker/TkSeedGenerator/python/GlobalMixedSeeds_cff.py b/RecoTracker/TkSeedGenerator/python/GlobalMixedSeeds_cff.py index ad2b2d6e6ee18..648c4e12acb4e 100644 --- a/RecoTracker/TkSeedGenerator/python/GlobalMixedSeeds_cff.py +++ b/RecoTracker/TkSeedGenerator/python/GlobalMixedSeeds_cff.py @@ -21,7 +21,7 @@ globalMixedSeeds = RecoTracker.TkSeedGenerator.SeedGeneratorFromRegionHitsEDProducer_cfi.seedGeneratorFromRegionHitsEDProducer.clone( OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('MixedLayerPairs'), + SeedingLayers = cms.InputTag('MixedLayerPairs'), maxElement = cms.uint32(1000000) ) ) diff --git a/RecoTracker/TkSeedGenerator/python/GlobalPixelLessSeeds_cff.py b/RecoTracker/TkSeedGenerator/python/GlobalPixelLessSeeds_cff.py index 826897db7d924..bda9c83c91ff3 100644 --- a/RecoTracker/TkSeedGenerator/python/GlobalPixelLessSeeds_cff.py +++ b/RecoTracker/TkSeedGenerator/python/GlobalPixelLessSeeds_cff.py @@ -15,7 +15,7 @@ globalPixelLessSeeds = RecoTracker.TkSeedGenerator.SeedGeneratorFromRegionHitsEDProducer_cfi.seedGeneratorFromRegionHitsEDProducer.clone( OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('pixelLessLayerPairs4PixelLessTracking'), + SeedingLayers = cms.InputTag('pixelLessLayerPairs4PixelLessTracking'), maxElement = cms.uint32(100000) ) ) diff --git a/RecoTracker/TkSeedGenerator/python/GlobalPixelSeeds_cff.py b/RecoTracker/TkSeedGenerator/python/GlobalPixelSeeds_cff.py index 3dfb36c1459e5..97994a21204a9 100644 --- a/RecoTracker/TkSeedGenerator/python/GlobalPixelSeeds_cff.py +++ b/RecoTracker/TkSeedGenerator/python/GlobalPixelSeeds_cff.py @@ -14,7 +14,7 @@ globalPixelSeeds = RecoTracker.TkSeedGenerator.SeedGeneratorFromRegionHitsEDProducer_cfi.seedGeneratorFromRegionHitsEDProducer.clone( OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('PixelLayerPairs') + SeedingLayers = cms.InputTag('PixelLayerPairs') ) ) diff --git a/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromPairsWithVertices_cff.py b/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromPairsWithVertices_cff.py index e7e2dfe81be39..c1b30a7344b01 100644 --- a/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromPairsWithVertices_cff.py +++ b/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromPairsWithVertices_cff.py @@ -17,7 +17,7 @@ globalSeedsFromPairsWithVertices = RecoTracker.TkSeedGenerator.SeedGeneratorFromRegionHitsEDProducer_cfi.seedGeneratorFromRegionHitsEDProducer.clone( OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('MixedLayerPairs'), + SeedingLayers = cms.InputTag('MixedLayerPairs'), maxElement = cms.uint32(1000000) ), RegionFactoryPSet = cms.PSet( diff --git a/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromTriplets_cff.py b/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromTriplets_cff.py index 90337e2899c6e..910c89bd973f7 100644 --- a/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromTriplets_cff.py +++ b/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromTriplets_cff.py @@ -18,7 +18,7 @@ globalSeedsFromTriplets = RecoTracker.TkSeedGenerator.SeedGeneratorFromRegionHitsEDProducer_cfi.seedGeneratorFromRegionHitsEDProducer.clone( OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet(PixelTripletHLTGenerator.clone(maxElement = cms.uint32(1000000))) # this one uses an exact helix extrapolation and can deal correctly with # arbitrarily large D0 and generally exhibits a smaller fake rate: diff --git a/RecoTracker/TkSeedGenerator/python/GlobalTobTecSeeds_cff.py b/RecoTracker/TkSeedGenerator/python/GlobalTobTecSeeds_cff.py index 7f8d89015adf9..2df32a5b23c95 100644 --- a/RecoTracker/TkSeedGenerator/python/GlobalTobTecSeeds_cff.py +++ b/RecoTracker/TkSeedGenerator/python/GlobalTobTecSeeds_cff.py @@ -14,6 +14,6 @@ globalTobTecSeeds = RecoTracker.TkSeedGenerator.SeedGeneratorFromRegionHitsEDProducer_cfi.seedGeneratorFromRegionHitsEDProducer.clone( OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitPairGenerator'), - SeedingLayers = cms.string('TobTecLayerPairs') + SeedingLayers = cms.InputTag('TobTecLayerPairs') ) ) diff --git a/RecoTracker/TkSeedGenerator/python/SeedGeneratorFromRegionHitsEDProducer_cfi.py b/RecoTracker/TkSeedGenerator/python/SeedGeneratorFromRegionHitsEDProducer_cfi.py index 5f7abb19dba5e..e3cf40d98ac4d 100644 --- a/RecoTracker/TkSeedGenerator/python/SeedGeneratorFromRegionHitsEDProducer_cfi.py +++ b/RecoTracker/TkSeedGenerator/python/SeedGeneratorFromRegionHitsEDProducer_cfi.py @@ -8,7 +8,7 @@ seedGeneratorFromRegionHitsEDProducer = cms.EDProducer("SeedGeneratorFromRegionHitsEDProducer", OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string(''), - SeedingLayers = cms.string(''), + SeedingLayers = cms.InputTag(''), maxElement = cms.uint32(1000000) ), SeedComparitorPSet = cms.PSet( diff --git a/RecoTracker/TkSeedGenerator/src/ClusterChecker.cc b/RecoTracker/TkSeedGenerator/src/ClusterChecker.cc index 57dc1021249b0..32c46c81b243d 100644 --- a/RecoTracker/TkSeedGenerator/src/ClusterChecker.cc +++ b/RecoTracker/TkSeedGenerator/src/ClusterChecker.cc @@ -8,6 +8,11 @@ ClusterChecker::ClusterChecker(const edm::ParameterSet & conf, edm::ConsumesCollector && iC): + ClusterChecker(conf, iC) +{} + +ClusterChecker::ClusterChecker(const edm::ParameterSet & conf, + edm::ConsumesCollector & iC): doACheck_(conf.getParameter("doClusterCheck")), selector_(conf.getParameter("doClusterCheck") && conf.existsAs("cut") ? conf.getParameter("cut") : diff --git a/RecoTracker/TkSeedingLayers/interface/SeedingLayer.h b/RecoTracker/TkSeedingLayers/interface/SeedingLayer.h index 88e87086771c5..a356cc918f504 100644 --- a/RecoTracker/TkSeedingLayers/interface/SeedingLayer.h +++ b/RecoTracker/TkSeedingLayers/interface/SeedingLayer.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" @@ -26,8 +26,7 @@ class SeedingLayer { SeedingLayer( const std::string & name, int seqNum, const DetLayer* layer, const TransientTrackingRecHitBuilder * hitBuilder, - const HitExtractor * hitExtractor, - bool usePredefinedErrors = false, float hitErrorRZ = 0., float hitErrorRPhi=0.); + const HitExtractor * hitExtractor); std::string name() const; int seqNum() const; @@ -41,13 +40,9 @@ class SeedingLayer { const TransientTrackingRecHitBuilder * hitBuilder() const; - bool hasPredefinedHitErrors() const; - float predefinedHitErrorRZ() const; - float predefinedHitErrorRPhi() const; - private: class SeedingLayerImpl; - boost::shared_ptr theImpl; + std::shared_ptr theImpl; }; } diff --git a/RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h b/RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h index 22ee6911089ba..c931cd197f57d 100644 --- a/RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h +++ b/RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h @@ -6,40 +6,68 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/Framework/interface/ESWatcher.h" + +#include "Geometry/CommonDetUnit/interface/GeomDetEnumerators.h" #include #include -namespace edm { class EventSetup; } +namespace edm { class Event; class EventSetup; class ConsumesCollector;} +class TrackerRecoGeometryRecord; +class TransientRecHitRecord; +class TransientTrackingRecHitBuilder; class SeedingLayerSetsBuilder { public: - SeedingLayerSetsBuilder(){} - SeedingLayerSetsBuilder(const edm::ParameterSet & cfg); + SeedingLayerSetsBuilder(); + SeedingLayerSetsBuilder(const edm::ParameterSet & cfg, edm::ConsumesCollector& iC); + SeedingLayerSetsBuilder(const edm::ParameterSet & cfg, edm::ConsumesCollector&& iC); + ~SeedingLayerSetsBuilder(); + + ctfseeding::SeedingLayerSets layers(const edm::EventSetup& es); // only for backwards-compatibility + + bool check(const edm::EventSetup& es); + void updateEventSetup(const edm::EventSetup& es); + + typedef unsigned short LayerSetIndex; + unsigned short numberOfLayersInSet() const { return theNumberOfLayersInSet; } + const std::vector& layerSetIndices() const { return theLayerSetIndices; } - ctfseeding::SeedingLayerSets layers(const edm::EventSetup& es) const; + unsigned short numberOfLayers() const { return theLayers.size(); } + const std::vector& layerNames() const { return theLayerNames; } + const std::vector& layerDets() const { return theLayerDets; } + std::pair, ctfseeding::SeedingLayer::Hits> hits(const edm::Event& ev, const edm::EventSetup& es) const; private: std::vector > layerNamesInSets( const std::vector & namesPSet) ; edm::ParameterSet layerConfig(const std::string & nameLayer,const edm::ParameterSet& cfg) const; - std::map nameToId; -private: + edm::ESWatcher geometryWatcher_; + edm::ESWatcher trhWatcher_; + struct LayerSpec { - std::string name; - std::string pixelHitProducer; edm::InputTag matchedRecHits,rphiRecHits,stereoRecHits; - bool usePixelHitProducer, useMatchedRecHits, useRPhiRecHits, useStereoRecHits; - std::string hitBuilder; - bool useErrorsFromParam; double hitErrorRPhi; double hitErrorRZ; - bool useRingSelector; int minRing; int maxRing; - bool useSimpleRphiHitsCleaner; - bool skipClusters; edm::InputTag clustersToSkip; - bool useProjection; - double minAbsZ; - std::string print() const; + LayerSpec(unsigned short index, const std::string& layerName, const edm::ParameterSet& cfgLayer, edm::ConsumesCollector& iC); + ~LayerSpec(); + const unsigned short nameIndex; + std::string pixelHitProducer; + bool usePixelHitProducer; + const std::string hitBuilder; + + GeomDetEnumerators::SubDetector subdet; + ctfseeding::SeedingLayer::Side side; + int idLayer; + std::shared_ptr extractor; + + std::string print(const std::vector& names) const; }; - std::vector > theLayersInSets; + unsigned short theNumberOfLayersInSet; + std::vector theLayerSetIndices; // indices to theLayers to form the layer sets + std::vector theLayerNames; + std::vector theLayerDets; + std::vector theTTRHBuilders; + std::vector theLayers; }; #endif diff --git a/RecoTracker/TkSeedingLayers/plugins/BuildFile.xml b/RecoTracker/TkSeedingLayers/plugins/BuildFile.xml index 8ced62e43c5e3..c2f91d650b20e 100644 --- a/RecoTracker/TkSeedingLayers/plugins/BuildFile.xml +++ b/RecoTracker/TkSeedingLayers/plugins/BuildFile.xml @@ -1,4 +1,5 @@ + diff --git a/RecoTracker/TkSeedingLayers/plugins/SeedingLayersEDProducer.cc b/RecoTracker/TkSeedingLayers/plugins/SeedingLayersEDProducer.cc new file mode 100644 index 0000000000000..638055297d577 --- /dev/null +++ b/RecoTracker/TkSeedingLayers/plugins/SeedingLayersEDProducer.cc @@ -0,0 +1,48 @@ +#include "RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h" + +#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/Exception.h" + +#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h" +#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" + +class SeedingLayersEDProducer: public edm::EDProducer { +public: + SeedingLayersEDProducer(const edm::ParameterSet& iConfig); + ~SeedingLayersEDProducer(); + + void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override; + +private: + SeedingLayerSetsBuilder builder_; +}; + +SeedingLayersEDProducer::SeedingLayersEDProducer(const edm::ParameterSet& iConfig): + builder_(iConfig, consumesCollector()) +{ + produces(); +} +SeedingLayersEDProducer::~SeedingLayersEDProducer() {} + +void SeedingLayersEDProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { + if(builder_.check(iSetup)) { + builder_.updateEventSetup(iSetup); + } + + // Get hits + std::auto_ptr prod(new SeedingLayerSetsHits(builder_.numberOfLayersInSet(), + &builder_.layerSetIndices(), + &builder_.layerNames(), + builder_.layerDets())); + std::pair, ctfseeding::SeedingLayer::Hits> idxHits = builder_.hits(iEvent, iSetup); + prod->swapHits(idxHits.first, idxHits.second); + //prod->print(); + + iEvent.put(prod); +} + +DEFINE_FWK_MODULE(SeedingLayersEDProducer); diff --git a/RecoTracker/TkSeedingLayers/plugins/SeedingLayersESProducer.h b/RecoTracker/TkSeedingLayers/plugins/SeedingLayersESProducer.h deleted file mode 100644 index f1540b247df2f..0000000000000 --- a/RecoTracker/TkSeedingLayers/plugins/SeedingLayersESProducer.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef SeedingLayersESProducer_H -#define SeedingLayersESProducer_H - -#include "FWCore/Framework/interface/ESProducer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include - -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h" - -class SeedingLayersESProducer : public edm::ESProducer { -public: - - SeedingLayersESProducer(const edm::ParameterSet & cfg) : theConfig(cfg) { - setWhatProduced(this, theConfig.getParameter("ComponentName") ); - } - - boost::shared_ptr produce(const TrackerDigiGeometryRecord & r) { - theResult = boost::shared_ptr( new SeedingLayerSetsBuilder(theConfig)); - return theResult; - } - -private: - edm::ParameterSet theConfig; - boost::shared_ptr theResult; -}; -#endif diff --git a/RecoTracker/TkSeedingLayers/plugins/module.cc b/RecoTracker/TkSeedingLayers/plugins/module.cc deleted file mode 100644 index 30cbd39617353..0000000000000 --- a/RecoTracker/TkSeedingLayers/plugins/module.cc +++ /dev/null @@ -1,11 +0,0 @@ -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/ModuleFactory.h" -#include "FWCore/Framework/interface/ESProducer.h" -#include "FWCore/Utilities/interface/typelookup.h" - -#include "SeedingLayersESProducer.h" - -DEFINE_FWK_EVENTSETUP_MODULE(SeedingLayersESProducer); - - diff --git a/RecoTracker/TkSeedingLayers/python/MixedLayerPairs_cfi.py b/RecoTracker/TkSeedingLayers/python/MixedLayerPairs_cfi.py index dd9cec7216d58..ce58a0db78c15 100644 --- a/RecoTracker/TkSeedingLayers/python/MixedLayerPairs_cfi.py +++ b/RecoTracker/TkSeedingLayers/python/MixedLayerPairs_cfi.py @@ -3,8 +3,7 @@ # This is standard pixel-pair seeding, but making use of TEC disks # in forward region to boost acceptance. -mixedlayerpairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('MixedLayerPairs'), +MixedLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', @@ -34,18 +33,12 @@ maxRing = cms.int32(1) ), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedPairs'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006) ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedPairs'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036) ) ) diff --git a/RecoTracker/TkSeedingLayers/python/MixedLayerTriplets_cfi.py b/RecoTracker/TkSeedingLayers/python/MixedLayerTriplets_cfi.py index a575bf04fa7ab..7dc1eb2b5f598 100644 --- a/RecoTracker/TkSeedingLayers/python/MixedLayerTriplets_cfi.py +++ b/RecoTracker/TkSeedingLayers/python/MixedLayerTriplets_cfi.py @@ -3,7 +3,7 @@ # This is standard pixel-triplet seeding, but making use of TEC disks # in forward region to boost acceptance. -mixedlayertriplets = cms.ESProducer("SeedingLayersESProducer", +MixedLayerTriplets = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', @@ -20,28 +20,21 @@ 'FPix1_neg+FPix2_neg+TEC1_neg', 'FPix1_pos+FPix2_pos+TEC2_pos', 'FPix1_neg+FPix2_neg+TEC2_neg'), - ComponentName = cms.string('MixedLayerTriplets'), TEC = cms.PSet( matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"), TTRHBuilder = cms.string('WithTrackAngle') ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036) ), TID = cms.PSet( matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"), TTRHBuilder = cms.string('WithTrackAngle') ), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006) ), TIB = cms.PSet( matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"), diff --git a/RecoTracker/TkSeedingLayers/python/PixelAndStripLayerPairs_cfi.py b/RecoTracker/TkSeedingLayers/python/PixelAndStripLayerPairs_cfi.py index c46f23bdf8756..d9c77ce14aa3b 100644 --- a/RecoTracker/TkSeedingLayers/python/PixelAndStripLayerPairs_cfi.py +++ b/RecoTracker/TkSeedingLayers/python/PixelAndStripLayerPairs_cfi.py @@ -3,8 +3,7 @@ # Seeding with one hit in outer pixel and one in inner strip. # Useful for exotic physics, V0 finding etc. -pixelandstriplayerpairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('PixelAndStripLayerPairs'), +PixelAndStripLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring( 'BPix3+TIB1_pos', 'BPix2+TIB1_pos', @@ -46,18 +45,12 @@ maxRing = cms.int32(1) ), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedPairs'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006) ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedPairs'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036) ) ) diff --git a/RecoTracker/TkSeedingLayers/python/PixelLayerPairs_cfi.py b/RecoTracker/TkSeedingLayers/python/PixelLayerPairs_cfi.py index 94e93b1b7eb1c..85d2fdebf80f2 100644 --- a/RecoTracker/TkSeedingLayers/python/PixelLayerPairs_cfi.py +++ b/RecoTracker/TkSeedingLayers/python/PixelLayerPairs_cfi.py @@ -1,7 +1,6 @@ import FWCore.ParameterSet.Config as cms -pixellayerpairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('PixelLayerPairs'), +PixelLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3', @@ -16,18 +15,12 @@ 'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006) ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036) ) ) diff --git a/RecoTracker/TkSeedingLayers/python/PixelLayerTriplets_cfi.py b/RecoTracker/TkSeedingLayers/python/PixelLayerTriplets_cfi.py index 83246e80c4b5f..9a2eacc182a48 100644 --- a/RecoTracker/TkSeedingLayers/python/PixelLayerTriplets_cfi.py +++ b/RecoTracker/TkSeedingLayers/python/PixelLayerTriplets_cfi.py @@ -1,25 +1,18 @@ import FWCore.ParameterSet.Config as cms -pixellayertriplets = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('PixelLayerTriplets'), +PixelLayerTriplets = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg', 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg'), BPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0027), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006) ), FPix = cms.PSet( - useErrorsFromParam = cms.bool(True), - hitErrorRPhi = cms.double(0.0051), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'), HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.0036) ) ) diff --git a/RecoTracker/TkSeedingLayers/python/PixelLessLayerPairs4PixelLessTracking_cfi.py b/RecoTracker/TkSeedingLayers/python/PixelLessLayerPairs4PixelLessTracking_cfi.py index e4c6f281c67d5..402cb98848b32 100644 --- a/RecoTracker/TkSeedingLayers/python/PixelLessLayerPairs4PixelLessTracking_cfi.py +++ b/RecoTracker/TkSeedingLayers/python/PixelLessLayerPairs4PixelLessTracking_cfi.py @@ -3,8 +3,7 @@ ### standard configuration of *strip* layer pairs to be used ### to reconstruct tracks without using additional pixel-with tracking steps. -pixelLessLayerPairs4PixelLessTracking = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('pixelLessLayerPairs4PixelLessTracking'), +pixelLessLayerPairs4PixelLessTracking = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring( 'TIB1+TIB2','TIB1+TIB3','TIB2+TIB3', 'TIB1+TID1_pos', 'TIB1+TID1_neg', diff --git a/RecoTracker/TkSeedingLayers/python/PixelLessLayerPairs_cfi.py b/RecoTracker/TkSeedingLayers/python/PixelLessLayerPairs_cfi.py index 1ed75c27ca187..d9f66c9902f8a 100644 --- a/RecoTracker/TkSeedingLayers/python/PixelLessLayerPairs_cfi.py +++ b/RecoTracker/TkSeedingLayers/python/PixelLessLayerPairs_cfi.py @@ -1,7 +1,6 @@ import FWCore.ParameterSet.Config as cms -pixellesslayerpairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('PixelLessLayerPairs'), +PixelLessLayerPairs = cms.EDProducer("SeedingLayersEDProducer", layerList = cms.vstring('TIB1+TIB2', 'TIB1+TID1_pos', # 'TIB1+TID2_pos', diff --git a/RecoTracker/TkSeedingLayers/python/TobTecLayerPairs_cfi.py b/RecoTracker/TkSeedingLayers/python/TobTecLayerPairs_cfi.py index 3a03fb8a095f2..499aaa9f1ba57 100644 --- a/RecoTracker/TkSeedingLayers/python/TobTecLayerPairs_cfi.py +++ b/RecoTracker/TkSeedingLayers/python/TobTecLayerPairs_cfi.py @@ -1,8 +1,6 @@ import FWCore.ParameterSet.Config as cms -tobteclayerpairs = cms.ESProducer("SeedingLayersESProducer", - ComponentName = cms.string('TobTecLayerPairs'), - +TobTecLayerPairs = cms.EDProducer("SeedingLayersEDProducer", # Don't bother with TEC8 and 9, as tracking requires 2 hits outside # the seeding pairs. layerList = cms.vstring('TOB1+TOB2', diff --git a/RecoTracker/TkSeedingLayers/python/seedingLayersEDProducer_cfi.py b/RecoTracker/TkSeedingLayers/python/seedingLayersEDProducer_cfi.py new file mode 100644 index 0000000000000..390c85e7dbf02 --- /dev/null +++ b/RecoTracker/TkSeedingLayers/python/seedingLayersEDProducer_cfi.py @@ -0,0 +1,11 @@ +import FWCore.ParameterSet.Config as cms + +seedingLayersEDProducer = cms.EDProducer("SeedingLayersEDProducer", + layerList = cms.vstring(), + BPix = cms.PSet(), + FPix = cms.PSet(), + TIB = cms.PSet(), + TID = cms.PSet(), + TOB = cms.PSet(), + TEC = cms.PSet(), +) diff --git a/RecoTracker/TkSeedingLayers/src/HitExtractor.h b/RecoTracker/TkSeedingLayers/src/HitExtractor.h index 1c7f37b07ba09..7572f9d3569f9 100644 --- a/RecoTracker/TkSeedingLayers/src/HitExtractor.h +++ b/RecoTracker/TkSeedingLayers/src/HitExtractor.h @@ -5,8 +5,12 @@ #include #include "RecoTracker/TransientTrackingRecHit/interface/TkTransientTrackingRecHitBuilder.h" #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "DataFormats/Common/interface/ContainerMask.h" +#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" -namespace edm { class Event; class EventSetup; } +namespace edm { class Event; class EventSetup; class ConsumesCollector;} namespace ctfseeding { class SeedingLayer; } namespace ctfseeding { @@ -17,26 +21,28 @@ class HitExtractor { virtual ~HitExtractor(){} HitExtractor(){ skipClusters=false;} - virtual Hits hits(const SeedingLayer & sl, const edm::Event& , const edm::EventSetup& ) const =0; + virtual Hits hits(const TransientTrackingRecHitBuilder& ttrhBuilder, const edm::Event& , const edm::EventSetup& ) const =0; + virtual HitExtractor * clone() const = 0; //skip clusters - void useSkipClusters( const edm::InputTag & m) { + void useSkipClusters(const edm::InputTag & m, edm::ConsumesCollector& iC) { skipClusters=true; - theSkipClusters=m; + useSkipClusters_(m, iC); } bool skipClusters; - edm::InputTag theSkipClusters; +protected: + virtual void useSkipClusters_(const edm::InputTag & m, edm::ConsumesCollector& iC) = 0; }; class HitConv { public: - HitConv(const SeedingLayer &sl, const edm::EventSetup &es) : sl_(sl), es_(es) {} + HitConv(const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::EventSetup &es) : ttrhBuilder_(ttrhBuilder), es_(es) {} template TransientTrackingRecHit::ConstRecHitPointer operator()(const H &hit) { const TrackingRecHit* trh = &hit; - return sl_.hitBuilder()->build(trh); } + return ttrhBuilder_.build(trh); } private: - const SeedingLayer &sl_; + const TransientTrackingRecHitBuilder &ttrhBuilder_; const edm::EventSetup &es_; }; @@ -45,14 +51,14 @@ class HitConv { inline void range2SeedingHits(DSTV const & dstv, HitExtractor::Hits & v, std::pair const & sel, - const SeedingLayer &sl, const edm::EventSetup &es) { + const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::EventSetup &es) { typename DSTV::Range range = dstv.equal_range(sel.first,sel.second); size_t ts = v.size(); for(typename DSTV::const_iterator id=range.first; id!=range.second; id++) ts += std::distance((*id).begin(), (*id).end()); v.reserve(ts); for(typename DSTV::const_iterator id=range.first; id!=range.second; id++){ - std::transform((*id).begin(), (*id).end(), std::back_inserter(v), HitConv(sl,es)); + std::transform((*id).begin(), (*id).end(), std::back_inserter(v), HitConv(ttrhBuilder, es)); } } diff --git a/RecoTracker/TkSeedingLayers/src/HitExtractorPIX.cc b/RecoTracker/TkSeedingLayers/src/HitExtractorPIX.cc index d4581e1ed6fc5..1be529773e4f5 100644 --- a/RecoTracker/TkSeedingLayers/src/HitExtractorPIX.cc +++ b/RecoTracker/TkSeedingLayers/src/HitExtractorPIX.cc @@ -8,36 +8,36 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "DataFormats/Common/interface/ContainerMask.h" - -#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" - using namespace ctfseeding; using namespace std; HitExtractorPIX::HitExtractorPIX( - SeedingLayer::Side & side, int idLayer, const std::string & hitProducer) - : theSide(side), theIdLayer(idLayer), theHitProducer(hitProducer) + SeedingLayer::Side & side, int idLayer, const std::string & hitProducer, edm::ConsumesCollector& iC) + : theHitProducer(iC.consumes(hitProducer)), theSide(side), theIdLayer(idLayer) { } -HitExtractor::Hits HitExtractorPIX::hits(const SeedingLayer & sl,const edm::Event& ev, const edm::EventSetup& es) const +void HitExtractorPIX::useSkipClusters_(const edm::InputTag & m, edm::ConsumesCollector& iC) { + theSkipClusters = iC.consumes(m); +} + +HitExtractor::Hits HitExtractorPIX::hits(const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event& ev, const edm::EventSetup& es) const { HitExtractor::Hits result; TrackerLayerIdAccessor accessor; edm::Handle pixelHits; - ev.getByLabel( theHitProducer, pixelHits); + ev.getByToken( theHitProducer, pixelHits); if (theSide==SeedingLayer::Barrel) { - range2SeedingHits( *pixelHits, result, accessor.pixelBarrelLayer(theIdLayer), sl, es ); + range2SeedingHits( *pixelHits, result, accessor.pixelBarrelLayer(theIdLayer), ttrhBuilder, es ); } else { - range2SeedingHits( *pixelHits, result, accessor.pixelForwardDisk(theSide,theIdLayer), sl, es ); + range2SeedingHits( *pixelHits, result, accessor.pixelForwardDisk(theSide,theIdLayer), ttrhBuilder, es ); } if (skipClusters){ LogDebug("HitExtractorPIX")<<"getting : "< > > pixelClusterMask; - ev.getByLabel(theSkipClusters,pixelClusterMask); + edm::Handle pixelClusterMask; + ev.getByToken(theSkipClusters,pixelClusterMask); std::vector keep(result.size(),true); HitExtractor::Hits newHits; unsigned int skipped=0; diff --git a/RecoTracker/TkSeedingLayers/src/HitExtractorPIX.h b/RecoTracker/TkSeedingLayers/src/HitExtractorPIX.h index dea825317ab52..b712aa274355f 100644 --- a/RecoTracker/TkSeedingLayers/src/HitExtractorPIX.h +++ b/RecoTracker/TkSeedingLayers/src/HitExtractorPIX.h @@ -12,15 +12,19 @@ namespace ctfseeding { class HitExtractorPIX : public HitExtractor { public: - HitExtractorPIX( SeedingLayer::Side & side, int idLayer, const std::string & hitProducer); + HitExtractorPIX( SeedingLayer::Side & side, int idLayer, const std::string & hitProducer, edm::ConsumesCollector& iC); virtual ~HitExtractorPIX(){} - virtual HitExtractor::Hits hits(const SeedingLayer & sl, const edm::Event& , const edm::EventSetup& ) const; + virtual HitExtractor::Hits hits(const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event& , const edm::EventSetup& ) const; virtual HitExtractorPIX * clone() const { return new HitExtractorPIX(*this); } private: + typedef edm::ContainerMask > SkipClustersCollection; + void useSkipClusters_(const edm::InputTag & m, edm::ConsumesCollector& iC) override; + + edm::EDGetTokenT theSkipClusters; + edm::EDGetTokenT theHitProducer; SeedingLayer::Side theSide; int theIdLayer; - std::string theHitProducer; }; } #endif diff --git a/RecoTracker/TkSeedingLayers/src/HitExtractorSTRP.cc b/RecoTracker/TkSeedingLayers/src/HitExtractorSTRP.cc index 1a472ef67febe..01a9690bfe4df 100644 --- a/RecoTracker/TkSeedingLayers/src/HitExtractorSTRP.cc +++ b/RecoTracker/TkSeedingLayers/src/HitExtractorSTRP.cc @@ -7,8 +7,6 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" #include "DataFormats/Common/interface/ContainerMask.h" @@ -24,12 +22,16 @@ using namespace ctfseeding; using namespace std; using namespace edm; -HitExtractorSTRP::HitExtractorSTRP( const DetLayer* detLayer, - SeedingLayer::Side & side, int idLayer) - : theLayer(detLayer), theSide(side), theIdLayer(idLayer), - hasMatchedHits(false), hasRPhiHits(false), hasStereoHits(false), - hasRingSelector(false), theMinRing(1), theMaxRing(0), hasSimpleRphiHitsCleaner(true), minAbsZ(0) -{ } +HitExtractorSTRP::HitExtractorSTRP(GeomDetEnumerators::SubDetector subdet, SeedingLayer::Side & side, int idLayer): + theLayerSubDet(subdet), theSide(side), theIdLayer(idLayer), + minAbsZ(0), theMinRing(1), theMaxRing(0), + hasMatchedHits(false), hasRPhiHits(false), hasStereoHits(false), + hasRingSelector(false), hasSimpleRphiHitsCleaner(true) +{} + +void HitExtractorSTRP::useSkipClusters_(const edm::InputTag & m, edm::ConsumesCollector& iC) { + theSkipClusters = iC.consumes(m); +} void HitExtractorSTRP::useRingSelector(int minRing, int maxRing) { @@ -53,18 +55,20 @@ bool HitExtractorSTRP::skipThis(OmniClusterRef const& clus, } -void HitExtractorSTRP::project(TransientTrackingRecHit::ConstRecHitPointer & ptr, +void HitExtractorSTRP::project(const TransientTrackingRecHitBuilder& ttrhBuilder, + TransientTrackingRecHit::ConstRecHitPointer & ptr, const SiStripRecHit2D * hit, TransientTrackingRecHit::ConstRecHitPointer & replaceMe) const{ if (failProjection) {replaceMe=0; return;} TrackingRecHitProjector proj; - TransientTrackingRecHit::RecHitPointer sHit=theSLayer->hitBuilder()->build(hit); + TransientTrackingRecHit::RecHitPointer sHit=ttrhBuilder.build(hit); replaceMe=proj.project( *sHit, *ptr->det()); if (!replaceMe) LogDebug("HitExtractorSTRP")<<"projection failed."; } -bool HitExtractorSTRP::skipThis(TransientTrackingRecHit::ConstRecHitPointer & ptr, +bool HitExtractorSTRP::skipThis(const TransientTrackingRecHitBuilder& ttrhBuilder, + TransientTrackingRecHit::ConstRecHitPointer & ptr, edm::Handle > > & stripClusterMask, TransientTrackingRecHit::ConstRecHitPointer & replaceMe) const { const SiStripMatchedRecHit2D * hit = (SiStripMatchedRecHit2D *) ptr->hit(); @@ -80,8 +84,8 @@ bool HitExtractorSTRP::skipThis(TransientTrackingRecHit::ConstRecHitPointer & pt //FIX use clusters directly auto const & s= hit->stereoHit(); auto const & m= hit->monoHit(); - if (rejectSt) project(ptr,&s,replaceMe); - else if (rejectMono) project(ptr,&m,replaceMe); + if (rejectSt) project(ttrhBuilder, ptr,&s,replaceMe); + else if (rejectMono) project(ttrhBuilder, ptr,&m,replaceMe); if (!replaceMe) return true; //means that the projection failed, and needs to be skipped if (rejectSt) LogDebug("HitExtractorSTRP")<<"a matched hit is partially masked, and the mono hit got projected onto: "<hit()->geographicalId().rawId()<<" key: "<monoClusterRef().key(); @@ -93,12 +97,13 @@ bool HitExtractorSTRP::skipThis(TransientTrackingRecHit::ConstRecHitPointer & pt } -void HitExtractorSTRP::cleanedOfClusters( const edm::Event& ev, HitExtractor::Hits & hits, +void HitExtractorSTRP::cleanedOfClusters( const TransientTrackingRecHitBuilder& ttrhBuilder, + const edm::Event& ev, HitExtractor::Hits & hits, bool matched, unsigned int cleanFrom)const{ LogDebug("HitExtractorPIX")<<"getting: "< > > stripClusterMask; - ev.getByLabel(theSkipClusters,stripClusterMask); + edm::Handle stripClusterMask; + ev.getByToken(theSkipClusters,stripClusterMask); HitExtractor::Hits newHits; unsigned int skipped=0; unsigned int projected=0; @@ -111,7 +116,7 @@ void HitExtractorSTRP::cleanedOfClusters( const edm::Event& ev, HitExtractor::Hi newHits.push_back(replaceMe); continue; } - if (matched && skipThis(hits[iH],stripClusterMask,replaceMe)){ + if (matched && skipThis(ttrhBuilder, hits[iH],stripClusterMask,replaceMe)){ LogDebug("HitExtractorSTRP")<<"skipping a matched hit on :"<hit()->geographicalId().rawId(); skipped++; continue; @@ -128,68 +133,67 @@ void HitExtractorSTRP::cleanedOfClusters( const edm::Event& ev, HitExtractor::Hi hits.swap(newHits); } -HitExtractor::Hits HitExtractorSTRP::hits(const SeedingLayer & sl, const edm::Event& ev, const edm::EventSetup& es) const +HitExtractor::Hits HitExtractorSTRP::hits(const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event& ev, const edm::EventSetup& es) const { HitExtractor::Hits result; TrackerLayerIdAccessor accessor; - theSLayer=&sl; unsigned int cleanFrom=0; // // TIB // - if (theLayer->subDetector() == GeomDetEnumerators::TIB) { + if (theLayerSubDet == GeomDetEnumerators::TIB) { if (hasMatchedHits) { edm::Handle matchedHits; - ev.getByLabel( theMatchedHits, matchedHits); + ev.getByToken( theMatchedHits, matchedHits); if (skipClusters) cleanFrom=result.size(); - range2SeedingHits( *matchedHits, result, accessor.stripTIBLayer(theIdLayer), sl, es); - if (skipClusters) cleanedOfClusters(ev,result,true,cleanFrom); + range2SeedingHits( *matchedHits, result, accessor.stripTIBLayer(theIdLayer), ttrhBuilder, es); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,true,cleanFrom); } if (hasRPhiHits) { edm::Handle rphiHits; - ev.getByLabel( theRPhiHits, rphiHits); + ev.getByToken( theRPhiHits, rphiHits); if (hasMatchedHits){ if (!hasSimpleRphiHitsCleaner){ // this is a brutal "cleaning". Add something smarter in the future if (skipClusters) cleanFrom=result.size(); - range2SeedingHits( *rphiHits, result, accessor.stripTIBLayer(theIdLayer), sl, es); - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + range2SeedingHits( *rphiHits, result, accessor.stripTIBLayer(theIdLayer), ttrhBuilder, es); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } } else { if (skipClusters) cleanFrom=result.size(); - range2SeedingHits( *rphiHits, result, accessor.stripTIBLayer(theIdLayer), sl, es); - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + range2SeedingHits( *rphiHits, result, accessor.stripTIBLayer(theIdLayer), ttrhBuilder, es); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } } if (hasStereoHits) { edm::Handle stereoHits; - ev.getByLabel( theStereoHits, stereoHits); + ev.getByToken( theStereoHits, stereoHits); if (skipClusters) cleanFrom=result.size(); - range2SeedingHits( *stereoHits, result, accessor.stripTIBLayer(theIdLayer), sl, es); - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + range2SeedingHits( *stereoHits, result, accessor.stripTIBLayer(theIdLayer), ttrhBuilder, es); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } } // // TID // - else if (theLayer->subDetector() == GeomDetEnumerators::TID) { + else if (theLayerSubDet == GeomDetEnumerators::TID) { if (hasMatchedHits) { edm::Handle matchedHits; - ev.getByLabel( theMatchedHits, matchedHits); + ev.getByToken( theMatchedHits, matchedHits); if (skipClusters) cleanFrom=result.size(); std::pair getter = accessor.stripTIDDisk(theSide,theIdLayer); SiStripMatchedRecHit2DCollection::Range range = matchedHits->equal_range(getter.first, getter.second); for (SiStripMatchedRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) { int ring = TIDDetId( it->detId() ).ring(); if (!ringRange(ring)) continue; for (SiStripMatchedRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) { - result.push_back( sl.hitBuilder()->build(hit) ); + result.push_back( ttrhBuilder.build(hit) ); } } - if (skipClusters) cleanedOfClusters(ev,result,true,cleanFrom); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,true,cleanFrom); } if (hasRPhiHits) { edm::Handle rphiHits; - ev.getByLabel( theRPhiHits, rphiHits); + ev.getByToken( theRPhiHits, rphiHits); if (skipClusters) cleanFrom=result.size(); std::pair getter = accessor.stripTIDDisk(theSide,theIdLayer); SiStripRecHit2DCollection::Range range = rphiHits->equal_range(getter.first, getter.second); @@ -197,93 +201,93 @@ HitExtractor::Hits HitExtractorSTRP::hits(const SeedingLayer & sl, const edm::Ev int ring = TIDDetId( it->detId() ).ring(); if (!ringRange(ring)) continue; if ((SiStripDetId(it->detId()).partnerDetId() != 0) && hasSimpleRphiHitsCleaner) continue; // this is a brutal "cleaning". Add something smarter in the future for (SiStripRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) { - result.push_back( sl.hitBuilder()->build(hit) ); + result.push_back( ttrhBuilder.build(hit) ); } } - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } if (hasStereoHits) { edm::Handle stereoHits; - ev.getByLabel( theStereoHits, stereoHits); + ev.getByToken( theStereoHits, stereoHits); if (skipClusters) cleanFrom=result.size(); std::pair getter = accessor.stripTIDDisk(theSide,theIdLayer); SiStripRecHit2DCollection::Range range = stereoHits->equal_range(getter.first, getter.second); for (SiStripRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) { int ring = TIDDetId( it->detId() ).ring(); if (!ringRange(ring)) continue; for (SiStripRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) { - result.push_back( sl.hitBuilder()->build(hit) ); + result.push_back( ttrhBuilder.build(hit) ); } } - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } } // // TOB // - else if (theLayer->subDetector() == GeomDetEnumerators::TOB) { + else if (theLayerSubDet == GeomDetEnumerators::TOB) { if (hasMatchedHits) { edm::Handle matchedHits; - ev.getByLabel( theMatchedHits, matchedHits); + ev.getByToken( theMatchedHits, matchedHits); if (skipClusters) cleanFrom=result.size(); if (minAbsZ>0.) { std::pair getter = accessor.stripTOBLayer(theIdLayer); SiStripMatchedRecHit2DCollection::Range range = matchedHits->equal_range(getter.first, getter.second); for (SiStripMatchedRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) { for (SiStripMatchedRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) { - TransientTrackingRecHit::ConstRecHitPointer ttrh = sl.hitBuilder()->build(hit); + TransientTrackingRecHit::ConstRecHitPointer ttrh = ttrhBuilder.build(hit); if (fabs(ttrh->globalPosition().z())>=minAbsZ) result.push_back( ttrh ); } } } else { - range2SeedingHits( *matchedHits, result, accessor.stripTOBLayer(theIdLayer), sl, es); + range2SeedingHits( *matchedHits, result, accessor.stripTOBLayer(theIdLayer), ttrhBuilder, es); } - if (skipClusters) cleanedOfClusters(ev,result,true,cleanFrom); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,true,cleanFrom); } if (hasRPhiHits) { edm::Handle rphiHits; - ev.getByLabel( theRPhiHits, rphiHits); + ev.getByToken( theRPhiHits, rphiHits); if (hasMatchedHits){ if (!hasSimpleRphiHitsCleaner){ // this is a brutal "cleaning". Add something smarter in the future if (skipClusters) cleanFrom=result.size(); - range2SeedingHits( *rphiHits, result, accessor.stripTOBLayer(theIdLayer), sl, es); - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + range2SeedingHits( *rphiHits, result, accessor.stripTOBLayer(theIdLayer), ttrhBuilder, es); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } } else { if (skipClusters) cleanFrom=result.size(); - range2SeedingHits( *rphiHits, result, accessor.stripTOBLayer(theIdLayer), sl, es); - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + range2SeedingHits( *rphiHits, result, accessor.stripTOBLayer(theIdLayer), ttrhBuilder, es); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } } if (hasStereoHits) { edm::Handle stereoHits; - ev.getByLabel( theStereoHits, stereoHits); + ev.getByToken( theStereoHits, stereoHits); if (skipClusters) cleanFrom=result.size(); - range2SeedingHits( *stereoHits, result, accessor.stripTOBLayer(theIdLayer), sl, es); - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + range2SeedingHits( *stereoHits, result, accessor.stripTOBLayer(theIdLayer), ttrhBuilder, es); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } } // // TEC // - else if (theLayer->subDetector() == GeomDetEnumerators::TEC) { + else if (theLayerSubDet == GeomDetEnumerators::TEC) { if (hasMatchedHits) { edm::Handle matchedHits; - ev.getByLabel( theMatchedHits, matchedHits); + ev.getByToken( theMatchedHits, matchedHits); if (skipClusters) cleanFrom=result.size(); std::pair getter = accessor.stripTECDisk(theSide,theIdLayer); SiStripMatchedRecHit2DCollection::Range range = matchedHits->equal_range(getter.first, getter.second); for (SiStripMatchedRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) { int ring = TECDetId( it->detId() ).ring(); if (!ringRange(ring)) continue; for (SiStripMatchedRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) { - result.push_back( sl.hitBuilder()->build(hit) ); + result.push_back( ttrhBuilder.build(hit) ); } } - if (skipClusters) cleanedOfClusters(ev,result,true,cleanFrom); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,true,cleanFrom); } if (hasRPhiHits) { edm::Handle rphiHits; - ev.getByLabel( theRPhiHits, rphiHits); + ev.getByToken( theRPhiHits, rphiHits); if (skipClusters) cleanFrom=result.size(); std::pair getter = accessor.stripTECDisk(theSide,theIdLayer); SiStripRecHit2DCollection::Range range = rphiHits->equal_range(getter.first, getter.second); @@ -291,25 +295,25 @@ HitExtractor::Hits HitExtractorSTRP::hits(const SeedingLayer & sl, const edm::Ev int ring = TECDetId( it->detId() ).ring(); if (!ringRange(ring)) continue; if ((SiStripDetId(it->detId()).partnerDetId() != 0) && hasSimpleRphiHitsCleaner) continue; // this is a brutal "cleaning". Add something smarter in the future for (SiStripRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) { - result.push_back( sl.hitBuilder()->build(hit) ); + result.push_back( ttrhBuilder.build(hit) ); } } - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } if (hasStereoHits) { edm::Handle stereoHits; - ev.getByLabel( theStereoHits, stereoHits); + ev.getByToken( theStereoHits, stereoHits); if (skipClusters) cleanFrom=result.size(); std::pair getter = accessor.stripTECDisk(theSide,theIdLayer); SiStripRecHit2DCollection::Range range = stereoHits->equal_range(getter.first, getter.second); for (SiStripRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) { int ring = TECDetId( it->detId() ).ring(); if (!ringRange(ring)) continue; for (SiStripRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) { - result.push_back( sl.hitBuilder()->build(hit) ); + result.push_back( ttrhBuilder.build(hit) ); } } - if (skipClusters) cleanedOfClusters(ev,result,false,cleanFrom); + if (skipClusters) cleanedOfClusters(ttrhBuilder, ev,result,false,cleanFrom); } } LogDebug("HitExtractorSTRP")<<" giving: "< +#include class DetLayer; namespace edm { @@ -21,43 +24,55 @@ class HitExtractorSTRP : public HitExtractor { public: typedef SiStripRecHit2D::ClusterRef SiStripClusterRef; - HitExtractorSTRP( const DetLayer* detLayer, SeedingLayer::Side & side, int idLayer); + HitExtractorSTRP(GeomDetEnumerators::SubDetector subdet, SeedingLayer::Side & side, int idLayer); virtual ~HitExtractorSTRP(){} - virtual HitExtractor::Hits hits( const SeedingLayer & sl, const edm::Event& , const edm::EventSetup& ) const; + virtual HitExtractor::Hits hits( const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event& , const edm::EventSetup& ) const; virtual HitExtractorSTRP * clone() const { return new HitExtractorSTRP(*this); } - void useMatchedHits( const edm::InputTag & m) { hasMatchedHits = true; theMatchedHits = m; } - void useRPhiHits( const edm::InputTag & m) { hasRPhiHits = true; theRPhiHits = m; } - void useStereoHits( const edm::InputTag & m) { hasStereoHits = true; theStereoHits = m; } + void useMatchedHits( const edm::InputTag & m, edm::ConsumesCollector& iC) { hasMatchedHits = true; theMatchedHits = iC.consumes(m); } + void useRPhiHits( const edm::InputTag & m, edm::ConsumesCollector& iC) { hasRPhiHits = true; theRPhiHits = iC.consumes(m); } + void useStereoHits( const edm::InputTag & m, edm::ConsumesCollector& iC) { hasStereoHits = true; theStereoHits = iC.consumes(m); } void useRingSelector(int minRing, int maxRing); void useSimpleRphiHitsCleaner(bool use) {hasSimpleRphiHitsCleaner = use;} - void cleanedOfClusters( const edm::Event& ev, HitExtractor::Hits & hits, bool matched, unsigned int cleanFrom=0) const; + void cleanedOfClusters( const TransientTrackingRecHitBuilder& ttrhBuilder, const edm::Event& ev, HitExtractor::Hits & hits, bool matched, unsigned int cleanFrom=0) const; - bool skipThis(TransientTrackingRecHit::ConstRecHitPointer & ptr,edm::Handle > > & stripClusterMask, + bool skipThis(const TransientTrackingRecHitBuilder& ttrhBuilder, TransientTrackingRecHit::ConstRecHitPointer & ptr,edm::Handle > > & stripClusterMask, TransientTrackingRecHit::ConstRecHitPointer & replaceMe) const; bool skipThis(OmniClusterRef const& clus, edm::Handle > > & stripClusterMask) const; - void project(TransientTrackingRecHit::ConstRecHitPointer & ptr, + void project(const TransientTrackingRecHitBuilder& ttrhBuilder, + TransientTrackingRecHit::ConstRecHitPointer & ptr, const SiStripRecHit2D * hit, TransientTrackingRecHit::ConstRecHitPointer & replaceMe) const; void setNoProjection() const {failProjection=true;}; void setMinAbsZ(double minZToSet) {minAbsZ=minZToSet;} + + bool useRingSelector() const { return hasRingSelector; } + std::tuple getMinMaxRing() const { return std::make_tuple(theMinRing, theMaxRing); } private: bool ringRange(int ring) const; + + typedef edm::ContainerMask > SkipClustersCollection; + void useSkipClusters_(const edm::InputTag & m, edm::ConsumesCollector& iC) override; private: - const DetLayer * theLayer; + const GeomDetEnumerators::SubDetector theLayerSubDet; SeedingLayer::Side theSide; mutable const SeedingLayer * theSLayer; int theIdLayer; - bool hasMatchedHits; edm::InputTag theMatchedHits; - bool hasRPhiHits; edm::InputTag theRPhiHits; - bool hasStereoHits; edm::InputTag theStereoHits; - bool hasRingSelector; int theMinRing, theMaxRing; - bool hasSimpleRphiHitsCleaner; double minAbsZ; + int theMinRing, theMaxRing; + edm::EDGetTokenT theSkipClusters; + edm::EDGetTokenT theMatchedHits; + edm::EDGetTokenT theRPhiHits; + edm::EDGetTokenT theStereoHits; + bool hasMatchedHits; + bool hasRPhiHits; + bool hasStereoHits; + bool hasRingSelector; + bool hasSimpleRphiHitsCleaner; mutable bool failProjection; }; diff --git a/RecoTracker/TkSeedingLayers/src/SeedingLayer.cc b/RecoTracker/TkSeedingLayers/src/SeedingLayer.cc index 7642657ec6aad..c54c9485ff225 100644 --- a/RecoTracker/TkSeedingLayers/src/SeedingLayer.cc +++ b/RecoTracker/TkSeedingLayers/src/SeedingLayer.cc @@ -17,24 +17,12 @@ class SeedingLayer::SeedingLayerImpl { theSeqNum(seqNum), theLayer(layer), theTTRHBuilder(hitBuilder), - theHitExtractor(hitExtractor), - theHasPredefinedHitErrors(false),thePredefinedHitErrorRZ(0.),thePredefinedHitErrorRPhi(0.) { } + theHitExtractor(hitExtractor) { } - SeedingLayerImpl( - const string & name, int seqNum, - const DetLayer* layer, - const TransientTrackingRecHitBuilder * hitBuilder, - const HitExtractor * hitExtractor, - float hitErrorRZ, float hitErrorRPhi) - : theName(name), theSeqNum(seqNum), theLayer(layer), - theTTRHBuilder(hitBuilder), theHitExtractor(hitExtractor), - theHasPredefinedHitErrors(true), - thePredefinedHitErrorRZ(hitErrorRZ), thePredefinedHitErrorRPhi(hitErrorRPhi) { } - - ~SeedingLayerImpl() { delete theHitExtractor; } + ~SeedingLayerImpl() { } SeedingLayer::Hits hits(const SeedingLayer &sl, const edm::Event& ev, - const edm::EventSetup& es) const { return theHitExtractor->hits(sl,ev,es); } + const edm::EventSetup& es) const { return theHitExtractor->hits(*theTTRHBuilder, ev, es); } std::string name() const { return theName; } @@ -43,10 +31,6 @@ class SeedingLayer::SeedingLayerImpl { const DetLayer* detLayer() const { return theLayer; } const TransientTrackingRecHitBuilder * hitBuilder() const { return theTTRHBuilder; } - bool hasPredefinedHitErrors() const { return theHasPredefinedHitErrors; } - float predefinedHitErrorRZ() const { return thePredefinedHitErrorRZ; } - float predefinedHitErrorRPhi() const { return thePredefinedHitErrorRPhi; } - private: SeedingLayerImpl(const SeedingLayerImpl &); @@ -56,8 +40,6 @@ class SeedingLayer::SeedingLayerImpl { const DetLayer* theLayer; const TransientTrackingRecHitBuilder *theTTRHBuilder; const HitExtractor * theHitExtractor; - bool theHasPredefinedHitErrors; - float thePredefinedHitErrorRZ, thePredefinedHitErrorRPhi; }; @@ -67,13 +49,9 @@ SeedingLayer::SeedingLayer( const std::string & name, int seqNum, const DetLayer* layer, const TransientTrackingRecHitBuilder * hitBuilder, - const HitExtractor * hitExtractor, - bool usePredefinedErrors, float hitErrorRZ, float hitErrorRPhi) + const HitExtractor * hitExtractor) { - SeedingLayerImpl * l = usePredefinedErrors ? - new SeedingLayerImpl(name,seqNum,layer,hitBuilder,hitExtractor,hitErrorRZ,hitErrorRPhi) - : new SeedingLayerImpl(name,seqNum,layer,hitBuilder,hitExtractor); - theImpl = boost::shared_ptr (l); + theImpl = std::make_shared (name,seqNum,layer,hitBuilder,hitExtractor); } std::string SeedingLayer::name() const @@ -100,18 +78,3 @@ SeedingLayer::Hits SeedingLayer::hits(const edm::Event& ev, const edm::EventSetu { return theImpl->hits( *this,ev,es); } - -bool SeedingLayer::hasPredefinedHitErrors() const -{ - return theImpl->hasPredefinedHitErrors(); -} - -float SeedingLayer::predefinedHitErrorRZ() const -{ - return theImpl->predefinedHitErrorRZ(); -} - -float SeedingLayer::predefinedHitErrorRPhi() const -{ - return theImpl->predefinedHitErrorRPhi(); -} diff --git a/RecoTracker/TkSeedingLayers/src/SeedingLayerSetsBuilder.cc b/RecoTracker/TkSeedingLayers/src/SeedingLayerSetsBuilder.cc index 521cb397e2f59..a5d5b5dabbfd8 100644 --- a/RecoTracker/TkSeedingLayers/src/SeedingLayerSetsBuilder.cc +++ b/RecoTracker/TkSeedingLayers/src/SeedingLayerSetsBuilder.cc @@ -27,25 +27,165 @@ using namespace ctfseeding; using namespace std; +namespace { + std::tuple nameToEnumId(const std::string& name) { + GeomDetEnumerators::SubDetector subdet = GeomDetEnumerators::invalidDet; + SeedingLayer::Side side = SeedingLayer::Barrel; + int idLayer = 0; + + size_t index; + // + // BPIX + // + if ((index = name.find("BPix")) != string::npos) { + subdet = GeomDetEnumerators::PixelBarrel; + side = SeedingLayer::Barrel; + idLayer = atoi(name.substr(index+4,1).c_str()); + } + // + // FPIX + // + else if ((index = name.find("FPix")) != string::npos) { + subdet = GeomDetEnumerators::PixelEndcap; + idLayer = atoi(name.substr(index+4,1).c_str()); + if ( name.find("pos") != string::npos ) { + side = SeedingLayer::PosEndcap; + } else { + side = SeedingLayer::NegEndcap; + } + } + // + // TIB + // + else if ((index = name.find("TIB")) != string::npos) { + subdet = GeomDetEnumerators::TIB; + side = SeedingLayer::Barrel; + idLayer = atoi(name.substr(index+3,1).c_str()); + } + // + // TID + // + else if ((index = name.find("TID")) != string::npos) { + subdet = GeomDetEnumerators::TID; + idLayer = atoi(name.substr(index+3,1).c_str()); + if ( name.find("pos") != string::npos ) { + side = SeedingLayer::PosEndcap; + } else { + side = SeedingLayer::NegEndcap; + } + } + // + // TOB + // + else if ((index = name.find("TOB")) != string::npos) { + subdet = GeomDetEnumerators::TOB; + side = SeedingLayer::Barrel; + idLayer = atoi(name.substr(index+3,1).c_str()); + } + // + // TEC + // + else if ((index = name.find("TEC")) != string::npos) { + subdet = GeomDetEnumerators::TEC; + idLayer = atoi(name.substr(index+3,1).c_str()); + if ( name.find("pos") != string::npos ) { + side = SeedingLayer::PosEndcap; + } else { + side = SeedingLayer::NegEndcap; + } + } + return std::make_tuple(subdet, side, idLayer); + } +} -std::string SeedingLayerSetsBuilder::LayerSpec::print() const +SeedingLayerSetsBuilder::LayerSpec::LayerSpec(unsigned short index, const std::string& layerName, const edm::ParameterSet& cfgLayer, edm::ConsumesCollector& iC): + nameIndex(index), + hitBuilder(cfgLayer.getParameter("TTRHBuilder")) { - std::ostringstream str; - str << "Layer="<("HitProducer"); + usePixelHitProducer = true; } - else str<<"false"; + + bool skipClusters = cfgLayer.exists("skipClusters"); + if (skipClusters) { + LogDebug("SeedingLayerSetsBuilder")<(subdetData); + side = std::get<1>(subdetData); + idLayer = std::get<2>(subdetData); + if(subdet == GeomDetEnumerators::PixelBarrel || + subdet == GeomDetEnumerators::PixelEndcap) { + extractor = std::make_shared(side, idLayer, pixelHitProducer, iC); + } + else if(subdet != GeomDetEnumerators::invalidDet) { // strip + std::shared_ptr extr = std::make_shared(subdet, side, idLayer); + if (cfgLayer.exists("matchedRecHits")) { + extr->useMatchedHits(cfgLayer.getParameter("matchedRecHits"), iC); + } + if (cfgLayer.exists("rphiRecHits")) { + extr->useRPhiHits(cfgLayer.getParameter("rphiRecHits"), iC); + } + if (cfgLayer.exists("stereoRecHits")) { + extr->useStereoHits(cfgLayer.getParameter("stereoRecHits"), iC); + } + if (cfgLayer.exists("useRingSlector") && cfgLayer.getParameter("useRingSlector")) { + extr->useRingSelector(cfgLayer.getParameter("minRing"), + cfgLayer.getParameter("maxRing")); + } + bool useSimpleRphiHitsCleaner = cfgLayer.exists("useSimpleRphiHitsCleaner") ? cfgLayer.getParameter("useSimpleRphiHitsCleaner") : true; + extr->useSimpleRphiHitsCleaner(useSimpleRphiHitsCleaner); + + double minAbsZ = cfgLayer.exists("MinAbsZ") ? cfgLayer.getParameter("MinAbsZ") : 0.; + if(minAbsZ > 0.) { + extr->setMinAbsZ(minAbsZ); + } + if(skipClusters) { + bool useProjection = cfgLayer.exists("useProjection") ? cfgLayer.getParameter("useProjection") : false; + if(useProjection) { + LogDebug("SeedingLayerSetsBuilder")<setNoProjection(); + } + } + extractor = std::move(extr); + } + if(extractor && skipClusters) { + extractor->useSkipClusters(cfgLayer.getParameter("skipClusters"), iC); + } +} +SeedingLayerSetsBuilder::LayerSpec::~LayerSpec() {} + +std::string SeedingLayerSetsBuilder::LayerSpec::print(const std::vector& names) const +{ + std::ostringstream str; + str << "Layer="<(extractor.get())) && + ext->useRingSelector()) { + auto minMaxRing = ext->getMinMaxRing(); + str <<"true,"<<" Rings: ("<< std::get<0>(minMaxRing) <<","<< std::get<1>(minMaxRing) <<")"; } else str<<"false"; return str.str(); } -SeedingLayerSetsBuilder::SeedingLayerSetsBuilder(const edm::ParameterSet & cfg) +SeedingLayerSetsBuilder::SeedingLayerSetsBuilder() {} +SeedingLayerSetsBuilder::SeedingLayerSetsBuilder(const edm::ParameterSet & cfg, edm::ConsumesCollector&& iC): + SeedingLayerSetsBuilder(cfg, iC) +{} +SeedingLayerSetsBuilder::SeedingLayerSetsBuilder(const edm::ParameterSet & cfg, edm::ConsumesCollector& iC) { std::vector namesPset = cfg.getParameter >("layerList"); std::vector > layerNamesInSets = this->layerNamesInSets(namesPset); @@ -61,95 +201,45 @@ SeedingLayerSetsBuilder::SeedingLayerSetsBuilder(const edm::ParameterSet & cfg) // str << std::endl; // } // std::cout << str.str() << std::endl; + if(layerNamesInSets.size() == 0) + theNumberOfLayersInSet = 0; + else + theNumberOfLayersInSet = layerNamesInSets[0].size(); - map mapConfig; // for debug printout only! - int layerSetId = 0; for (IT it = layerNamesInSets.begin(); it != layerNamesInSets.end(); it++) { - vector layersInSet; - for (IS is = it->begin(); is != it->end(); is++) { - LayerSpec layer; - - layer.name = *is; - //std::cout << "layer name in config: " << *is << std::endl; - edm::ParameterSet cfgLayer = layerConfig(layer.name, cfg); - - layer.usePixelHitProducer = true; - layer.useMatchedRecHits = true; - layer.useRPhiRecHits = true; - layer.useStereoRecHits = true; - if (cfgLayer.exists("HitProducer")) { - layer.pixelHitProducer = cfgLayer.getParameter("HitProducer"); - }else{ - layer.usePixelHitProducer = false; - } - if (cfgLayer.exists("matchedRecHits")) { - layer.matchedRecHits = cfgLayer.getParameter("matchedRecHits"); - }else{ - layer.useMatchedRecHits = false; + if(it->size() != theNumberOfLayersInSet) + throw cms::Exception("Configuration") << "Assuming all SeedingLayerSets to have same number of layers. LayerSet " << (it-layerNamesInSets.begin()) << " has " << it->size() << " while 0th has " << theNumberOfLayersInSet; + for(const std::string& layerName: *it) { + auto found = std::find(theLayerNames.begin(), theLayerNames.end(), layerName); + unsigned short layerIndex = 0; + if(found != theLayerNames.end()) { + layerIndex = found-theLayerNames.begin(); } - if (cfgLayer.exists("rphiRecHits")) { - layer.rphiRecHits = cfgLayer.getParameter("rphiRecHits"); - }else{ - layer.useRPhiRecHits = false; - } - if (cfgLayer.exists("stereoRecHits")) { - layer.stereoRecHits= cfgLayer.getParameter("stereoRecHits"); - }else{ - layer.useStereoRecHits = false; - } - if (cfgLayer.exists("skipClusters")){ - LogDebug("SeedingLayerSetsBuilder")<("skipClusters"); - layer.skipClusters=true; - }else{ - layer.skipClusters=false; - } - if (layer.skipClusters){ - if (cfgLayer.exists("useProjection")){ - LogDebug("SeedingLayerSetsBuilder")<("useProjection"); - } - else{ - layer.useProjection=false; - } - } - layer.hitBuilder = cfgLayer.getParameter("TTRHBuilder"); - - layer.useErrorsFromParam = cfgLayer.exists("useErrorsFromParam") ? cfgLayer.getParameter("useErrorsFromParam") : false; - if(layer.useErrorsFromParam) { - layer.hitErrorRPhi = cfgLayer.getParameter("hitErrorRPhi"); - layer.hitErrorRZ = cfgLayer.getParameter("hitErrorRZ"); - } - - layer.useRingSelector = cfgLayer.exists("useRingSlector") ? cfgLayer.getParameter("useRingSlector") : false; - if (layer.useRingSelector) { - layer.minRing = cfgLayer.getParameter("minRing"); - layer.maxRing = cfgLayer.getParameter("maxRing"); - } - - layer.useSimpleRphiHitsCleaner = cfgLayer.exists("useSimpleRphiHitsCleaner") ? cfgLayer.getParameter("useSimpleRphiHitsCleaner") : true; - - layer.minAbsZ = cfgLayer.exists("MinAbsZ") ? cfgLayer.getParameter("MinAbsZ") : 0.; + else { + if(std::numeric_limits::max() == theLayerNames.size()) { + throw cms::Exception("Assert") << "Too many layers in " << __FILE__ << ":" << __LINE__ << ", we may have to enlarge the index type from unsigned short to unsigned int"; + } - layersInSet.push_back(layer); - mapConfig[layer.name]=layer; - if (nameToId.find(layer.name)==nameToId.end()) { - std::string name = layer.name; - nameToId.insert( std::pair(name,layerSetId) ); - layerSetId++; + layerIndex = theLayers.size(); + theLayers.emplace_back(theLayerNames.size(), layerName, layerConfig(layerName, cfg), iC); + theLayerNames.push_back(layerName); } + theLayerSetIndices.push_back(layerIndex); } - theLayersInSets.push_back(layersInSet); } + theLayerDets.resize(theLayers.size()); + theTTRHBuilders.resize(theLayers.size()); // debug printout // The following should not be set to cout -// for (map::const_iterator im = mapConfig.begin(); im != mapConfig.end(); im++) { -// std::cout << (*im).second.print() << std::endl; -// } + //for(const LayerSpec& layer: theLayers) { + // std::cout << layer.print(theLayerNames) << std::endl; + //} } +SeedingLayerSetsBuilder::~SeedingLayerSetsBuilder() {} + edm::ParameterSet SeedingLayerSetsBuilder::layerConfig(const std::string & nameLayer,const edm::ParameterSet& cfg) const { edm::ParameterSet result; @@ -158,7 +248,7 @@ edm::ParameterSet SeedingLayerSetsBuilder::layerConfig(const std::string & nameL string name = nameLayer.substr(0,iEnd); if (cfg.exists(name)) return cfg.getParameter(name); } - cout <<"configuration for layer: "< > SeedingLayerSetsBuilder::layerNamesInSets( const vector< return result; } -SeedingLayerSets SeedingLayerSetsBuilder::layers(const edm::EventSetup& es) const -{ - typedef std::vector Set; - SeedingLayerSets result; +void SeedingLayerSetsBuilder::updateEventSetup(const edm::EventSetup& es) { + edm::ESHandle htracker; + es.get().get( htracker ); + const GeometricSearchTracker& tracker = *htracker; - edm::ESHandle tracker; - es.get().get( tracker ); + const std::vector& bpx = tracker.barrelLayers(); + const std::vector& tib = tracker.tibLayers(); + const std::vector& tob = tracker.tobLayers(); - std::vector bpx = tracker->barrelLayers(); - std::vector tib = tracker->tibLayers(); - std::vector tob = tracker->tobLayers(); + const std::vector& fpx_pos = tracker.posForwardLayers(); + const std::vector& tid_pos = tracker.posTidLayers(); + const std::vector& tec_pos = tracker.posTecLayers(); - std::vector fpx_pos = tracker->posForwardLayers(); - std::vector tid_pos = tracker->posTidLayers(); - std::vector tec_pos = tracker->posTecLayers(); + const std::vector& fpx_neg = tracker.negForwardLayers(); + const std::vector& tid_neg = tracker.negTidLayers(); + const std::vector& tec_neg = tracker.negTecLayers(); - std::vector fpx_neg = tracker->negForwardLayers(); - std::vector tid_neg = tracker->negTidLayers(); - std::vector tec_neg = tracker->negTecLayers(); - - typedef std::vector >::const_iterator IT; - typedef std::vector::const_iterator IS; + for(size_t i=0, n=theLayers.size(); ibegin(), isEnd = it->end(); is < isEnd; ++is) { - const LayerSpec & layer = (*is); - std::string name = layer.name; - const DetLayer * detLayer =0; - SeedingLayer::Side side=SeedingLayer::Barrel; - int idLayer = 0; - bool nameOK = true; - HitExtractor * extractor = 0; - - // - // BPIX - // - if (name.find("BPix") != string::npos) { - idLayer = atoi(name.substr(name.find("BPix")+4,1).c_str()); - side=SeedingLayer::Barrel; - detLayer=bpx[idLayer-1]; - } - // - // FPIX - // - else if (name.find("FPix") != string::npos) { - idLayer = atoi(name.substr(name.find("FPix")+4,1).c_str()); - if ( name.find("pos") != string::npos ) { - side = SeedingLayer::PosEndcap; - detLayer = fpx_pos[idLayer-1]; - } else { - side = SeedingLayer::NegEndcap; - detLayer = fpx_neg[idLayer-1]; - } - } - // - // TIB - // - else if (name.find("TIB") != string::npos) { - idLayer = atoi(name.substr(name.find("TIB")+3,1).c_str()); - side=SeedingLayer::Barrel; - detLayer=tib[idLayer-1]; - } - // - // TID - // - else if (name.find("TID") != string::npos) { - idLayer = atoi(name.substr(name.find("TID")+3,1).c_str()); - if ( name.find("pos") != string::npos ) { - side = SeedingLayer::PosEndcap; - detLayer = tid_pos[idLayer-1]; - } else { - side = SeedingLayer::NegEndcap; - detLayer = tid_neg[idLayer-1]; - } - } - // - // TOB - // - else if (name.find("TOB") != string::npos) { - idLayer = atoi(name.substr(name.find("TOB")+3,1).c_str()); - side=SeedingLayer::Barrel; - detLayer=tob[idLayer-1]; + if (layer.subdet == GeomDetEnumerators::PixelBarrel) { + detLayer = bpx[index]; + } + else if (layer.subdet == GeomDetEnumerators::PixelEndcap) { + if (layer.side == SeedingLayer::PosEndcap) { + detLayer = fpx_pos[index]; + } else { + detLayer = fpx_neg[index]; } - // - // TEC - // - else if (name.find("TEC") != string::npos) { - idLayer = atoi(name.substr(name.find("TEC")+3,1).c_str()); - if ( name.find("pos") != string::npos ) { - side = SeedingLayer::PosEndcap; - detLayer = tec_pos[idLayer-1]; - } else { - side = SeedingLayer::NegEndcap; - detLayer = tec_neg[idLayer-1]; - } + } + else if (layer.subdet == GeomDetEnumerators::TIB) { + detLayer = tib[index]; + } + else if (layer.subdet == GeomDetEnumerators::TID) { + if (layer.side == SeedingLayer::PosEndcap) { + detLayer = tid_pos[index]; + } else { + detLayer = tid_neg[index]; } - else { - nameOK = false; - setOK = false; + } + else if (layer.subdet == GeomDetEnumerators::TOB) { + detLayer = tob[index]; + } + else if (layer.subdet == GeomDetEnumerators::TEC) { + if (layer.side == SeedingLayer::PosEndcap) { + detLayer = tec_pos[index]; + } else { + detLayer = tec_neg[index]; } + } + else { + throw cms::Exception("Configuration") << "Did not find DetLayer for layer " << theLayerNames[layer.nameIndex]; + } - if(nameOK) { - if ( detLayer->subDetector() == GeomDetEnumerators::PixelBarrel || - detLayer->subDetector() == GeomDetEnumerators::PixelEndcap) { - extractor = new HitExtractorPIX(side,idLayer,layer.pixelHitProducer); - } else { - HitExtractorSTRP extSTRP(detLayer,side,idLayer); - if (layer.useMatchedRecHits) extSTRP.useMatchedHits(layer.matchedRecHits); - if (layer.useRPhiRecHits) extSTRP.useRPhiHits(layer.rphiRecHits); - if (layer.useStereoRecHits) extSTRP.useStereoHits(layer.stereoRecHits); - if (layer.useRingSelector) extSTRP.useRingSelector(layer.minRing,layer.maxRing); - extSTRP.useSimpleRphiHitsCleaner(layer.useSimpleRphiHitsCleaner); - if (layer.minAbsZ>0.) extSTRP.setMinAbsZ(layer.minAbsZ); - if (layer.skipClusters && !layer.useProjection) - extSTRP.setNoProjection(); - extractor = extSTRP.clone(); - } - if (layer.skipClusters) { - LogDebug("SeedingLayerSetsBuilder")<useSkipClusters(layer.clustersToSkip); - } - else{ - LogDebug("SeedingLayerSetsBuilder")< builder; - es.get().get(layer.hitBuilder, builder); - - auto it = nameToId.find(name); - if (it==nameToId.end()) { - edm::LogError("SeedingLayerSetsBuilder")<<"nameToId map mismatch! Could not find: "<second; - if (layer.useErrorsFromParam) { - set.push_back( SeedingLayer( name, layerSetId, detLayer, builder.product(), - extractor, true, layer.hitErrorRPhi,layer.hitErrorRZ)); - } else { - set.push_back( SeedingLayer( name, layerSetId, detLayer, builder.product(), extractor)); - } - } - + edm::ESHandle builder; + es.get().get(layer.hitBuilder, builder); + + theLayerDets[i] = detLayer; + theTTRHBuilders[i] = builder.product(); + } +} + +SeedingLayerSets SeedingLayerSetsBuilder::layers(const edm::EventSetup& es) +{ + updateEventSetup(es); + + typedef std::vector Set; + SeedingLayerSets result; + + for(size_t i=0, n=theLayerSetIndices.size(); i, ctfseeding::SeedingLayer::Hits> SeedingLayerSetsBuilder::hits(const edm::Event& ev, const edm::EventSetup& es) const { + std::pair, ctfseeding::SeedingLayer::Hits> ret; + ret.first.reserve(theLayers.size()); + for(unsigned int i=0; ihits(*theTTRHBuilders[i], ev, es); + std::copy(tmp.begin(), tmp.end(), std::back_inserter(ret.second)); + } + + return ret; +} diff --git a/RecoTracker/TkTrackingRegions/BuildFile.xml b/RecoTracker/TkTrackingRegions/BuildFile.xml index 93b209f4c16a0..ca282d19ce7ed 100644 --- a/RecoTracker/TkTrackingRegions/BuildFile.xml +++ b/RecoTracker/TkTrackingRegions/BuildFile.xml @@ -6,6 +6,7 @@ + diff --git a/RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h b/RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h index 18b6a2b20cb2d..71718feebb491 100644 --- a/RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h +++ b/RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h @@ -38,6 +38,11 @@ class GlobalTrackingRegion GCC11_FINAL : public TrackingRegion { const edm::EventSetup& es, const ctfseeding::SeedingLayer* layer) const; + TrackingRegion::Hits hits( + const edm::Event& ev, + const edm::EventSetup& es, + const SeedingLayerSetsHits::SeedingLayer& layer) const override; + virtual HitRZCompatibility * checkRZ(const DetLayer* layer, const Hit & outerHit, diff --git a/RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h b/RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h index d4412d5fdd12a..4642a3f66b2fc 100644 --- a/RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h +++ b/RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h @@ -5,7 +5,7 @@ #include class TrackingRegion; -namespace edm { class Event; class EventSetup; } +namespace edm { class Event; class EventSetup; class ConsumesCollector;} class OrderedHitsGenerator { public: diff --git a/RecoTracker/TkTrackingRegions/interface/OrderedHitsGeneratorFactory.h b/RecoTracker/TkTrackingRegions/interface/OrderedHitsGeneratorFactory.h index e2361e8b9cdc3..c049f5f1b66b9 100644 --- a/RecoTracker/TkTrackingRegions/interface/OrderedHitsGeneratorFactory.h +++ b/RecoTracker/TkTrackingRegions/interface/OrderedHitsGeneratorFactory.h @@ -2,11 +2,11 @@ #define RecoTracker_TkTrackingRegions_OrderedHitsGeneratorFactory_H #include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h" -namespace edm {class ParameterSet;} +namespace edm {class ParameterSet; class ConsumesCollector;} #include "FWCore/PluginManager/interface/PluginFactory.h" -typedef edmplugin::PluginFactory OrderedHitsGeneratorFactory; +typedef edmplugin::PluginFactory OrderedHitsGeneratorFactory; #endif diff --git a/RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h b/RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h index 0fa35da5bc056..f686e63dc5971 100644 --- a/RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h +++ b/RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h @@ -118,6 +118,11 @@ class RectangularEtaPhiTrackingRegion GCC11_FINAL : public TrackingRegion { const edm::EventSetup& es, const ctfseeding::SeedingLayer* layer) const; + virtual TrackingRegion::Hits hits( + const edm::Event& ev, + const edm::EventSetup& es, + const SeedingLayerSetsHits::SeedingLayer& layer) const override; + virtual HitRZCompatibility * checkRZ(const DetLayer* layer, const Hit & outerHit, const edm::EventSetup& iSetup, @@ -133,6 +138,13 @@ class RectangularEtaPhiTrackingRegion GCC11_FINAL : public TrackingRegion { virtual std::string print() const; private: + template + TrackingRegion::Hits hits_( + const edm::Event& ev, + const edm::EventSetup& es, + const T& layer, + F hitGetter) const; + HitRZCompatibility* checkRZOld( const DetLayer* layer, const TrackingRecHit* outerHit, diff --git a/RecoTracker/TkTrackingRegions/interface/TrackingRegion.h b/RecoTracker/TkTrackingRegions/interface/TrackingRegion.h index 9467002ecfeb1..70cc5d5c67011 100644 --- a/RecoTracker/TkTrackingRegions/interface/TrackingRegion.h +++ b/RecoTracker/TkTrackingRegions/interface/TrackingRegion.h @@ -19,6 +19,7 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" +#include "RecoTracker/SeedingLayerSetsHits/interface/SeedingLayerSetsHits.h" #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" #include @@ -101,6 +102,11 @@ class TrackingRegion { const edm::EventSetup& es, const ctfseeding::SeedingLayer* layer) const = 0; + virtual Hits hits( + const edm::Event& ev, + const edm::EventSetup& es, + const SeedingLayerSetsHits::SeedingLayer& layer) const = 0; + /// clone region with new vertex position TrackingRegion* restrictedRegion( const GlobalPoint & originPos, const float & originRBound, const float & originZBound) const { diff --git a/RecoTracker/TkTrackingRegions/plugins/GlobalTrackingRegionProducerFromBeamSpot.h b/RecoTracker/TkTrackingRegions/plugins/GlobalTrackingRegionProducerFromBeamSpot.h index 1fd54e52dc143..53f15f4725224 100644 --- a/RecoTracker/TkTrackingRegions/plugins/GlobalTrackingRegionProducerFromBeamSpot.h +++ b/RecoTracker/TkTrackingRegions/plugins/GlobalTrackingRegionProducerFromBeamSpot.h @@ -14,7 +14,11 @@ class GlobalTrackingRegionProducerFromBeamSpot : public TrackingRegionProducer { public: GlobalTrackingRegionProducerFromBeamSpot(const edm::ParameterSet& cfg, - edm::ConsumesCollector && iC) { + edm::ConsumesCollector && iC): + GlobalTrackingRegionProducerFromBeamSpot(cfg, iC) + {} + GlobalTrackingRegionProducerFromBeamSpot(const edm::ParameterSet& cfg, + edm::ConsumesCollector & iC) { edm::ParameterSet regionPSet = cfg.getParameter("RegionPSet"); thePtMin = regionPSet.getParameter("ptMin"); diff --git a/RecoTracker/TkTrackingRegions/src/GlobalTrackingRegion.cc b/RecoTracker/TkTrackingRegions/src/GlobalTrackingRegion.cc index 8d8af94b6803b..3447f4e0181ff 100644 --- a/RecoTracker/TkTrackingRegions/src/GlobalTrackingRegion.cc +++ b/RecoTracker/TkTrackingRegions/src/GlobalTrackingRegion.cc @@ -32,6 +32,13 @@ TrackingRegion::Hits GlobalTrackingRegion::hits( return layer->hits(ev,es); } +TrackingRegion::Hits GlobalTrackingRegion::hits( + const edm::Event& ev, + const edm::EventSetup& es, + const SeedingLayerSetsHits::SeedingLayer& layer) const { + return layer.hits(); +} + HitRZCompatibility* diff --git a/RecoTracker/TkTrackingRegions/src/RectangularEtaPhiTrackingRegion.cc b/RecoTracker/TkTrackingRegions/src/RectangularEtaPhiTrackingRegion.cc index 9b8c4312cebc4..51f9c1d6c2f02 100644 --- a/RecoTracker/TkTrackingRegions/src/RectangularEtaPhiTrackingRegion.cc +++ b/RecoTracker/TkTrackingRegions/src/RectangularEtaPhiTrackingRegion.cc @@ -288,12 +288,29 @@ TrackingRegion::Hits RectangularEtaPhiTrackingRegion::hits( const edm::EventSetup& es, const SeedingLayer* layer) const { + return hits_(ev, es, *layer, [&](const SeedingLayer& l) -> TrackingRegion::Hits { return l.hits(ev, es);}); +} + +TrackingRegion::Hits RectangularEtaPhiTrackingRegion::hits( + const edm::Event& ev, + const edm::EventSetup& es, + const SeedingLayerSetsHits::SeedingLayer& layer) const { + return hits_(ev, es, layer, [](const SeedingLayerSetsHits::SeedingLayer& l) -> TrackingRegion::Hits { return l.hits(); }); +} + +template +TrackingRegion::Hits RectangularEtaPhiTrackingRegion::hits_( + const edm::Event& ev, + const edm::EventSetup& es, + const T& layer, + F hitGetter) const +{ //ESTIMATOR TrackingRegion::Hits result; - const DetLayer * detLayer = layer->detLayer(); + const DetLayer * detLayer = layer.detLayer(); OuterEstimator * est = 0; bool measurementMethod = false; @@ -372,7 +389,7 @@ TrackingRegion::Hits RectangularEtaPhiTrackingRegion::hits( } if (!est) return result; - TrackingRegion::Hits layerHits = layer->hits(ev,es); + TrackingRegion::Hits layerHits = hitGetter(layer); result.reserve(layerHits.size()); for (auto const & ih : layerHits) { if ( est->hitCompatibility()(ih.get()) ) { diff --git a/SLHCUpgradeSimulations/Configuration/python/customise_phase1_hcal.py b/SLHCUpgradeSimulations/Configuration/python/customise_phase1_hcal.py index 63b41fc91abd9..1770cf4407ba7 100644 --- a/SLHCUpgradeSimulations/Configuration/python/customise_phase1_hcal.py +++ b/SLHCUpgradeSimulations/Configuration/python/customise_phase1_hcal.py @@ -38,11 +38,12 @@ def customise(process): # The SeedMergerPSet should be added to the following file for Phase 1 # RecoTracker/SpecialSeedGenerators/python/CombinatorialSeedGeneratorForCosmicsRegionalReconstruction_cfi.py # but pixel layers are not used here for cosmic TODO: need Maria and Jan to do appropriate thing here + from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets process.regionalCosmicTrackerSeeds.SeedMergerPSet = cms.PSet( mergeTriplets = cms.bool(False), ttrhBuilderLabel = cms.string( "PixelTTRHBuilderWithoutAngle" ), addRemainingTriplets = cms.bool(False), - layerListName = cms.string( "PixelSeedMergerQuadruplets" ) + layerList = PixelSeedMergerQuadruplets ) process.regionalCosmicTracks.TTRHBuilder = cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Configuration/python/phase1TkCustoms.py b/SLHCUpgradeSimulations/Configuration/python/phase1TkCustoms.py index 44bc49b4b30c9..604aa3fc9697b 100644 --- a/SLHCUpgradeSimulations/Configuration/python/phase1TkCustoms.py +++ b/SLHCUpgradeSimulations/Configuration/python/phase1TkCustoms.py @@ -177,7 +177,7 @@ def customise_Reco(process,pileup): process.MeasurementTracker.inactivePixelDetectorLabels = cms.VInputTag() # new layer list (3/4 pixel seeding) in InitialStep and pixelTracks - process.pixellayertriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', + process.PixelLayerTriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', @@ -236,11 +236,12 @@ def customise_Reco(process,pileup): process.reconstruction.remove(process.ak7CastorJetID) #the quadruplet merger configuration - process.load("RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff") - process.pixelseedmergerlayers.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.BPix.HitProducer = cms.string("siPixelRecHits" ) - process.pixelseedmergerlayers.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.FPix.HitProducer = cms.string("siPixelRecHits" ) + # from this PSet the quadruplet merger uses only the layer list so these could probably be removed + from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets + PixelSeedMergerQuadruplets.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.BPix.HitProducer = cms.string("siPixelRecHits" ) + PixelSeedMergerQuadruplets.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.FPix.HitProducer = cms.string("siPixelRecHits" ) # Need these until pixel templates are used process.load("SLHCUpgradeSimulations.Geometry.recoFromSimDigis_cff") @@ -266,7 +267,7 @@ def customise_Reco(process,pileup): # Make pixelTracks use quadruplets process.pixelTracks.SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') diff --git a/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE.py b/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE.py index cd07ee1bbfede..ae7999b96c5e5 100644 --- a/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE.py +++ b/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE.py @@ -101,7 +101,7 @@ def customise_Reco(process,pileup): process.convClusters.oldClusterRemovalInfo=cms.InputTag("mixedTripletStepClusters") process.convClusters.trajectories=cms.InputTag("mixedTripletStepTracks") process.convClusters.overrideTrkQuals= cms.InputTag("mixedTripletStep") - process.pixellayertriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', + process.PixelLayerTriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', @@ -165,23 +165,18 @@ def customise_Reco(process,pileup): process.stripPairElectronSeedLayers.layerList = cms.vstring('BPix4+BPix5') # Optimize later process.stripPairElectronSeedLayers.BPix = cms.PSet( HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), - useErrorsFromParam = cms.bool(True), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), skipClusters = cms.InputTag("pixelPairStepClusters"), - hitErrorRPhi = cms.double(0.0027) ) process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.layerList = cms.vstring('BPix10+BPix9') # Optimize later process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.BPix = cms.PSet( HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), - useErrorsFromParam = cms.bool(True), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), skipClusters = cms.InputTag("pixelPairStepClusters"), - hitErrorRPhi = cms.double(0.0027) ) + from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets process.pixelTracks.SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') @@ -205,11 +200,11 @@ def customise_Reco(process,pileup): process.PixelCPEGenericESProducer.DoCosmics = False process.siPixelRecHits.CPE = cms.string('PixelCPEGeneric') #the quadruplet merger configuration - process.load("RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff") - process.pixelseedmergerlayers.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.BPix.HitProducer = cms.string("siPixelRecHits" ) - process.pixelseedmergerlayers.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.FPix.HitProducer = cms.string("siPixelRecHits" ) + # from this PSet the quadruplet merger uses only the layer list so these could probably be removed + PixelSeedMergerQuadruplets.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.BPix.HitProducer = cms.string("siPixelRecHits" ) + PixelSeedMergerQuadruplets.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.FPix.HitProducer = cms.string("siPixelRecHits" ) process.highPtTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle') process.detachedTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE5D.py b/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE5D.py index 93a340fb7d7e5..e1ff1e3e49c88 100644 --- a/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE5D.py +++ b/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE5D.py @@ -132,23 +132,18 @@ def customise_Reco(process): process.stripPairElectronSeedLayers.layerList = cms.vstring('BPix4+BPix5') # Optimize later process.stripPairElectronSeedLayers.BPix = cms.PSet( HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), - useErrorsFromParam = cms.bool(True), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), skipClusters = cms.InputTag("pixelPairStepClusters"), - hitErrorRPhi = cms.double(0.0027) ) process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.layerList = cms.vstring('BPix10+BPix9') # Optimize later process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.BPix = cms.PSet( HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), - useErrorsFromParam = cms.bool(True), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), skipClusters = cms.InputTag("pixelPairStepClusters"), - hitErrorRPhi = cms.double(0.0027) ) + from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets process.pixelTracks.SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') @@ -172,11 +167,11 @@ def customise_Reco(process): process.PixelCPEGenericESProducer.DoCosmics = False process.siPixelRecHits.CPE = cms.string('PixelCPEGeneric') #the quadruplet merger configuration - process.load("RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff") - process.pixelseedmergerlayers.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.BPix.HitProducer = cms.string("siPixelRecHits" ) - process.pixelseedmergerlayers.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.FPix.HitProducer = cms.string("siPixelRecHits" ) + # from this PSet the quadruplet merger uses only the layer list so these could probably be removed + PixelSeedMergerQuadruplets.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.BPix.HitProducer = cms.string("siPixelRecHits" ) + PixelSeedMergerQuadruplets.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.FPix.HitProducer = cms.string("siPixelRecHits" ) process.highPtTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle') process.detachedTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Configuration/python/phase2TkCustoms_LB_4LPS_2L2S.py b/SLHCUpgradeSimulations/Configuration/python/phase2TkCustoms_LB_4LPS_2L2S.py index 0c458908648d3..fd3f97e12e03a 100644 --- a/SLHCUpgradeSimulations/Configuration/python/phase2TkCustoms_LB_4LPS_2L2S.py +++ b/SLHCUpgradeSimulations/Configuration/python/phase2TkCustoms_LB_4LPS_2L2S.py @@ -130,23 +130,18 @@ def customise_Reco(process): process.stripPairElectronSeedLayers.layerList = cms.vstring('BPix4+BPix5') # Optimize later process.stripPairElectronSeedLayers.BPix = cms.PSet( HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), - useErrorsFromParam = cms.bool(True), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), skipClusters = cms.InputTag("pixelPairStepClusters"), - hitErrorRPhi = cms.double(0.0027) ) process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.layerList = cms.vstring('BPix10+BPix9') # Optimize later process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.BPix = cms.PSet( HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), - useErrorsFromParam = cms.bool(True), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), skipClusters = cms.InputTag("pixelPairStepClusters"), - hitErrorRPhi = cms.double(0.0027) ) + from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets process.pixelTracks.SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') @@ -170,11 +165,11 @@ def customise_Reco(process): process.PixelCPEGenericESProducer.DoCosmics = False process.siPixelRecHits.CPE = cms.string('PixelCPEGeneric') #the quadruplet merger configuration - process.load("RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff") - process.pixelseedmergerlayers.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.BPix.HitProducer = cms.string("siPixelRecHits" ) - process.pixelseedmergerlayers.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.FPix.HitProducer = cms.string("siPixelRecHits" ) + # from this PSet the quadruplet merger uses only the layer list so these could probably be removed + PixelSeedMergerQuadruplets.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.BPix.HitProducer = cms.string("siPixelRecHits" ) + PixelSeedMergerQuadruplets.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.FPix.HitProducer = cms.string("siPixelRecHits" ) process.highPtTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle') process.detachedTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Configuration/python/phase2TkCustoms_LB_6PS.py b/SLHCUpgradeSimulations/Configuration/python/phase2TkCustoms_LB_6PS.py index 21cd606f92d8e..4c70be1e337d1 100644 --- a/SLHCUpgradeSimulations/Configuration/python/phase2TkCustoms_LB_6PS.py +++ b/SLHCUpgradeSimulations/Configuration/python/phase2TkCustoms_LB_6PS.py @@ -130,23 +130,18 @@ def customise_Reco(process): process.stripPairElectronSeedLayers.layerList = cms.vstring('BPix4+BPix5') # Optimize later process.stripPairElectronSeedLayers.BPix = cms.PSet( HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), - useErrorsFromParam = cms.bool(True), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), skipClusters = cms.InputTag("pixelPairStepClusters"), - hitErrorRPhi = cms.double(0.0027) ) process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.layerList = cms.vstring('BPix12+BPix11') # Optimize later process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.BPix = cms.PSet( HitProducer = cms.string('siPixelRecHits'), - hitErrorRZ = cms.double(0.006), - useErrorsFromParam = cms.bool(True), TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'), skipClusters = cms.InputTag("pixelPairStepClusters"), - hitErrorRPhi = cms.double(0.0027) ) + from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets process.pixelTracks.SeedMergerPSet = cms.PSet( - layerListName = cms.string('PixelSeedMergerQuadruplets'), + layerList = PixelSeedMergerQuadruplets, addRemainingTriplets = cms.bool(False), mergeTriplets = cms.bool(True), ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle') @@ -170,11 +165,11 @@ def customise_Reco(process): process.PixelCPEGenericESProducer.DoCosmics = False process.siPixelRecHits.CPE = cms.string('PixelCPEGeneric') #the quadruplet merger configuration - process.load("RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff") - process.pixelseedmergerlayers.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.BPix.HitProducer = cms.string("siPixelRecHits" ) - process.pixelseedmergerlayers.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) - process.pixelseedmergerlayers.FPix.HitProducer = cms.string("siPixelRecHits" ) + # from this PSet the quadruplet merger uses only the layer list so these could probably be removed + PixelSeedMergerQuadruplets.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.BPix.HitProducer = cms.string("siPixelRecHits" ) + PixelSeedMergerQuadruplets.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) + PixelSeedMergerQuadruplets.FPix.HitProducer = cms.string("siPixelRecHits" ) process.highPtTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle') process.detachedTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Geometry/python/oldTracking_wtriplets.py b/SLHCUpgradeSimulations/Geometry/python/oldTracking_wtriplets.py index e96e1d66b9229..93fe1b2b4a346 100644 --- a/SLHCUpgradeSimulations/Geometry/python/oldTracking_wtriplets.py +++ b/SLHCUpgradeSimulations/Geometry/python/oldTracking_wtriplets.py @@ -22,6 +22,7 @@ from RecoTracker.TkTrackingRegions.GlobalTrackingRegion_cfi import * +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets pixelTriplets = cms.EDProducer("SeedGeneratorFromRegionHitsEDProducer", #include "RecoTracker/PixelStubs/data/SeedComparitorWithPixelStubs.cfi" ClusterCheckPSet = cms.PSet( @@ -31,7 +32,7 @@ ), OrderedHitsFactoryPSet = cms.PSet( ComponentName = cms.string('StandardHitTripletGenerator'), - SeedingLayers = cms.string('PixelLayerTriplets'), + SeedingLayers = cms.InputTag('PixelLayerTriplets'), GeneratorPSet = cms.PSet( PixelTripletHLTGenerator ) @@ -39,7 +40,7 @@ SeedMergerPSet = cms.PSet( # layer list for the merger, as defined in (or modified from): # RecoPixelVertexing/PixelTriplets/python/quadrupletseedmerging_cff.py - layerListName = cms.string( "PixelSeedMergerQuadruplets" ), + layerList = PixelSeedMergerQuadruplets, # merge triplets -> quadruplets if applicable? mergeTriplets = cms.bool( True ), # add remaining (non-merged) triplets to merged output quadruplets? @@ -64,7 +65,7 @@ ) ckfTrackCandidates.src = 'pixelTriplets' #ckfTrackCandidates.SeedProducer = 'pixelTriplets' -oldTracking_wtriplets = cms.Sequence(pixelTriplets*ckfTrackCandidates*ctfWithMaterialTracks) +oldTracking_wtriplets = cms.Sequence(PixelLayerTriplets*pixelTriplets*ckfTrackCandidates*ctfWithMaterialTracks) diff --git a/SLHCUpgradeSimulations/Geometry/python/upgradeTracking_longbarrel_cff.py b/SLHCUpgradeSimulations/Geometry/python/upgradeTracking_longbarrel_cff.py index d3f6788c8cdb6..c3251440ae106 100644 --- a/SLHCUpgradeSimulations/Geometry/python/upgradeTracking_longbarrel_cff.py +++ b/SLHCUpgradeSimulations/Geometry/python/upgradeTracking_longbarrel_cff.py @@ -10,14 +10,15 @@ from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import * #the quadruplet merger configuration +# from this PSet the quadruplet merger uses only the layer list so these could probably be removed from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import * -pixelseedmergerlayers.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) -pixelseedmergerlayers.BPix.HitProducer = cms.string("siPixelRecHits" ) -pixelseedmergerlayers.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) -pixelseedmergerlayers.FPix.HitProducer = cms.string("siPixelRecHits" ) +PixelSeedMergerQuadruplets.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) +PixelSeedMergerQuadruplets.BPix.HitProducer = cms.string("siPixelRecHits" ) +PixelSeedMergerQuadruplets.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) +PixelSeedMergerQuadruplets.FPix.HitProducer = cms.string("siPixelRecHits" ) # new layer list (3/4 pixel seeding) in stepZero -pixellayertriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', +PixelLayerTriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', diff --git a/SLHCUpgradeSimulations/Geometry/python/upgradeTracking_phase1_cff.py b/SLHCUpgradeSimulations/Geometry/python/upgradeTracking_phase1_cff.py index 6948fcb921b1d..2ce9b68f7be53 100644 --- a/SLHCUpgradeSimulations/Geometry/python/upgradeTracking_phase1_cff.py +++ b/SLHCUpgradeSimulations/Geometry/python/upgradeTracking_phase1_cff.py @@ -10,14 +10,15 @@ from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import * #the quadruplet merger configuration +# from this PSet the quadruplet merger uses only the layer list so these could probably be removed from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import * -pixelseedmergerlayers.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) -pixelseedmergerlayers.BPix.HitProducer = cms.string("siPixelRecHits" ) -pixelseedmergerlayers.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) -pixelseedmergerlayers.FPix.HitProducer = cms.string("siPixelRecHits" ) +PixelSeedMergerQuadruplets.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) +PixelSeedMergerQuadruplets.BPix.HitProducer = cms.string("siPixelRecHits" ) +PixelSeedMergerQuadruplets.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" ) +PixelSeedMergerQuadruplets.FPix.HitProducer = cms.string("siPixelRecHits" ) # new layer list (3/4 pixel seeding) in stepZero -pixellayertriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', +PixelLayerTriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4', diff --git a/SLHCUpgradeSimulations/Geometry/test/FamosProducer_Phase1_cfg.py b/SLHCUpgradeSimulations/Geometry/test/FamosProducer_Phase1_cfg.py index 09f77c4df265d..c4b0bb7d60e8f 100644 --- a/SLHCUpgradeSimulations/Geometry/test/FamosProducer_Phase1_cfg.py +++ b/SLHCUpgradeSimulations/Geometry/test/FamosProducer_Phase1_cfg.py @@ -131,7 +131,7 @@ ##### with John's changes ############################## process.load("SLHCUpgradeSimulations.Geometry.oldTracking_wtriplets") -process.pixellayertriplets.layerList = cms.vstring('BPix1+BPix2+BPix3', +process.PixelLayerTriplets.layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix3+BPix4', 'BPix2+BPix3+BPix4', 'BPix1+BPix2+BPix4', diff --git a/SLHCUpgradeSimulations/Geometry/test/Famos_neut_Longbarrel_cfg.py b/SLHCUpgradeSimulations/Geometry/test/Famos_neut_Longbarrel_cfg.py index 879cbe6ce60a3..9dcc3ca8c18ff 100644 --- a/SLHCUpgradeSimulations/Geometry/test/Famos_neut_Longbarrel_cfg.py +++ b/SLHCUpgradeSimulations/Geometry/test/Famos_neut_Longbarrel_cfg.py @@ -175,7 +175,7 @@ process.multiTrackValidator.skipHistoFit = False ##### with John's changes ############################## process.load("SLHCUpgradeSimulations.Geometry.oldTracking_wtriplets") -#process.pixellayertriplets.layerList = cms.vstring('BPix1+BPix2+BPix3', +#process.PixelLayerTriplets.layerList = cms.vstring('BPix1+BPix2+BPix3', # 'BPix1+BPix3+BPix4', # 'BPix2+BPix3+BPix4', # 'BPix1+BPix2+BPix4', @@ -211,8 +211,8 @@ #process.ttrhbwr.PixelCPE = 'PixelCPEfromTrackAngle' #process.mixedlayerpairs.BPix.TTRHBuilder = cms.string('WithTrackAngle') #process.mixedlayerpairs.FPix.TTRHBuilder = cms.string('WithTrackAngle') -#process.pixellayertriplets.BPix.TTRHBuilder = cms.string('WithTrackAngle') -#process.pixellayertriplets.FPix.TTRHBuilder = cms.string('WithTrackAngle') +#process.PixelLayerTriplets.BPix.TTRHBuilder = cms.string('WithTrackAngle') +#process.PixelLayerTriplets.FPix.TTRHBuilder = cms.string('WithTrackAngle') #process.ctfWithMaterialTracks.TTRHBuilder = cms.string('WithTrackAngle') process.MeasurementTracker.stripClusterProducer=cms.string('') diff --git a/SLHCUpgradeSimulations/Geometry/test/FullSim_Longbarrel_cfg.py b/SLHCUpgradeSimulations/Geometry/test/FullSim_Longbarrel_cfg.py index bd312039f158d..6db10ee1442eb 100644 --- a/SLHCUpgradeSimulations/Geometry/test/FullSim_Longbarrel_cfg.py +++ b/SLHCUpgradeSimulations/Geometry/test/FullSim_Longbarrel_cfg.py @@ -157,7 +157,7 @@ ##### with John's changes ############################## process.load("SLHCUpgradeSimulations.Geometry.oldTracking_wtriplets") -process.pixellayertriplets.layerList = cms.vstring('BPix1+BPix2+BPix3', +process.PixelLayerTriplets.layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix3+BPix4', 'BPix2+BPix3+BPix4', 'BPix1+BPix2+BPix4', @@ -197,10 +197,10 @@ process.siPixelRecHits.CPE = 'PixelCPEfromTrackAngle' process.MeasurementTracker.PixelCPE = 'PixelCPEfromTrackAngle' process.ttrhbwr.PixelCPE = 'PixelCPEfromTrackAngle' -process.mixedlayerpairs.BPix.TTRHBuilder = cms.string('WithTrackAngle') -process.mixedlayerpairs.FPix.TTRHBuilder = cms.string('WithTrackAngle') -process.pixellayertriplets.BPix.TTRHBuilder = cms.string('WithTrackAngle') -process.pixellayertriplets.FPix.TTRHBuilder = cms.string('WithTrackAngle') +process.MixedLayerPairs.BPix.TTRHBuilder = cms.string('WithTrackAngle') +process.MixedLayerPairs.FPix.TTRHBuilder = cms.string('WithTrackAngle') +process.PixelLayerTriplets.BPix.TTRHBuilder = cms.string('WithTrackAngle') +process.PixelLayerTriplets.FPix.TTRHBuilder = cms.string('WithTrackAngle') process.ctfWithMaterialTracks.TTRHBuilder = cms.string('WithTrackAngle') process.MeasurementTracker.stripClusterProducer=cms.string('') diff --git a/SLHCUpgradeSimulations/Geometry/test/GenRecoFull_Fastsim_Longbarrel_cfg.py b/SLHCUpgradeSimulations/Geometry/test/GenRecoFull_Fastsim_Longbarrel_cfg.py index 03d5e45bc3c0a..b8a126cd32abc 100644 --- a/SLHCUpgradeSimulations/Geometry/test/GenRecoFull_Fastsim_Longbarrel_cfg.py +++ b/SLHCUpgradeSimulations/Geometry/test/GenRecoFull_Fastsim_Longbarrel_cfg.py @@ -91,11 +91,12 @@ process.fifthMeasurementTracker.inactiveStripDetectorLabels = cms.VInputTag() process.muons.TrackerKinkFinderParameters.TrackerRecHitBuilder = cms.string('WithTrackAngle') +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets process.regionalCosmicTrackerSeeds.SeedMergerPSet = cms.PSet( mergeTriplets = cms.bool(False), ttrhBuilderLabel = cms.string( "PixelTTRHBuilderWithoutAngle" ), addRemainingTriplets = cms.bool(False), - layerListName = cms.string( "PixelSeedMergerQuadruplets" ) + layerList = PixelSeedMergerQuadruplets ) process.regionalCosmicTracks.TTRHBuilder = cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Geometry/test/GenRecoFull_Fastsim_Phase1_cfg.py b/SLHCUpgradeSimulations/Geometry/test/GenRecoFull_Fastsim_Phase1_cfg.py index 10946238ae535..dde8fe9a88e63 100644 --- a/SLHCUpgradeSimulations/Geometry/test/GenRecoFull_Fastsim_Phase1_cfg.py +++ b/SLHCUpgradeSimulations/Geometry/test/GenRecoFull_Fastsim_Phase1_cfg.py @@ -98,11 +98,12 @@ process.tobTecStepMeasurementTracker.inactiveStripDetectorLabels = cms.VInputTag() process.muons.TrackerKinkFinderParameters.TrackerRecHitBuilder = cms.string('WithTrackAngle') +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets process.regionalCosmicTrackerSeeds.SeedMergerPSet = cms.PSet( mergeTriplets = cms.bool(False), ttrhBuilderLabel = cms.string( "PixelTTRHBuilderWithoutAngle" ), addRemainingTriplets = cms.bool(False), - layerListName = cms.string( "PixelSeedMergerQuadruplets" ) + layerList = PixelSeedMergerQuadruplets ) process.regionalCosmicTracks.TTRHBuilder = cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Geometry/test/RecoFull_Fullsim_Longbarrel_cfg.py b/SLHCUpgradeSimulations/Geometry/test/RecoFull_Fullsim_Longbarrel_cfg.py index d4536fa4990ec..2ab7c86d7ddd1 100644 --- a/SLHCUpgradeSimulations/Geometry/test/RecoFull_Fullsim_Longbarrel_cfg.py +++ b/SLHCUpgradeSimulations/Geometry/test/RecoFull_Fullsim_Longbarrel_cfg.py @@ -160,11 +160,11 @@ # The SeedMergerPSet should be added to the following file for Phase 1 # RecoTracker/SpecialSeedGenerators/python/CombinatorialSeedGeneratorForCosmicsRegionalReconstruction_cfi.py # but pixel layers are not used here for cosmic TODO: need Maria and Jan to do appropriate thing here -process.regionalCosmicTrackerSeeds.SeedMergerPSet = cms.PSet( +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadrupletsprocess.regionalCosmicTrackerSeeds.SeedMergerPSet = cms.PSet( mergeTriplets = cms.bool(False), ttrhBuilderLabel = cms.string( "PixelTTRHBuilderWithoutAngle" ), addRemainingTriplets = cms.bool(False), - layerListName = cms.string( "PixelSeedMergerQuadruplets" ) + layerList = PixelSeedMergerQuadruplets ) process.regionalCosmicTracks.TTRHBuilder = cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Geometry/test/RecoFull_Fullsim_Phase1_cfg.py b/SLHCUpgradeSimulations/Geometry/test/RecoFull_Fullsim_Phase1_cfg.py index cde46dbfe093d..dc42d8ecf249c 100644 --- a/SLHCUpgradeSimulations/Geometry/test/RecoFull_Fullsim_Phase1_cfg.py +++ b/SLHCUpgradeSimulations/Geometry/test/RecoFull_Fullsim_Phase1_cfg.py @@ -156,11 +156,12 @@ # The SeedMergerPSet should be added to the following file for Phase 1 # RecoTracker/SpecialSeedGenerators/python/CombinatorialSeedGeneratorForCosmicsRegionalReconstruction_cfi.py # but pixel layers are not used here for cosmic TODO: need Maria and Jan to do appropriate thing here +from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets process.regionalCosmicTrackerSeeds.SeedMergerPSet = cms.PSet( mergeTriplets = cms.bool(False), ttrhBuilderLabel = cms.string( "PixelTTRHBuilderWithoutAngle" ), addRemainingTriplets = cms.bool(False), - layerListName = cms.string( "PixelSeedMergerQuadruplets" ) + layerList = PixelSeedMergerQuadruplets ) process.regionalCosmicTracks.TTRHBuilder = cms.string('WithTrackAngle') diff --git a/SLHCUpgradeSimulations/Geometry/test/crab_anal/RecoMuon_Fullsim_Phase1_cfg.py b/SLHCUpgradeSimulations/Geometry/test/crab_anal/RecoMuon_Fullsim_Phase1_cfg.py index 2b9f0f566bd50..3094c50d7e1a2 100644 --- a/SLHCUpgradeSimulations/Geometry/test/crab_anal/RecoMuon_Fullsim_Phase1_cfg.py +++ b/SLHCUpgradeSimulations/Geometry/test/crab_anal/RecoMuon_Fullsim_Phase1_cfg.py @@ -135,7 +135,7 @@ ##### with John's changes ############################## process.load("SLHCUpgradeSimulations.Geometry.oldTracking_wtriplets") -process.pixellayertriplets.layerList = cms.vstring('BPix1+BPix2+BPix3', +process.PixelLayerTriplets.layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix1+BPix3+BPix4', 'BPix2+BPix3+BPix4', 'BPix1+BPix2+BPix4',