test
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 346 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 353 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().

354  def __init__(self):
355  """
356  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
357  """
358  ## initialization of the base class
359  ConfigToolBase.__init__(self)
360  ## add all parameters that should be known to the class
361  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
362  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
363  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
364  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
365  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
366  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
367  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
368  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
369  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
370  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
371  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
372  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
373  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
374  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
375  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
376  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
377  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
378  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
379  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
380  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
381  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 \
382  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 \
383  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
384  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 \
385  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 \
386  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\' \
387  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
388  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
389  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. \
390  If this list is empty no btag discriminator information will be added to your new patJet collection.", allowedValues=supportedBtagDiscr.keys(),Type=list)
391  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
392  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 \
393  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 \
394  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 \
395  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
396  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
397  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 \
398  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
399  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 \
400  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 \
401  to more than one output module.")
402  ## set defaults
403  self._parameters=copy.deepcopy(self._defaultParameters)
404  ## add comments
405  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\
406  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 \
407  the descriptions of each parameter for more information."
_parameters
initialization of the base class
Definition: jetTools.py:402
_comment
add comments
Definition: jetTools.py:404

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 414 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().

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

Definition at line 408 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.

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

Definition at line 493 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, cmsswVersionTools.PickRelValInputFiles._parameters, coreTools.RemoveMCMatching._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.

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

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

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

Definition at line 351 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 350 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 402 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().