CMS 3D CMS Logo

customisers.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 
4 
5 from __future__ import print_function
6 import FWCore.ParameterSet.Config as cms
7 from FWCore.ParameterSet.Utilities import cleanUnscheduled
8 
9 import six
10 
11 
17 
18 
19 
20 
23 
24 
26  def __init__(self, module_name, manipulator_name, steps = ["SELECT","CLEAN","SIM","MERGE"], instance=[""], merge_prefix = ""):
27  self.module_name = module_name
28  self.manipulator_name = manipulator_name
29  self.steps = steps
30  self.instance = instance
31  self.merger_name = manipulator_name+"ColMerger"
32  self.cleaner_name = manipulator_name+"ColCleaner"
33  self.merge_prefix = merge_prefix
34 
35 
36 
37 
38 to_bemanipulate = []
39 
40 
41 to_bemanipulate.append(module_manipulate(module_name = 'siPixelClusters', manipulator_name = "Pixel", steps = ["SELECT","CLEAN"] ))
42 to_bemanipulate.append(module_manipulate(module_name = 'siStripClusters', manipulator_name = "Strip", steps = ["SELECT","CLEAN"] ))
43 
44 to_bemanipulate.append(module_manipulate(module_name = 'generalTracks', manipulator_name = "Track", steps = ["SIM", "MERGE"]))
45 to_bemanipulate.append(module_manipulate(module_name = 'muons1stStep', manipulator_name = "Muon", steps = ["SIM", "MERGE"]))
46 to_bemanipulate.append(module_manipulate(module_name = 'gedGsfElectronsTmp', manipulator_name = "GsfElectron", steps = ["SIM", "MERGE"]))
47 to_bemanipulate.append(module_manipulate(module_name = 'gedPhotonsTmp', manipulator_name = "Photon", steps = ["SIM", "MERGE"]))
48 to_bemanipulate.append(module_manipulate(module_name = 'particleFlowTmp', manipulator_name = "PF", steps = ["SIM", "MERGE"], instance=["","CleanedHF","CleanedCosmicsMuons","CleanedTrackerAndGlobalMuons","CleanedFakeMuons","CleanedPunchThroughMuons","CleanedPunchThroughNeutralHadrons","AddedMuonsAndHadrons"]))
49 
50 
51 to_bemanipulate.append(module_manipulate(module_name = 'ecalRecHit', manipulator_name = "EcalRecHit", instance= ["EcalRecHitsEB","EcalRecHitsEE"]))
52 to_bemanipulate.append(module_manipulate(module_name = 'ecalPreshowerRecHit', manipulator_name = "EcalRecHit", instance= ["EcalRecHitsES"]))
53 
54 to_bemanipulate.append(module_manipulate(module_name = 'hbheprereco', manipulator_name = "HBHERecHit"))
55 to_bemanipulate.append(module_manipulate(module_name = 'hbhereco', manipulator_name = "HBHERecHit"))
56 to_bemanipulate.append(module_manipulate(module_name = 'zdcreco', manipulator_name = "ZDCRecHit"))
57 
58 to_bemanipulate.append(module_manipulate(module_name = 'horeco', manipulator_name = "HORecHit"))
59 to_bemanipulate.append(module_manipulate(module_name = 'hfreco', manipulator_name = "HFRecHit"))
60 to_bemanipulate.append(module_manipulate(module_name = 'castorreco', manipulator_name = "CastorRecHit"))
61 
62 
63 to_bemanipulate.append(module_manipulate(module_name = 'dt1DRecHits', manipulator_name = "DTRecHit", steps = ["SELECT","CLEAN"] ))
64 to_bemanipulate.append(module_manipulate(module_name = 'dt1DCosmicRecHits', manipulator_name = "DTRecHit", steps = ["SELECT","CLEAN"] ))
65 
66 to_bemanipulate.append(module_manipulate(module_name = 'csc2DRecHits', manipulator_name = "CSCRecHit", steps = ["SELECT","CLEAN"] ))
67 to_bemanipulate.append(module_manipulate(module_name = 'rpcRecHits', manipulator_name = "RPCRecHit", steps = ["SELECT","CLEAN"] ))
68 
69 
70 def modify_outputModules(process, keep_drop_list = [], module_veto_list = [] ):
71  outputModulesList = [key for key,value in six.iteritems(process.outputModules)]
72  for outputModule in outputModulesList:
73  if outputModule in module_veto_list:
74  continue
75  outputModule = getattr(process, outputModule)
76  for add_element in keep_drop_list:
77  outputModule.outputCommands.extend(add_element)
78  return process
79 
80 
81 
82 
83 
84 def keepSelected(dataTier):
85  ret_vstring = cms.untracked.vstring(
86  # "drop *_*_*_"+dataTier,
87  "keep *_patMuonsAfterID_*_"+dataTier,
88  "keep *_slimmedMuons_*_"+dataTier,
89  "keep *_selectedMuonsForEmbedding_*_"+dataTier,
90  "keep recoVertexs_offlineSlimmedPrimaryVertices_*_"+dataTier,
91  "keep *_firstStepPrimaryVertices_*_"+dataTier,
92  "keep *_offlineBeamSpot_*_"+dataTier
93  )
94  for akt_manimod in to_bemanipulate:
95  if "CLEAN" in akt_manimod.steps:
96  ret_vstring.append("keep *_"+akt_manimod.module_name+"_*_"+dataTier)
97  return ret_vstring
98 
99 def customiseSelecting(process,reselect=False):
100  if reselect:
101  process._Process__name = "RESELECT"
102  dataTier="RESELECT"
103  else:
104  process._Process__name = "SELECT"
105  dataTier="SELECT"
106 
107  process.load('TauAnalysis.MCEmbeddingTools.SelectingProcedure_cff')
108  process.patMuonsAfterKinCuts.src = cms.InputTag("slimmedMuons","",dataTier)
109  process.patMuonsAfterID = process.patMuonsAfterLooseID.clone()
110 
111  process.selecting = cms.Path(process.makePatMuonsZmumuSelection)
112  process.schedule.insert(-1, process.selecting)
113 
114  outputModulesList = [key for key,value in six.iteritems(process.outputModules)]
115  for outputModule in outputModulesList:
116  outputModule = getattr(process, outputModule)
117  outputModule.SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring("selecting"))
118  outputModule.outputCommands.extend(keepSelected(dataTier))
119 
120  process = customisoptions(process)
121  return modify_outputModules(process,[keepSelected(dataTier)])
122 
124  return customiseSelecting(process,reselect=True)
125 
126 
128  ret_vstring = cms.untracked.vstring(
129 # "drop *_*_*_LHEembeddingCLEAN",
130 # "drop *_*_*_CLEAN"
131  )
132 
133  for akt_manimod in to_bemanipulate:
134  if "MERGE" in akt_manimod.steps:
135  ret_vstring.append("keep *_"+akt_manimod.module_name+"_*_LHEembeddingCLEAN")
136  ret_vstring.append("keep *_"+akt_manimod.module_name+"_*_CLEAN")
137  ret_vstring.append("keep *_standAloneMuons_*_LHEembeddingCLEAN")
138  ret_vstring.append("keep *_glbTrackQual_*_LHEembeddingCLEAN")
139  return ret_vstring
140 
141 
142 
143 def customiseCleaning(process, changeProcessname=True,reselect=False):
144  if changeProcessname:
145  process._Process__name = "CLEAN"
146  if reselect:
147  dataTier="RESELECT"
148  else:
149  dataTier="SELECT"
150 
151  from TrackingTools.TrackAssociator.default_cfi import TrackAssociatorParameterBlock
152  TrackAssociatorParameterBlock.TrackAssociatorParameters.CSCSegmentCollectionLabel = cms.InputTag("cscSegments","",dataTier)
153  TrackAssociatorParameterBlock.TrackAssociatorParameters.CaloTowerCollectionLabel = cms.InputTag("towerMaker","",dataTier)
154  TrackAssociatorParameterBlock.TrackAssociatorParameters.DTRecSegment4DCollectionLabel = cms.InputTag("dt4DSegments","",dataTier)
155  TrackAssociatorParameterBlock.TrackAssociatorParameters.EBRecHitCollectionLabel = cms.InputTag("ecalRecHit","EcalRecHitsEB",dataTier)
156  TrackAssociatorParameterBlock.TrackAssociatorParameters.EERecHitCollectionLabel = cms.InputTag("ecalRecHit","EcalRecHitsEE",dataTier)
157  TrackAssociatorParameterBlock.TrackAssociatorParameters.HBHERecHitCollectionLabel = cms.InputTag("hbhereco","",dataTier)
158  TrackAssociatorParameterBlock.TrackAssociatorParameters.HORecHitCollectionLabel = cms.InputTag("horeco","",dataTier)
159 
160 
161  MuonImput = cms.InputTag("selectedMuonsForEmbedding","","")
162  for akt_manimod in to_bemanipulate:
163  if "CLEAN" in akt_manimod.steps:
164  oldCollections_in = cms.VInputTag()
165  for instance in akt_manimod.instance:
166  oldCollections_in.append(cms.InputTag(akt_manimod.module_name,instance,dataTier))
167  setattr(process, akt_manimod.module_name, cms.EDProducer(akt_manimod.cleaner_name,MuonCollection = MuonImput,TrackAssociatorParameters = TrackAssociatorParameterBlock.TrackAssociatorParameters,oldCollection = oldCollections_in))
168  process.ecalPreshowerRecHit.TrackAssociatorParameters.usePreshower = cms.bool(True)
169  process = customisoptions(process)
170  return modify_outputModules(process,[keepSelected(dataTier),keepCleaned()],["MINIAODoutput"])
171 
172 
173 
174 def keepLHE():
175  ret_vstring = cms.untracked.vstring()
176  ret_vstring.append("keep *_externalLHEProducer_*_LHEembedding")
177  ret_vstring.append("keep *_externalLHEProducer_*_LHEembeddingCLEAN")
178  return ret_vstring
179 
180 
182  ret_vstring = cms.untracked.vstring()
183  for akt_manimod in to_bemanipulate:
184  if "MERGE" in akt_manimod.steps:
185  ret_vstring.append("keep *_"+akt_manimod.module_name+"_*_SIMembedding")
186  ret_vstring.append("keep *_genParticles_*_SIMembedding")
187  ret_vstring.append("keep *_standAloneMuons_*_SIMembedding")
188  ret_vstring.append("keep *_glbTrackQual_*_SIMembedding")
189  ret_vstring.append("keep *_generator_*_SIMembedding")
190  ret_vstring.append("keep *_addPileupInfo_*_SIMembedding")
191  ret_vstring.append("keep *_slimmedAddPileupInfo_*_*")
192  return ret_vstring
193 
194 
195 
196 
197 def customiseLHE(process, changeProcessname=True,reselect=False):
198  if reselect:
199  dataTier="RESELECT"
200  else:
201  dataTier="SELECT"
202  if changeProcessname:
203  process._Process__name = "LHEembedding"
204  process.load('TauAnalysis.MCEmbeddingTools.EmbeddingLHEProducer_cfi')
205  if reselect:
206  process.externalLHEProducer.vertices=cms.InputTag("offlineSlimmedPrimaryVertices","","RESELECT")
207  process.lheproduction = cms.Path(process.makeexternalLHEProducer)
208  process.schedule.insert(0,process.lheproduction)
209 
210 
211  process = customisoptions(process)
212  return modify_outputModules(process,[keepSelected(dataTier),keepCleaned(), keepLHE()],["MINIAODoutput"])
213 
214 
215 def customiseGenerator(process, changeProcessname=True,reselect=False):
216  if reselect:
217  dataTier="RESELECT"
218  else:
219  dataTier="SELECT"
220  if changeProcessname:
221  process._Process__name = "SIMembedding"
222 
223 
224 
225  process.load('TauAnalysis.MCEmbeddingTools.EmbeddingVertexCorrector_cfi')
226  process.VtxSmeared = process.VtxCorrectedToInput.clone()
227  print("Correcting Vertex in genEvent to one from input. Replaced 'VtxSmeared' with the Corrector.")
228 
229  # Remove BeamSpot Production, use the one from selected data instead.
230  process.reconstruction.remove(process.offlineBeamSpot)
231 
232  # Disable noise simulation
233  process.mix.digitizers.castor.doNoise = cms.bool(False)
234 
235  process.mix.digitizers.ecal.doESNoise = cms.bool(False)
236  process.mix.digitizers.ecal.doENoise = cms.bool(False)
237 
238  process.mix.digitizers.hcal.doNoise = cms.bool(False)
239  process.mix.digitizers.hcal.doThermalNoise = cms.bool(False)
240  process.mix.digitizers.hcal.doHPDNoise = cms.bool(False)
241 
242  process.mix.digitizers.pixel.AddNoisyPixels = cms.bool(False)
243  process.mix.digitizers.pixel.AddNoise = cms.bool(False)
244 
245  process.mix.digitizers.strip.Noise = cms.bool(False)
246 
247 
248  process = customisoptions(process)
249 
250 
251  return modify_outputModules(process,[keepSelected(dataTier),keepCleaned(),keepSimulated()],["AODSIMoutput"])
252 
254  return customiseGenerator(process,reselect=True)
255 
256 
257 def keepMerged(dataTier="SELECT"):
258  ret_vstring = cms.untracked.vstring()
259  ret_vstring.append("drop *_*_*_"+dataTier)
260  ret_vstring.append("keep *_prunedGenParticles_*_MERGE")
261  ret_vstring.append("keep *_generator_*_SIMembedding")
262  return ret_vstring
263 
264 
265 def customiseKeepPrunedGenParticles(process,reselect=False):
266  if reselect:
267  dataTier="RESELECT"
268  else:
269  dataTier="SELECT"
270 
271  process.load('PhysicsTools.PatAlgos.slimming.genParticles_cff')
272  process.merge_step += process.prunedGenParticlesWithStatusOne
273  process.load('PhysicsTools.PatAlgos.slimming.prunedGenParticles_cfi')
274  process.merge_step += process.prunedGenParticles
275  process.load('PhysicsTools.PatAlgos.slimming.packedGenParticles_cfi')
276  process.merge_step += process.packedGenParticles
277 
278  process.load('PhysicsTools.PatAlgos.mcMatchLayer0.muonMatch_cfi')
279  process.merge_step += process.muonMatch
280  process.load('PhysicsTools.PatAlgos.mcMatchLayer0.electronMatch_cfi')
281  process.merge_step += process.electronMatch
282  process.load('PhysicsTools.PatAlgos.mcMatchLayer0.photonMatch_cfi')
283  process.merge_step += process.photonMatch
284  process.load('PhysicsTools.PatAlgos.mcMatchLayer0.tauMatch_cfi')
285  process.merge_step += process.tauMatch
286  process.load('PhysicsTools.JetMCAlgos.TauGenJets_cfi')
287  process.merge_step += process.tauGenJets
288  process.load('PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff')
289  process.merge_step += process.patJetPartons
290  process.load('PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi')
291  process.merge_step += process.patJetPartonMatch
292 
293  process.muonMatch.matched = "prunedGenParticles"
294  process.electronMatch.matched = "prunedGenParticles"
295  process.electronMatch.src = cms.InputTag("reducedEgamma","reducedGedGsfElectrons")
296  process.photonMatch.matched = "prunedGenParticles"
297  process.photonMatch.src = cms.InputTag("reducedEgamma","reducedGedPhotons")
298  process.tauMatch.matched = "prunedGenParticles"
299  process.tauGenJets.GenParticles = "prunedGenParticles"
300 
303  process.patJetPartons.particles = "prunedGenParticles"
304  process.patJetPartonMatch.matched = "prunedGenParticles"
305  process.patJetPartonMatch.mcStatus = [ 3, 23 ]
306  process.patJetGenJetMatch.matched = "slimmedGenJets"
307  process.patJetGenJetMatchAK8.matched = "slimmedGenJetsAK8"
308  process.patJetGenJetMatchAK8Puppi.matched = "slimmedGenJetsAK8"
309  process.patMuons.embedGenMatch = False
310  process.patElectrons.embedGenMatch = False
311  process.patPhotons.embedGenMatch = False
312  process.patTaus.embedGenMatch = False
313  process.patTausBoosted.embedGenMatch = False
314  process.patJets.embedGenPartonMatch = False
315  #also jet flavour must be switched
316  process.patJetFlavourAssociation.rParam = 0.4
317 
318  process.schedule.insert(0,process.merge_step)
319  process = customisoptions(process)
320  return modify_outputModules(process, [keepMerged(dataTier)])
321 
322 
323 def customiseMerging(process, changeProcessname=True,reselect=False):
324  if changeProcessname:
325  process._Process__name = "MERGE"
326  if reselect:
327  dataTier="RESELECT"
328  else:
329  dataTier="SELECT"
330 
331 
332  process.source.inputCommands = cms.untracked.vstring()
333  process.source.inputCommands.append("keep *_*_*_*")
334 
335  #process.source.inputCommands.append("drop *_*_*_SELECT")
336  #process.source.inputCommands.append("drop *_*_*_SIMembedding")
337  #process.source.inputCommands.append("drop *_*_*_LHEembeddingCLEAN")
338  #process.source.inputCommands.extend(keepSimulated())
339  #process.source.inputCommands.extend(keepCleaned())
340 
341  process.load('Configuration.StandardSequences.Reconstruction_Data_cff')
342  process.merge_step = cms.Path()
343 
344 
345  for akt_manimod in to_bemanipulate:
346  if "MERGE" in akt_manimod.steps:
347  #if akt_manimod.module_name != 'particleFlowTmp':
348  # continue
349  print(akt_manimod.module_name)
350  mergCollections_in = cms.VInputTag()
351  for instance in akt_manimod.instance:
352  mergCollections_in.append(cms.InputTag(akt_manimod.merge_prefix+akt_manimod.module_name,instance,"SIMembedding"))
353  mergCollections_in.append(cms.InputTag(akt_manimod.merge_prefix+akt_manimod.module_name,instance,"LHEembeddingCLEAN"))
354  setattr(process, akt_manimod.module_name, cms.EDProducer(akt_manimod.merger_name,
355  mergCollections = mergCollections_in
356  )
357  )
358  process.merge_step +=getattr(process, akt_manimod.module_name)
359 
360 
361  process.merge_step += process.doAlldEdXEstimators
362  process.merge_step += process.vertexreco
363  process.unsortedOfflinePrimaryVertices.beamSpotLabel = cms.InputTag("offlineBeamSpot","",dataTier)
364  process.ak4CaloJetsForTrk.srcPVs = cms.InputTag("firstStepPrimaryVertices","",dataTier)
365 
366  process.muons.FillDetectorBasedIsolation = cms.bool(False)
367  process.muons.FillSelectorMaps = cms.bool(False)
368  process.muons.FillShoweringInfo = cms.bool(False)
369  process.muons.FillCosmicsIdMap = cms.bool(False)
370 
371  process.muonsFromCosmics.fillShowerDigis = cms.bool(False)
372  process.muonsFromCosmics1Leg.fillShowerDigis = cms.bool(False)
373 
374  process.merge_step += process.highlevelreco
375 
376  #process.merge_step.remove(process.reducedEcalRecHitsEE)
377  #process.merge_step.remove(process.reducedEcalRecHitsEB)
378 
379  process.merge_step.remove(process.ak4JetTracksAssociatorExplicit)
380 
381  process.merge_step.remove(process.pfTrack)
382  process.merge_step.remove(process.pfConversions)
383  process.merge_step.remove(process.pfV0)
384  process.merge_step.remove(process.particleFlowDisplacedVertexCandidate)
385  process.merge_step.remove(process.particleFlowDisplacedVertex)
386  process.merge_step.remove(process.pfDisplacedTrackerVertex)
387  process.merge_step.remove(process.pfTrackElec)
388  process.merge_step.remove(process.electronsWithPresel)
389  process.merge_step.remove(process.mvaElectrons)
390  process.merge_step.remove(process.particleFlowBlock)
391  process.merge_step.remove(process.particleFlowEGamma)
392  process.merge_step.remove(process.gedGsfElectronCores)
393  # process.merge_step.remove(process.gedGsfElectronsTmp)
394  process.merge_step.remove(process.gedPhotonCore)
395  process.merge_step.remove(process.ecalDrivenGsfElectronCores)
396  process.merge_step.remove(process.ecalDrivenGsfElectrons)
397  process.merge_step.remove(process.uncleanedOnlyElectronSeeds)
398  process.merge_step.remove(process.uncleanedOnlyAllConversions)
399  process.merge_step.remove(process.uncleanedOnlyPfTrack)
400  process.merge_step.remove(process.uncleanedOnlyPfTrackElec)
401  process.merge_step.remove(process.uncleanedOnlyGsfElectrons)
402  process.merge_step.remove(process.uncleanedOnlyElectronCkfTrackCandidates)
403  process.merge_step.remove(process.cosmicsVeto)
404  process.merge_step.remove(process.cosmicsVetoTrackCandidates)
405  # process.merge_step.remove(process.ecalDrivenGsfElectronCores)
406  # process.merge_step.remove(process.ecalDrivenGsfElectrons)
407  # process.merge_step.remove(process.gedPhotonsTmp)
408  # process.merge_step.remove(process.particleFlowTmp)
409  process.merge_step.remove(process.hcalnoise)
410 
411  process.load('CommonTools.ParticleFlow.genForPF2PAT_cff')
412 
413  process.merge_step += process.genForPF2PATSequence
414 
415  process.schedule.insert(0,process.merge_step)
416  # process.load('PhysicsTools.PatAlgos.slimming.slimmedGenJets_cfi')
417 
418  process = customisoptions(process)
419  return modify_outputModules(process, [keepMerged(dataTier)])
420 
421 def customiseMerging_Reselect(process, changeProcessname=True):
422  return customiseMerging(process, changeProcessname=changeProcessname, reselect=True)
423 
424 
425 
426 def customiseLHEandCleaning(process,reselect=False):
427  process._Process__name = "LHEembeddingCLEAN"
428  process = customiseCleaning(process,changeProcessname=False,reselect=reselect)
429  process = customiseLHE(process,changeProcessname=False,reselect=reselect)
430  return process
431 
433  return customiseLHEandCleaning(process,reselect=True)
434 
435 
436 
437 def customisoptions(process):
438  if not hasattr(process, "options"):
439  process.options = cms.untracked.PSet()
440  process.options.emptyRunLumiMode = cms.untracked.string('doNotHandleEmptyRunsAndLumis')
441  if not hasattr(process, "bunchSpacingProducer"):
442  process.bunchSpacingProducer = cms.EDProducer("BunchSpacingProducer")
443  process.bunchSpacingProducer.bunchSpacingOverride = cms.uint32(25)
444  process.bunchSpacingProducer.overrideBunchSpacing = cms.bool(True)
445  process.options.numberOfThreads = cms.untracked.uint32(1)
446  process.options.numberOfStreams = cms.untracked.uint32(0)
447  return process
448 
449 
450 
452  process.load("TauAnalysis.MCEmbeddingTools.DYToMuMuGenFilter_cfi")
453  process.ZToMuMuFilter = cms.Path(process.dYToMuMuGenFilter)
454  process.schedule.insert(-1,process.ZToMuMuFilter)
455  return process
456 
458  process.load("TauAnalysis.MCEmbeddingTools.TTbartoMuMuGenFilter_cfi")
459  process.MCFilter = cms.Path(process.TTbartoMuMuGenFilter)
460  return customiseMCFilter(process)
461 
462 def customiseMCFilter(process):
463  process.schedule.insert(-1,process.MCFilter)
464  outputModulesList = [key for key,value in six.iteritems(process.outputModules)]
465  for outputModule in outputModulesList:
466  outputModule = getattr(process, outputModule)
467  outputModule.SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring("MCFilter"))
468  return process
469 
470 def fix_input_tags(process, formodules = ["generalTracks","cscSegments","dt4DSegments","rpcRecHits"]):
471  def change_tags_process(test_input):
472  if isinstance(test_input, cms.InputTag):
473  if test_input.getModuleLabel() in formodules:
474  test_input.setProcessName(process._Process__name)
475 
476  def search_for_tags(pset):
477  if isinstance(pset, dict):
478  for key in pset:
479  if isinstance(pset[key], cms.VInputTag):
480  for akt_inputTag in pset[key]:
481  change_tags_process(akt_inputTag)
482  elif isinstance(pset[key], cms.PSet):
483  search_for_tags(pset[key].__dict__)
484  elif isinstance(pset[key], cms.VPSet):
485  for akt_pset in pset[key]:
486  search_for_tags(akt_pset.__dict__)
487  else:
488  change_tags_process(pset[key])
489  else:
490  print("must be python dict not a ",type(pset))
491 
492  for module in process.producers_():
493  search_for_tags(getattr(process, module).__dict__)
494  for module in process.filters_():
495  search_for_tags(getattr(process, module).__dict__)
496  for module in process.analyzers_():
497  search_for_tags(getattr(process, module).__dict__)
498 
499  return process
customisers.keepLHE
def keepLHE()
Customizer for simulaton ###########################.
Definition: customisers.py:174
customisers.customiseKeepPrunedGenParticles
def customiseKeepPrunedGenParticles(process, reselect=False)
Definition: customisers.py:265
customisers.module_manipulate
Customizer for skimming ########################### There are four different parts.
Definition: customisers.py:25
customisers.customiseMCFilter
def customiseMCFilter(process)
Definition: customisers.py:462
customisers.customiseLHEandCleaning
def customiseLHEandCleaning(process, reselect=False)
cross Customizers ###########################
Definition: customisers.py:426
customisers.customiseLHEandCleaning_Reselect
def customiseLHEandCleaning_Reselect(process)
Definition: customisers.py:432
customisers.module_manipulate.instance
instance
Definition: customisers.py:30
customisers.module_manipulate.steps
steps
Definition: customisers.py:29
customisers.keepSimulated
def keepSimulated()
Definition: customisers.py:181
customisers.module_manipulate.cleaner_name
cleaner_name
Definition: customisers.py:32
customisers.customiseLHE
def customiseLHE(process, changeProcessname=True, reselect=False)
Definition: customisers.py:197
customisers.customiseSelecting
def customiseSelecting(process, reselect=False)
Definition: customisers.py:99
customisers.module_manipulate.merge_prefix
merge_prefix
Definition: customisers.py:33
customisers.customiseFilterZToMuMu
def customiseFilterZToMuMu(process)
MC specific Customizer ###########################.
Definition: customisers.py:451
customisers.module_manipulate.__init__
def __init__(self, module_name, manipulator_name, steps=["SELECT","CLEAN","SIM","MERGE"], instance=[""], merge_prefix="")
Definition: customisers.py:26
customisers.module_manipulate.merger_name
merger_name
Definition: customisers.py:31
customisers.modify_outputModules
def modify_outputModules(process, keep_drop_list=[], module_veto_list=[])
Definition: customisers.py:70
customisers.fix_input_tags
def fix_input_tags(process, formodules=["generalTracks","cscSegments","dt4DSegments","rpcRecHits"])
Definition: customisers.py:470
customisers.keepSelected
def keepSelected(dataTier)
Customizer for Selecting ###########################.
Definition: customisers.py:84
default_cfi
customisers.customiseGenerator_Reselect
def customiseGenerator_Reselect(process)
Definition: customisers.py:253
customisers.customiseCleaning
def customiseCleaning(process, changeProcessname=True, reselect=False)
Definition: customisers.py:143
customisers.customiseFilterTTbartoMuMu
def customiseFilterTTbartoMuMu(process)
Definition: customisers.py:457
customisers.module_manipulate.manipulator_name
manipulator_name
Definition: customisers.py:28
customisers.customiseSelecting_Reselect
def customiseSelecting_Reselect(process)
Definition: customisers.py:123
customisers.keepMerged
def keepMerged(dataTier="SELECT")
Customizer for merging ###########################.
Definition: customisers.py:257
customisers.customiseMerging_Reselect
def customiseMerging_Reselect(process, changeProcessname=True)
Definition: customisers.py:421
edm::print
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
customisers.customiseMerging
def customiseMerging(process, changeProcessname=True, reselect=False)
Definition: customisers.py:323
customisers.keepCleaned
def keepCleaned()
Customizer for cleaining ###########################.
Definition: customisers.py:127
customisers.customiseGenerator
def customiseGenerator(process, changeProcessname=True, reselect=False)
Definition: customisers.py:215
customisers.module_manipulate.module_name
module_name
Definition: customisers.py:27
customisers.customisoptions
def customisoptions(process)
additionla Customizer ###########################
Definition: customisers.py:437