diff --git a/RecoTracker/MkFit/README.md b/RecoTracker/MkFit/README.md index bfbf93b505106..d2669d7f63307 100644 --- a/RecoTracker/MkFit/README.md +++ b/RecoTracker/MkFit/README.md @@ -38,8 +38,8 @@ $ runTheMatrix.py -l --apply 2 --command "--procModifiers tracking * *m_track_algorithm:* CMSSW track algorithm (used internally for reporting and consistency checks) * *m_requires_seed_hit_sorting:* do hits on seed tracks need to be sorted (required for seeds that include strip layers) -* *m_require_quality_filter:* is additional post-processing required for result tracks -* *m_require_dupclean_tight:* is tight duplicate removal post-processing required for result tracks +* *m_requires_quality_filter:* is additional post-processing required for result tracks +* *m_requires_dupclean_tight:* is tight duplicate removal post-processing required for result tracks * *m_params:* IterationParams structure for this iteration * *m_backward_params:* IterationParams structure for backward search for this iteration * *m_layer_configs:* std::vector of per-layer parameters diff --git a/RecoTracker/MkFit/plugins/BuildFile.xml b/RecoTracker/MkFit/plugins/BuildFile.xml index c0bab4a44d22f..6967de7612951 100644 --- a/RecoTracker/MkFit/plugins/BuildFile.xml +++ b/RecoTracker/MkFit/plugins/BuildFile.xml @@ -3,6 +3,7 @@ + diff --git a/RecoTracker/MkFit/plugins/MkFitEventOfHitsProducer.cc b/RecoTracker/MkFit/plugins/MkFitEventOfHitsProducer.cc index 5c84cc9653fb9..ea23319cdbf4b 100644 --- a/RecoTracker/MkFit/plugins/MkFitEventOfHitsProducer.cc +++ b/RecoTracker/MkFit/plugins/MkFitEventOfHitsProducer.cc @@ -10,6 +10,7 @@ #include "CalibFormats/SiStripObjects/interface/SiStripQuality.h" #include "CalibTracker/Records/interface/SiStripQualityRcd.h" +#include "DataFormats/BeamSpot/interface/BeamSpot.h" #include "DataFormats/SiStripCommon/interface/ConstantsForHardwareSystems.h" #include "DataFormats/TrackerCommon/interface/TrackerDetSide.h" #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" @@ -42,6 +43,7 @@ class MkFitEventOfHitsProducer : public edm::global::EDProducer<> { mkfit::EventOfHits& eventOfHits, const MkFitGeometry& mkFitGeom) const; + const edm::EDGetTokenT beamSpotToken_; const edm::EDGetTokenT pixelHitsToken_; const edm::EDGetTokenT stripHitsToken_; const edm::EDGetTokenT pixelClusterIndexToHitToken_; @@ -56,7 +58,8 @@ class MkFitEventOfHitsProducer : public edm::global::EDProducer<> { }; MkFitEventOfHitsProducer::MkFitEventOfHitsProducer(edm::ParameterSet const& iConfig) - : pixelHitsToken_{consumes(iConfig.getParameter("pixelHits"))}, + : beamSpotToken_{consumes(iConfig.getParameter("beamSpot"))}, + pixelHitsToken_{consumes(iConfig.getParameter("pixelHits"))}, stripHitsToken_{consumes(iConfig.getParameter("stripHits"))}, pixelClusterIndexToHitToken_{consumes(iConfig.getParameter("pixelHits"))}, stripClusterIndexToHitToken_{consumes(iConfig.getParameter("stripHits"))}, @@ -77,6 +80,7 @@ MkFitEventOfHitsProducer::MkFitEventOfHitsProducer(edm::ParameterSet const& iCon void MkFitEventOfHitsProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; + desc.add("beamSpot", edm::InputTag{"offlineBeamSpot"}); desc.add("pixelHits", edm::InputTag{"mkFitSiPixelHits"}); desc.add("stripHits", edm::InputTag{"mkFitSiStripHits"}); desc.add("usePixelQualityDB", true)->setComment("Use SiPixelQuality DB information"); @@ -172,6 +176,10 @@ void MkFitEventOfHitsProducer::produce(edm::StreamID iID, edm::Event& iEvent, co mkfit::StdSeq::Cmssw_LoadHits_End(*eventOfHits); + auto const bs = iEvent.get(beamSpotToken_); + eventOfHits->SetBeamSpot( + mkfit::BeamSpot(bs.x0(), bs.y0(), bs.z0(), bs.sigmaZ(), bs.BeamWidthX(), bs.BeamWidthY(), bs.dxdz(), bs.dydz())); + iEvent.emplace(putToken_, std::move(eventOfHits)); } diff --git a/RecoTracker/MkFit/python/customizeHLTIter0ToMkFit.py b/RecoTracker/MkFit/python/customizeHLTIter0ToMkFit.py index 520a7722db3a3..ce802618cb875 100644 --- a/RecoTracker/MkFit/python/customizeHLTIter0ToMkFit.py +++ b/RecoTracker/MkFit/python/customizeHLTIter0ToMkFit.py @@ -36,6 +36,7 @@ def customizeHLTIter0ToMkFit(process): minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutLoose'), ) process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits = mkFitEventOfHitsProducer_cfi.mkFitEventOfHitsProducer.clone( + beamSpot = "hltOnlineBeamSpot", pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits", stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits", )