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 428 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 435 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().

436  def __init__(self):
437  """
438  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
439  """
440  ## initialization of the base class
441  ConfigToolBase.__init__(self)
442  ## add all parameters that should be known to the class
443  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
444  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
445  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
446  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
447  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
448  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
449  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
450  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
451  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
452  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
453  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
454  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
455  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
456  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
457  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
458  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
459  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
460  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
461  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
462  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
463  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
464  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
465  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 \
466  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 \
467  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
468  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 \
469  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 \
470  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\' \
471  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
472  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
473  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. \
474  If this list is empty no btag discriminator information will be added to your new patJet collection.", allowedValues=supportedBtagDiscr.keys(),Type=list)
475  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
476  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 \
477  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 \
478  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 \
479  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
480  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
481  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 \
482  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
483  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 \
484  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 \
485  to more than one output module.")
486  ## set defaults
487  self._parameters=copy.deepcopy(self._defaultParameters)
488  ## add comments
489  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\
490  energy correction factors, btag information and generator match information to the new patJet collection depending on the parameters that you pass on to this function. Consult \
491  the descriptions of each parameter for more information."
_parameters
initialization of the base class
Definition: jetTools.py:486
_comment
add comments
Definition: jetTools.py:488

Member Function Documentation

def jetTools.AddJetCollection.__call__ (   self,
  process,
  labelName = None,
  postfix = None,
  btagPrefix = None,
  jetSource = None,
  pfCandidates = None,
  explicitJTA = None,
  pvSource = None,
  svSource = None,
  elSource = None,
  muSource = None,
  runIVF = None,
  tightBTagNTkHits = 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 498 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().

499  def __call__(self,process,labelName=None,postfix=None,btagPrefix=None,jetSource=None,pfCandidates=None,explicitJTA=None,pvSource=None,svSource=None,elSource=None,muSource=None,runIVF=None,tightBTagNTkHits=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):
500  """
501  Function call wrapper. This will check the parameters and call the actual implementation that
502  can be found in toolCode via the base class function apply.
503  """
504  if labelName is None:
505  labelName=self._defaultParameters['labelName'].value
506  self.setParameter('labelName', labelName)
507  if postfix is None:
508  postfix=self._defaultParameters['postfix'].value
509  self.setParameter('postfix', postfix)
510  if btagPrefix is None:
511  btagPrefix=self._defaultParameters['btagPrefix'].value
512  self.setParameter('btagPrefix', btagPrefix)
513  if jetSource is None:
514  jetSource=self._defaultParameters['jetSource'].value
515  self.setParameter('jetSource', jetSource)
516  if pfCandidates is None:
517  pfCandidates=self._defaultParameters['pfCandidates'].value
518  self.setParameter('pfCandidates', pfCandidates)
519  if explicitJTA is None:
520  explicitJTA=self._defaultParameters['explicitJTA'].value
521  self.setParameter('explicitJTA', explicitJTA)
522  if pvSource is None:
523  pvSource=self._defaultParameters['pvSource'].value
524  self.setParameter('pvSource', pvSource)
525  if svSource is None:
526  svSource=self._defaultParameters['svSource'].value
527  self.setParameter('svSource', svSource)
528  if elSource is None:
529  elSource=self._defaultParameters['elSource'].value
530  self.setParameter('elSource', elSource)
531  if muSource is None:
532  muSource=self._defaultParameters['muSource'].value
533  self.setParameter('muSource', muSource)
534  if runIVF is None:
535  runIVF=self._defaultParameters['runIVF'].value
536  self.setParameter('runIVF', runIVF)
537  if tightBTagNTkHits is None:
538  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
539  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
540  if loadStdRecoBTag is None:
541  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
542  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
543  if svClustering is None:
544  svClustering=self._defaultParameters['svClustering'].value
545  self.setParameter('svClustering', svClustering)
546  if fatJets is None:
547  fatJets=self._defaultParameters['fatJets'].value
548  self.setParameter('fatJets', fatJets)
549  if groomedFatJets is None:
550  groomedFatJets=self._defaultParameters['groomedFatJets'].value
551  self.setParameter('groomedFatJets', groomedFatJets)
552  if algo is None:
553  algo=self._defaultParameters['algo'].value
554  self.setParameter('algo', algo)
555  if rParam is None:
556  rParam=self._defaultParameters['rParam'].value
557  self.setParameter('rParam', rParam)
558  if getJetMCFlavour is None:
559  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
560  self.setParameter('getJetMCFlavour', getJetMCFlavour)
561  if genJetCollection is None:
562  genJetCollection=self._defaultParameters['genJetCollection'].value
563  self.setParameter('genJetCollection', genJetCollection)
564  if genParticles is None:
565  genParticles=self._defaultParameters['genParticles'].value
566  self.setParameter('genParticles', genParticles)
567  if jetCorrections is None:
568  jetCorrections=self._defaultParameters['jetCorrections'].value
569  self.setParameter('jetCorrections', jetCorrections)
570  if btagDiscriminators is None:
571  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
572  self.setParameter('btagDiscriminators', btagDiscriminators)
573  if btagInfos is None:
574  btagInfos=self._defaultParameters['btagInfos'].value
575  self.setParameter('btagInfos', btagInfos)
576  if jetTrackAssociation is None:
577  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
578  self.setParameter('jetTrackAssociation', jetTrackAssociation)
579  if outputModules is None:
580  outputModules=self._defaultParameters['outputModules'].value
581  self.setParameter('outputModules', outputModules)
582  self.apply(process)
def jetTools.AddJetCollection.getDefaultParameters (   self)
Return default parameters of the class

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

493  def getDefaultParameters(self):
494  """
495  Return default parameters of the class
496  """
497  return self._defaultParameters
def jetTools.AddJetCollection.toolCode (   self,
  process 
)
Tool code implementation

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

584  def toolCode(self, process):
585  """
586  Tool code implementation
587  """
588  ## initialize parameters
589  labelName=self._parameters['labelName'].value
590  postfix=self._parameters['postfix'].value
591  btagPrefix=self._parameters['btagPrefix'].value
592  jetSource=self._parameters['jetSource'].value
593  pfCandidates=self._parameters['pfCandidates'].value
594  explicitJTA=self._parameters['explicitJTA'].value
595  pvSource=self._parameters['pvSource'].value
596  svSource=self._parameters['svSource'].value
597  elSource=self._parameters['elSource'].value
598  muSource=self._parameters['muSource'].value
599  runIVF=self._parameters['runIVF'].value
600  tightBTagNTkHits=self._parameters['tightBTagNTkHits'].value
601  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
602  svClustering=self._parameters['svClustering'].value
603  fatJets=self._parameters['fatJets'].value
604  groomedFatJets=self._parameters['groomedFatJets'].value
605  algo=self._parameters['algo'].value
606  rParam=self._parameters['rParam'].value
607  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
608  genJetCollection=self._parameters['genJetCollection'].value
609  genParticles=self._parameters['genParticles'].value
610  jetCorrections=self._parameters['jetCorrections'].value
611  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
612  btagInfos=list(self._parameters['btagInfos'].value)
613  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
614  outputModules=list(self._parameters['outputModules'].value)
615 
616  ## added jets must have a defined 'labelName'
617  if labelName=='UNDEFINED':
618  undefinedLabelName(self)
619 
620  ## a list of all producer modules, which are already known to process
621  knownModules = process.producerNames().split()
622  ## determine whether btagging information is required or not
623  if btagDiscriminators.count('None')>0:
624  btagDiscriminators.remove('None')
625  if btagInfos.count('None')>0:
626  btagInfos.remove('None')
627  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
628  ## check if any legacy btag discriminators are being used
629  infos = 0
630  for info in btagInfos:
631  if info.startswith('pf'): infos = infos + 1
632  if 'softpf' in info.lower(): infos = infos + 1
633  tags = 0
634  for tag in btagDiscriminators:
635  if tag.startswith('pf'): tags = tags + 1
636  if 'softpf' in tag.lower(): tags = tags + 1
637  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
638  ## construct postfix label for auxiliary modules; this postfix
639  ## label will start with a capitalized first letter following
640  ## the CMS naming conventions and for improved readablility
641  _labelName=labelName[:1].upper()+labelName[1:]
642 
643  ## supported algo types are ak, ca, and kt
644  _algo=''
645  for x in ["ak", "ca", "kt"]:
646  if x in algo.lower():
647  _algo=supportedJetAlgos[x]
648  break
649  if _algo=='':
651  ## add new patJets to process (keep instance for later further modifications)
652  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
653  if 'patJets'+_labelName+postfix in knownModules :
654  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
655  _newPatJets.jetSource=jetSource
656  else :
657  setattr(process, 'patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource))
658  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
659  knownModules.append('patJets'+_labelName+postfix)
660  ## add new selectedPatJets to process
662  if 'selectedPatJets'+_labelName+postfix in knownModules :
663  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
664  _newSelectedPatJets.src='patJets'+_labelName+postfix
665  else :
666  setattr(process, 'selectedPatJets'+_labelName+postfix, selectedPatJets.clone(src='patJets'+_labelName+postfix))
667  knownModules.append('selectedPatJets'+_labelName+postfix)
668 
669  ## add new patJetPartonMatch to process
670  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
671  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
672  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
673  _newPatJetPartonMatch.src=jetSource
674  _newPatJetPartonMatch.matched=genParticles
675  else :
676  setattr(process, 'patJetPartonMatch'+_labelName+postfix, patJetPartonMatch.clone(src=jetSource, matched=genParticles))
677  knownModules.append('patJetPartonMatch'+_labelName+postfix)
678  ## add new patJetGenJetMatch to process
679  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
680  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
681  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
682  _newPatJetGenJetMatch.src=jetSource
683  _newPatJetGenJetMatch.maxDeltaR=rParam
684  _newPatJetGenJetMatch.matched=genJetCollection
685  else :
686  setattr(process, 'patJetGenJetMatch'+_labelName+postfix, patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection))
687  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
688  ## modify new patJets collection accordingly
689  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
690  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
691  ## get jet MC truth flavour if required by user
692  if (getJetMCFlavour):
693  ## legacy jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
694  ## add new patJetPartonsLegacy to process
695  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
696  if 'patJetPartonsLegacy'+postfix not in knownModules :
697  setattr(process, 'patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles))
698  knownModules.append('patJetPartonsLegacy'+postfix)
699  else:
700  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
701  ## add new patJetPartonAssociationLegacy to process
702  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
703  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
704  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
705  _newPatJetPartonAssociation.jets=jetSource
706  else :
707  setattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix, patJetPartonAssociationLegacy.clone(jets=jetSource))
708  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
709  ## add new patJetPartonAssociationLegacy to process
710  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
711  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
712  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
713  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
714  else:
715  setattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix, patJetFlavourAssociationLegacy.clone(srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix))
716  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
717  ## modify new patJets collection accordingly
718  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
719  ## new jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
720  ## add new patJetPartons to process
722  if 'patJetPartons'+postfix not in knownModules :
723  setattr(process, 'patJetPartons'+postfix, patJetPartons.clone(particles=genParticles))
724  knownModules.append('patJetPartons'+postfix)
725  else:
726  getattr(process, 'patJetPartons'+postfix).particles=genParticles
727  ## add new patJetFlavourAssociation to process
728  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
729  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
730  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
731  _newPatJetFlavourAssociation.jets=jetSource
732  _newPatJetFlavourAssociation.jetAlgorithm=_algo
733  _newPatJetFlavourAssociation.rParam=rParam
734  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
735  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
736  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"algorithmicPartons")
737  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
738  else :
739  setattr(process, 'patJetFlavourAssociation'+_labelName+postfix,
740  patJetFlavourAssociation.clone(
741  jets=jetSource,
742  jetAlgorithm=_algo,
743  rParam=rParam,
744  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
745  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
746  partons = cms.InputTag("patJetPartons"+postfix,"algorithmicPartons"),
747  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")
748  )
749  )
750  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
751  ## modify new patJets collection accordingly
752  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
753  ## if the jets is actually a subjet
754  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
755  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
756  _newPatJetFlavourAssociation.jets=fatJets
757  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
758  _newPatJetFlavourAssociation.subjets=jetSource
759  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
760  else:
761  _newPatJets.getJetMCFlavour = False
762 
763  ## add jetTrackAssociation for legacy btagging (or jetTracksAssociation only) if required by user
764  if (jetTrackAssociation or bTaggingLegacy):
765  ## add new jetTracksAssociationAtVertex to process
766  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
767  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
768  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
769  _newJetTracksAssociationAtVertex.jets=jetSource
770  _newJetTracksAssociationAtVertex.pvSrc=pvSource
771  else:
772  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
773  if explicitJTA:
774  jetTracksAssociator=ak4JetTracksAssociatorExplicit
775  setattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix, jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource))
776  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
777  ## add new patJetCharge to process
779  if 'patJetCharge'+_labelName+postfix in knownModules :
780  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
781  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
782  else:
783  setattr(process, 'patJetCharge'+_labelName+postfix, patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix))
784  knownModules.append('patJetCharge'+_labelName+postfix)
785  ## modify new patJets collection accordingly
786  _newPatJets.addAssociatedTracks=True
787  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
788  _newPatJets.addJetCharge=True
789  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
790  else:
791  ## modify new patJets collection accordingly
792  _newPatJets.addAssociatedTracks=False
793  _newPatJets.trackAssociationSource=''
794  _newPatJets.addJetCharge=False
795  _newPatJets.jetChargeSource=''
796  ## run btagging if required by user
797  if (bTagging):
798  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
799  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, btagPrefix, postfix)
800  else:
801  _newPatJets.addBTagInfo = False
802  _newPatJets.addTagInfos = False
803  ## adjust output module; these collections will be empty anyhow, but we do it to stay clean
804  for outputModule in outputModules:
805  if hasattr(process,outputModule):
806  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
807 
808  ## add jet correction factors if required by user
809  if (jetCorrections != None):
810  ## check the jet corrections format
811  checkJetCorrectionsFormat(jetCorrections)
812  ## setup jet energy corrections and MET corrections
813  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
814  else:
815  ## switch jetCorrFactors off
816  _newPatJets.addJetCorrFactors=False
817 
818 addJetCollection=AddJetCollection()
def setupJetCorrections
Definition: jetTools.py:24
def undefinedLabelName
Definition: jetTools.py:1405
_parameters
initialization of the base class
Definition: jetTools.py:486
def setupBTagging
Definition: jetTools.py:174
def checkJetCorrectionsFormat
Definition: jetTools.py:16
def unsupportedJetAlgorithm
Definition: jetTools.py:1412
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 488 of file jetTools.py.

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

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

Definition at line 433 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__(), trigTools.SwitchOnTriggerMatchingStandAlone.__call__(), jetTools.AddJetCollection.__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__(), HiCoreTools.AddCleaning.__init__(), jetTools.AddJetCollection.__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(), trigTools.SwitchOnTriggerMatchingStandAlone.getDefaultParameters(), jetTools.AddJetCollection.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 432 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 486 of file jetTools.py.

Referenced by runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__call__(), runJetUncertainties.RunJetUncertainties.__init__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__init__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.ak4JetReclustering(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.createMVAMETModule(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.createSmearedJetModule(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.extractMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getCorrectedMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getUnclusteredVariationsForMVAMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.jetCleaning(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.jetConfiguration(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.miniAODConfiguration(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.miniAODConfigurationPost(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.produceMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.recomputeRawMetFromPfcs(), HiCoreTools.RestrictInputToAOD.toolCode(), trackTools.MakeAODTrackCandidates.toolCode(), metTools.AddMETCollection.toolCode(), runJetUncertainties.RunJetUncertainties.toolCode(), HiCoreTools.RemoveMCMatching.toolCode(), trigTools.SwitchOnTrigger.toolCode(), trackTools.MakePATTrackCandidates.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().