Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #17723 from abbiendi/devNewValidation_90X_Customise
Improved muon track validation (new code + customization)
- Loading branch information
Showing
28 changed files
with
4,019 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
import FWCore.ParameterSet.Config as cms | ||
|
||
|
||
NewMuonAssociatorByHitsCommonParameters = cms.PSet( | ||
dumpInputCollections = cms.untracked.bool(False), | ||
# | ||
#....... general input parameters | ||
# | ||
# include invalid muon hits | ||
includeZeroHitMuons = cms.bool(True), | ||
# | ||
# accept to match only tracker/muon stub of globalMuons | ||
acceptOneStubMatchings = cms.bool(False), | ||
# | ||
# switches to be set according to the input Track collection | ||
UseTracker = cms.bool(True), | ||
UseMuon = cms.bool(True), | ||
# | ||
# cuts for the muon stub | ||
AbsoluteNumberOfHits_muon = cms.bool(False), | ||
NHitCut_muon = cms.uint32(0), | ||
EfficiencyCut_muon = cms.double(0.), | ||
PurityCut_muon = cms.double(0.), | ||
# | ||
# cuts for the tracker stub | ||
AbsoluteNumberOfHits_track = cms.bool(False), | ||
NHitCut_track = cms.uint32(0), | ||
EfficiencyCut_track = cms.double(0.), | ||
PurityCut_track = cms.double(0.), | ||
# | ||
# switches for the tracker stub | ||
UsePixels = cms.bool(True), | ||
UseGrouped = cms.bool(True), | ||
UseSplitting = cms.bool(True), | ||
ThreeHitTracksAreSpecial = cms.bool(False), | ||
# | ||
# for DT Hit associator | ||
crossingframe = cms.bool(False), | ||
simtracksTag = cms.InputTag("g4SimHits"), | ||
simtracksXFTag = cms.InputTag("mix","g4SimHits"), | ||
# | ||
DTsimhitsTag = cms.InputTag("g4SimHits","MuonDTHits"), | ||
DTsimhitsXFTag = cms.InputTag("mix","g4SimHitsMuonDTHits"), | ||
DTdigiTag = cms.InputTag("simMuonDTDigis"), | ||
DTdigisimlinkTag = cms.InputTag("simMuonDTDigis"), | ||
DTrechitTag = cms.InputTag("dt1DRecHits"), | ||
# | ||
dumpDT = cms.bool(False), | ||
links_exist = cms.bool(True), | ||
associatorByWire = cms.bool(False), | ||
# | ||
# for CSC Hit associator | ||
CSCsimHitsTag = cms.InputTag("g4SimHits","MuonCSCHits"), | ||
CSCsimHitsXFTag = cms.InputTag("mix","g4SimHitsMuonCSCHits"), | ||
CSClinksTag = cms.InputTag("simMuonCSCDigis","MuonCSCStripDigiSimLinks"), | ||
CSCwireLinksTag = cms.InputTag("simMuonCSCDigis","MuonCSCWireDigiSimLinks"), | ||
# | ||
# for RPC Hit associator | ||
RPCsimhitsTag = cms.InputTag("g4SimHits","MuonRPCHits"), | ||
RPCsimhitsXFTag = cms.InputTag("mix","g4SimHitsMuonRPCHits"), | ||
RPCdigisimlinkTag = cms.InputTag("simMuonRPCDigis","RPCDigiSimLink"), | ||
# | ||
# for GEM Hit associator | ||
useGEMs = cms.bool(False), | ||
GEMsimhitsTag = cms.InputTag("g4SimHits","MuonGEMHits"), | ||
GEMsimhitsXFTag = cms.InputTag("mix","g4SimHitsMuonGEMHits"), | ||
GEMdigisimlinkTag = cms.InputTag("simMuonGEMDigis","GEM"), | ||
# | ||
# for Tracker Hit associator | ||
# | ||
associatePixel = cms.bool(True), | ||
associateStrip = cms.bool(True), | ||
pixelSimLinkSrc = cms.InputTag("simSiPixelDigis"), | ||
stripSimLinkSrc = cms.InputTag("simSiStripDigis"), | ||
associateRecoTracks = cms.bool(True), | ||
# | ||
ROUList = cms.vstring('TrackerHitsTIBLowTof', | ||
'TrackerHitsTIBHighTof', | ||
'TrackerHitsTIDLowTof', | ||
'TrackerHitsTIDHighTof', | ||
'TrackerHitsTOBLowTof', | ||
'TrackerHitsTOBHighTof', | ||
'TrackerHitsTECLowTof', | ||
'TrackerHitsTECHighTof', | ||
'TrackerHitsPixelBarrelLowTof', | ||
'TrackerHitsPixelBarrelHighTof', | ||
'TrackerHitsPixelEndcapLowTof', | ||
'TrackerHitsPixelEndcapHighTof'), | ||
# | ||
# to associate to reco::Muon segments | ||
inputDTRecSegment4DCollection = cms.InputTag("dt4DSegments"), | ||
inputCSCSegmentCollection = cms.InputTag("cscSegments"), | ||
) | ||
|
||
|
||
from Configuration.Eras.Modifier_fastSim_cff import fastSim | ||
if fastSim.isChosen(): | ||
#if True: | ||
obj = NewMuonAssociatorByHitsCommonParameters | ||
obj.simtracksTag = "famosSimHits" | ||
obj.DTsimhitsTag = "MuonSimHits:MuonDTHits" | ||
obj.CSCsimHitsTag = "MuonSimHits:MuonCSCHits" | ||
obj.RPCsimhitsTag = "MuonSimHits:MuonRPCHits" | ||
obj.simtracksXFTag = "mix:famosSimHits" | ||
obj.DTsimhitsXFTag = "mix:MuonSimHitsMuonDTHits" | ||
obj.CSCsimHitsXFTag = "mix:MuonSimHitsMuonCSCHits" | ||
obj.RPCsimhitsXFTag = "mix:MuonSimHitsMuonRPCHits" | ||
obj.ROUList = ['famosSimHitsTrackerHits'] | ||
|
||
|
||
NewMuonAssociatorByHits = cms.EDProducer("MuonAssociatorEDProducer", | ||
# COMMON CONFIGURATION | ||
NewMuonAssociatorByHitsCommonParameters, | ||
# for Muon Track association | ||
# | ||
# input collections | ||
# | ||
# ... reco::Track collection | ||
# tracksTag = cms.InputTag("standAloneMuons"), | ||
# tracksTag = cms.InputTag("standAloneMuons","UpdatedAtVtx"), | ||
# tracksTag = cms.InputTag("standAloneSETMuons"), | ||
# tracksTag = cms.InputTag("standAloneSETMuons","UpdatedAtVtx"), | ||
# tracksTag = cms.InputTag("cosmicMuons"), | ||
tracksTag = cms.InputTag("globalMuons"), | ||
# tracksTag = cms.InputTag("tevMuons","firstHit"), | ||
# tracksTag = cms.InputTag("tevMuons","picky"), | ||
# tracksTag = cms.InputTag("globalSETMuons"), | ||
# tracksTag = cms.InputTag("globalCosmicMuons"), | ||
# tracksTag = cms.InputTag("generalTracks"), | ||
# tracksTag = cms.InputTag("ctfWithMaterialTracksP5LHCNavigation"), | ||
# tracksTag = cms.InputTag("hltL2Muons"), | ||
# tracksTag = cms.InputTag("hltL2Muons","UpdatedAtVtx"), | ||
# tracksTag = cms.InputTag("hltL3Muons") | ||
# tracksTag = cms.InputTag("hltL3Muons","L2Seeded") | ||
# tracksTag = cms.InputTag("hltL3TkTracksFromL2") | ||
# | ||
# ... TrackingParticle collection | ||
tpTag = cms.InputTag("mix","MergedTrackTruth"), | ||
ignoreMissingTrackCollection = cms.untracked.bool(False), | ||
) | ||
|
||
from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM | ||
run3_GEM.toModify( NewMuonAssociatorByHits, useGEMs = cms.bool(True) ) | ||
from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker | ||
phase2_tracker.toModify( NewMuonAssociatorByHits, pixelSimLinkSrc = "simSiPixelDigis:Pixel" ) | ||
phase2_tracker.toModify( NewMuonAssociatorByHits, stripSimLinkSrc = "simSiPixelDigis:Tracker" ) | ||
|
107 changes: 107 additions & 0 deletions
107
Validation/RecoHI/python/NewMuonValidationHeavyIons_cff.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
import FWCore.ParameterSet.Config as cms | ||
|
||
from Validation.RecoHI.track_selectors_cff import * | ||
from Validation.RecoMuon.NewMuonValidation_cff import * | ||
|
||
# MuonAssociation labels; hit-by-hit matching only,MuonAssociator | ||
# | ||
import SimMuon.MCTruth.NewMuonAssociatorByHits_cfi | ||
hiMABH = SimMuon.MCTruth.NewMuonAssociatorByHits_cfi.NewMuonAssociatorByHits.clone() | ||
# DEFAULTS ################################### | ||
# EfficiencyCut_track = cms.double(0.), | ||
# PurityCut_track = cms.double(0.), | ||
# EfficiencyCut_muon = cms.double(0.), | ||
# PurityCut_muon = cms.double(0.), | ||
# includeZeroHitMuons = cms.bool(True), | ||
# acceptOneStubMatchings = cms.bool(False), | ||
############################################## | ||
hiMABH.tpTag = 'NEWcutsTpMuons' | ||
#hiMABH.acceptOneStubMatchings = cms.bool(True) # this was the OLD setting | ||
hiMABH.PurityCut_track = 0.75 | ||
hiMABH.PurityCut_muon = 0.75 | ||
#hiMABH.EfficiencyCut_track = 0.5 # maybe this could be added | ||
#hiMABH.includeZeroHitMuons = False # maybe this could be added | ||
################################################ | ||
|
||
# sim to tracker tracks, | ||
NEWtpToTkMuonAssociationHI = hiMABH.clone() | ||
NEWtpToTkMuonAssociationHI.tracksTag = 'NEWcutsRecoTrkMuons' | ||
NEWtpToTkMuonAssociationHI.UseTracker = True | ||
NEWtpToTkMuonAssociationHI.UseMuon = False | ||
|
||
# sim to sta, and sta:updatedAtVtx | ||
NEWtpToStaMuonAssociationHI = hiMABH.clone() | ||
NEWtpToStaMuonAssociationHI.tracksTag = 'standAloneMuons' | ||
NEWtpToStaMuonAssociationHI.UseTracker = False | ||
NEWtpToStaMuonAssociationHI.UseMuon = True | ||
|
||
NEWtpToStaUpdMuonAssociationHI = hiMABH.clone() | ||
NEWtpToStaUpdMuonAssociationHI.tracksTag = 'standAloneMuons:UpdatedAtVtx' | ||
NEWtpToStaUpdMuonAssociationHI.UseTracker = False | ||
NEWtpToStaUpdMuonAssociationHI.UseMuon = True | ||
|
||
# sim to glb track | ||
NEWtpToGlbMuonAssociationHI = hiMABH.clone() | ||
NEWtpToGlbMuonAssociationHI.tracksTag = 'globalMuons' | ||
NEWtpToGlbMuonAssociationHI.UseTracker = True | ||
NEWtpToGlbMuonAssociationHI.UseMuon = True | ||
|
||
|
||
# Muon association sequences | ||
# (some are commented out until timing is addressed) | ||
NEWhiMuonAssociation_seq = cms.Sequence( | ||
NEWtpToTkMuonAssociationHI+ | ||
NEWtpToStaMuonAssociationHI+ | ||
NEWtpToStaUpdMuonAssociationHI+ | ||
NEWtpToGlbMuonAssociationHI | ||
) | ||
|
||
#---------------------------------------- | ||
|
||
from Validation.RecoMuon.histoParameters_cff import * | ||
|
||
import Validation.RecoMuon.NewMuonTrackValidator_cfi | ||
MTVhi = Validation.RecoMuon.NewMuonTrackValidator_cfi.NewMuonTrackValidator.clone() | ||
MTVhi.label_tp_effic = cms.InputTag("NEWcutsTpMuons") | ||
MTVhi.label_tp_fake = cms.InputTag("NEWcutsTpMuons") | ||
MTVhi.maxPt = cms.double(100) | ||
|
||
# MuonTrackValidator parameters | ||
NEWtrkMuonTrackVMuonAssocHI = MTVhi.clone() | ||
NEWtrkMuonTrackVMuonAssocHI.associatormap = 'NEWtpToTkMuonAssociationHI' | ||
NEWtrkMuonTrackVMuonAssocHI.label = ['NEWcutsRecoTrkMuons'] | ||
NEWtrkMuonTrackVMuonAssocHI.muonHistoParameters = trkMuonHistoParameters | ||
|
||
NEWglbMuonTrackVMuonAssocHI = MTVhi.clone() | ||
NEWglbMuonTrackVMuonAssocHI.associatormap = 'NEWtpToGlbMuonAssociationHI' | ||
NEWglbMuonTrackVMuonAssocHI.label = ['globalMuons'] | ||
NEWglbMuonTrackVMuonAssocHI.muonHistoParameters = glbMuonHistoParameters | ||
|
||
NEWstaMuonTrackVMuonAssocHI = MTVhi.clone() | ||
NEWstaMuonTrackVMuonAssocHI.associatormap = 'NEWtpToStaMuonAssociationHI' | ||
NEWstaMuonTrackVMuonAssocHI.label = ('standAloneMuons',) | ||
NEWstaMuonTrackVMuonAssocHI.muonHistoParameters = staMuonHistoParameters | ||
|
||
NEWstaUpdMuonTrackVMuonAssocHI = MTVhi.clone() | ||
NEWstaUpdMuonTrackVMuonAssocHI.associatormap = 'NEWtpToStaUpdMuonAssociationHI' | ||
NEWstaUpdMuonTrackVMuonAssocHI.label = ('standAloneMuons:UpdatedAtVtx',) | ||
NEWstaUpdMuonTrackVMuonAssocHI.muonHistoParameters = staUpdMuonHistoParameters | ||
|
||
|
||
# Muon validation sequences | ||
NEWhiMuonValidation_seq = cms.Sequence( | ||
NEWtrkMuonTrackVMuonAssocHI+ | ||
NEWstaMuonTrackVMuonAssocHI+ | ||
NEWstaUpdMuonTrackVMuonAssocHI+ | ||
NEWglbMuonTrackVMuonAssocHI | ||
) | ||
|
||
# HI muon prevalidation | ||
NEWhiRecoMuonPrevalidation = cms.Sequence( | ||
NEWcutsRecoTrkMuons | ||
* NEWcutsTpMuons | ||
* NEWhiMuonAssociation_seq | ||
) | ||
|
||
# HI muon validation sequence | ||
NEWhiRecoMuonValidation = cms.Sequence( NEWhiMuonValidation_seq ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import FWCore.ParameterSet.Config as cms | ||
|
||
# pt-selection of reco tracks | ||
import PhysicsTools.RecoAlgos.recoTrackSelector_cfi | ||
NEWcutsRecoTrkMuons = PhysicsTools.RecoAlgos.recoTrackSelector_cfi.recoTrackSelector.clone() | ||
NEWcutsRecoTrkMuons.src = "hiGeneralTracks" | ||
NEWcutsRecoTrkMuons.quality = [] | ||
NEWcutsRecoTrkMuons.ptMin = 0.0 | ||
|
||
# pt-selection of tracking particles | ||
import PhysicsTools.RecoAlgos.trackingParticleSelector_cfi | ||
NEWcutsTpMuons = PhysicsTools.RecoAlgos.trackingParticleSelector_cfi.trackingParticleSelector.clone() | ||
NEWcutsTpMuons.ptMin = 0.0 | ||
|
Oops, something went wrong.