51 process._Process__name=
"EmbeddedRECO"
52 process.TFileService = cms.Service(
"TFileService", fileName = cms.string(
"histo_embedded.root") )
55 outputModule = process.output
59 outputModule = getattr(process,str(getattr(process,
list(process.endpaths)[-1])))
63 print "Changing eventcontent to RAW+AODSIM + misc. "
64 outputModule.outputCommands = cms.untracked.vstring(
"drop *")
65 outputModule.outputCommands.extend(process.RAWEventContent.outputCommands )
66 outputModule.outputCommands.extend(process.AODSIMEventContent.outputCommands )
68 keepMC = cms.untracked.vstring(
"keep *_*_zMusExtracted_*",
69 "keep *_*_zmmCands_*",
70 "keep *_removedInputMuons_*_*",
71 "keep *_generator_*_*",
72 "keep *_PhotonIDProd_*_*",
74 "keep *_photonCore_*_*",
75 "keep *_genParticles_*_*",
76 "keep *_particleFlow_*_*",
77 "keep *_generator_*_*",
78 "keep *_tmfTracks_*_EmbeddedRECO",
79 "keep *_offlinePrimaryVertices_*_EmbeddedRECO",
80 "keep *_offlinePrimaryVerticesWithBS_*_EmbeddedRECO",
81 "keep *_PhotonIDProd_*_*",
83 "keep *_photonCore_*_*",
84 "keep *_genParticles_*_*",
85 "keep *_particleFlow_*_*",
87 outputModule.outputCommands.extend(keepMC)
91 for item
in outputModule.outputCommands[:]:
92 if item ==
"drop *" and index != 0:
94 del outputModule.outputCommands[index]
99 hltProcessName =
"HLT"
102 hltProcessName = __HLT__
107 process.dimuonsHLTFilter.TriggerResultsTag.processName = hltProcessName
108 process.goodZToMuMuAtLeast1HLT.TrigTag.processName = hltProcessName
109 process.goodZToMuMuAtLeast1HLT.triggerEvent.processName = hltProcessName
110 process.hltTrigReport,HLTriggerResults.processName = hltProcessName
114 process.VtxSmeared = cms.EDProducer(
"FlatEvtVtxGenerator",
115 MaxZ = cms.double(0.0),
116 MaxX = cms.double(0.0),
117 MaxY = cms.double(0.0),
118 MinX = cms.double(0.0),
119 MinY = cms.double(0.0),
120 MinZ = cms.double(0.0),
121 TimeOffset = cms.double(0.0),
122 src = cms.InputTag(
"generator")
125 import FWCore.ParameterSet.VarParsing
as VarParsing
127 options.register (
'mdtau',
129 VarParsing.VarParsing.multiplicity.singleton,
130 VarParsing.VarParsing.varType.int,
131 "mdtau value for tauola")
133 options.register (
'transformationMode',
135 VarParsing.VarParsing.multiplicity.singleton,
136 VarParsing.VarParsing.varType.int,
137 "transformation mode. 0=mumu->mumu, 1=mumu->tautau")
139 options.register (
'minVisibleTransverseMomentum',
141 VarParsing.VarParsing.multiplicity.singleton,
142 VarParsing.VarParsing.varType.string,
143 "generator level cut on visible transverse momentum (typeN:pT,[...];[...])")
145 options.register (
'useJson',
147 VarParsing.VarParsing.multiplicity.singleton,
148 VarParsing.VarParsing.varType.int,
149 "should I enable json usage?")
151 options.register (
'overrideBeamSpot',
153 VarParsing.VarParsing.multiplicity.singleton,
154 VarParsing.VarParsing.varType.int,
155 "should I override beamspot in globaltag?")
165 if not hasattr(process,
"doNotParse"):
167 if hasattr(sys,
"argv") ==
True:
168 if not sys.argv[0].endswith(
'cmsDriver.py'):
169 options.parseArguments()
172 print "CL parsing disabled!"
174 print "Setting mdtau to ", options.mdtau
175 process.generator.ZTauTau.TauolaOptions.InputCards.mdtau = options.mdtau
176 process.newSource.ZTauTau.TauolaOptions.InputCards.mdtau = options.mdtau
177 process.generator.ParticleGun.ExternalDecays.Tauola.InputCards.mdtau = options.mdtau
178 process.newSource.ParticleGun.ExternalDecays.Tauola.InputCards.mdtau = options.mdtau
180 print "Setting minVisibleTransverseMomentum to ", options.minVisibleTransverseMomentum
181 process.newSource.ZTauTau.minVisibleTransverseMomentum = cms.untracked.string(options.minVisibleTransverseMomentum)
182 process.generator.ZTauTau.minVisibleTransverseMomentum = cms.untracked.string(options.minVisibleTransverseMomentum)
184 print "Setting transformationMode to ", options.transformationMode
185 process.generator.ZTauTau.transformationMode = cms.untracked.int32(options.transformationMode)
186 process.newSource.ZTauTau.transformationMode = cms.untracked.int32(options.transformationMode)
188 print "options.overrideBeamSpot", options.overrideBeamSpot
189 if options.overrideBeamSpot != 0:
190 bs = cms.string(
"BeamSpotObjects_2009_LumiBased_SigmaZ_v26_offline")
197 process.GlobalTag.toGet = cms.VPSet(
198 cms.PSet(record = cms.string(
"BeamSpotObjectsRcd"),
200 connect = cms.untracked.string(
"frontier://FrontierProd/CMS_COND_31X_BEAMSPOT")
203 print "BeamSpot in globaltag set to ", bs
205 print "BeamSpot in globaltag not changed"
207 if options.useJson != 0:
208 print "Enabling json usage"
209 import PhysicsTools.PythonAnalysis.LumiList
as LumiList
210 import FWCore.ParameterSet.Types
as CfgTypes
212 process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange())
213 process.source.lumisToProcess.extend(myLumis)
218 process.tmfTracks = cms.EDProducer(
"RecoTracksMixer",
219 trackCol1 = cms.InputTag(
"removedInputMuons",
"tracks"),
220 trackCol2 = cms.InputTag(
"generalTracks",
"",
"EmbeddedRECO")
223 process.offlinePrimaryVerticesWithBS.TrackLabel = cms.InputTag(
"tmfTracks")
224 process.offlinePrimaryVertices.TrackLabel = cms.InputTag(
"tmfTracks")
225 if hasattr(process.muons,
"TrackExtractorPSet"):
226 process.muons.TrackExtractorPSet.inputTrackCollection = cms.InputTag(
"tmfTracks")
227 elif hasattr(process,
"muons1stStep")
and hasattr(process.muons1stStep,
"TrackExtractorPSet"):
228 process.muons1stStep.TrackExtractorPSet.inputTrackCollection = cms.InputTag(
"tmfTracks")
230 raise "Problem with muons"
234 for s
in process.sequences:
235 seq = getattr(process,s)
236 seq.remove(process.offlineBeamSpot)
240 process.metreco.remove(process.BeamHaloId)
245 outputModule = process.output
249 outputModule = getattr(process,str(getattr(process,
list(process.endpaths)[-1])))
254 for p
in process.paths:
255 pth = getattr(process,p)
256 if "generalTracks" in pth.moduleNames():
257 pth.replace(process.generalTracks, process.generalTracks*process.tmfTracks)
260 process.particleFlowORG = process.particleFlow.clone()
267 if hasattr(process,
'particleFlowTmp'):
268 process.particleFlowTmpMixed = cms.EDProducer(
'PFCandidateMixer',
269 col1 = cms.untracked.InputTag(
"removedInputMuons",
"pfCands"),
270 col2 = cms.untracked.InputTag(
"particleFlowTmp",
""),
271 trackCol = cms.untracked.InputTag(
"tmfTracks")
273 process.muons.PFCandidates = cms.InputTag(
"particleFlowTmpMixed")
275 for p
in process.paths:
276 if "particleFlow" in pth.moduleNames():
277 pth.replace(process.particleFlow, process.particleFlowORG*process.particleFlow)
278 if "muons" in pth.moduleNames():
279 pth.replace(process.muons, process.particleFlowTmpMixed*process.muons)
282 if hasattr(process,
"famosParticleFlowSequence"):
283 process.famosParticleFlowSequence.remove(process.pfPhotonTranslatorSequence)
284 process.famosParticleFlowSequence.remove(process.pfElectronTranslatorSequence)
285 process.famosParticleFlowSequence.remove(process.particleFlow)
286 process.famosParticleFlowSequence.__iadd__(process.particleFlowORG)
287 process.famosParticleFlowSequence.__iadd__(process.particleFlow)
288 process.famosParticleFlowSequence.__iadd__(process.pfElectronTranslatorSequence)
289 process.famosParticleFlowSequence.__iadd__(process.pfPhotonTranslatorSequence)
290 elif hasattr(process,
"particleFlowReco"):
291 process.particleFlowReco.remove(process.pfPhotonTranslatorSequence)
292 process.particleFlowReco.remove(process.pfElectronTranslatorSequence)
293 process.particleFlowReco.remove(process.particleFlow)
294 process.particleFlowReco.__iadd__(process.particleFlowORG)
295 process.particleFlowReco.__iadd__(process.particleFlow)
296 process.particleFlowReco.__iadd__(process.pfElectronTranslatorSequence)
297 process.particleFlowReco.__iadd__(process.pfPhotonTranslatorSequence)
299 raise "Cannot find particleFlow sequence"
301 process.pfSelectedElectrons.src = cms.InputTag(
"particleFlowORG")
302 process.pfSelectedPhotons.src = cms.InputTag(
"particleFlowORG")
305 process.particleFlow = cms.EDProducer(
'PFCandidateMixer',
306 col1 = cms.untracked.InputTag(
"removedInputMuons",
"pfCands"),
307 col2 = cms.untracked.InputTag(
"particleFlowORG",
""),
308 trackCol = cms.untracked.InputTag(
"tmfTracks")
311 process.filterEmptyEv.src = cms.untracked.InputTag(
"generator",
"",
"EmbeddedRECO")
313 from FWCore.ParameterSet.Types
import InputTag
314 for p
in process.paths:
315 i = getattr(process,p)
316 target = process.particleFlow
319 seqVis.prepareSearch()
320 seqVis.setLookFor(target)
322 while ( seqVis.catch != 1
and seqVis.found == 1 ):
324 target = seqVis.giveNext()
326 targetAttributes =
dir(target)
327 for targetAttribute
in targetAttributes:
328 attr=getattr(target,targetAttribute)
329 if isinstance(attr, InputTag)
and attr.getModuleLabel()==
"particleFlow":
330 if ( attr.getProductInstanceLabel()!=
"" ):
331 print "Changing: ", target,
" ", targetAttribute,
" ", attr,
" to particleFlowORG"
332 attr.setModuleLabel(
"particleFlowORG")
336 seqVis.prepareSearch()
337 seqVis.setLookFor(target)
346 process.gsfElectronsORG = process.gsfElectrons.clone()
350 for p
in process.paths:
351 pth = getattr(process,p)
353 if "gsfElectrons" in pth.moduleNames():
354 pth.replace(process.gsfElectrons, process.gsfElectronsORG*process.gsfElectrons)
358 process.gsfElectrons = cms.EDProducer(
"GSFElectronsMixer",
359 col1 = cms.InputTag(
"gsfElectronsORG"),
360 col2 = cms.InputTag(
"gsfElectrons",
"",
"RECO"),
364 if hasattr(process,
"DQM_FEDIntegrity_v3"):
365 process.schedule.remove(process.DQM_FEDIntegrity_v3)
368 if hasattr(process,
"doZmumuSkim"):
369 print "Enabling Zmumu skim"
372 cmssw_ver = os.environ[
"CMSSW_VERSION"]
373 if cmssw_ver.find(
"CMSSW_4_2") != -1:
375 print "Using legacy version of Zmumu skim. Note, that muon isolation is disabled"
377 process.load(
"TauAnalysis/MCEmbeddingTools/ZmumuStandalonSelectionLegacy_cff")
379 process.load(
"TauAnalysis/MCEmbeddingTools/ZmumuStandalonSelection_cff")
382 process.load(
"TrackingTools/TransientTrack/TransientTrackBuilder_cfi")
385 for path
in process.paths:
386 getattr(process,path)._seq = process.goldenZmumuSelectionSequence * getattr(process,path)._seq
394 print "Zmumu skim not enabled"
397 print "# ######################################################################################"
398 print " Following parameters can be added before customize function "
399 print " call in order to controll process customization: "
400 print " process.doNotParse = cms.PSet() # disables CL parsing for crab compat"
401 print " process.doZmumuSkim = cms.PSet() # adds Zmumu skimming before embedding is run"
402 print "# ######################################################################################"
407 print "#############################################################"
408 print " Warning! PFCandidates 'electron' collection is not mixed, "
409 print " and probably shouldnt be used. "
410 print "#############################################################"
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