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
jetTools.AddJetCollection Class Reference
Inheritance diagram for jetTools.AddJetCollection:

Public Member Functions

def __call__
 
def __init__
 
def getDefaultParameters
 
def toolCode
 

Private Attributes

 _comment
 
 _parameters
 

Static Private Attributes

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

Detailed Description

Add a new collection of jets. Takes the configuration from the
already configured standard jet collection as starting point;
replaces before calling addJetCollection will also affect the
new jet collections

Definition at line 495 of file jetTools.py.

Constructor & Destructor Documentation

def jetTools.AddJetCollection.__init__ (   self)

Definition at line 505 of file jetTools.py.

References electronTools.AddElectronUserIsolation._defaultParameters, editorTools.UserCodeTool._defaultParameters, heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RestrictInputToAOD._defaultParameters, cmsswVersionTools.Run52xOn51xTrigger._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, editorTools.ChangeSource._defaultParameters, coreTools.RunOnData._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, jetTools.RunBTagging._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, coreTools.RemoveAllPATObjectsBut._defaultParameters, coreTools.RemoveSpecificPATObjects._defaultParameters, coreTools.RemoveCleaning._defaultParameters, coreTools.AddCleaning._defaultParameters, jetTools.AddJetCollection._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().

506  def __init__(self):
507  ConfigToolBase.__init__(self)
508  self.addParameter(self._defaultParameters,'jetCollection',self._defaultValue,'Input jet collection', cms.InputTag)
509  self.addParameter(self._defaultParameters,'algoLabel',self._defaultValue, "label to indicate the jet algorithm (e.g.'AK5')",str)
510  self.addParameter(self._defaultParameters,'typeLabel',self._defaultValue, "label to indicate the type of constituents (e.g. 'Calo', 'Pflow', 'Jpt', ...)",str)
511  self.addParameter(self._defaultParameters,'btagInfo',_defaultBTagInfos,"input btag info",allowedValues=_allowedBTagInfos,Type=list)
512  self.addParameter(self._defaultParameters,'btagdiscriminators',_defaultBTagDiscriminators,"input btag discriminators",allowedValues=_allowedBTagDiscriminators,Type=list)
513  self.addParameter(self._defaultParameters,'doJTA',True, "run b tagging sequence for new jet collection and add it to the new pat jet collection")
514  self.addParameter(self._defaultParameters,'doBTagging',True, 'run JetTracksAssociation and JetCharge and add it to the new pat jet collection (will autom. be true if doBTagging is set to true)')
515  self.addParameter(self._defaultParameters,'jetCorrLabel',None, "payload and list of new jet correction labels, such as (\'AK5Calo\',[\'L2Relative\', \'L3Absolute\'])", tuple,acceptNoneValue=True )
516  self.addParameter(self._defaultParameters,'doType1MET',True, "if jetCorrLabel is not 'None', set this to 'True' to redo the Type1 MET correction for the new jet colllection; at the moment it must be 'False' for non CaloJets otherwise the JetMET POG module crashes. ")
517  self.addParameter(self._defaultParameters,'doL1Cleaning',True, "copy also the producer modules for cleanLayer1 will be set to 'True' automatically when doL1Counters is 'True'")
518  self.addParameter(self._defaultParameters,'doL1Counters',False, "copy also the filter modules that accept/reject the event looking at the number of jets")
519  self.addParameter(self._defaultParameters,'genJetCollection',cms.InputTag("ak5GenJets"), "GenJet collection to match to")
520  self.addParameter(self._defaultParameters,'doJetID',True, "add jetId variables to the added jet collection?")
521  self.addParameter(self._defaultParameters,'jetIdLabel',"ak5", " specify the label prefix of the xxxJetID object; in general it is the jet collection tag like ak5, kt4 sc5, aso. For more information have a look to SWGuidePATTools#add_JetCollection")
522  self.addParameter(self._defaultParameters,'standardAlgo',"AK5", "standard algorithm label of the collection from which the clones for the new jet collection will be taken from (note that this jet collection has to be available in the event before hand)")
523  self.addParameter(self._defaultParameters,'standardType',"Calo", "standard constituent type label of the collection from which the clones for the new jet collection will be taken from (note that this jet collection has to be available in the event before hand)")
524  self.addParameter(self._defaultParameters,'outputModules', ['out'], "output module labels, empty list of label indicates no output, default: ['out']")
526  self._parameters=copy.deepcopy(self._defaultParameters)
527  self._comment = ""

Member Function Documentation

def jetTools.AddJetCollection.__call__ (   self,
  process,
  jetCollection = None,
  algoLabel = None,
  typeLabel = None,
  doJTA = None,
  doBTagging = None,
  jetCorrLabel = None,
  doType1MET = None,
  doL1Cleaning = None,
  doL1Counters = None,
  genJetCollection = None,
  doJetID = None,
  jetIdLabel = None,
  outputModule = None,
  outputModules = None,
  btagInfo = None,
  btagdiscriminators = None 
)

Definition at line 549 of file jetTools.py.

References electronTools.AddElectronUserIsolation._defaultParameters, editorTools.UserCodeTool._defaultParameters, heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RestrictInputToAOD._defaultParameters, cmsswVersionTools.Run52xOn51xTrigger._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, editorTools.ChangeSource._defaultParameters, coreTools.RunOnData._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, jetTools.RunBTagging._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, coreTools.RemoveAllPATObjectsBut._defaultParameters, coreTools.RemoveSpecificPATObjects._defaultParameters, coreTools.RemoveCleaning._defaultParameters, coreTools.AddCleaning._defaultParameters, jetTools.AddJetCollection._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(), jetTools.depricatedOptionOutputModule(), ora::OraMainTable.setParameter(), ora::IMainTable.setParameter(), PedeReader.setParameter(), ora::PoolMainTable.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

Referenced by jetTools.AddJetCollection.getDefaultParameters().

550  ):
551 
552  ## stop processing if 'outputModule' exists and show the new alternative
553  if not outputModule is None:
555  if jetCollection is None:
556  jetCollection=self._defaultParameters['jetCollection'].value
557  if algoLabel is None:
558  algoLabel=self._defaultParameters['algoLabel'].value
559  if typeLabel is None:
560  typeLabel=self._defaultParameters['typeLabel'].value
561  if doJTA is None:
562  doJTA=self._defaultParameters['doJTA'].value
563  if doBTagging is None:
564  doBTagging=self._defaultParameters['doBTagging'].value
565  if jetCorrLabel is None:
566  jetCorrLabel=self._defaultParameters['jetCorrLabel'].value
567  if doType1MET is None:
568  doType1MET=self._defaultParameters['doType1MET'].value
569  if doL1Cleaning is None:
570  doL1Cleaning=self._defaultParameters['doL1Cleaning'].value
571  if doL1Counters is None:
572  doL1Counters=self._defaultParameters['doL1Counters'].value
573  if genJetCollection is None:
574  genJetCollection=self._defaultParameters['genJetCollection'].value
575  if doJetID is None:
576  doJetID=self._defaultParameters['doJetID'].value
577  if jetIdLabel is None:
578  jetIdLabel=self._defaultParameters['jetIdLabel'].value
579  if outputModules is None:
580  outputModules=self._defaultParameters['outputModules'].value
581  if btagInfo is None:
582  btagInfo=self._defaultParameters['btagInfo'].value
583  if btagdiscriminators is None:
584  btagdiscriminators=self._defaultParameters['btagdiscriminators'].value
585 
586  self.setParameter('jetCollection',jetCollection)
587  self.setParameter('algoLabel',algoLabel)
588  self.setParameter('typeLabel',typeLabel)
589  self.setParameter('doJTA',doJTA)
590  self.setParameter('doBTagging',doBTagging)
591  self.setParameter('jetCorrLabel',jetCorrLabel)
592  self.setParameter('doType1MET',doType1MET)
593  self.setParameter('doL1Cleaning',doL1Cleaning)
594  self.setParameter('doL1Counters',doL1Counters)
595  self.setParameter('genJetCollection',genJetCollection)
596  self.setParameter('doJetID',doJetID)
597  self.setParameter('jetIdLabel',jetIdLabel)
598  self.setParameter('outputModules',outputModules)
599  self.setParameter('btagInfo',btagInfo)
600  self.setParameter('btagdiscriminators',btagdiscriminators)
601 
602  self.apply(process)
def depricatedOptionOutputModule
Definition: jetTools.py:1408
def jetTools.AddJetCollection.getDefaultParameters (   self)

Definition at line 528 of file jetTools.py.

References jetTools.AddJetCollection.__call__(), electronTools.AddElectronUserIsolation._defaultParameters, editorTools.UserCodeTool._defaultParameters, heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RestrictInputToAOD._defaultParameters, cmsswVersionTools.Run52xOn51xTrigger._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, editorTools.ChangeSource._defaultParameters, coreTools.RunOnData._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, jetTools.RunBTagging._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, coreTools.RemoveAllPATObjectsBut._defaultParameters, coreTools.RemoveSpecificPATObjects._defaultParameters, coreTools.RemoveCleaning._defaultParameters, coreTools.AddCleaning._defaultParameters, and jetTools.AddJetCollection._defaultParameters.

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

529  def getDefaultParameters(self):
530  return self._defaultParameters
def jetTools.AddJetCollection.toolCode (   self,
  process 
)

Definition at line 603 of file jetTools.py.

References editorTools.UserCodeTool._parameters, electronTools.AddElectronUserIsolation._parameters, heavyIonTools.ConfigureHeavyIons._parameters, coreTools.RestrictInputToAOD._parameters, Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigFolder._parameters, cmsswVersionTools.Run52xOn51xTrigger._parameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._parameters, heavyIonTools.ProductionDefaults._parameters, ConfigToolBase.ConfigToolBase._parameters, editorTools.ChangeSource._parameters, TAbsFitConstraint._parameters, TAbsFitParticle._parameters, coreTools.RunOnData._parameters, cmsswVersionTools.PickRelValInputFiles._parameters, coreTools.RemoveMCMatching._parameters, heavyIonTools.SelectionDefaults._parameters, heavyIonTools.DisbaleMonteCarloDeps._parameters, jetTools.RunBTagging._parameters, coreTools.RemoveAllPATObjectsBut._parameters, coreTools.RemoveSpecificPATObjects._parameters, coreTools.RemoveCleaning._parameters, coreTools.AddCleaning._parameters, jetTools.AddJetCollection._parameters, clone(), if(), helpers.jetCollectionString(), and linker.replace().

604  def toolCode(self, process):
605 
606  jetCollection=self._parameters['jetCollection'].value
607  algoLabel=self._parameters['algoLabel'].value
608  typeLabel=self._parameters['typeLabel'].value
609  doJTA=self._parameters['doJTA'].value
610  doBTagging=self._parameters['doBTagging'].value
611  jetCorrLabel=self._parameters['jetCorrLabel'].value
612  doType1MET =self._parameters['doType1MET'].value
613  doL1Cleaning=self._parameters['doL1Cleaning'].value
614  doL1Counters=self._parameters['doL1Counters'].value
615  genJetCollection=self._parameters['genJetCollection'].value
616  doJetID=self._parameters['doJetID'].value
617  jetIdLabel=self._parameters['jetIdLabel'].value
618  outputModules=self._parameters['outputModules'].value
619  btagInfo=self._parameters['btagInfo'].value
620  btagdiscriminators=self._parameters['btagdiscriminators'].value
621 
622 
623  ## create old module label from standardAlgo
624  ## and standardType and return
625  def oldLabel(prefix=''):
626  return jetCollectionString(prefix, '', '')
627 
628  ## create new module label from old module
629  ## label and return
630  def newLabel(oldLabel):
631  newLabel=oldLabel
632  oldLabel=oldLabel+algoLabel+typeLabel
633  return oldLabel
634 
635  ## clone module and add it to the patDefaultSequence
636  def addClone(hook, **replaceStatements):
637  ## create a clone of the hook with corresponding
638  ## parameter replacements
639  newModule = getattr(process, hook).clone(**replaceStatements)
640  ## add the module to the sequence
641  addModuleToSequence(hook, newModule)
642 
643  ## add module to the patDefaultSequence
644  def addModuleToSequence(hook, newModule):
645  hookModule = getattr(process, hook)
646  ## add the new module with standardAlgo &
647  ## standardType replaced in module label
648  setattr( process, newLabel(hook), newModule)
649  ## add new module to default sequence
650  ## just behind the hookModule
651  process.patDefaultSequence.replace( hookModule, hookModule*newModule )
652 
653  ## add a clone of patJets
654  addClone(oldLabel(), jetSource = jetCollection)
655  ## add a clone of selectedPatJets
656  addClone(oldLabel('selected'), src=cms.InputTag(newLabel(oldLabel())))
657  ## add a clone of cleanPatJets
658  if( doL1Cleaning ):
659  addClone(oldLabel('clean'), src=cms.InputTag(newLabel(oldLabel('selected'))))
660  ## add a clone of countPatJets
661  if( doL1Counters ):
662  if( doL1Cleaning ):
663  addClone(oldLabel('count'), src=cms.InputTag(newLabel(oldLabel('clean'))))
664  else:
665  addClone(oldLabel('count'), src=cms.InputTag(newLabel(oldLabel('selected'))))
666 
667  ## get attributes of new module
668  l1Jets = getattr(process, newLabel(oldLabel()))
669 
670  ## add a clone of gen jet matching
671  addClone('patJetPartonMatch', src = jetCollection)
672  addClone('patJetGenJetMatch', src = jetCollection, matched = genJetCollection)
673 
674  ## add a clone of parton and flavour associations
675  addClone('patJetPartonAssociation', jets = jetCollection)
676  addClone('patJetFlavourAssociation', srcByReference = cms.InputTag(newLabel('patJetPartonAssociation')))
677 
678  ## fix label for input tag
679  def fixInputTag(x): x.setModuleLabel(newLabel(x.moduleLabel))
680  ## fix label for vector of input tags
681  def fixVInputTag(x): x[0].setModuleLabel(newLabel(x[0].moduleLabel))
682 
683  ## provide allLayer1Jet inputs with individual labels
684  fixInputTag(l1Jets.genJetMatch)
685  fixInputTag(l1Jets.genPartonMatch)
686  fixInputTag(l1Jets.JetPartonMapSource)
687 
688  ## make VInputTag from strings
689  def vit(*args) : return cms.VInputTag( *[ cms.InputTag(x) for x in args ] )
690 
691  if (doJTA or doBTagging):
692  ## add clone of jet track association
693  ###process.load("RecoJets.JetAssociationProducers.ak5JTA_cff")
694  from RecoJets.JetAssociationProducers.ak5JTA_cff import ak5JetTracksAssociatorAtVertex
695  ## add jet track association module to processes
696  jtaLabel = 'jetTracksAssociatorAtVertex'+algoLabel+typeLabel
697  setattr( process, jtaLabel, ak5JetTracksAssociatorAtVertex.clone(jets = jetCollection) )
698  process.patDefaultSequence.replace(process.patJetCharge, getattr(process,jtaLabel)+process.patJetCharge)
699  l1Jets.trackAssociationSource = cms.InputTag(jtaLabel)
700  addClone('patJetCharge', src=cms.InputTag(jtaLabel)),
701  fixInputTag(l1Jets.jetChargeSource)
702  else:
703  ## switch embedding of track association and jet
704  ## charge estimate to 'False'
705  l1Jets.addAssociatedTracks = False
706  l1Jets.addJetCharge = False
707 
708  if (doBTagging):
709  ## define postfixLabel
710  postfixLabel=algoLabel+typeLabel
711  ## add b tagging sequence
712  (btagSeq, btagLabels) = runBTagging(process, jetCollection, postfixLabel,"", btagInfo,btagdiscriminators)
713  ## add b tagging sequence before running the allLayer1Jets modules
714  ## nedded only after first call to runBTagging(), existing sequence modified in place otherwise
715  if not btagSeq == None:
716  process.patDefaultSequence.replace(getattr(process,jtaLabel), getattr(process,jtaLabel)+btagSeq)
717  ## replace corresponding tags for pat jet production
718  l1Jets.trackAssociationSource = cms.InputTag(btagLabels['jta'])
719  l1Jets.tagInfoSources = cms.VInputTag( *[ cms.InputTag(x) for x in btagLabels['tagInfos'] ] )
720  l1Jets.discriminatorSources = cms.VInputTag( *[ cms.InputTag(x) for x in btagLabels['jetTags'] ] )
721  else:
722  ## switch general b tagging info switch off
723  l1Jets.addBTagInfo = False
724  ## adjust output
725  if len(outputModules) > 0:
726  for outMod in outputModules:
727  if hasattr(process,outMod):
728  getattr(process,outMod).outputCommands.append("drop *_"+newLabel(oldLabel('selected'))+"_tagInfos_*")
729  else:
730  raise KeyError, "process has no OutModule named", outMod
731 
732  if (doJetID):
733  l1Jets.addJetID = cms.bool(True)
734  jetIdLabelNew = jetIdLabel + 'JetID'
735  l1Jets.jetIDMap = cms.InputTag( jetIdLabelNew )
736  else :
737  l1Jets.addJetID = cms.bool(False)
738 
739  if (jetCorrLabel != None):
740  ## add clone of jet energy corrections;
741  ## catch a couple of exceptions first
742  if (jetCorrLabel == False ):
743  raise ValueError, "In addJetCollection 'jetCorrLabel' must be set to 'None', not 'False'"
744  if (jetCorrLabel == "None"):
745  raise ValueError, "In addJetCollection 'jetCorrLabel' must be set to 'None' (without quotes)"
746  ## check for the correct format
747  if type(jetCorrLabel) != type(('AK5Calo',['L2Relative'])):
748  raise ValueError, "In addJetCollection 'jetCorrLabel' must be 'None', or of type ('payload',['correction1', 'correction2'])"
749 
750  ## add clone of jetCorrFactors
751  addClone('patJetCorrFactors', src = jetCollection)
752  switchJetCorrLevels(process, jetCorrLabel = jetCorrLabel, postfix=algoLabel+typeLabel)
753  getattr(process, newLabel('patJets')).jetCorrFactorsSource = cms.VInputTag( cms.InputTag(newLabel('patJetCorrFactors')) )
754 
755  ## find out type of jet collection, switch type1MET corrections off for JPTJets
756  jetCollType = ''
757  if ( 'CaloJets' in jetCollection.getModuleLabel() ):
758  jetCollType = 'Calo'
759  elif ( 'PFJets' in jetCollection.getModuleLabel() or jetCollection.getModuleLabel().startswith('pfNo') or jetCollection.getModuleLabel() == 'particleFlow'):
760  jetCollType = 'PF'
761  else:
762  print '============================================='
763  print 'Type1MET corrections are switched off for '
764  print 'JPT Jets. Users are recommened to use tcMET '
765  print 'together with JPT jets. '
766  print '============================================='
767  doType1MET=False
768 
769  ## add a clone of the type1MET correction for the new jet collection
770  if (doType1MET):
771  ## create jet correctors for MET corrections
772  from JetMETCorrections.Configuration.JetCorrectionServicesAllAlgos_cff import ak5PFL1Fastjet, ak5PFL1Offset, ak5PFL2Relative, ak5PFL3Absolute, ak5PFResidual
773  setattr(process, jetCorrLabel[0]+'L1FastJet' , ak5PFL1Fastjet.clone ( algorithm=jetCorrLabel[0]
774  , srcRho=cms.InputTag(newLabel('kt6PFJets'),'rho') ) )
775  setattr(process, jetCorrLabel[0]+'L1Offset' , ak5PFL1Offset.clone ( algorithm=jetCorrLabel[0] ) )
776  setattr(process, jetCorrLabel[0]+'L2Relative' , ak5PFL2Relative.clone( algorithm=jetCorrLabel[0] ) )
777  setattr(process, jetCorrLabel[0]+'L3Absolute' , ak5PFL3Absolute.clone( algorithm=jetCorrLabel[0] ) )
778  setattr(process, jetCorrLabel[0]+'L2L3Residual', ak5PFResidual.clone ( algorithm=jetCorrLabel[0] ) )
779  ## combinded corrections
780  setattr(process, jetCorrLabel[0]+'CombinedCorrector', cms.ESProducer( 'JetCorrectionESChain'
781  , correctors = cms.vstring() ) )
782 
783  for corrLbl in jetCorrLabel[1]:
784  if corrLbl != 'L1FastJet' and corrLbl != 'L1Offset' and corrLbl != 'L2Relative' and corrLbl != 'L3Absolute' and corrLbl != 'L2L3Residual':
785  print '========================================='
786  print ' Type1MET corrections are currently only '
787  print ' supported for the following corrections: '
788  print ' - L1FastJet'
789  print ' - L1Offset'
790  print ' - L2Relative'
791  print ' - L3Absolute'
792  print ' - L2L3Residual'
793  print ' But given was:'
794  print ' -', corrLbl
795  print '============================================='
796  raise ValueError, 'unsupported JEC for TypeI MET correction: '+corrLbl
797  else:
798  getattr(process, jetCorrLabel[0]+'CombinedCorrector').correctors.append(jetCorrLabel[0]+corrLbl)
799 
800  ## configuration of MET corrections
801  if jetCollType == 'Calo':
802  from JetMETCorrections.Type1MET.caloMETCorrections_cff import caloJetMETcorr,caloType1CorrectedMet,caloType1p2CorrectedMet,produceCaloMETCorrections
803 
804  setattr(process,jetCorrLabel[0]+'JetMETcorr', caloJetMETcorr.clone(srcMET = "corMetGlobalMuons"))
805  setattr(process,jetCorrLabel[0]+'Type1CorMet', caloType1CorrectedMet.clone(src = "corMetGlobalMuons"))
806  setattr(process,jetCorrLabel[0]+'Type1p2CorMet',caloType1p2CorrectedMet.clone(src = "corMetGlobalMuons"))
807 
808  getattr(process,jetCorrLabel[0]+'JetMETcorr' ).src = cms.InputTag(jetCollection.getModuleLabel())
809  if ('L1FastJet' in jetCorrLabel[1] or 'L1Fastjet' in jetCorrLabel[1]):
810  getattr(process,jetCorrLabel[0]+'JetMETcorr' ).offsetCorrLabel = cms.string(jetCorrLabel[0]+'L1FastJet')
811  elif ('L1Offset' in jetCorrLabel[1]):
812  getattr(process,jetCorrLabel[0]+'JetMETcorr' ).offsetCorrLabel = cms.string(jetCorrLabel[0]+'L1Offset')
813  else:
814  getattr(process,jetCorrLabel[0]+'JetMETcorr' ).offsetCorrLabel = cms.string('')
815  getattr(process,jetCorrLabel[0]+'JetMETcorr' ).jetCorrLabel = cms.string(jetCorrLabel[0]+'CombinedCorrector')
816 
817  getattr(process,jetCorrLabel[0]+'Type1CorMet' ).srcType1Corrections = cms.VInputTag(
818  cms.InputTag(jetCorrLabel[0]+'JetMETcorr', 'type1')
819  )
820 
821  getattr(process,jetCorrLabel[0]+'Type1p2CorMet').srcType1Corrections = cms.VInputTag(
822  cms.InputTag(jetCorrLabel[0]+'JetMETcorr', 'type1')
823  )
824  getattr(process,jetCorrLabel[0]+'Type1p2CorMet').srcUnclEnergySums = cms.VInputTag(
825  cms.InputTag(jetCorrLabel[0]+'JetMETcorr', 'type2'),
826  cms.InputTag(jetCorrLabel[0]+'JetMETcorr', 'offset'),
827  cms.InputTag('muonCaloMETcorr')
828  )
829 
830  ## add MET corrections to sequence
831  setattr(process,'patMETs'+jetCorrLabel[0],getattr(process,'patMETs').clone(metSource = cms.InputTag(jetCorrLabel[0]+'Type1CorMet'),addMuonCorrections = False))
832 
833  setattr(process,'produce'+jetCorrLabel[0]+'METCorrections',produceCaloMETCorrections.copy())
834  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections').replace(getattr(process,'caloJetMETcorr'), getattr(process,jetCorrLabel[0]+'JetMETcorr'))
835  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections').replace(getattr(process,'caloType1CorrectedMet'), getattr(process,jetCorrLabel[0]+'Type1CorMet'))
836  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections').replace(getattr(process,'caloType1p2CorrectedMet'),getattr(process,jetCorrLabel[0]+'Type1p2CorMet'))
837 
838  process.patDefaultSequence.replace( getattr(process,'patMETs'+jetCorrLabel[0]),
839  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections')
840  *getattr(process,'patMETs'+jetCorrLabel[0]))
841 
842  elif jetCollType == 'PF':
843  from JetMETCorrections.Type1MET.pfMETCorrections_cff import pfCandsNotInJet,pfJetMETcorr,pfCandMETcorr,pfType1CorrectedMet,pfType1p2CorrectedMet,producePFMETCorrections
844  setattr(process,jetCorrLabel[0]+'CandsNotInJet',pfCandsNotInJet.clone(topCollection = jetCollection))
845  setattr(process,jetCorrLabel[0]+'JetMETcorr', pfJetMETcorr.clone(src = jetCollection))
846  setattr(process,jetCorrLabel[0]+'CandMETcorr', pfCandMETcorr.clone(src = cms.InputTag(jetCorrLabel[0]+'CandsNotInJet')))
847  setattr(process,jetCorrLabel[0]+'Type1CorMet', pfType1CorrectedMet.clone())
848  setattr(process,jetCorrLabel[0]+'Type1p2CorMet',pfType1p2CorrectedMet.clone())
849 
850  if ('L1FastJet' in jetCorrLabel[1] or 'L1Fastjet' in jetCorrLabel[1]):
851  getattr(process,jetCorrLabel[0]+'JetMETcorr' ).offsetCorrLabel = cms.string(jetCorrLabel[0]+'L1FastJet')
852  elif ('L1Offset' in jetCorrLabel[1]):
853  getattr(process,jetCorrLabel[0]+'JetMETcorr' ).offsetCorrLabel = cms.string(jetCorrLabel[0]+'L1Offset')
854  else:
855  getattr(process,jetCorrLabel[0]+'JetMETcorr' ).offsetCorrLabel = cms.string('')
856  getattr(process,jetCorrLabel[0]+'JetMETcorr').jetCorrLabel = cms.string(jetCorrLabel[0]+'CombinedCorrector')
857 
858  getattr(process,jetCorrLabel[0]+'Type1CorMet').applyType0Corrections = cms.bool(False)
859  getattr(process,jetCorrLabel[0]+'Type1CorMet').srcType1Corrections = cms.VInputTag(
860  cms.InputTag(jetCorrLabel[0]+'JetMETcorr', 'type1')
861  )
862  getattr(process,jetCorrLabel[0]+'Type1p2CorMet').srcType1Corrections = cms.VInputTag(
863  cms.InputTag(jetCorrLabel[0]+'JetMETcorr', 'type1')
864  )
865  getattr(process,jetCorrLabel[0]+'Type1p2CorMet').applyType0Corrections = cms.bool(False)
866  getattr(process,jetCorrLabel[0]+'Type1p2CorMet').srcUnclEnergySums = cms.VInputTag(
867  cms.InputTag(jetCorrLabel[0]+'JetMETcorr', 'type2'),
868  cms.InputTag(jetCorrLabel[0]+'JetMETcorr', 'offset'),
869  cms.InputTag(jetCorrLabel[0]+'CandMETcorr')
870  )
871 
872  ## add MET corrections to sequence
873  setattr(process,'patMETs'+jetCorrLabel[0],getattr(process,'patMETs').clone(metSource = cms.InputTag(jetCorrLabel[0]+'Type1CorMet'),addMuonCorrections = False))
874 
875  setattr(process,'produce'+jetCorrLabel[0]+'METCorrections',producePFMETCorrections.copy())
876  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections').replace(getattr(process,'pfCandsNotInJet'), getattr(process,jetCorrLabel[0]+'CandsNotInJet'))
877  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections').replace(getattr(process,'pfJetMETcorr'), getattr(process,jetCorrLabel[0]+'JetMETcorr'))
878  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections').replace(getattr(process,'pfCandMETcorr'), getattr(process,jetCorrLabel[0]+'CandMETcorr'))
879  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections').replace(getattr(process,'pfType1CorrectedMet'), getattr(process,jetCorrLabel[0]+'Type1CorMet'))
880  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections').replace(getattr(process,'pfType1p2CorrectedMet'),getattr(process,jetCorrLabel[0]+'Type1p2CorMet'))
881 
882  process.patDefaultSequence.replace( getattr(process,'patMETs'+jetCorrLabel[0]),
883  getattr(process,'produce'+jetCorrLabel[0]+'METCorrections')
884  *getattr(process,'patMETs'+jetCorrLabel[0]))
885 
886  else:
887  ## switch jetCorrFactors off
888  l1Jets.addJetCorrFactors = False
889 
890 addJetCollection=AddJetCollection()
891 
def replace
Definition: linker.py:10
def jetCollectionString
Definition: helpers.py:222
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135
perl if(1 lt scalar(@::datatypes))
Definition: edlooper.cc:31

Member Data Documentation

jetTools.AddJetCollection._comment
private

Definition at line 526 of file jetTools.py.

Referenced by metUncertaintyTools.RunMEtUncertainties.__init__(), and jetTools.SwitchJetCollection.__init__().

tuple jetTools.AddJetCollection._defaultParameters = dicttypes.SortedKeysDict()
staticprivate

Definition at line 503 of file jetTools.py.

Referenced by 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__(), HiCoreTools.RemoveSpecificPATObjects.__call__(), trigTools.SwitchOnTriggerStandAlone.__call__(), trackTools.MakeTrackCandidates.__call__(), HiCoreTools.RemoveCleaning.__call__(), trigTools.SwitchOnTriggerMatching.__call__(), HiCoreTools.AddCleaning.__call__(), tauTools.AddTauCollection.__call__(), trigTools.SwitchOnTriggerMatchingStandAlone.__call__(), jetTools.AddJetCollection.__call__(), trigTools.SwitchOnTriggerMatchEmbedding.__call__(), trigTools.RemoveCleaningFromTriggerMatching.__call__(), jetTools.SwitchJetCollection.__call__(), jetTools.AddJetID.__call__(), jetTools.SetTagInfos.__call__(), jetTools.SwitchJetCorrLevels.__call__(), metUncertaintyTools.RunMEtUncertainties.__call__(), photonTools.AddPhotonUserIsolation.__init__(), trackTools.MakeAODTrackCandidates.__init__(), metTools.AddTcMET.__init__(), muonTools.AddMuonUserIsolation.__init__(), HiCoreTools.RestrictInputToAOD.__init__(), metUncertaintyTools.RunMEtUncertainties.__init__(), HiCoreTools.RemoveMCMatching.__init__(), metTools.AddPfMET.__init__(), trackTools.MakePATTrackCandidates.__init__(), trigTools.SwitchOnTrigger.__init__(), HiCoreTools.RemoveAllPATObjectsBut.__init__(), HiCoreTools.RemoveSpecificPATObjects.__init__(), trigTools.SwitchOnTriggerStandAlone.__init__(), trackTools.MakeTrackCandidates.__init__(), HiCoreTools.RemoveCleaning.__init__(), trigTools.SwitchOnTriggerMatching.__init__(), HiCoreTools.AddCleaning.__init__(), tauTools.AddTauCollection.__init__(), trigTools.SwitchOnTriggerMatchingStandAlone.__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(), photonTools.AddPhotonUserIsolation.getDefaultParameters(), metTools.AddTcMET.getDefaultParameters(), muonTools.AddMuonUserIsolation.getDefaultParameters(), HiCoreTools.RestrictInputToAOD.getDefaultParameters(), trackTools.MakeAODTrackCandidates.getDefaultParameters(), metTools.AddPfMET.getDefaultParameters(), HiCoreTools.RemoveMCMatching.getDefaultParameters(), metUncertaintyTools.RunMEtUncertainties.getDefaultParameters(), trackTools.MakePATTrackCandidates.getDefaultParameters(), trigTools.SwitchOnTrigger.getDefaultParameters(), HiCoreTools.RemoveAllPATObjectsBut.getDefaultParameters(), HiCoreTools.RemoveSpecificPATObjects.getDefaultParameters(), trigTools.SwitchOnTriggerStandAlone.getDefaultParameters(), trackTools.MakeTrackCandidates.getDefaultParameters(), HiCoreTools.RemoveCleaning.getDefaultParameters(), trigTools.SwitchOnTriggerMatching.getDefaultParameters(), HiCoreTools.AddCleaning.getDefaultParameters(), tauTools.AddTauCollection.getDefaultParameters(), trigTools.SwitchOnTriggerMatchingStandAlone.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 jetTools.AddJetCollection._label = 'addJetCollection'
staticprivate

Definition at line 502 of file jetTools.py.

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

jetTools.AddJetCollection._parameters
private

Definition at line 525 of file jetTools.py.

Referenced by metUncertaintyTools.RunMEtUncertainties.__init__(), jetTools.SwitchJetCollection.__init__(), photonTools.AddPhotonUserIsolation.toolCode(), muonTools.AddMuonUserIsolation.toolCode(), metTools.AddTcMET.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(), HiCoreTools.RemoveCleaning.toolCode(), trigTools.SwitchOnTriggerMatching.toolCode(), HiCoreTools.AddCleaning.toolCode(), tauTools.AddTauCollection.toolCode(), trigTools.SwitchOnTriggerMatchingStandAlone.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().