diff --git a/CommonTools/RecoAlgos/plugins/TOFPIDProducer.cc b/CommonTools/RecoAlgos/plugins/TOFPIDProducer.cc index 3fd3d01697f9f..8ba3f1403bed1 100644 --- a/CommonTools/RecoAlgos/plugins/TOFPIDProducer.cc +++ b/CommonTools/RecoAlgos/plugins/TOFPIDProducer.cc @@ -79,8 +79,7 @@ TOFPIDProducer::TOFPIDProducer(const ParameterSet& iConfig) : } // Configuration descriptions -void -TOFPIDProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { +void TOFPIDProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; desc.add("tracksSrc", edm::InputTag("generalTracks"))-> setComment("Input tracks collection"); @@ -105,7 +104,9 @@ TOFPIDProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { desc.add("maxDtSignificance", 5.0)-> setComment("Maximum distance in time (normalized by uncertainty) for track-primary vertex association for particle id"); desc.add("minProbHeavy", 0.75)-> - setComment("Minimum probability for a particle to be a kaon or proton before reassigning the timestamp"); + setComment("Minimum probability for a particle to be a kaon or proton before reassigning the timestamp"); + + descriptions.add("tofPIDProducer", desc); } template @@ -117,9 +118,7 @@ void TOFPIDProducer::fillValueMap(edm::Event& iEvent, const edm::Handle& hand iEvent.put(std::move(out),name); } -void TOFPIDProducer::produce( edm::Event& ev, - const edm::EventSetup& es ) { - +void TOFPIDProducer::produce( edm::Event& ev, const edm::EventSetup& es ) { constexpr double m_k = 0.493677; //[GeV] constexpr double m_p = 0.9382720813; //[GeV] constexpr double c_cm_ns = CLHEP::c_light*CLHEP::ns/CLHEP::cm; //[cm/ns] @@ -184,7 +183,6 @@ void TOFPIDProducer::produce( edm::Event& ev, double rsigmazsq = 1./track.dzError()/track.dzError(); double rsigmat = 1./sigmatmtd; -// double rsigmatsq = rsigmat*rsigmat; //find associated vertex int vtxidx = -1; @@ -248,9 +246,9 @@ void TOFPIDProducer::produce( edm::Event& ev, sigmat0safe = sigmatmtd; } - float tmtd = tmtdIn[trackref]; - float pathlength = pathLengthIn[trackref]; - float magp = pIn[trackref]; + double tmtd = tmtdIn[trackref]; + double pathlength = pathLengthIn[trackref]; + double magp = pIn[trackref]; double gammasq_k = 1. + magp*magp/m_k/m_k; double beta_k = std::sqrt(1.-1./gammasq_k); diff --git a/CommonTools/RecoAlgos/python/TOFPIDProducer_cfi.py b/CommonTools/RecoAlgos/python/TOFPIDProducer_cfi.py deleted file mode 100644 index f3137ec67f0e2..0000000000000 --- a/CommonTools/RecoAlgos/python/TOFPIDProducer_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -tofPID = cms.EDProducer( "TOFPIDProducer", - tracksSrc = cms.InputTag("generalTracks"), - t0Src = cms.InputTag("trackExtenderWithMTD:generalTrackt0"), - tmtdSrc = cms.InputTag("trackExtenderWithMTD:generalTracktmtd"), - sigmat0Src = cms.InputTag("trackExtenderWithMTD:generalTracksigmat0"), - sigmatmtdSrc = cms.InputTag("trackExtenderWithMTD:generalTracksigmatmtd"), - pathLengthSrc = cms.InputTag("trackExtenderWithMTD:generalTrackPathLength"), - pSrc = cms.InputTag("trackExtenderWithMTD:generalTrackp"), - vtxsSrc = cms.InputTag("unsortedOfflinePrimaryVertices4DnoPID"), - vtxMaxSigmaT = cms.double(0.025), - maxDz = cms.double(0.1), - maxDtSignificance = cms.double(5.), - minProbHeavy = cms.double(0.75), -) diff --git a/CommonTools/RecoAlgos/python/tofPID_cfi.py b/CommonTools/RecoAlgos/python/tofPID_cfi.py new file mode 100644 index 0000000000000..1ad87f5802848 --- /dev/null +++ b/CommonTools/RecoAlgos/python/tofPID_cfi.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +from CommonTools.RecoAlgos.tofPIDProducer_cfi import tofPIDProducer +tofPID = tofPIDProducer.clone() diff --git a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc index a7f720c146427..7fefc997aa461 100644 --- a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc +++ b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc @@ -310,11 +310,11 @@ void TrackExtenderWithMTDT::produce( edm::Event& ev, //create the track output->push_back(result); pathLengthsRaw.push_back(pathLength); - tmtdRaw.push_back(tmtd); - sigmatmtdRaw.push_back(sigmatmtd); + tmtdRaw.push_back(tmtd); + sigmatmtdRaw.push_back(sigmatmtd); pathLengthMap = pathLength; - tmtdMap = tmtd; - sigmatmtdMap = sigmatmtd; + tmtdMap = tmtd; + sigmatmtdMap = sigmatmtd; auto& backtrack = output->back(); pMap = backtrack.p(); betaMap = backtrack.beta(); @@ -444,8 +444,8 @@ reco::Track TrackExtenderWithMTDT::buildTrack(const reco::Track const Propagator* thePropagator, bool hasMTD, float& pathLengthOut, - float& tmtdOut, - float& sigmatmtdOut) const { + float& tmtdOut, + float& sigmatmtdOut) const { // get the state closest to the beamline TrajectoryStateOnSurface stateForProjectionToBeamLineOnSurface = diff --git a/RecoVertex/Configuration/python/RecoVertex_cff.py b/RecoVertex/Configuration/python/RecoVertex_cff.py index 91b17dc52874e..1739b17e90576 100644 --- a/RecoVertex/Configuration/python/RecoVertex_cff.py +++ b/RecoVertex/Configuration/python/RecoVertex_cff.py @@ -33,4 +33,35 @@ ) vertexreco = cms.Sequence(vertexrecoTask) +#modifications for timing +#from RecoVertex.Configuration.RecoVertex_phase2_timing_cff import _phase2_tktiming_vertexrecoTask, unsortedOfflinePrimaryVertices4D, offlinePrimaryVertices4D, offlinePrimaryVertices4DWithBS, DA2D_vectParameters from RecoVertex.Configuration.RecoVertex_phase2_timing_cff import * +_phase2_tktiming_vertexrecoTask = cms.Task( vertexrecoTask.copy() , + tpClusterProducer , + quickTrackAssociatorByHits , + trackTimeValueMapProducer , + unsortedOfflinePrimaryVertices4DnoPID , + trackWithVertexRefSelectorBeforeSorting4DnoPID , + trackRefsForJetsBeforeSorting4DnoPID , + offlinePrimaryVertices4DnoPID , + offlinePrimaryVertices4DnoPIDWithBS, + tofPID, + unsortedOfflinePrimaryVertices4Dfastsim, + trackWithVertexRefSelectorBeforeSorting4Dfastsim , + trackRefsForJetsBeforeSorting4Dfastsim , + offlinePrimaryVertices4Dfastsim, + offlinePrimaryVertices4DfastsimWithBS, + unsortedOfflinePrimaryVertices3D, + trackWithVertexRefSelectorBeforeSorting3D , + trackRefsForJetsBeforeSorting3D, + offlinePrimaryVertices3D, + offlinePrimaryVertices3DWithBS, + ) + +from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing +phase2_timing.toReplaceWith(vertexrecoTask, _phase2_tktiming_vertexrecoTask) +phase2_timing.toReplaceWith(unsortedOfflinePrimaryVertices, unsortedOfflinePrimaryVertices4D) +phase2_timing.toReplaceWith(offlinePrimaryVertices, offlinePrimaryVertices4D) +phase2_timing.toReplaceWith(offlinePrimaryVerticesWithBS, offlinePrimaryVertices4DWithBS) +phase2_timing.toModify(offlinePrimaryVertices, vertices = "unsortedOfflinePrimaryVertices", particles = "trackRefsForJetsBeforeSorting") +phase2_timing.toModify(offlinePrimaryVerticesWithBS, vertices = "unsortedOfflinePrimaryVertices:WithBS", particles = "trackRefsForJetsBeforeSorting") diff --git a/RecoVertex/Configuration/python/RecoVertex_phase2_timing_cff.py b/RecoVertex/Configuration/python/RecoVertex_phase2_timing_cff.py index 6b9a185b656f9..aa2837b3cb598 100644 --- a/RecoVertex/Configuration/python/RecoVertex_phase2_timing_cff.py +++ b/RecoVertex/Configuration/python/RecoVertex_phase2_timing_cff.py @@ -2,9 +2,7 @@ from RecoVertex.Configuration.RecoVertex_cff import unsortedOfflinePrimaryVertices, trackWithVertexRefSelector, trackRefsForJets, sortedPrimaryVertices, offlinePrimaryVertices, offlinePrimaryVerticesWithBS,vertexrecoTask from RecoVertex.PrimaryVertexProducer.TkClusParameters_cff import DA2D_vectParameters -DA2D_vectParameters.TkDAClusParameters.verbose = cms.untracked.bool(False) -unsortedOfflinePrimaryVertices4DnoPID = unsortedOfflinePrimaryVertices.clone( verbose = cms.untracked.bool(False), - TkClusParameters = DA2D_vectParameters, +unsortedOfflinePrimaryVertices4DnoPID = unsortedOfflinePrimaryVertices.clone(TkClusParameters = DA2D_vectParameters, TrackTimesLabel = cms.InputTag("trackExtenderWithMTD:generalTrackt0"), TrackTimeResosLabel = cms.InputTag("trackExtenderWithMTD:generalTracksigmat0"), ) @@ -75,32 +73,3 @@ from SimTracker.TrackAssociatorProducers.quickTrackAssociatorByHits_cfi import quickTrackAssociatorByHits from SimTracker.TrackAssociation.trackTimeValueMapProducer_cfi import trackTimeValueMapProducer from CommonTools.RecoAlgos.TOFPIDProducer_cfi import tofPID -_phase2_tktiming_vertexrecoTask = cms.Task( vertexrecoTask.copy() , - tpClusterProducer , - quickTrackAssociatorByHits , - trackTimeValueMapProducer , - unsortedOfflinePrimaryVertices4DnoPID , - trackWithVertexRefSelectorBeforeSorting4DnoPID , - trackRefsForJetsBeforeSorting4DnoPID , - offlinePrimaryVertices4DnoPID , - offlinePrimaryVertices4DnoPIDWithBS, - tofPID, - unsortedOfflinePrimaryVertices4Dfastsim, - trackWithVertexRefSelectorBeforeSorting4Dfastsim , - trackRefsForJetsBeforeSorting4Dfastsim , - offlinePrimaryVertices4Dfastsim, - offlinePrimaryVertices4DfastsimWithBS, - unsortedOfflinePrimaryVertices3D, - trackWithVertexRefSelectorBeforeSorting3D , - trackRefsForJetsBeforeSorting3D, - offlinePrimaryVertices3D, - offlinePrimaryVertices3DWithBS, - ) - -from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing -phase2_timing.toReplaceWith(vertexrecoTask, _phase2_tktiming_vertexrecoTask) -phase2_timing.toReplaceWith(unsortedOfflinePrimaryVertices, unsortedOfflinePrimaryVertices4D) -phase2_timing.toReplaceWith(offlinePrimaryVertices, offlinePrimaryVertices4D) -phase2_timing.toReplaceWith(offlinePrimaryVerticesWithBS, offlinePrimaryVertices4DWithBS) -phase2_timing.toModify(offlinePrimaryVertices, vertices = "unsortedOfflinePrimaryVertices", particles = "trackRefsForJetsBeforeSorting") -phase2_timing.toModify(offlinePrimaryVerticesWithBS, vertices = "unsortedOfflinePrimaryVertices:WithBS", particles = "trackRefsForJetsBeforeSorting") diff --git a/RecoVertex/PrimaryVertexProducer/python/TkClusParameters_cff.py b/RecoVertex/PrimaryVertexProducer/python/TkClusParameters_cff.py index df162e7c54b69..3b46a56757ade 100644 --- a/RecoVertex/PrimaryVertexProducer/python/TkClusParameters_cff.py +++ b/RecoVertex/PrimaryVertexProducer/python/TkClusParameters_cff.py @@ -32,6 +32,7 @@ DA2D_vectParameters = cms.PSet( algorithm = cms.string("DA2D_vect"), TkDAClusParameters = cms.PSet( + verbose = cms.untracked.bool(False), coolingFactor = cms.double(0.6), # moderate annealing speed Tmin = cms.double(4.0), # end of vertex splitting Tpurge = cms.double(4.0), # cleaning