Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Track-gen matching passing through TrackingParticle #33774

Merged
merged 15 commits into from
Jun 13, 2021
Merged
Prev Previous commit
Next Next commit
add configuration changes
Enrico Lusiani committed Jun 1, 2021
commit 7669be975ff8b6a53c982be1d06150ba08939da3
4 changes: 3 additions & 1 deletion Configuration/StandardSequences/python/Digi_cff.py
Original file line number Diff line number Diff line change
@@ -29,6 +29,8 @@
#
from SimGeneral.Configuration.SimGeneral_cff import *

from SimTracker.Configuration.SimTrackerLinks_cff import *

# add updating the GEN information by default
from Configuration.StandardSequences.Generator_cff import *
from GeneratorInterface.Core.generatorSmeared_cfi import *
@@ -42,7 +44,7 @@
# premixing stage2 runs addPileupInfo after PreMixingModule (configured in DataMixerPreMix_cff)
premix_stage2.toReplaceWith(pdigiTask_nogen, pdigiTask_nogen.copyAndExclude([addPileupInfo]))

pdigiTask = cms.Task(pdigiTask_nogen, fixGenInfoTask)
pdigiTask = cms.Task(pdigiTask_nogen, fixGenInfoTask, tpPruningTask)

doAllDigi = cms.Sequence(doAllDigiTask)
pdigi = cms.Sequence(pdigiTask)
3 changes: 2 additions & 1 deletion Configuration/StandardSequences/python/RecoSim_cff.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import FWCore.ParameterSet.Config as cms

from SimMuon.MCTruth.muonSimClassificationByHits_cff import *
from SimTracker.TrackAssociation.trackPrunedMCMatchTask_cff import *

recosim = cms.Task( muonSimClassificationByHitsTask )
recosim = cms.Task( muonSimClassificationByHitsTask, trackPrunedMCMatchTask )
Original file line number Diff line number Diff line change
@@ -100,6 +100,8 @@
outputCommands = cms.untracked.vstring(
'keep patPackedGenParticles_packedGenParticles_*_*',
'keep recoGenParticles_prunedGenParticles_*_*',
'keep *_packedPFCandidateToGenAssociation_*_*',
'keep *_lostTracksToGenAssociation_*_*',
'keep LHEEventProduct_*_*_*',
'keep GenFilterInfo_*_*_*',
'keep GenLumiInfoHeader_generator_*_*',
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import FWCore.ParameterSet.Config as cms

packedPFCandidateToGenAssociation = cms.EDProducer("PackedCandidateGenAssociationProducer",
trackToGenAssoc = cms.InputTag("prunedTrackMCMatch"),
)

lostTracksToGenAssociation = cms.EDProducer("PackedCandidateGenAssociationProducer",
trackToGenAssoc = cms.InputTag("prunedTrackMCMatch"),
trackToPackedCandidatesAssoc = cms.InputTag("lostTracks")
)

packedCandidateToGenAssociationTask = cms.Task(packedPFCandidateToGenAssociation,lostTracksToGenAssociation)
2 changes: 2 additions & 0 deletions PhysicsTools/PatAlgos/python/slimming/slimming_cff.py
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
from PhysicsTools.PatAlgos.slimming.offlineSlimmedPrimaryVerticesWithBS_cfi import *
from PhysicsTools.PatAlgos.slimming.primaryVertexAssociation_cfi import *
from PhysicsTools.PatAlgos.slimming.genParticles_cff import *
from PhysicsTools.PatAlgos.slimming.genParticleAssociation_cff import *
from PhysicsTools.PatAlgos.slimming.selectedPatTrigger_cfi import *
from PhysicsTools.PatAlgos.slimming.slimmedPatTrigger_cfi import *
from PhysicsTools.PatAlgos.slimming.slimmedJets_cfi import *
@@ -39,6 +40,7 @@
primaryVertexAssociation,
primaryVertexWithBSAssociation,
genParticlesTask,
packedCandidateToGenAssociationTask,
selectedPatTrigger,
slimmedPatTrigger,
slimmedCaloJets,
7 changes: 7 additions & 0 deletions SimTracker/Configuration/python/SimTrackerLinks_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import FWCore.ParameterSet.Config as cms

from SimTracker.TrackAssociation.trackingParticlePrunerByGen_cfi import *
from SimTracker.TrackAssociation.digiSimLinkPruner_cfi import *


tpPruningTask = cms.Task(prunedTrackingParticles,prunedDigiSimLinks)
13 changes: 10 additions & 3 deletions SimTracker/Configuration/python/SimTracker_EventContent_cff.py
Original file line number Diff line number Diff line change
@@ -37,15 +37,22 @@
)
#RAW content
SimTrackerRAW = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_allTrackMCMatch_*_*')
outputCommands = cms.untracked.vstring(
'keep *_allTrackMCMatch_*_*',
'keep *_prunedTrackingParticles_*_*',
'keep *_prunedDigiSimLinks_*_*')
)
#RECO content
SimTrackerRECO = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_allTrackMCMatch_*_*')
outputCommands = cms.untracked.vstring(
'keep *_allTrackMCMatch_*_*',
'keep *_prunedTrackMCMatch_*_*')
)
#AOD content
SimTrackerAOD = cms.PSet(
outputCommands = cms.untracked.vstring('keep *_allTrackMCMatch_*_*')
outputCommands = cms.untracked.vstring(
'keep *_allTrackMCMatch_*_*',
'keep *_prunedTrackMCMatch_*_*')
)

# Event content for premixing library
4 changes: 2 additions & 2 deletions SimTracker/TrackAssociation/plugins/DigiSimLinkPruner.cc
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
//
/**\class DigiSimLinkPruner DigiSimLinkPruner.cc SimTracker/TrackAssociation/plugins/DigiSimLinkPruner.cc
Description: [one line class summary]
Description: Produce a pruned version of the DigiSimLinks collection based on the association to a collection of TrackingParticles
Implementation:
[Notes on implementation]
@@ -156,7 +156,7 @@ void DigiSimLinkPruner::fillDescriptions(edm::ConfigurationDescriptions& descrip
desc.addOptional<edm::InputTag>("stripSimLinkSrc");
desc.addOptional<edm::InputTag>("phase2OTSimLinkSrc");

descriptions.add("pruneSimLinkDefault", desc);
descriptions.add("digiSimLinkPrunerDefault", desc);
}

//define this as a plug-in
Original file line number Diff line number Diff line change
@@ -124,7 +124,7 @@ void PackedCandidateGenAssociationProducer::fillDescriptions(edm::ConfigurationD
desc.add<edm::InputTag>("trackToGenAssoc");
desc.add<edm::InputTag>("tracks", edm::InputTag("generalTracks"));

descriptions.add("packedCandidatesGenAssociation", desc);
descriptions.add("packedCandidatesGenAssociationDefault", desc);
}

DEFINE_FWK_MODULE(PackedCandidateGenAssociationProducer);
Original file line number Diff line number Diff line change
@@ -332,7 +332,7 @@ void TrackingParticleSelectorByGen::fillDescriptions(edm::ConfigurationDescripti
desc.add<edm::InputTag>("genParticles", edm::InputTag("genParticles"));
desc.add<vector<string>>("select");

descriptions.add("selectTPs", desc);
descriptions.add("tpSelectorByGenDefault", desc);
}

//define this as a plug-in
18 changes: 18 additions & 0 deletions SimTracker/TrackAssociation/python/digiSimLinkPruner_cfi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import FWCore.ParameterSet.Config as cms

prunedDigiSimLinks = cms.EDProducer("DigiSimLinkPruner",
stripSimLinkSrc = cms.InputTag("simSiStripDigis"),
trackingParticles = cms.InputTag('prunedTrackingParticles')
)

_prunedDigiSimLinks_phase2 = cms.EDProducer("DigiSimLinkPruner",
pixelSimLinkSrc = cms.InputTag("simSiPixelDigis", "Pixel"),
phase2OTSimLinkSrc = cms.InputTag("simSiPixelDigis","Tracker"),
trackingParticles = cms.InputTag('prunedTrackingParticles')
)

from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
phase2_tracker.toReplaceWith(
prunedDigiSimLinks,
_prunedDigiSimLinks_phase2
)
23 changes: 23 additions & 0 deletions SimTracker/TrackAssociation/python/trackPrunedMCMatchTask_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import FWCore.ParameterSet.Config as cms

from SimTracker.TrackerHitAssociation.tpClusterProducer_cfi import *
from SimTracker.TrackAssociatorProducers.quickTrackAssociatorByHits_cfi import *

prunedTpClusterProducer = tpClusterProducer.clone(
trackingParticleSrc = cms.InputTag("prunedTrackingParticles"),
pixelSimLinkSrc = cms.InputTag("prunedDigiSimLinks", "siPixel"),
stripSimLinkSrc = cms.InputTag("prunedDigiSimLinks", "siStrip")
)

quickPrunedTrackAssociatorByHits = quickTrackAssociatorByHits.clone(
cluster2TPSrc = "prunedTpClusterProducer"
)

prunedTrackMCMatch = cms.EDProducer("MCTrackMatcher",
trackingParticles = cms.InputTag("prunedTrackingParticles"),
tracks = cms.InputTag("generalTracks"),
genParticles = cms.InputTag("genParticles"),
associator = cms.string('quickPrunedTrackAssociatorByHits')
)

trackPrunedMCMatchTask = cms.Task(prunedTpClusterProducer,quickPrunedTrackAssociatorByHits,prunedTrackMCMatch)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import FWCore.ParameterSet.Config as cms

prunedTrackingParticles = cms.EDProducer("TrackingParticleSelectorByGen",
select = cms.vstring(
"drop *", # this is the default
"keep++ (400 < abs(pdgId) < 600) || (4000 < abs(pdgId) < 6000)", # keep decays for BPH studies
"drop status != 1", # keep only status == 1
"drop charge == 0"
)
)