13 from TauAnalysis.MCEmbeddingTools.setDefaults
import setDefaults
16 inputProcess = process.customization_options.inputProcessRECO.value()
17 print "Input process set to '%s'" % inputProcess
19 process._Process__name =
"EmbeddedRECO"
22 process.DQMStore = cms.Service(
"DQMStore")
24 if process.customization_options.isMC.value():
28 process.genMuonsFromZs = cms.EDProducer(
"GenParticlesFromZsSelectorForMCEmbedding",
29 src = cms.InputTag(
"genParticles",
"", process.customization_options.inputProcessSIM.value()),
30 pdgIdsMothers = cms.vint32(23, 22),
31 pdgIdsDaughters = cms.vint32(13),
32 maxDaughters = cms.int32(2),
33 minDaughters = cms.int32(2),
34 before_or_afterFSR = cms.string(
"afterFSR"),
35 verbosity = cms.int32(0)
37 process.ProductionFilterSequence.replace(process.cleanedGeneralTracks, process.genMuonsFromZs*process.cleanedGeneralTracks)
38 process.ProductionFilterSequence.replace(process.cleanedParticleFlow, process.genMuonsFromZs*process.cleanedParticleFlow)
42 process.genMetCalo = cms.EDProducer(
"MixedGenMEtProducer",
43 srcGenParticles1 = cms.InputTag(
"genParticles",
"", process.customization_options.inputProcessSIM.value()),
44 srcGenParticles2 = cms.InputTag(
"genParticles"),
45 srcRemovedMuons = cms.InputTag(process.customization_options.ZmumuCollection.getModuleLabel()),
46 type = cms.string(
"calo"),
49 process.genMetTrue = process.genMetCalo.clone(
50 type = cms.string(
"pf")
57 process.genMetCalo = cms.EDProducer(
"MixedGenMEtProducer",
58 srcGenParticles1 = cms.InputTag(
""),
59 srcGenParticles2 = cms.InputTag(
"genParticles"),
60 srcRemovedMuons = cms.InputTag(process.customization_options.ZmumuCollection.getModuleLabel()),
61 type = cms.string(
"calo"),
62 isMC = cms.bool(
False)
64 process.genMetTrue = process.genMetCalo.clone(
65 type = cms.string(
"pf")
67 for p
in process.paths:
68 pth = getattr(process, p)
69 if "genParticles" in pth.moduleNames():
70 pth.replace(process.genParticles, process.genParticles*process.genMetCalo*process.genMetTrue)
73 print "Setting collection of Z->mumu candidates to '%s'" % process.customization_options.ZmumuCollection.getModuleLabel()
74 if not (hasattr(process,
"cleanedGeneralTracks")
and hasattr(process,
"cleanedParticleFlow")):
75 process.load(
"TauAnalysis.MCEmbeddingTools.PFEmbeddingSource_cff")
76 if process.customization_options.replaceGenOrRecMuonMomenta.value() ==
'gen':
77 print "Taking momenta of generated tau leptons from generator level muons"
78 process.generator.src = cms.InputTag(
'genMuonsFromZs')
79 elif process.customization_options.replaceGenOrRecMuonMomenta.value() ==
'rec':
80 print "Taking momenta of generated tau leptons from reconstructed muons"
81 process.generator.src = process.customization_options.ZmumuCollection
83 raise ValueError(
"Invalid Configuration parameter 'replaceGenOrRecMuonMomenta' = %s !!" % process.customization_options.replaceGenOrRecMuonMomenta.value())
85 process.cleanedGeneralTracks.selectedMuons = process.customization_options.ZmumuCollection
86 process.cleanedParticleFlow.selectedMuons = process.customization_options.ZmumuCollection
87 if process.customization_options.muonTrackCleaningMode.value() == 1:
88 process.cleanedGeneralTracks.removeDuplicates = cms.bool(
False)
89 process.cleanedParticleFlow.removeDuplicates = cms.bool(
False)
90 elif process.customization_options.muonTrackCleaningMode.value() == 2:
91 process.cleanedGeneralTracks.removeDuplicates = cms.bool(
True)
92 process.cleanedParticleFlow.removeDuplicates = cms.bool(
True)
94 raise ValueError(
"Invalid Configuration parameter 'muonTrackCleaningMode' = %i !!" % process.customization_options.muonTrackCleaningMode.value())
97 outputModule = process.output
101 outputModule = getattr(process, str(getattr(process,
list(process.endpaths)[-1])))
105 print "Changing event-content to AODSIM + Z->mumu candidates"
106 outputModule.outputCommands = cms.untracked.vstring(
"drop *")
107 outputModule.outputCommands.extend(process.AODSIMEventContent.outputCommands)
111 for item
in outputModule.outputCommands[:]:
112 if item ==
"drop *" and index != 0:
113 del outputModule.outputCommands[index]
118 outputModule.outputCommands.extend([
119 'keep *_genMuonsFromZs_*_*'
123 outputModule.outputCommands.extend([
124 'keep *_goodMuons_*_*',
125 'keep *_goodMuonsPFIso_*_*',
126 'keep *_highestPtMuPlus_*_*',
127 'keep *_highestPtMuMinus_*_*',
128 'keep *_highestPtMuPlusPFIso_*_*',
129 'keep *_highestPtMuMinusPFIso_*_*'
134 outputModule.outputCommands.extend([
135 'keep *_goldenZmumuCandidatesGe0IsoMuons_*_*',
136 'keep *_goldenZmumuCandidatesGe1IsoMuons_*_*',
137 'keep *_goldenZmumuCandidatesGe2IsoMuons_*_*',
138 'keep TH2DMEtoEDM_MEtoEDMConverter_*_*'
144 outputModule.outputCommands.extend([
145 'keep *_goldenZmumuFilterResult_*_*',
146 'keep *_genMuonRadiationFilter_*_*',
147 'keep *_muonRadiationFilter_*_*'
153 outputModule.outputCommands.extend([
154 'keep *HepMCProduct_generator_*_*'
159 outputModule.outputCommands.extend([
160 'keep *_muonCaloEnergyDepositsByDistance_totalDistanceMuPlus_*',
161 'keep *_muonCaloEnergyDepositsByDistance_totalEnergyDepositMuPlus_*',
162 'keep *_muonCaloEnergyDepositsByDistance_totalDistanceMuMinus_*',
163 'keep *_muonCaloEnergyDepositsByDistance_totalEnergyDepositMuMinus_*',
164 'keep *_castorreco_removedEnergyMuMinus*_*',
165 'keep *_castorreco_removedEnergyMuPlus*_*',
166 'keep *_hfreco_removedEnergyMuMinus*_*',
167 'keep *_hfreco_removedEnergyMuPlus*_*',
168 'keep *_ecalPreshowerRecHit_removedEnergyMuMinus*_*',
169 'keep *_ecalPreshowerRecHit_removedEnergyMuPlus*_*',
170 'keep *_ecalRecHit_removedEnergyMuMinus*_*',
171 'keep *_ecalRecHit_removedEnergyMuPlus*_*',
172 'keep *_hbhereco_removedEnergyMuMinus*_*',
173 'keep *_hbhereco_removedEnergyMuPlus*_*',
174 'keep *_horeco_removedEnergyMuMinus*_*',
175 'keep *_horeco_removedEnergyMuPlus*_*',
180 hltProcessName =
"HLT"
182 hltProcessName = __HLT__
186 process.dimuonsHLTFilter.TriggerResultsTag.processName = hltProcessName
187 process.goodZToMuMuAtLeast1HLT.TrigTag.processName = hltProcessName
188 process.goodZToMuMuAtLeast1HLT.triggerEvent.processName = hltProcessName
189 process.hltTrigReport,HLTriggerResults.processName = hltProcessName
195 if hasattr(process,
'HLTAnalyzerEndpath'):
196 process.HLTAnalyzerEndpath.remove(process.hltL1GtTrigReport)
199 print "Setting mdtau to %i" % process.customization_options.mdtau.value()
200 process.generator.Ztautau.TauolaOptions.InputCards.mdtau = process.customization_options.mdtau
201 if hasattr(process.generator,
"ParticleGun"):
202 process.generator.ParticleGun.ExternalDecays.Tauola.InputCards.mdtau = process.customization_options.mdtau
203 if process.customization_options.useTauolaPolarization.value():
204 print "Enabling tau polarization effects in TAUOLA"
208 process.generator.Ztautau.TauolaOptions.UseTauolaPolarization = cms.bool(
True)
210 print "Disabling tau polarization effects in TAUOLA"
213 process.generator.Ztautau.TauolaOptions.UseTauolaPolarization = cms.bool(
False)
215 print "Setting minVisibleTransverseMomentum to '%s'" % process.customization_options.minVisibleTransverseMomentum.value()
216 process.generator.Ztautau.minVisibleTransverseMomentum = process.customization_options.minVisibleTransverseMomentum
218 print "Setting transformationMode to %i" % process.customization_options.transformationMode.value()
219 process.generator.Ztautau.transformationMode = process.customization_options.transformationMode
221 print "Setting rfRotationAngle to %1.0f" % process.customization_options.rfRotationAngle.value()
222 process.generator.Ztautau.rfRotationAngle = process.customization_options.rfRotationAngle
224 if process.customization_options.overrideBeamSpot.value():
225 bs = cms.string(
"BeamSpotObjects_2009_LumiBased_SigmaZ_v28_offline")
226 process.GlobalTag.toGet = cms.VPSet(
228 record = cms.string(
"BeamSpotObjectsRcd"),
230 connect = cms.untracked.string(
"frontier://FrontierProd/CMS_COND_31X_BEAMSPOT")
233 print "BeamSpot in globaltag set to '%s'" % bs
235 print "BeamSpot in globaltag not changed"
239 print "Disabling gen. vertex smearing"
240 process.VtxSmeared = cms.EDProducer(
"FlatEvtVtxGenerator",
241 MaxZ = cms.double(0.0),
242 MaxX = cms.double(0.0),
243 MaxY = cms.double(0.0),
244 MinX = cms.double(0.0),
245 MinY = cms.double(0.0),
246 MinZ = cms.double(0.0),
247 TimeOffset = cms.double(0.0),
248 src = cms.InputTag(
"generator")
251 if process.customization_options.useJson.value():
252 print "Enabling event selection by JSON file"
253 import PhysicsTools.PythonAnalysis.LumiList
as LumiList
254 import FWCore.ParameterSet.Types
as CfgTypes
256 process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange())
257 process.source.lumisToProcess.extend(myLumis)
263 if process.customization_options.embeddingMode.value() ==
"RH" and process.customization_options.cleaningMode ==
'PF':
265 process.ProductionFilterSequence += process.rerunParticleFlowSequenceForPFMuonCleaning
269 process.generalTracksORG = process.generalTracks.clone()
270 process.generalTracks = cms.EDProducer(
"TrackMixer",
273 collection1 = cms.InputTag(
"generalTracksORG",
"",
"EmbeddedRECO"),
274 collection2 = cms.InputTag(
"cleanedGeneralTracks")
277 verbosity = cms.int32(0)
280 for p
in process.paths:
281 pth = getattr(process,p)
282 if "generalTracks" in pth.moduleNames():
283 pth.replace(process.generalTracks, process.generalTracksORG*process.generalTracks)
288 process.trackerDrivenElectronSeedsORG = process.trackerDrivenElectronSeeds.clone()
289 process.trackerDrivenElectronSeedsORG.TkColList = cms.VInputTag(
290 cms.InputTag(
"generalTracksORG")
293 process.trackerDrivenElectronSeeds = cms.EDProducer(
"ElectronSeedTrackRefUpdater",
294 PreIdLabel = process.trackerDrivenElectronSeedsORG.PreIdLabel,
295 PreGsfLabel = process.trackerDrivenElectronSeedsORG.PreGsfLabel,
296 targetTracks = cms.InputTag(
"generalTracks"),
297 inSeeds = cms.InputTag(
"trackerDrivenElectronSeedsORG", process.trackerDrivenElectronSeedsORG.PreGsfLabel.value()),
298 inPreId = cms.InputTag(
"trackerDrivenElectronSeedsORG", process.trackerDrivenElectronSeedsORG.PreIdLabel.value()),
301 for p
in process.paths:
302 pth = getattr(process,p)
303 if "trackerDrivenElectronSeeds" in pth.moduleNames():
304 pth.replace(process.trackerDrivenElectronSeeds, process.trackerDrivenElectronSeedsORG*process.trackerDrivenElectronSeeds)
309 outputModule.outputCommands.extend([
'keep recoTracks_generalTracksORG_*_*'])
314 process.electronGsfTracksORG = process.electronGsfTracks.clone()
315 process.electronGsfTracks = cms.EDProducer(
"GsfTrackMixer",
316 collection1 = cms.InputTag(
"electronGsfTracksORG",
"",
"EmbeddedRECO"),
317 collection2 = cms.InputTag(
"electronGsfTracks",
"", inputProcess)
320 process.gsfConversionTrackProducer.TrackProducer = cms.string(
'electronGsfTracksORG')
322 for p
in process.paths:
323 pth = getattr(process,p)
324 if "electronGsfTracks" in pth.moduleNames():
325 pth.replace(process.electronGsfTracks, process.electronGsfTracksORG*process.electronGsfTracks)
327 process.generalConversionTrackProducer.TrackProducer = cms.string(
'generalTracksORG')
328 process.uncleanedOnlyGeneralConversionTrackProducer.TrackProducer = cms.string(
'generalTracksORG')
330 process.gsfElectronsORG = process.gsfElectrons.clone()
331 process.gsfElectrons = cms.EDProducer(
"GSFElectronsMixer",
332 col1 = cms.InputTag(
"gsfElectronsORG"),
333 col2 = cms.InputTag(
"gsfElectrons",
"", inputProcess)
335 for p
in process.paths:
336 pth = getattr(process,p)
337 if "gsfElectrons" in pth.moduleNames():
338 pth.replace(process.gsfElectrons, process.gsfElectronsORG*process.gsfElectrons)
343 for p
in process.paths:
344 pth = getattr(process,p)
345 for mod
in pth.moduleNames():
346 if mod.find(
"dedx") != -1
and mod.find(
"Zmumu") == -1:
347 if mod.find(
"ForPFMuonCleaning") == -1:
348 print "Removing %s" % mod
349 module = getattr(process, mod)
357 process.muonCaloDistances = cms.EDProducer(
'MuonCaloDistanceProducer',
358 trackAssociator = TrackAssociatorParameterBlock.TrackAssociatorParameters,
359 selectedMuons = process.customization_options.ZmumuCollection)
360 process.ProductionFilterSequence += process.muonCaloDistances
363 l1ExtraCollections = [
364 [
"L1EmParticle",
"Isolated" ],
365 [
"L1EmParticle",
"NonIsolated" ],
366 [
"L1EtMissParticle",
"MET" ],
367 [
"L1EtMissParticle",
"MHT" ],
368 [
"L1JetParticle",
"Central" ],
369 [
"L1JetParticle",
"Forward" ],
370 [
"L1JetParticle",
"Tau" ],
371 [
"L1MuonParticle",
"" ]
373 l1extraParticleCollections = []
374 for l1ExtraCollection
in l1ExtraCollections:
375 inputType = l1ExtraCollection[0]
377 srcVeto = cms.InputTag(
'')
379 if inputType ==
"L1EmParticle":
380 pluginType =
"L1ExtraEmParticleMixerPlugin"
381 srcSelectedMuons = process.customization_options.ZmumuCollection
383 elif inputType ==
"L1EtMissParticle":
384 pluginType =
"L1ExtraMEtMixerPlugin"
385 elif inputType ==
"L1JetParticle":
386 pluginType =
"L1ExtraJetParticleMixerPlugin"
387 srcSelectedMuons = process.customization_options.ZmumuCollection
389 elif inputType ==
"L1MuonParticle":
390 pluginType =
"L1ExtraMuonParticleMixerPlugin"
391 srcSelectedMuons = process.customization_options.ZmumuCollection
394 raise ValueError(
"Invalid L1Extra type = %s !!" % inputType)
395 instanceLabel = l1ExtraCollection[1]
396 l1extraParticleCollections.append(cms.PSet(
397 pluginType = cms.string(pluginType),
398 instanceLabel = cms.string(instanceLabel),
399 srcSelectedMuons2 = srcSelectedMuons,
400 dRveto2 = cms.double(dRveto)))
401 if inputType ==
'L1EtMissParticle':
402 l1extraParticleCollections[-1].srcMuons = cms.InputTag(
"muonCaloDistances",
"muons")
403 l1extraParticleCollections[-1].distanceMapMuPlus = cms.InputTag(
"muonCaloDistances",
"distancesMuPlus")
404 l1extraParticleCollections[-1].distanceMapMuMinus = cms.InputTag(
"muonCaloDistances",
"distancesMuPlus")
405 l1extraParticleCollections[-1].H_Calo_AbsEtaLt12 = cms.double(process.customization_options.muonCaloCleaningSF.value()*0.75)
406 l1extraParticleCollections[-1].H_Calo_AbsEta12to17 = cms.double(process.customization_options.muonCaloCleaningSF.value()*0.6)
407 l1extraParticleCollections[-1].H_Calo_AbsEtaGt17 = cms.double(process.customization_options.muonCaloCleaningSF.value()*0.3)
409 process.l1extraParticlesORG = process.l1extraParticles.clone()
410 process.l1extraParticles = cms.EDProducer(
'L1ExtraMixer',
411 src1 = cms.InputTag(
"l1extraParticlesORG"),
412 src2 = cms.InputTag(
"l1extraParticles",
"", inputProcess),
413 collections = cms.VPSet(l1extraParticleCollections)
415 for p
in process.paths:
416 pth = getattr(process,p)
417 if "l1extraParticles" in pth.moduleNames():
418 pth.replace(process.l1extraParticles, process.l1extraParticlesORG*process.l1extraParticles)
420 if process.customization_options.embeddingMode.value() ==
"PF":
421 print "Using PF-embedding"
422 from TauAnalysis.MCEmbeddingTools.embeddingCustomizePF
import customise
as customisePF
423 customisePF(process, inputProcess)
424 elif process.customization_options.embeddingMode.value() ==
"RH":
425 print "Using RH-embedding"
426 from TauAnalysis.MCEmbeddingTools.embeddingCustomizeRH
import customise
as customiseRH
427 customiseRH(process, inputProcess)
429 raise ValueError(
"Invalid Configuration parameter 'embeddingMode' = %s !!" % process.customization_options.embeddingMode.value())
434 for s
in process.sequences:
435 seq = getattr(process,s)
436 seq.remove(process.offlineBeamSpot)
439 process.metreco.remove(process.BeamHaloId)
444 outputModule = process.output
448 outputModule = getattr(process, str(getattr(process,
list(process.endpaths)[-1])))
452 process.filterEmptyEv.src = cms.untracked.InputTag(
"generator",
"",
"EmbeddedRECO")
455 process.schedule.remove(process.DQM_FEDIntegrity_v3)
459 process.load(
"TauAnalysis/MCEmbeddingTools/ZmumuStandaloneSelection_cff")
460 process.goldenZmumuFilter.src = process.customization_options.ZmumuCollection
461 if process.customization_options.applyZmumuSkim.value():
462 print "Enabling Zmumu skim"
463 process.load(
"TrackingTools/TransientTrack/TransientTrackBuilder_cfi")
464 for path
in process.paths:
465 if process.customization_options.isMC.value():
466 getattr(process,path)._seq = process.goldenZmumuFilterSequence * getattr(process,path)._seq
468 getattr(process,path)._seq = process.goldenZmumuFilterSequenceData * getattr(process,path)._seq
469 process.options = cms.untracked.PSet(
470 wantSummary = cms.untracked.bool(
True)
473 process.goldenZmumuFilterResult = cms.EDProducer(
"CandViewCountEventSelFlagProducer",
474 src = process.customization_options.ZmumuCollection,
475 minNumber = cms.uint32(1)
477 process.goldenZmumuFilterEfficiencyPath = cms.Path(process.goldenZmumuSelectionSequence + process.goldenZmumuFilterResult + process.MEtoEDMConverter)
478 process.schedule.append(process.goldenZmumuFilterEfficiencyPath)
480 print "Zmumu skim disabled"
484 if process.customization_options.isMC.value():
485 process.load(
"TauAnalysis/MCEmbeddingTools/genMuonRadiationFilter_cfi")
486 process.genMuonRadiationFilter.srcGenParticles = cms.InputTag(
'genParticles::%s' % process.customization_options.inputProcessSIM.value())
487 process.genMuonRadiationFilter.invert = cms.bool(
False)
488 process.genMuonRadiationFilter.filter = cms.bool(
False)
489 process.reconstruction_step += process.genMuonRadiationFilter
492 process.load(
"TauAnalysis/MCEmbeddingTools/muonRadiationFilter_cfi")
493 process.particleFlowPtrsForMuonRadiationFilter.src = cms.InputTag(
'particleFlow',
'', inputProcess)
494 process.muonRadiationFilter.srcSelectedMuons = process.customization_options.ZmumuCollection
495 process.muonRadiationFilter.invert = cms.bool(
False)
496 process.muonRadiationFilter.filter = cms.bool(
False)
497 process.reconstruction_step += process.muonRadiationFilterSequence
500 if process.customization_options.disableCaloNoise.value():
501 print "Disabling ECAL/HCAL noise simulation"
502 process.simEcalUnsuppressedDigis.doNoise = cms.bool(
False)
503 process.simEcalUnsuppressedDigis.doESNoise = cms.bool(
False)
504 process.simHcalUnsuppressedDigis.doNoise = cms.bool(
False)
505 process.simHcalUnsuppressedDigis.doThermalNoise = cms.bool(
False)
507 print "Keeping ECAL/HCAL noise simulation enabled"
514 # CV: apply/do not apply muon momentum corrections determined by Rochester group
515 if process.customization_options.replaceGenOrRecMuonMomenta.value() == "rec" and hasattr(process, "goldenZmumuSelectionSequence"):
516 if process.customization_options.applyRochesterMuonCorr.value():
517 print "Enabling Rochester muon momentum corrections"
518 process.patMuonsForZmumuSelectionRochesterMomentumCorr = cms.EDProducer("RochesterCorrPATMuonProducer",
519 src = cms.InputTag('patMuonsForZmumuSelection'),
520 isMC = cms.bool(process.customization_options.isMC.value())
522 process.goldenZmumuSelectionSequence.replace(process.patMuonsForZmumuSelection, process.patMuonsForZmumuSelection*process.patMuonsForZmumuSelectionRochesterMomentumCorr)
523 process.goodMuons.src = cms.InputTag('patMuonsForZmumuSelectionRochesterMomentumCorr')
525 print "Rochester muon momentum corrections disabled"
527 if process.customization_options.applyMuonRadiationCorrection.value() != "":
528 print "Muon -> muon + photon radiation correction enabled"
529 process.load("TauAnalysis/MCEmbeddingTools/muonRadiationCorrWeightProducer_cfi")
530 if process.customization_options.applyMuonRadiationCorrection.value() == "photos":
531 process.muonRadiationCorrWeightProducer.lutDirectoryRef = cms.string('genMuonRadCorrAnalyzerPHOTOS')
532 process.muonRadiationCorrWeightProducer.lutDirectoryOthers = cms.PSet(
533 Summer12mcMadgraph = cms.string('genMuonRadCorrAnalyzer')
535 elif process.customization_options.applyMuonRadiationCorrection.value() == "pythia":
536 process.muonRadiationCorrWeightProducer.lutDirectoryRef = cms.string('genMuonRadCorrAnalyzerPYTHIA')
537 process.muonRadiationCorrWeightProducer.lutDirectoryOthers = cms.PSet(
538 Summer12mcMadgraph = cms.string('genMuonRadCorrAnalyzer')
541 raise ValueError("Invalid Configuration parameter 'applyMuonRadiationCorrection' = %s !!" % process.customization_options.applyMuonRadiationCorrection.value())
542 process.reconstruction_step += process.muonRadiationCorrWeightProducer
543 outputModule.outputCommands.extend([
544 'keep *_muonRadiationCorrWeightProducer_*_*',
545 'keep *_generator_muonsBeforeRad_*',
546 'keep *_generator_muonsAfterRad_*'
549 print "Muon -> muon + photon radiation correction disabled"
551 # CV: compute reweighting factors to compensate for smearing of di-muon Pt and mass distributions caused by:
552 # o (mis)reconstruction of muon momenta
553 # o muon -> muon + photon radiation corrections
555 # mdtau values are defined in http:marpix1.in2p3.fr/Physics/biblio_top/mc_toprex_405.ps.gz
557 embeddingKineReweightTable = {
558 (115, 'elec1_9to30had1_15'): ('TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_ePt9to30tauPtGt18_genEmbedded.root', 'TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_ePt9to30tauPtGt18_recEmbedded.root'),
559 (115, 'elec1_20had1_18'): ('TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_ePtGt20tauPtGt18_genEmbedded.root', 'TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_ePtGt20tauPtGt18_recEmbedded.root'),
560 (116, 'mu1_7to25had1_15'): ('TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_muPt7to25tauPtGt18_genEmbedded.root', 'TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_muPt7to25tauPtGt18_recEmbedded.root'),
561 (116, 'mu1_16had1_18'): ('TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_muPtGt16tauPtGt18_genEmbedded.root', 'TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_muPtGt16tauPtGt18_recEmbedded.root'),
562 (121, 'elec1_17elec2_8'): ('TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_emu_genEmbedding.root', 'TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_emu_recEmbedding.root'),
563 (122, 'mu1_18mu2_8'): ('TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_emu_genEmbedding.root', 'TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_emu_recEmbedding.root'),
564 (123, 'tau1_18tau2_8'): ('TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_emu_genEmbedding.root', 'TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_emu_recEmbedding.root'),
565 (132, 'had1_30had2_30'): ('TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_tautau_genEmbedding.root', 'TauAnalysis/MCEmbeddingTools/data/embeddingKineReweight_tautau_recEmbedding.root')
568 key = (process.customization_options.mdtau.value(), process.customization_options.minVisibleTransverseMomentum.value())
569 if key in embeddingKineReweightTable:
570 process.load("TauAnalysis/MCEmbeddingTools/embeddingKineReweight_cff")
572 genEmbeddingReweightFile, recEmbeddingReweightFile = embeddingKineReweightTable[key]
573 process.embeddingKineReweightGENembedding.inputFileName = cms.FileInPath(genEmbeddingReweightFile)
574 process.embeddingKineReweightRECembedding.inputFileName = cms.FileInPath(recEmbeddingReweightFile)
576 process.reconstruction_step += process.embeddingKineReweightSequence
577 outputModule.outputCommands.extend([
578 'keep *_embeddingKineReweight*_*_*'
581 print 'Do not produce embeddingKineWeights for mdtau=%d, minVisibleTransverseMomuntem=%s !!' % (key[0], key[1])
583 # CV: compute weights for correcting Embedded samples
584 # for efficiency with which Zmumu events used as input for Embedding production were selected
585 process.load("TauAnalysis/MCEmbeddingTools/ZmumuEvtSelEffCorrWeightProducer_cfi")
586 process.ZmumuEvtSelEffCorrWeightProducer.selectedMuons = process.customization_options.ZmumuCollection
587 process.ZmumuEvtSelEffCorrWeightProducer.verbosity = cms.int32(0)
588 process.reconstruction_step += process.ZmumuEvtSelEffCorrWeightProducer
589 outputModule.outputCommands.extend([
590 'keep *_ZmumuEvtSelEffCorrWeightProducer_*_*'
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run