CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes | Static Private Attributes
coreTools.RemoveSpecificPATObjects Class Reference
Inheritance diagram for coreTools.RemoveSpecificPATObjects:

Public Member Functions

def __call__
 
def __init__
 
def getDefaultParameters
 
def toolCode
 

Private Attributes

 _comment
 
 _parameters
 

Static Private Attributes

tuple _defaultParameters = dicttypes.SortedKeysDict()
 
string _label = 'removeSpecificPATObjects'
 

Detailed Description

Remove a specific PAT object from the default sequence

Definition at line 284 of file coreTools.py.

Constructor & Destructor Documentation

def coreTools.RemoveSpecificPATObjects.__init__ (   self)

Definition at line 290 of file coreTools.py.

References editorTools.UserCodeTool._defaultParameters, coreTools.RestrictInputToAOD._defaultParameters, cmsswVersionTools.Run52xOn51xTrigger._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, editorTools.ChangeSource._defaultParameters, coreTools.RunOnData._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, coreTools.RemoveAllPATObjectsBut._defaultParameters, coreTools.RemoveSpecificPATObjects._defaultParameters, ConfigToolBase.ConfigToolBase._defaultValue, GenObject.GenObject._defaultValue, root::helper::RootFunctionAdapter< F, args >.addParameter(), root::helper::RootFunctionHelper< F, args, Tag >.addParameter(), ParameterMgr.addParameter(), fit::RootMinuit< Function >.addParameter(), DropBoxMetadata::Parameters.addParameter(), PythonParameterSet.addParameter(), LutXml.addParameter(), ConfigToolBase.ConfigToolBase.addParameter(), and edm::ParameterSet.addParameter().

291  def __init__(self):
292  ConfigToolBase.__init__(self)
293  self.addParameter(self._defaultParameters,'names',self._defaultValue, "list of collection names; supported are 'Photons', 'Electrons', 'Muons', 'Taus', 'Jets', 'METs'", Type=list, allowedValues=['Photons', 'Electrons', 'Muons', 'Taus', 'Jets', 'METs'])
294  self.addParameter(self._defaultParameters,'outputModules',['out'], "names of all output modules specified to be adapted (default is ['out'])")
295  self.addParameter(self._defaultParameters,'postfix',"", "postfix of default sequence")
296  self._parameters=copy.deepcopy(self._defaultParameters)
297  self._comment = ""

Member Function Documentation

def coreTools.RemoveSpecificPATObjects.__call__ (   self,
  process,
  names = None,
  outputInProcess = None,
  postfix = None,
  outputModules = None 
)

Definition at line 305 of file coreTools.py.

References editorTools.UserCodeTool._defaultParameters, coreTools.RestrictInputToAOD._defaultParameters, cmsswVersionTools.Run52xOn51xTrigger._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, editorTools.ChangeSource._defaultParameters, coreTools.RunOnData._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, coreTools.RemoveAllPATObjectsBut._defaultParameters, coreTools.RemoveSpecificPATObjects._defaultParameters, SignedImpactParameter3D.apply(), gen::PhotosInterfaceBase.apply(), SignedTransverseImpactParameter.apply(), SignedDecayLength3D.apply(), SurveyParameters.apply(), FWPSetCellEditor.apply(), gen::PhotosInterface.apply(), gen::PhotosInterface53XLegacy.apply(), cmsswVersionTools.Run52xOn51xTrigger.apply(), FWGUIEventFilter.apply(), DeviationsFromFileSensor2D.apply(), BeamSpotAlignmentParameters.apply(), RigidBodyAlignmentParameters.apply(), ConfigToolBase.ConfigToolBase.apply(), AlignmentParameters.apply(), BowedSurfaceAlignmentParameters.apply(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool.apply(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ApplyTool.apply(), TwoBowedSurfacesAlignmentParameters.apply(), Vispa.Gui.BoxContentDialog.BoxContentDialog.apply(), reco::modules::TrackerTrackHitFilter::Rule.apply(), Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.apply(), reco::Add< T >.apply(), reco::Sub< T >.apply(), reco::Mul< T >.apply(), reco::Div< T >.apply(), reco::And< bool >.apply(), reco::Or< bool >.apply(), reco::Less< T >.apply(), cmsswVersionTools.PickRelValInputFiles.apply(), reco::LessEqual< T >.apply(), reco::More< T >.apply(), reco::MoreEqual< T >.apply(), reco::Equal< T >.apply(), jetTools.RunBTagging.apply(), coreTools.deprecatedOptionOutputInProcess(), ora::OraMainTable.setParameter(), ora::IMainTable.setParameter(), PedeReader.setParameter(), ora::PoolMainTable.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

Referenced by coreTools.RemoveSpecificPATObjects.getDefaultParameters().

306  outputModules = None) :
307  ## stop processing if 'outputInProcess' exists and show the new alternative
308  if not outputInProcess is None:
310  if names is None:
311  names=self._defaultParameters['names'].value
312  if outputModules is None:
313  outputModules=self._defaultParameters['outputModules'].value
314  if postfix is None:
315  postfix=self._defaultParameters['postfix'].value
316  self.setParameter('names',names)
317  self.setParameter('outputModules',outputModules)
318  self.setParameter('postfix',postfix)
319  self.apply(process)
def deprecatedOptionOutputInProcess
Definition: coreTools.py:541
def coreTools.RemoveSpecificPATObjects.getDefaultParameters (   self)

Definition at line 298 of file coreTools.py.

References coreTools.RemoveSpecificPATObjects.__call__(), editorTools.UserCodeTool._defaultParameters, coreTools.RestrictInputToAOD._defaultParameters, cmsswVersionTools.Run52xOn51xTrigger._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, editorTools.ChangeSource._defaultParameters, coreTools.RunOnData._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, coreTools.RemoveAllPATObjectsBut._defaultParameters, and coreTools.RemoveSpecificPATObjects._defaultParameters.

Referenced by trigTools.SwitchOnTrigger.toolCode(), trigTools.SwitchOnTriggerStandAlone.toolCode(), trigTools.SwitchOnTriggerMatching.toolCode(), and trigTools.SwitchOnTriggerMatchingStandAlone.toolCode().

299  def getDefaultParameters(self):
300  return self._defaultParameters
def coreTools.RemoveSpecificPATObjects.toolCode (   self,
  process 
)

Definition at line 320 of file coreTools.py.

References editorTools.UserCodeTool._parameters, coreTools.RestrictInputToAOD._parameters, Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigFolder._parameters, cmsswVersionTools.Run52xOn51xTrigger._parameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._parameters, ConfigToolBase.ConfigToolBase._parameters, editorTools.ChangeSource._parameters, TAbsFitConstraint._parameters, TAbsFitParticle._parameters, coreTools.RunOnData._parameters, cmsswVersionTools.PickRelValInputFiles._parameters, coreTools.RemoveMCMatching._parameters, coreTools.RemoveAllPATObjectsBut._parameters, coreTools.RemoveSpecificPATObjects._parameters, helpers.applyPostfix(), if(), helpers.jetCollectionString(), helpers.listModules(), helpers.listSequences(), python.multivaluedict.remove(), and helpers.removeIfInSequence().

321  def toolCode(self, process):
322  names=self._parameters['names'].value
323  outputModules=self._parameters['outputModules'].value
324  postfix=self._parameters['postfix'].value
325 
326  ## remove pre object production steps from the default sequence
327  for obj in range(len(names)):
328  if( names[obj] == 'Photons' ):
329  removeIfInSequence(process, 'patPhotonIsolation', "patDefaultSequence", postfix)
330  removeIfInSequence(process, 'photonMatch', "patDefaultSequence", postfix)
331  removeIfInSequence(process, 'patPhotons', "patDefaultSequence", postfix)
332  if( names[obj] == 'Electrons' ):
333  removeIfInSequence(process, 'patElectronId', "patDefaultSequence", postfix)
334  removeIfInSequence(process, 'patElectronIsolation', "patDefaultSequence", postfix)
335  removeIfInSequence(process, 'electronMatch', "patDefaultSequence", postfix)
336  removeIfInSequence(process, 'patElectrons', "patDefaultSequence", postfix)
337  if( names[obj] == 'Muons' ):
338  removeIfInSequence(process, 'muonMatch', "patDefaultSequence", postfix)
339  removeIfInSequence(process, 'patMuons', "patDefaultSequence", postfix)
340  if( names[obj] == 'Taus' ):
341  removeIfInSequence(process, 'patPFCandidateIsoDepositSelection', "patDefaultSequence", postfix)
342  removeIfInSequence(process, 'patPFTauIsolation', "patDefaultSequence", postfix)
343  removeIfInSequence(process, 'tauMatch', "patDefaultSequence", postfix)
344  removeIfInSequence(process, 'tauGenJets', "patDefaultSequence", postfix)
345  removeIfInSequence(process, 'tauGenJetsSelectorAllHadrons', "patDefaultSequence", postfix)
346  removeIfInSequence(process, 'tauGenJetMatch', "patDefaultSequence", postfix)
347  removeIfInSequence(process, 'patTaus', "patDefaultSequence", postfix)
348  if( names[obj] == 'Jets' ):
349  removeIfInSequence(process, 'patJetCharge', "patDefaultSequence", postfix)
350  removeIfInSequence(process, 'patJetCorrections', "patDefaultSequence", postfix)
351  removeIfInSequence(process, 'patJetPartonMatch', "patDefaultSequence", postfix)
352  removeIfInSequence(process, 'patJetGenJetMatch', "patDefaultSequence", postfix)
353  removeIfInSequence(process, 'patJetFlavourIdLegacy', "patDefaultSequence", postfix)
354  removeIfInSequence(process, 'patJetFlavourId', "patDefaultSequence", postfix)
355  if( names[obj] == 'METs' ):
356  removeIfInSequence(process, 'patMETCorrections', "patDefaultSequence", postfix)
357 
358  ## remove object production steps from the default sequence
359  if( names[obj] == 'METs' ):
360  process.patDefaultSequence.remove( getattr(process, 'pat'+names[obj]) )
361  else:
362  if( names[obj] == 'Jets' ):
363  applyPostfix(process,"patDefaultSequence",postfix).remove(
364  getattr(process, jetCollectionString()+postfix) )
365  applyPostfix(process,"patDefaultSequence",postfix).remove(
366  getattr(process, jetCollectionString('selected')+postfix) )
367  applyPostfix(process,"patDefaultSequence",postfix).remove(
368  getattr(process, jetCollectionString('count')+postfix) )
369  else:
370  applyPostfix(process,"patDefaultSequence",postfix).remove(
371  getattr(process, 'pat'+names[obj]+postfix) )
372  applyPostfix(process,"patDefaultSequence",postfix).remove(
373  getattr(process, 'selectedPat'+names[obj]+postfix) )
374  applyPostfix(process,"patDefaultSequence",postfix).remove(
375  getattr(process, 'countPat'+names[obj]+postfix) )
376  ## in the case of leptons, the lepton counter must be modified as well
377  if( names[obj] == 'Electrons' ):
378  print 'removed from lepton counter: electrons'
379  applyPostfix(process,"countPatLeptons",postfix).countElectrons = False
380  elif( names[obj] == 'Muons' ):
381  print 'removed from lepton counter: muons'
382  applyPostfix(process,"countPatLeptons",postfix).countMuons = False
383  elif( names[obj] == 'Taus' ):
384  print 'removed from lepton counter: taus'
385  applyPostfix(process,"countPatLeptons",postfix).countTaus = False
386  ## remove from summary
387  if( names[obj] == 'METs' ):
388  applyPostfix(process,"patCandidateSummary",postfix).candidates.remove(
389  cms.InputTag('pat'+names[obj]+postfix) )
390  else:
391  if( names[obj] == 'Jets' ):
392  applyPostfix(process,"patCandidateSummary",postfix).candidates.remove(
393  cms.InputTag(jetCollectionString()+postfix) )
394  applyPostfix(process,"selectedPatCandidateSummary",postfix).candidates.remove(
395  cms.InputTag(jetCollectionString('selected')+postfix) )
396  applyPostfix(process,"cleanPatCandidateSummary",postfix).candidates.remove(
397  cms.InputTag(jetCollectionString('clean')+postfix) )
398  else:
399  ## check whether module is in sequence or not
400  result = [ m.label()[:-len(postfix)] for m in listModules( getattr(process,"patDefaultSequence"+postfix))]
401  result.extend([ m.label()[:-len(postfix)] for m in listSequences( getattr(process,"patDefaultSequence"+postfix))] )
402  if applyPostfix(process,"patCandidateSummary",postfix) in result :
403  applyPostfix(process,"patCandidateSummary",postfix).candidates.remove(
404  cms.InputTag('pat'+names[obj]+postfix) )
405  if applyPostfix(process,"selectedPatCandidateSummary",postfix) in result :
406  applyPostfix(process,"selectedPatCandidateSummary",postfix).candidates.remove(
407  cms.InputTag('selectedPat'+names[obj]+postfix) )
408  if applyPostfix(process,"cleanPatCandidateSummary",postfix) in result :
409  applyPostfix(process,"cleanPatCandidateSummary",postfix).candidates.remove(
410  cms.InputTag('cleanPat'+names[obj]+postfix) )
411  ## remove cleaning for the moment; in principle only the removed object
412  ## could be taken out of the checkOverlaps PSet
413  if len(outputModules) > 0:
414  print "---------------------------------------------------------------------"
415  print "INFO : some objects have been removed from the sequence. Switching "
416  print " off PAT cross collection cleaning, as it might be of limited"
417  print " sense now. If you still want to keep object collection cross"
418  print " cleaning within PAT you need to run and configure it by hand"
419  removeCleaning(process,outputModules=outputModules,postfix=postfix)
420 
421 removeSpecificPATObjects=RemoveSpecificPATObjects()
422 
def listModules
Definition: helpers.py:208
def listSequences
Definition: helpers.py:213
def jetCollectionString
Definition: helpers.py:222
def applyPostfix
Helpers to perform some technically boring tasks like looking for all modules with a given parameter ...
Definition: helpers.py:6
perl if(1 lt scalar(@::datatypes))
Definition: edlooper.cc:31
def removeIfInSequence
Definition: helpers.py:20

Member Data Documentation

coreTools.RemoveSpecificPATObjects._comment
private

Definition at line 296 of file coreTools.py.

Referenced by metUncertaintyTools.RunMEtUncertainties.__init__().

tuple coreTools.RemoveSpecificPATObjects._defaultParameters = dicttypes.SortedKeysDict()
staticprivate

Definition at line 289 of file coreTools.py.

Referenced by electronTools.AddElectronUserIsolation.__call__(), photonTools.AddPhotonUserIsolation.__call__(), metTools.AddTcMET.__call__(), muonTools.AddMuonUserIsolation.__call__(), HiCoreTools.RestrictInputToAOD.__call__(), trackTools.MakeAODTrackCandidates.__call__(), metTools.AddPfMET.__call__(), HiCoreTools.RemoveMCMatching.__call__(), trackTools.MakePATTrackCandidates.__call__(), trigTools.SwitchOnTrigger.__call__(), HiCoreTools.RemoveAllPATObjectsBut.__call__(), jetTools.RunBTagging.__call__(), HiCoreTools.RemoveSpecificPATObjects.__call__(), trigTools.SwitchOnTriggerStandAlone.__call__(), trackTools.MakeTrackCandidates.__call__(), coreTools.RemoveSpecificPATObjects.__call__(), HiCoreTools.RemoveCleaning.__call__(), trigTools.SwitchOnTriggerMatching.__call__(), HiCoreTools.AddCleaning.__call__(), coreTools.RemoveCleaning.__call__(), tauTools.AddTauCollection.__call__(), trigTools.SwitchOnTriggerMatchingStandAlone.__call__(), coreTools.AddCleaning.__call__(), jetTools.AddJetCollection.__call__(), trigTools.SwitchOnTriggerMatchEmbedding.__call__(), trigTools.RemoveCleaningFromTriggerMatching.__call__(), jetTools.SwitchJetCollection.__call__(), jetTools.AddJetID.__call__(), metUncertaintyTools.RunMEtUncertainties.__call__(), jetTools.SetTagInfos.__call__(), jetTools.SwitchJetCorrLevels.__call__(), electronTools.AddElectronUserIsolation.__init__(), photonTools.AddPhotonUserIsolation.__init__(), metTools.AddTcMET.__init__(), muonTools.AddMuonUserIsolation.__init__(), trackTools.MakeAODTrackCandidates.__init__(), HiCoreTools.RestrictInputToAOD.__init__(), metUncertaintyTools.RunMEtUncertainties.__init__(), metTools.AddPfMET.__init__(), HiCoreTools.RemoveMCMatching.__init__(), trackTools.MakePATTrackCandidates.__init__(), trigTools.SwitchOnTrigger.__init__(), HiCoreTools.RemoveAllPATObjectsBut.__init__(), jetTools.RunBTagging.__init__(), HiCoreTools.RemoveSpecificPATObjects.__init__(), trigTools.SwitchOnTriggerStandAlone.__init__(), trackTools.MakeTrackCandidates.__init__(), coreTools.RemoveSpecificPATObjects.__init__(), HiCoreTools.RemoveCleaning.__init__(), trigTools.SwitchOnTriggerMatching.__init__(), HiCoreTools.AddCleaning.__init__(), tauTools.AddTauCollection.__init__(), coreTools.RemoveCleaning.__init__(), trigTools.SwitchOnTriggerMatchingStandAlone.__init__(), coreTools.AddCleaning.__init__(), jetTools.AddJetCollection.__init__(), trigTools.SwitchOnTriggerMatchEmbedding.__init__(), trigTools.RemoveCleaningFromTriggerMatching.__init__(), jetTools.SwitchJetCollection.__init__(), jetTools.AddJetID.__init__(), jetTools.SetTagInfos.__init__(), jetTools.SwitchJetCorrLevels.__init__(), metUncertaintyTools.RunMEtUncertainties._initializeInputTag(), ConfigToolBase.ConfigToolBase.dumpPython(), ConfigToolBase.ConfigToolBase.getAllowedValues(), electronTools.AddElectronUserIsolation.getDefaultParameters(), photonTools.AddPhotonUserIsolation.getDefaultParameters(), heavyIonTools.ConfigureHeavyIons.getDefaultParameters(), metTools.AddTcMET.getDefaultParameters(), muonTools.AddMuonUserIsolation.getDefaultParameters(), HiCoreTools.RestrictInputToAOD.getDefaultParameters(), trackTools.MakeAODTrackCandidates.getDefaultParameters(), heavyIonTools.ProductionDefaults.getDefaultParameters(), metTools.AddPfMET.getDefaultParameters(), HiCoreTools.RemoveMCMatching.getDefaultParameters(), metUncertaintyTools.RunMEtUncertainties.getDefaultParameters(), trackTools.MakePATTrackCandidates.getDefaultParameters(), trigTools.SwitchOnTrigger.getDefaultParameters(), heavyIonTools.SelectionDefaults.getDefaultParameters(), HiCoreTools.RemoveAllPATObjectsBut.getDefaultParameters(), heavyIonTools.DisbaleMonteCarloDeps.getDefaultParameters(), jetTools.RunBTagging.getDefaultParameters(), HiCoreTools.RemoveSpecificPATObjects.getDefaultParameters(), trigTools.SwitchOnTriggerStandAlone.getDefaultParameters(), trackTools.MakeTrackCandidates.getDefaultParameters(), coreTools.RemoveSpecificPATObjects.getDefaultParameters(), HiCoreTools.RemoveCleaning.getDefaultParameters(), trigTools.SwitchOnTriggerMatching.getDefaultParameters(), HiCoreTools.AddCleaning.getDefaultParameters(), coreTools.RemoveCleaning.getDefaultParameters(), tauTools.AddTauCollection.getDefaultParameters(), trigTools.SwitchOnTriggerMatchingStandAlone.getDefaultParameters(), coreTools.AddCleaning.getDefaultParameters(), jetTools.AddJetCollection.getDefaultParameters(), trigTools.SwitchOnTriggerMatchEmbedding.getDefaultParameters(), trigTools.RemoveCleaningFromTriggerMatching.getDefaultParameters(), jetTools.SwitchJetCollection.getDefaultParameters(), jetTools.AddJetID.getDefaultParameters(), jetTools.SetTagInfos.getDefaultParameters(), jetTools.SwitchJetCorrLevels.getDefaultParameters(), ConfigToolBase.ConfigToolBase.reset(), and ConfigToolBase.ConfigToolBase.setParameter().

string coreTools.RemoveSpecificPATObjects._label = 'removeSpecificPATObjects'
staticprivate

Definition at line 288 of file coreTools.py.

Referenced by trigTools.SwitchOnTrigger.toolCode(), trigTools.SwitchOnTriggerStandAlone.toolCode(), trigTools.SwitchOnTriggerMatching.toolCode(), trigTools.SwitchOnTriggerMatchingStandAlone.toolCode(), trigTools.SwitchOnTriggerMatchEmbedding.toolCode(), and trigTools.RemoveCleaningFromTriggerMatching.toolCode().

coreTools.RemoveSpecificPATObjects._parameters
private

Definition at line 295 of file coreTools.py.

Referenced by metUncertaintyTools.RunMEtUncertainties.__init__(), jetTools.RunBTagging.apply(), electronTools.AddElectronUserIsolation.toolCode(), photonTools.AddPhotonUserIsolation.toolCode(), metTools.AddTcMET.toolCode(), muonTools.AddMuonUserIsolation.toolCode(), HiCoreTools.RestrictInputToAOD.toolCode(), trackTools.MakeAODTrackCandidates.toolCode(), metTools.AddPfMET.toolCode(), HiCoreTools.RemoveMCMatching.toolCode(), trackTools.MakePATTrackCandidates.toolCode(), trigTools.SwitchOnTrigger.toolCode(), HiCoreTools.RemoveAllPATObjectsBut.toolCode(), HiCoreTools.RemoveSpecificPATObjects.toolCode(), trigTools.SwitchOnTriggerStandAlone.toolCode(), trackTools.MakeTrackCandidates.toolCode(), coreTools.RemoveSpecificPATObjects.toolCode(), HiCoreTools.RemoveCleaning.toolCode(), trigTools.SwitchOnTriggerMatching.toolCode(), HiCoreTools.AddCleaning.toolCode(), coreTools.RemoveCleaning.toolCode(), tauTools.AddTauCollection.toolCode(), trigTools.SwitchOnTriggerMatchingStandAlone.toolCode(), coreTools.AddCleaning.toolCode(), jetTools.AddJetCollection.toolCode(), trigTools.SwitchOnTriggerMatchEmbedding.toolCode(), trigTools.RemoveCleaningFromTriggerMatching.toolCode(), jetTools.SwitchJetCollection.toolCode(), jetTools.AddJetID.toolCode(), jetTools.SetTagInfos.toolCode(), jetTools.SwitchJetCorrLevels.toolCode(), and metUncertaintyTools.RunMEtUncertainties.toolCode().