Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:33:09

0001 #
0002 # Production configuration for FullSim: muon track validation using MuonAssociatorByHits
0003 #
0004 import FWCore.ParameterSet.Config as cms
0005 
0006 from Validation.RecoMuon.selectors_cff import *
0007 from Validation.RecoMuon.track_selectors_cff import *
0008 from Validation.RecoMuon.associators_cff import *
0009 from Validation.RecoMuon.histoParameters_cff import *
0010 
0011 from Validation.RecoMuon.RecoMuonValidator_cff import *
0012 from Validation.RecoMuon.RecoDisplacedMuonValidator_cff import *
0013 
0014 import Validation.RecoMuon.MuonTrackValidator_cfi
0015 MTV = Validation.RecoMuon.MuonTrackValidator_cfi.muonTrackValidator.clone(
0016 # DEFAULTS ###################################
0017 #    label_tp = "mix:MergedTrackTruth",
0018 #    label_tp_refvector = False,
0019 #    muonTPSelector = cms.PSet(muonTPSet),
0020 ##############################################
0021     label_tp = ("TPmu"),
0022     label_tp_refvector = True
0023 )
0024 MTV.muonTPSelector.src = ("TPmu")
0025 ##############################################
0026 
0027 trkMuonTrackVTrackAssoc = MTV.clone(
0028     associatormap = 'tpToTkmuTrackAssociation',
0029     associators = ('trackAssociatorByHits',),
0030     #label = ('generalTracks',),
0031     label = ('probeTracks',),
0032     label_tp = ("TPtrack"),
0033     muonHistoParameters = trkMuonHistoParameters
0034 )
0035 trkMuonTrackVTrackAssoc.muonTPSelector.src = ("TPtrack")
0036 # MuonAssociatorByHits used for all track collections
0037 
0038 trkProbeTrackVMuonAssoc = MTV.clone(
0039     associatormap = 'tpToTkMuonAssociation',
0040     #label = ('generalTracks',),
0041     label = ('probeTracks',),
0042     label_tp = ("TPtrack"),
0043     muonHistoParameters = trkMuonHistoParameters
0044 )
0045 trkProbeTrackVMuonAssoc.muonTPSelector.src = ("TPtrack")
0046 staSeedTrackVMuonAssoc = MTV.clone(
0047     associatormap = 'tpToStaSeedAssociation',
0048     label = ('seedsOfSTAmuons',),
0049     muonHistoParameters = staSeedMuonHistoParameters
0050 )
0051 staMuonTrackVMuonAssoc = MTV.clone(
0052     associatormap = 'tpToStaMuonAssociation',
0053     label = ('standAloneMuons',),
0054     muonHistoParameters = staMuonHistoParameters
0055 )
0056 staUpdMuonTrackVMuonAssoc = MTV.clone(
0057     associatormap = 'tpToStaUpdMuonAssociation',
0058     label = ('standAloneMuons:UpdatedAtVtx',),
0059     muonHistoParameters = staUpdMuonHistoParameters
0060 )
0061 glbMuonTrackVMuonAssoc = MTV.clone(
0062     associatormap = 'tpToGlbMuonAssociation',
0063     label = ('globalMuons',),
0064     muonHistoParameters = glbMuonHistoParameters
0065 )
0066 staRefitMuonTrackVMuonAssoc = MTV.clone(
0067     associatormap = 'tpToStaRefitMuonAssociation',
0068     label = ('refittedStandAloneMuons',),
0069     muonHistoParameters = staMuonHistoParameters
0070 )
0071 staRefitUpdMuonTrackVMuonAssoc = MTV.clone(
0072     associatormap = 'tpToStaRefitUpdMuonAssociation',
0073     label = ('refittedStandAloneMuons:UpdatedAtVtx',),
0074     muonHistoParameters = staUpdMuonHistoParameters
0075 )
0076 displacedTrackVMuonAssoc = MTV.clone(
0077     associatormap = 'tpToDisplacedTrkMuonAssociation',
0078     label = ('displacedTracks',),
0079     label_tp = ("TPtrack"),
0080     muonTPSelector = displacedMuonTPSet,
0081     muonHistoParameters = displacedTrkMuonHistoParameters
0082 )
0083 displacedTrackVMuonAssoc.muonTPSelector.src = ("TPtrack")
0084 
0085 displacedStaSeedTrackVMuonAssoc = MTV.clone(
0086     associatormap = 'tpToDisplacedStaSeedAssociation',
0087     label = ('seedsOfDisplacedSTAmuons',),
0088     muonTPSelector = displacedMuonTPSet,
0089     muonHistoParameters = displacedStaSeedMuonHistoParameters
0090 )
0091 displacedStaSeedTrackVMuonAssoc.muonTPSelector.src = ("TPmu")
0092 
0093 displacedStaMuonTrackVMuonAssoc = MTV.clone(
0094     associatormap = 'tpToDisplacedStaMuonAssociation',
0095     label = ('displacedStandAloneMuons',),
0096     muonTPSelector = displacedMuonTPSet,
0097     muonHistoParameters = displacedStaMuonHistoParameters
0098 )
0099 displacedStaMuonTrackVMuonAssoc.muonTPSelector.src = ("TPmu")
0100 
0101 displacedGlbMuonTrackVMuonAssoc = MTV.clone(
0102     associatormap = 'tpToDisplacedGlbMuonAssociation',
0103     label = ('displacedGlobalMuons',),
0104     muonTPSelector = displacedMuonTPSet,
0105     muonHistoParameters = displacedGlbMuonHistoParameters
0106 )
0107 displacedGlbMuonTrackVMuonAssoc.muonTPSelector.src = ("TPmu")
0108 
0109 tevMuonFirstTrackVMuonAssoc = MTV.clone(
0110     associatormap = 'tpToTevFirstMuonAssociation',
0111     label = ('tevMuons:firstHit',),
0112     muonHistoParameters = glbMuonHistoParameters
0113 )
0114 tevMuonPickyTrackVMuonAssoc = MTV.clone(
0115     associatormap = 'tpToTevPickyMuonAssociation',
0116     label = ('tevMuons:picky',),
0117     muonHistoParameters = glbMuonHistoParameters
0118 )
0119 tevMuonDytTrackVMuonAssoc = MTV.clone(
0120     associatormap = 'tpToTevDytMuonAssociation',
0121     label = ('tevMuons:dyt',),
0122     muonHistoParameters = glbMuonHistoParameters
0123 )
0124 tunepMuonTrackVMuonAssoc = MTV.clone(
0125     associatormap = 'tpToTunePMuonAssociation',
0126     label = ('tunepMuonTracks',),
0127     muonHistoParameters = glbMuonHistoParameters
0128 )
0129 pfMuonTrackVMuonAssoc = MTV.clone(
0130     associatormap = 'tpToPFMuonAssociation',
0131     label = ('pfMuonTracks',),
0132     label_tp = ("TPpfmu"),
0133     muonHistoParameters = glbMuonHistoParameters
0134 )
0135 pfMuonTrackVMuonAssoc.muonTPSelector.src = ("TPpfmu")
0136 
0137 recomuMuonTrackVMuonAssoc = MTV.clone(
0138     associatormap = 'tpTorecoMuonMuonAssociation',
0139     label = ('recoMuonTracks',),
0140     muonHistoParameters = glbMuonHistoParameters
0141 )
0142 gemMuonTrackVMuonAssoc = MTV.clone(
0143     associatormap = 'tpToGEMMuonMuonAssociation',
0144     label = ('extractGemMuons',),
0145     muonHistoParameters = gemMuonHistoParameters
0146 )
0147 me0MuonTrackVMuonAssoc = MTV.clone(
0148     associatormap = 'tpToME0MuonMuonAssociation',
0149     label = ('extractMe0Muons',),
0150     muonTPSelector = me0MuonTPSet,
0151     muonHistoParameters = me0MuonHistoParameters
0152 )
0153 me0MuonTrackVMuonAssoc.muonTPSelector.src = ("TPmu")
0154 
0155 MTVcosmic = Validation.RecoMuon.MuonTrackValidator_cfi.muonTrackValidator.clone(
0156 # DEFAULTS ###################################
0157 #    label_tp = "mix:MergedTrackTruth",
0158 #    label_tp_refvector = False,
0159 ##############################################
0160     parametersDefiner = 'CosmicParametersDefinerForTP',
0161     muonTPSelector = cosmicMuonTPSet
0162 )
0163 ##############################################
0164 
0165 # cosmics 2-leg reco
0166 trkCosmicMuonTrackVSelMuonAssoc = MTVcosmic.clone(
0167     associatormap = 'tpToTkCosmicSelMuonAssociation',
0168     label = ('ctfWithMaterialTracksP5LHCNavigation',),
0169     BiDirectional_RecoToSim_association = False,
0170     muonHistoParameters = trkCosmicMuonHistoParameters
0171 )
0172 staCosmicMuonTrackVSelMuonAssoc = MTVcosmic.clone(
0173     associatormap = 'tpToStaCosmicSelMuonAssociation',
0174     label = ('cosmicMuons',),
0175     BiDirectional_RecoToSim_association = False,
0176     muonHistoParameters = staCosmicMuonHistoParameters
0177 )
0178 glbCosmicMuonTrackVSelMuonAssoc = MTVcosmic.clone(
0179     associatormap = 'tpToGlbCosmicSelMuonAssociation',
0180     label = ('globalCosmicMuons',),
0181     BiDirectional_RecoToSim_association = False,
0182     muonHistoParameters = glbCosmicMuonHistoParameters
0183 )
0184 # cosmics 1-leg reco
0185 trkCosmic1LegMuonTrackVSelMuonAssoc = MTVcosmic.clone(
0186     associatormap = 'tpToTkCosmic1LegSelMuonAssociation',
0187     label = ('ctfWithMaterialTracksP5',),
0188     muonHistoParameters = trkCosmic1LegMuonHistoParameters
0189 )
0190 staCosmic1LegMuonTrackVSelMuonAssoc = MTVcosmic.clone(
0191     associatormap = 'tpToStaCosmic1LegSelMuonAssociation',
0192     label = ('cosmicMuons1Leg',),
0193     muonHistoParameters = staCosmic1LegMuonHistoParameters
0194 )
0195 glbCosmic1LegMuonTrackVSelMuonAssoc = MTVcosmic.clone(
0196     associatormap = 'tpToGlbCosmic1LegSelMuonAssociation',
0197     label = ('globalCosmicMuons1Leg',),
0198     muonHistoParameters = glbCosmic1LegMuonHistoParameters
0199 )
0200 
0201 ##########################################################################                                                        
0202 ### Customization for Phase II samples                                                                                           
0203 ###
0204 
0205 trkMuonTrackVTrackAssoc_phase2 = trkMuonTrackVTrackAssoc.clone(                                                                  
0206     muonHistoParameters = trkMuonHistoParameters_phase2                                                
0207 )
0208 trkProbeTrackVMuonAssoc_phase2 = trkProbeTrackVMuonAssoc.clone(
0209     muonHistoParameters = trkMuonHistoParameters_phase2                                                
0210 )
0211 staSeedTrackVMuonAssoc_phase2 = staSeedTrackVMuonAssoc.clone(
0212     muonHistoParameters = staSeedMuonHistoParameters                                                    
0213 )
0214 staMuonTrackVMuonAssoc_phase2 = staMuonTrackVMuonAssoc.clone(
0215     muonHistoParameters = staMuonHistoParameters_phase2                                                 
0216 )
0217 staUpdMuonTrackVMuonAssoc_phase2 = staUpdMuonTrackVMuonAssoc.clone(
0218     muonHistoParameters = staUpdMuonHistoParameters_phase2                                          
0219 )
0220 glbMuonTrackVMuonAssoc_phase2 = glbMuonTrackVMuonAssoc.clone(
0221     muonHistoParameters = glbMuonHistoParameters_phase2                                                 
0222 )
0223 pfMuonTrackVMuonAssoc_phase2 = pfMuonTrackVMuonAssoc.clone(                                                                      
0224     muonHistoParameters = glbMuonHistoParameters_phase2                                                  
0225 )
0226 recomuMuonTrackVMuonAssoc_phase2 = recomuMuonTrackVMuonAssoc.clone(
0227     muonHistoParameters = recoMuonHistoParameters_phase2      
0228 )
0229 tunepMuonTrackVMuonAssoc_phase2 = tunepMuonTrackVMuonAssoc.clone(
0230     muonHistoParameters = glbMuonHistoParameters_phase2      
0231 )
0232 displacedStaMuonTrackVMuonAssoc_phase2 = displacedStaMuonTrackVMuonAssoc.clone(
0233     muonHistoParameters = displacedStaMuonHistoParameters_phase2   
0234 )
0235 displacedGlbMuonTrackVMuonAssoc_phase2 = displacedGlbMuonTrackVMuonAssoc.clone(
0236     muonHistoParameters = displacedGlbMuonHistoParameters_phase2               
0237 )
0238 displacedTrackVMuonAssoc_phase2 = displacedTrackVMuonAssoc.clone(
0239     muonHistoParameters = displacedTrkMuonHistoParameters_phase2   
0240 )
0241 gemMuonTrackVMuonAssoc_phase2 = gemMuonTrackVMuonAssoc.clone(
0242     muonHistoParameters = gemMuonHistoParameters_phase2 
0243 )
0244 
0245 ##################################################################################
0246 # Muon validation sequences using MuonTrackValidator
0247 #
0248 muonValidation_seq = cms.Sequence(
0249     probeTracks_seq + tpToTkMuonAssociation + trkProbeTrackVMuonAssoc
0250     +trackAssociatorByHits + tpToTkmuTrackAssociation + trkMuonTrackVTrackAssoc
0251     +seedsOfSTAmuons_seq + tpToStaSeedAssociation + staSeedTrackVMuonAssoc
0252     +tpToStaMuonAssociation + staMuonTrackVMuonAssoc
0253     +tpToStaUpdMuonAssociation + staUpdMuonTrackVMuonAssoc
0254     +tpToGlbMuonAssociation + glbMuonTrackVMuonAssoc
0255     +pfMuonTracks_seq + tpToPFMuonAssociation + pfMuonTrackVMuonAssoc
0256     +recoMuonTracks_seq + tpTorecoMuonMuonAssociation + recomuMuonTrackVMuonAssoc
0257 )
0258 
0259 muonValidation_noTABH_seq = cms.Sequence(
0260     probeTracks_seq + tpToTkMuonAssociation + trkProbeTrackVMuonAssoc
0261     +seedsOfSTAmuons_seq + tpToStaSeedAssociation + staSeedTrackVMuonAssoc
0262     +tpToStaMuonAssociation + staMuonTrackVMuonAssoc
0263     +tpToStaUpdMuonAssociation + staUpdMuonTrackVMuonAssoc
0264     +tpToGlbMuonAssociation + glbMuonTrackVMuonAssoc
0265     +pfMuonTracks_seq + tpToPFMuonAssociation + pfMuonTrackVMuonAssoc
0266     +recoMuonTracks_seq + tpTorecoMuonMuonAssociation + recomuMuonTrackVMuonAssoc
0267 )
0268 
0269 muonValidationTEV_seq = cms.Sequence(
0270     tpToTevFirstMuonAssociation + tevMuonFirstTrackVMuonAssoc
0271     +tpToTevPickyMuonAssociation + tevMuonPickyTrackVMuonAssoc
0272     +tpToTevDytMuonAssociation + tevMuonDytTrackVMuonAssoc
0273     +tunepMuonTracks_seq + tpToTunePMuonAssociation + tunepMuonTrackVMuonAssoc
0274 )
0275 
0276 muonValidationRefit_seq = cms.Sequence(
0277     tpToStaRefitMuonAssociation + staRefitMuonTrackVMuonAssoc
0278     +tpToStaRefitUpdMuonAssociation + staRefitUpdMuonTrackVMuonAssoc
0279 )
0280 
0281 muonValidationDisplaced_seq = cms.Sequence(
0282     seedsOfDisplacedSTAmuons_seq + tpToDisplacedStaSeedAssociation + displacedStaSeedTrackVMuonAssoc
0283     +tpToDisplacedStaMuonAssociation + displacedStaMuonTrackVMuonAssoc
0284     +tpToDisplacedTrkMuonAssociation + displacedTrackVMuonAssoc
0285     +tpToDisplacedGlbMuonAssociation + displacedGlbMuonTrackVMuonAssoc
0286 )
0287 
0288 recoMuonValidation_reduced_seq = cms.Sequence(
0289     probeTracks_seq + tpToTkMuonAssociation + trkProbeTrackVMuonAssoc_phase2
0290     +tpToStaUpdMuonAssociation + staUpdMuonTrackVMuonAssoc_phase2
0291     +tpToGlbMuonAssociation + glbMuonTrackVMuonAssoc_phase2
0292     +tunepMuonTracks_seq + tpToTunePMuonAssociation + tunepMuonTrackVMuonAssoc_phase2
0293     +pfMuonTracks_seq + tpToPFMuonAssociation + pfMuonTrackVMuonAssoc_phase2
0294     +recoMuonTracks_seq + tpTorecoMuonMuonAssociation + recomuMuonTrackVMuonAssoc_phase2
0295     +tpToDisplacedStaMuonAssociation + displacedStaMuonTrackVMuonAssoc_phase2
0296     +tpToDisplacedTrkMuonAssociation + displacedTrackVMuonAssoc_phase2
0297     +tpToDisplacedGlbMuonAssociation + displacedGlbMuonTrackVMuonAssoc_phase2
0298 )
0299 
0300 muonValidationCosmic_seq = cms.Sequence(
0301     tpToTkCosmicSelMuonAssociation + trkCosmicMuonTrackVSelMuonAssoc
0302     +tpToTkCosmic1LegSelMuonAssociation + trkCosmic1LegMuonTrackVSelMuonAssoc
0303     +tpToStaCosmicSelMuonAssociation + staCosmicMuonTrackVSelMuonAssoc
0304     +tpToStaCosmic1LegSelMuonAssociation + staCosmic1LegMuonTrackVSelMuonAssoc
0305     +tpToGlbCosmicSelMuonAssociation + glbCosmicMuonTrackVSelMuonAssoc
0306     +tpToGlbCosmic1LegSelMuonAssociation + glbCosmic1LegMuonTrackVSelMuonAssoc
0307 )
0308 
0309 gemMuonValidation = cms.Sequence(extractGemMuonsTracks_seq + tpToGEMMuonMuonAssociation + gemMuonTrackVMuonAssoc)
0310 me0MuonValidation = cms.Sequence(extractMe0MuonsTracks_seq + tpToME0MuonMuonAssociation + me0MuonTrackVMuonAssoc)
0311 
0312 gemMuonValidation_phase2 = cms.Sequence(extractGemMuonsTracks_seq + tpToGEMMuonMuonAssociation + gemMuonTrackVMuonAssoc_phase2) 
0313 
0314 ##########################################################################
0315 # The full offline muon validation sequence
0316 #
0317 recoMuonValidation = cms.Sequence( TPtrack_seq + TPmu_seq + TPpfmu_seq +
0318     muonValidation_seq + muonValidationTEV_seq + muonValidationRefit_seq + muonValidationDisplaced_seq + muonValidationRMV_seq + muonValidationRDMV_seq
0319     )
0320 
0321 # optionally omit TABH
0322 recoMuonValidation_noTABH = cms.Sequence( TPtrack_seq + TPmu_seq + TPpfmu_seq +
0323     muonValidation_noTABH_seq + muonValidationTEV_seq + muonValidationRefit_seq + muonValidationDisplaced_seq + muonValidationRMV_seq + muonValidationRDMV_seq
0324     )
0325 
0326 # ... and also displaced muons
0327 recoMuonValidation_noTABH_noDisplaced = cms.Sequence( TPtrack_seq + TPmu_seq + TPpfmu_seq +
0328     muonValidation_noTABH_seq + muonValidationTEV_seq + muonValidationRefit_seq + muonValidationRMV_seq
0329     )
0330 
0331 # no displaced muons in fastsim
0332 from Configuration.Eras.Modifier_fastSim_cff import fastSim
0333 fastSim.toReplaceWith(recoMuonValidation, cms.Sequence(cms.SequencePlaceholder("TPtrack") + cms.SequencePlaceholder("TPmu") + cms.SequencePlaceholder("TPpfmu") + muonValidation_seq + muonValidationTEV_seq + muonValidationRefit_seq + muonValidationRMV_seq))
0334 
0335 # sequence for cosmic muons
0336 recoCosmicMuonValidation = cms.Sequence(
0337     muonValidationCosmic_seq
0338     )
0339 
0340 # sequences for muon upgrades
0341 #
0342 _run3_muonValidation = recoMuonValidation.copy()
0343 _run3_muonValidation += gemMuonValidation
0344 
0345 _phase2_muonValidation = cms.Sequence(TPtrack_seq + TPmu_seq + TPpfmu_seq + recoMuonValidation_reduced_seq)
0346 _phase2_muonValidation += gemMuonValidation_phase2
0347 _phase2_muonValidation += me0MuonValidation
0348 
0349 _phase2_ge0_muonValidation =  cms.Sequence(TPtrack_seq + TPmu_seq + TPpfmu_seq + recoMuonValidation_reduced_seq)
0350 _phase2_ge0_muonValidation += gemMuonValidation_phase2
0351 
0352 from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
0353 run3_GEM.toReplaceWith( recoMuonValidation, _run3_muonValidation )
0354 from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon
0355 phase2_muon.toReplaceWith( recoMuonValidation, _phase2_muonValidation )
0356 from Configuration.Eras.Modifier_phase2_GE0_cff import phase2_GE0
0357 phase2_GE0.toReplaceWith( recoMuonValidation, _phase2_ge0_muonValidation )
0358