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
 add comments More...
 
 _parameters
 initialization of the base class More...
 

Static Private Attributes

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

Detailed Description

Tool to add a new jet collection to your PAT Tuple or to modify an existing one.

Definition at line 345 of file jetTools.py.

Constructor & Destructor Documentation

def jetTools.AddJetCollection.__init__ (   self)
Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.

Definition at line 352 of file jetTools.py.

References editorTools.UserCodeTool._defaultParameters, heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RunOnData._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, editorTools.ChangeSource._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, jetTools.AddJetCollection._defaultParameters, 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().

353  def __init__(self):
354  """
355  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
356  """
357  ## initialization of the base class
358  ConfigToolBase.__init__(self)
359  ## add all parameters that should be known to the class
360  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
361  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
362  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
363  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
364  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
365  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
366  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
367  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
368  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
369  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
370  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
371  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
372  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
373  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
374  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
375  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
376  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
377  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
378  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
379  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
380  collection. The format has to be given in a python tuple of type: (\'AK4Calo\',[\'L2Relative\', \'L3Absolute\'], patMet). Here the first argument corresponds to the payload \
381  in the CMS Conditions database for the given jet collection; the second argument corresponds to the jet energy correction levels that you want to be embedded into your \
382  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
383  third argument indicates whether MET(Type1/2) corrections should be applied corresponding to the new patJetCollection. If so a new patMet collection will be added to your PAT \
384  Tuple in addition to the raw patMet. This new patMet collection will have the MET(Type1/2) corrections applied. The argument can have the following types: \'type-1\' for \
385  type-1 corrected MET; \'type-2\' for type-1 plus type-2 corrected MET; \'\' or \'none\' if no further MET corrections should be applied to your MET. The arguments \'type-1\' \
386  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
387  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
388  you are interested in is all relevant information that you need for a high level analysis. Add here all btag discriminators, that you are interested in as a list of strings. \
389  If this list is empty no btag discriminator information will be added to your new patJet collection.", allowedValues=supportedBtagDiscr.keys(),Type=list)
390  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
391  type have been calculated. You might be interested in keeping this information for low level tests or to re-calculate some discriminators from hand. Note that this information \
392  on the one hand can be very space consuming and that it is not necessary to access the pre-calculated btag discriminator information that has been derived from it. Only in very \
393  special cases the btagInfos might really be needed in your analysis. Add here all btagInfos, that you are interested in as a list of strings. If this list is empty no btagInfos \
394  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
395  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
396  switch is only of relevance if you don\'t add any btag information to your new patJet collection (btagDiscriminators or btagInfos) and still want this information added to \
397  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
398  self.addParameter(self._defaultParameters,'outputModules',['out'],"Add a list of all output modules to which you would like the new jet collection to be added. Usually this is \
399  just one single output module with name \'out\', which corresponds also the default configuration of the tool. There is cases though where you might want to add this collection \
400  to more than one output module.")
401  ## set defaults
402  self._parameters=copy.deepcopy(self._defaultParameters)
403  ## add comments
404  self._comment = "This is a tool to add more patJet collectinos to your PAT Tuple or to re-configure the default collection. You can add and embed additional information like jet\
405  energy correction factors, btag infomration and generator match information to the new patJet collection depending on the parameters that you pass on to this function. Consult \
406  the descriptions of each parameter for more information."
_parameters
initialization of the base class
Definition: jetTools.py:401
_comment
add comments
Definition: jetTools.py:403

Member Function Documentation

def jetTools.AddJetCollection.__call__ (   self,
  process,
  labelName = None,
  postfix = None,
  jetSource = None,
  pfCandidates = None,
  explicitJTA = None,
  pvSource = None,
  svSource = None,
  elSource = None,
  muSource = None,
  runIVF = None,
  loadStdRecoBTag = None,
  svClustering = None,
  fatJets = None,
  groomedFatJets = None,
  algo = None,
  rParam = None,
  getJetMCFlavour = None,
  genJetCollection = None,
  genParticles = None,
  jetCorrections = None,
  btagDiscriminators = None,
  btagInfos = None,
  jetTrackAssociation = None,
  outputModules = None 
)
Function call wrapper. This will check the parameters and call the actual implementation that
can be found in toolCode via the base class function apply.

Definition at line 413 of file jetTools.py.

References editorTools.UserCodeTool._defaultParameters, heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RunOnData._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, editorTools.ChangeSource._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, jetTools.AddJetCollection._defaultParameters, SignedImpactParameter3D.apply(), gen::PhotosInterfaceBase.apply(), SignedTransverseImpactParameter.apply(), MatrixReader.MatrixReader.apply, SignedDecayLength3D.apply(), HcalDeterministicFit.apply(), DummyOOTPileupCorrection.apply(), gen::PhotosppInterface.apply(), FWPSetCellEditor.apply(), gen::PhotosInterface.apply(), SurveyParameters.apply(), FWGUIEventFilter.apply(), DeviationsFromFileSensor2D.apply(), BeamSpotAlignmentParameters.apply(), RigidBodyAlignmentParameters.apply(), ConfigToolBase.ConfigToolBase.apply(), OOTPileupCorrData.apply(), BowedSurfaceAlignmentParameters.apply(), AlignmentParameters.apply(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool.apply(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ApplyTool.apply(), AbsOOTPileupCorrection.apply(), TwoBowedSurfacesAlignmentParameters.apply(), Vispa.Gui.BoxContentDialog.BoxContentDialog.apply(), reco::modules::TrackerTrackHitFilter::Rule.apply(), PulseShapeFitOOTPileupCorrection.apply(), Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.apply(), reco::Add< T >.apply(), reco::Sub< T >.apply(), reco::Mul< T >.apply(), reco::Div< T >.apply(), cmsswVersionTools.PickRelValInputFiles.apply(), reco::And< bool >.apply(), reco::Or< bool >.apply(), reco::Less< T >.apply(), reco::LessEqual< T >.apply(), reco::More< T >.apply(), reco::MoreEqual< T >.apply(), reco::Equal< T >.apply(), npstat::ArrayND< Numeric >.apply(), npstat::ArrayND< Num1, Len1, Dim1 >.apply(), npstat::ArrayND< Numeric, StackLen, StackDim >.apply(), Config.ProcessModifier.apply(), ora::OraMainTable.setParameter(), ora::IMainTable.setParameter(), PedeReader.setParameter(), ora::PoolMainTable.setParameter(), QIE8Simulator.setParameter(), AbsElectronicODERHS.setParameter(), IntegratedCalibrationBase.setParameter(), SiStripLorentzAngleCalibration.setParameter(), SiPixelLorentzAngleCalibration.setParameter(), SiStripBackplaneCalibration.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

414  def __call__(self,process,labelName=None,postfix=None,jetSource=None,pfCandidates=None,explicitJTA=None,pvSource=None,svSource=None,elSource=None,muSource=None,runIVF=None,loadStdRecoBTag=None,svClustering=None,fatJets=None,groomedFatJets=None,algo=None,rParam=None,getJetMCFlavour=None,genJetCollection=None,genParticles=None,jetCorrections=None,btagDiscriminators=None,btagInfos=None,jetTrackAssociation=None,outputModules=None):
415  """
416  Function call wrapper. This will check the parameters and call the actual implementation that
417  can be found in toolCode via the base class function apply.
418  """
419  if labelName is None:
420  labelName=self._defaultParameters['labelName'].value
421  self.setParameter('labelName', labelName)
422  if postfix is None:
423  postfix=self._defaultParameters['postfix'].value
424  self.setParameter('postfix', postfix)
425  if jetSource is None:
426  jetSource=self._defaultParameters['jetSource'].value
427  self.setParameter('jetSource', jetSource)
428  if pfCandidates is None:
429  pfCandidates=self._defaultParameters['pfCandidates'].value
430  self.setParameter('pfCandidates', pfCandidates)
431  if explicitJTA is None:
432  explicitJTA=self._defaultParameters['explicitJTA'].value
433  self.setParameter('explicitJTA', explicitJTA)
434  if pvSource is None:
435  pvSource=self._defaultParameters['pvSource'].value
436  self.setParameter('pvSource', pvSource)
437  if svSource is None:
438  svSource=self._defaultParameters['svSource'].value
439  self.setParameter('svSource', svSource)
440  if elSource is None:
441  elSource=self._defaultParameters['elSource'].value
442  self.setParameter('elSource', elSource)
443  if muSource is None:
444  muSource=self._defaultParameters['muSource'].value
445  self.setParameter('muSource', muSource)
446  if runIVF is None:
447  runIVF=self._defaultParameters['runIVF'].value
448  self.setParameter('runIVF', runIVF)
449  if loadStdRecoBTag is None:
450  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
451  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
452  if svClustering is None:
453  svClustering=self._defaultParameters['svClustering'].value
454  self.setParameter('svClustering', svClustering)
455  if fatJets is None:
456  fatJets=self._defaultParameters['fatJets'].value
457  self.setParameter('fatJets', fatJets)
458  if groomedFatJets is None:
459  groomedFatJets=self._defaultParameters['groomedFatJets'].value
460  self.setParameter('groomedFatJets', groomedFatJets)
461  if algo is None:
462  algo=self._defaultParameters['algo'].value
463  self.setParameter('algo', algo)
464  if rParam is None:
465  rParam=self._defaultParameters['rParam'].value
466  self.setParameter('rParam', rParam)
467  if getJetMCFlavour is None:
468  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
469  self.setParameter('getJetMCFlavour', getJetMCFlavour)
470  if genJetCollection is None:
471  genJetCollection=self._defaultParameters['genJetCollection'].value
472  self.setParameter('genJetCollection', genJetCollection)
473  if genParticles is None:
474  genParticles=self._defaultParameters['genParticles'].value
475  self.setParameter('genParticles', genParticles)
476  if jetCorrections is None:
477  jetCorrections=self._defaultParameters['jetCorrections'].value
478  self.setParameter('jetCorrections', jetCorrections)
479  if btagDiscriminators is None:
480  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
481  self.setParameter('btagDiscriminators', btagDiscriminators)
482  if btagInfos is None:
483  btagInfos=self._defaultParameters['btagInfos'].value
484  self.setParameter('btagInfos', btagInfos)
485  if jetTrackAssociation is None:
486  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
487  self.setParameter('jetTrackAssociation', jetTrackAssociation)
488  if outputModules is None:
489  outputModules=self._defaultParameters['outputModules'].value
490  self.setParameter('outputModules', outputModules)
491  self.apply(process)
def jetTools.AddJetCollection.getDefaultParameters (   self)
Return default parameters of the class

Definition at line 407 of file jetTools.py.

References editorTools.UserCodeTool._defaultParameters, heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RunOnData._defaultParameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, editorTools.ChangeSource._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, and jetTools.AddJetCollection._defaultParameters.

408  def getDefaultParameters(self):
409  """
410  Return default parameters of the class
411  """
412  return self._defaultParameters
def jetTools.AddJetCollection.toolCode (   self,
  process 
)
Tool code implementation

Definition at line 492 of file jetTools.py.

References editorTools.UserCodeTool._parameters, heavyIonTools.ConfigureHeavyIons._parameters, coreTools.RunOnData._parameters, Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigFolder._parameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._parameters, heavyIonTools.ProductionDefaults._parameters, ConfigToolBase.ConfigToolBase._parameters, editorTools.ChangeSource._parameters, TAbsFitConstraint._parameters, TAbsFitParticle._parameters, coreTools.RemoveMCMatching._parameters, cmsswVersionTools.PickRelValInputFiles._parameters, heavyIonTools.SelectionDefaults._parameters, heavyIonTools.DisbaleMonteCarloDeps._parameters, jetTools.AddJetCollection._parameters, jetTools.checkJetCorrectionsFormat(), list(), jetTools.setupBTagging(), jetTools.setupJetCorrections(), split, jetTools.undefinedLabelName(), jetTools.unsupportedJetAlgorithm(), and pileupCalc.upper.

493  def toolCode(self, process):
494  """
495  Tool code implementation
496  """
497  ## initialize parameters
498  labelName=self._parameters['labelName'].value
499  postfix=self._parameters['postfix'].value
500  jetSource=self._parameters['jetSource'].value
501  pfCandidates=self._parameters['pfCandidates'].value
502  explicitJTA=self._parameters['explicitJTA'].value
503  pvSource=self._parameters['pvSource'].value
504  svSource=self._parameters['svSource'].value
505  elSource=self._parameters['elSource'].value
506  muSource=self._parameters['muSource'].value
507  runIVF=self._parameters['runIVF'].value
508  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
509  svClustering=self._parameters['svClustering'].value
510  fatJets=self._parameters['fatJets'].value
511  groomedFatJets=self._parameters['groomedFatJets'].value
512  algo=self._parameters['algo'].value
513  rParam=self._parameters['rParam'].value
514  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
515  genJetCollection=self._parameters['genJetCollection'].value
516  genParticles=self._parameters['genParticles'].value
517  jetCorrections=self._parameters['jetCorrections'].value
518  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
519  btagInfos=list(self._parameters['btagInfos'].value)
520  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
521  outputModules=list(self._parameters['outputModules'].value)
522 
523  ## added jets must have a defined 'labelName'
524  if labelName=='UNDEFINED':
525  undefinedLabelName(self)
526 
527  ## a list of all producer modules, which are already known to process
528  knownModules = process.producerNames().split()
529  ## determine whether btagging information is required or not
530  if btagDiscriminators.count('None')>0:
531  btagDiscriminators.remove('None')
532  if btagInfos.count('None')>0:
533  btagInfos.remove('None')
534  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
535  ## check if any legacy btag discriminators are being used
536  infos = 0
537  for info in btagInfos:
538  if info.startswith('pf'): infos = infos + 1
539  if 'softpf' in info.lower(): infos = infos + 1
540  tags = 0
541  for tag in btagDiscriminators:
542  if tag.startswith('pf'): tags = tags + 1
543  if 'softpf' in tag.lower(): tags = tags + 1
544  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
545  ## construct postfix label for auxiliary modules; this postfix
546  ## label will start with a capitalized first letter following
547  ## the CMS naming conventions and for improved readablility
548  _labelName=labelName[:1].upper()+labelName[1:]
549 
550  ## supported algo types are ak, ca, and kt
551  _algo=''
552  for x in ["ak", "ca", "kt"]:
553  if x in algo.lower():
554  _algo=supportedJetAlgos[x]
555  break
556  if _algo=='':
558  ## add new patJets to process (keep instance for later further modifications)
559  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
560  if 'patJets'+_labelName+postfix in knownModules :
561  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
562  _newPatJets.jetSource=jetSource
563  else :
564  setattr(process, 'patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource))
565  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
566  knownModules.append('patJets'+_labelName+postfix)
567  ## add new selectedPatJets to process
569  if 'selectedPatJets'+_labelName+postfix in knownModules :
570  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
571  _newSelectedPatJets.src='patJets'+_labelName+postfix
572  else :
573  setattr(process, 'selectedPatJets'+_labelName+postfix, selectedPatJets.clone(src='patJets'+_labelName+postfix))
574  knownModules.append('selectedPatJets'+_labelName+postfix)
575 
576  ## add new patJetPartonMatch to process
577  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
578  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
579  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
580  _newPatJetPartonMatch.src=jetSource
581  _newPatJetPartonMatch.matched=genParticles
582  else :
583  setattr(process, 'patJetPartonMatch'+_labelName+postfix, patJetPartonMatch.clone(src=jetSource, matched=genParticles))
584  knownModules.append('patJetPartonMatch'+_labelName+postfix)
585  ## add new patJetGenJetMatch to process
586  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
587  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
588  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
589  _newPatJetGenJetMatch.src=jetSource
590  _newPatJetGenJetMatch.maxDeltaR=rParam
591  _newPatJetGenJetMatch.matched=genJetCollection
592  else :
593  setattr(process, 'patJetGenJetMatch'+_labelName+postfix, patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection))
594  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
595  ## modify new patJets collection accordingly
596  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
597  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
598  ## get jet MC truth flavour if required by user
599  if (getJetMCFlavour):
600  ## legacy jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
601  ## add new patJetPartonsLegacy to process
602  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
603  if 'patJetPartonsLegacy'+postfix not in knownModules :
604  setattr(process, 'patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles))
605  knownModules.append('patJetPartonsLegacy'+postfix)
606  else:
607  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
608  ## add new patJetPartonAssociationLegacy to process
609  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
610  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
611  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
612  _newPatJetPartonAssociation.jets=jetSource
613  else :
614  setattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix, patJetPartonAssociationLegacy.clone(jets=jetSource))
615  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
616  ## add new patJetPartonAssociationLegacy to process
617  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
618  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
619  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
620  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
621  else:
622  setattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix, patJetFlavourAssociationLegacy.clone(srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix))
623  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
624  ## modify new patJets collection accordingly
625  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
626  ## new jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
627  ## add new patJetPartons to process
629  if 'patJetPartons'+postfix not in knownModules :
630  setattr(process, 'patJetPartons'+postfix, patJetPartons.clone(particles=genParticles))
631  knownModules.append('patJetPartons'+postfix)
632  else:
633  getattr(process, 'patJetPartons'+postfix).particles=genParticles
634  ## add new patJetFlavourAssociation to process
635  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
636  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
637  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
638  _newPatJetFlavourAssociation.jets=jetSource
639  _newPatJetFlavourAssociation.jetAlgorithm=_algo
640  _newPatJetFlavourAssociation.rParam=rParam
641  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
642  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
643  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"algorithmicPartons")
644  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
645  else :
646  setattr(process, 'patJetFlavourAssociation'+_labelName+postfix,
647  patJetFlavourAssociation.clone(
648  jets=jetSource,
649  jetAlgorithm=_algo,
650  rParam=rParam,
651  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
652  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
653  partons = cms.InputTag("patJetPartons"+postfix,"algorithmicPartons"),
654  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")
655  )
656  )
657  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
658  ## modify new patJets collection accordingly
659  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
660  ## if the jets is actually a subjet
661  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
662  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
663  _newPatJetFlavourAssociation.jets=fatJets
664  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
665  _newPatJetFlavourAssociation.subjets=jetSource
666  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
667  else:
668  _newPatJets.getJetMCFlavour = False
669 
670  ## add jetTrackAssociation for legacy btagging (or jetTracksAssociation only) if required by user
671  if (jetTrackAssociation or bTaggingLegacy):
672  ## add new jetTracksAssociationAtVertex to process
673  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
674  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
675  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
676  _newJetTracksAssociationAtVertex.jets=jetSource
677  _newJetTracksAssociationAtVertex.pvSrc=pvSource
678  else:
679  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
680  if explicitJTA:
681  jetTracksAssociator=ak4JetTracksAssociatorExplicit
682  setattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix, jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource))
683  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
684  ## add new patJetCharge to process
686  if 'patJetCharge'+_labelName+postfix in knownModules :
687  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
688  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
689  else:
690  setattr(process, 'patJetCharge'+_labelName+postfix, patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix))
691  knownModules.append('patJetCharge'+_labelName+postfix)
692  ## modify new patJets collection accordingly
693  _newPatJets.addAssociatedTracks=True
694  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
695  _newPatJets.addJetCharge=True
696  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
697  else:
698  ## modify new patJets collection accordingly
699  _newPatJets.addAssociatedTracks=False
700  _newPatJets.trackAssociationSource=''
701  _newPatJets.addJetCharge=False
702  _newPatJets.jetChargeSource=''
703  ## run btagging if required by user
704  if (bTagging):
705  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
706  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, postfix)
707  else:
708  _newPatJets.addBTagInfo = False
709  _newPatJets.addTagInfos = False
710  ## adjust output module; these collections will be empty anyhow, but we do it to stay clean
711  for outputModule in outputModules:
712  if hasattr(process,outputModule):
713  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
714 
715  ## add jet correction factors if required by user
716  if (jetCorrections != None):
717  ## check the jet corrections format
718  checkJetCorrectionsFormat(jetCorrections)
719  ## setup jet energy corrections and MET corrections
720  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
721  else:
722  ## switch jetCorrFactors off
723  _newPatJets.addJetCorrFactors=False
724 
725 addJetCollection=AddJetCollection()
def setupJetCorrections
Definition: jetTools.py:24
def undefinedLabelName
Definition: jetTools.py:1288
_parameters
initialization of the base class
Definition: jetTools.py:401
def setupBTagging
Definition: jetTools.py:173
def checkJetCorrectionsFormat
Definition: jetTools.py:16
def unsupportedJetAlgorithm
Definition: jetTools.py:1295
double split
Definition: MVATrainer.cc:139
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

Member Data Documentation

jetTools.AddJetCollection._comment
private

add comments

Definition at line 403 of file jetTools.py.

Referenced by runJetUncertainties.RunJetUncertainties.__init__(), and runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__init__().

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

Definition at line 350 of file jetTools.py.

Referenced by HiCoreTools.RestrictInputToAOD.__call__(), trackTools.MakeAODTrackCandidates.__call__(), runJetUncertainties.RunJetUncertainties.__call__(), metTools.AddMETCollection.__call__(), HiCoreTools.RemoveMCMatching.__call__(), trackTools.MakePATTrackCandidates.__call__(), trigTools.SwitchOnTrigger.__call__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__call__(), HiCoreTools.RemoveAllPATObjectsBut.__call__(), HiCoreTools.RemoveSpecificPATObjects.__call__(), trigTools.SwitchOnTriggerStandAlone.__call__(), trackTools.MakeTrackCandidates.__call__(), tauTools.AddTauCollection.__call__(), trigTools.SwitchOnTriggerMatching.__call__(), HiCoreTools.RemoveCleaning.__call__(), HiCoreTools.AddCleaning.__call__(), jetTools.AddJetCollection.__call__(), trigTools.SwitchOnTriggerMatchingStandAlone.__call__(), trigTools.SwitchOnTriggerMatchEmbedding.__call__(), jetTools.SwitchJetCollection.__call__(), jetTools.UpdateJetCollection.__call__(), jetTools.AddJetID.__call__(), jetTools.SetTagInfos.__call__(), metTools.AddMETCollection.__init__(), trackTools.MakeAODTrackCandidates.__init__(), HiCoreTools.RestrictInputToAOD.__init__(), runJetUncertainties.RunJetUncertainties.__init__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__init__(), HiCoreTools.RemoveMCMatching.__init__(), trackTools.MakePATTrackCandidates.__init__(), trigTools.SwitchOnTrigger.__init__(), HiCoreTools.RemoveAllPATObjectsBut.__init__(), HiCoreTools.RemoveSpecificPATObjects.__init__(), trigTools.SwitchOnTriggerStandAlone.__init__(), trackTools.MakeTrackCandidates.__init__(), tauTools.AddTauCollection.__init__(), trigTools.SwitchOnTriggerMatching.__init__(), HiCoreTools.RemoveCleaning.__init__(), jetTools.AddJetCollection.__init__(), HiCoreTools.AddCleaning.__init__(), trigTools.SwitchOnTriggerMatchingStandAlone.__init__(), trigTools.SwitchOnTriggerMatchEmbedding.__init__(), jetTools.SwitchJetCollection.__init__(), jetTools.UpdateJetCollection.__init__(), jetTools.AddJetID.__init__(), jetTools.SetTagInfos.__init__(), ConfigToolBase.ConfigToolBase.dumpPython(), ConfigToolBase.ConfigToolBase.getAllowedValues(), HiCoreTools.RestrictInputToAOD.getDefaultParameters(), trackTools.MakeAODTrackCandidates.getDefaultParameters(), metTools.AddMETCollection.getDefaultParameters(), HiCoreTools.RemoveMCMatching.getDefaultParameters(), trackTools.MakePATTrackCandidates.getDefaultParameters(), trigTools.SwitchOnTrigger.getDefaultParameters(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getDefaultParameters(), HiCoreTools.RemoveAllPATObjectsBut.getDefaultParameters(), HiCoreTools.RemoveSpecificPATObjects.getDefaultParameters(), trigTools.SwitchOnTriggerStandAlone.getDefaultParameters(), trackTools.MakeTrackCandidates.getDefaultParameters(), tauTools.AddTauCollection.getDefaultParameters(), trigTools.SwitchOnTriggerMatching.getDefaultParameters(), HiCoreTools.RemoveCleaning.getDefaultParameters(), HiCoreTools.AddCleaning.getDefaultParameters(), jetTools.AddJetCollection.getDefaultParameters(), trigTools.SwitchOnTriggerMatchingStandAlone.getDefaultParameters(), trigTools.SwitchOnTriggerMatchEmbedding.getDefaultParameters(), jetTools.SwitchJetCollection.getDefaultParameters(), jetTools.UpdateJetCollection.getDefaultParameters(), jetTools.AddJetID.getDefaultParameters(), jetTools.SetTagInfos.getDefaultParameters(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.initializeInputTag(), ConfigToolBase.ConfigToolBase.reset(), and ConfigToolBase.ConfigToolBase.setParameter().

string jetTools.AddJetCollection._label = 'addJetCollection'
staticprivate

Definition at line 349 of file jetTools.py.

Referenced by validation.SimpleSample.digest(), validation.SimpleSample.label(), trigTools.SwitchOnTrigger.toolCode(), trigTools.SwitchOnTriggerStandAlone.toolCode(), trigTools.SwitchOnTriggerMatching.toolCode(), trigTools.SwitchOnTriggerMatchingStandAlone.toolCode(), and trigTools.SwitchOnTriggerMatchEmbedding.toolCode().

jetTools.AddJetCollection._parameters
private

initialization of the base class

add all parameters that should be known to the class set defaults

Definition at line 401 of file jetTools.py.

Referenced by runJetUncertainties.RunJetUncertainties.__init__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__init__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.ak4JetReclustering(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.createMVAMETModule(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.createSmearedJetModule(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getCorrectedMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getUnclusteredVariationsForMVAMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.jetCleaning(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.jetConfiguration(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.miniAODConfiguration(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.produceMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.recomputeRawMetFromPfcs(), HiCoreTools.RestrictInputToAOD.toolCode(), trackTools.MakeAODTrackCandidates.toolCode(), metTools.AddMETCollection.toolCode(), runJetUncertainties.RunJetUncertainties.toolCode(), HiCoreTools.RemoveMCMatching.toolCode(), trackTools.MakePATTrackCandidates.toolCode(), trigTools.SwitchOnTrigger.toolCode(), HiCoreTools.RemoveAllPATObjectsBut.toolCode(), HiCoreTools.RemoveSpecificPATObjects.toolCode(), trigTools.SwitchOnTriggerStandAlone.toolCode(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.toolCode(), trackTools.MakeTrackCandidates.toolCode(), tauTools.AddTauCollection.toolCode(), HiCoreTools.RemoveCleaning.toolCode(), trigTools.SwitchOnTriggerMatching.toolCode(), HiCoreTools.AddCleaning.toolCode(), trigTools.SwitchOnTriggerMatchingStandAlone.toolCode(), jetTools.AddJetCollection.toolCode(), trigTools.SwitchOnTriggerMatchEmbedding.toolCode(), jetTools.SwitchJetCollection.toolCode(), jetTools.UpdateJetCollection.toolCode(), jetTools.AddJetID.toolCode(), jetTools.SetTagInfos.toolCode(), and runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.updateJECs().