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 481 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 488 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().

489  def __init__(self):
490  """
491  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
492  """
493  ## initialization of the base class
494  ConfigToolBase.__init__(self)
495  ## add all parameters that should be known to the class
496  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
497  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
498  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
499  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
500  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
501  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
502  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
503  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
504  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
505  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
506  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
507  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
508  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
509  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
510  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
511  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
512  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
513  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
514  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
515  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
516  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
517  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
518  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 \
519  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 \
520  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
521  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 \
522  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 \
523  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\' \
524  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
525  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
526  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. \
527  If this list is empty no btag discriminator information will be added to your new patJet collection.", allowedValues=supportedBtagDiscr.keys(),Type=list)
528  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
529  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 \
530  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 \
531  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 \
532  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
533  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
534  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 \
535  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
536  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 \
537  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 \
538  to more than one output module.")
539  ## set defaults
540  self._parameters=copy.deepcopy(self._defaultParameters)
541  ## add comments
542  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\
543  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 \
544  the descriptions of each parameter for more information."
_parameters
initialization of the base class
Definition: jetTools.py:539
_comment
add comments
Definition: jetTools.py:541

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

552  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):
553  """
554  Function call wrapper. This will check the parameters and call the actual implementation that
555  can be found in toolCode via the base class function apply.
556  """
557  if labelName is None:
558  labelName=self._defaultParameters['labelName'].value
559  self.setParameter('labelName', labelName)
560  if postfix is None:
561  postfix=self._defaultParameters['postfix'].value
562  self.setParameter('postfix', postfix)
563  if btagPrefix is None:
564  btagPrefix=self._defaultParameters['btagPrefix'].value
565  self.setParameter('btagPrefix', btagPrefix)
566  if jetSource is None:
567  jetSource=self._defaultParameters['jetSource'].value
568  self.setParameter('jetSource', jetSource)
569  if pfCandidates is None:
570  pfCandidates=self._defaultParameters['pfCandidates'].value
571  self.setParameter('pfCandidates', pfCandidates)
572  if explicitJTA is None:
573  explicitJTA=self._defaultParameters['explicitJTA'].value
574  self.setParameter('explicitJTA', explicitJTA)
575  if pvSource is None:
576  pvSource=self._defaultParameters['pvSource'].value
577  self.setParameter('pvSource', pvSource)
578  if svSource is None:
579  svSource=self._defaultParameters['svSource'].value
580  self.setParameter('svSource', svSource)
581  if elSource is None:
582  elSource=self._defaultParameters['elSource'].value
583  self.setParameter('elSource', elSource)
584  if muSource is None:
585  muSource=self._defaultParameters['muSource'].value
586  self.setParameter('muSource', muSource)
587  if runIVF is None:
588  runIVF=self._defaultParameters['runIVF'].value
589  self.setParameter('runIVF', runIVF)
590  if tightBTagNTkHits is None:
591  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
592  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
593  if loadStdRecoBTag is None:
594  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
595  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
596  if svClustering is None:
597  svClustering=self._defaultParameters['svClustering'].value
598  self.setParameter('svClustering', svClustering)
599  if fatJets is None:
600  fatJets=self._defaultParameters['fatJets'].value
601  self.setParameter('fatJets', fatJets)
602  if groomedFatJets is None:
603  groomedFatJets=self._defaultParameters['groomedFatJets'].value
604  self.setParameter('groomedFatJets', groomedFatJets)
605  if algo is None:
606  algo=self._defaultParameters['algo'].value
607  self.setParameter('algo', algo)
608  if rParam is None:
609  rParam=self._defaultParameters['rParam'].value
610  self.setParameter('rParam', rParam)
611  if getJetMCFlavour is None:
612  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
613  self.setParameter('getJetMCFlavour', getJetMCFlavour)
614  if genJetCollection is None:
615  genJetCollection=self._defaultParameters['genJetCollection'].value
616  self.setParameter('genJetCollection', genJetCollection)
617  if genParticles is None:
618  genParticles=self._defaultParameters['genParticles'].value
619  self.setParameter('genParticles', genParticles)
620  if jetCorrections is None:
621  jetCorrections=self._defaultParameters['jetCorrections'].value
622  self.setParameter('jetCorrections', jetCorrections)
623  if btagDiscriminators is None:
624  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
625  self.setParameter('btagDiscriminators', btagDiscriminators)
626  if btagInfos is None:
627  btagInfos=self._defaultParameters['btagInfos'].value
628  self.setParameter('btagInfos', btagInfos)
629  if jetTrackAssociation is None:
630  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
631  self.setParameter('jetTrackAssociation', jetTrackAssociation)
632  if outputModules is None:
633  outputModules=self._defaultParameters['outputModules'].value
634  self.setParameter('outputModules', outputModules)
635  self.apply(process)
def jetTools.AddJetCollection.getDefaultParameters (   self)
Return default parameters of the class

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

546  def getDefaultParameters(self):
547  """
548  Return default parameters of the class
549  """
550  return self._defaultParameters
def jetTools.AddJetCollection.toolCode (   self,
  process 
)
Tool code implementation

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

637  def toolCode(self, process):
638  """
639  Tool code implementation
640  """
641  ## initialize parameters
642  labelName=self._parameters['labelName'].value
643  postfix=self._parameters['postfix'].value
644  btagPrefix=self._parameters['btagPrefix'].value
645  jetSource=self._parameters['jetSource'].value
646  pfCandidates=self._parameters['pfCandidates'].value
647  explicitJTA=self._parameters['explicitJTA'].value
648  pvSource=self._parameters['pvSource'].value
649  svSource=self._parameters['svSource'].value
650  elSource=self._parameters['elSource'].value
651  muSource=self._parameters['muSource'].value
652  runIVF=self._parameters['runIVF'].value
653  tightBTagNTkHits=self._parameters['tightBTagNTkHits'].value
654  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
655  svClustering=self._parameters['svClustering'].value
656  fatJets=self._parameters['fatJets'].value
657  groomedFatJets=self._parameters['groomedFatJets'].value
658  algo=self._parameters['algo'].value
659  rParam=self._parameters['rParam'].value
660  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
661  genJetCollection=self._parameters['genJetCollection'].value
662  genParticles=self._parameters['genParticles'].value
663  jetCorrections=self._parameters['jetCorrections'].value
664  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
665  btagInfos=list(self._parameters['btagInfos'].value)
666  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
667  outputModules=list(self._parameters['outputModules'].value)
668 
669  ## added jets must have a defined 'labelName'
670  if labelName=='UNDEFINED':
671  undefinedLabelName(self)
672 
673  ## a list of all producer modules, which are already known to process
674  knownModules = process.producerNames().split()
675  ## determine whether btagging information is required or not
676  if btagDiscriminators.count('None')>0:
677  btagDiscriminators.remove('None')
678  if btagInfos.count('None')>0:
679  btagInfos.remove('None')
680  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
681  ## check if any legacy btag discriminators are being used
682  infos = 0
683  for info in btagInfos:
684  if info.startswith('pf'): infos = infos + 1
685  if 'softpf' in info.lower(): infos = infos + 1
686  tags = 0
687  for tag in btagDiscriminators:
688  if tag.startswith('pf'): tags = tags + 1
689  if 'softpf' in tag.lower(): tags = tags + 1
690  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
691  ## construct postfix label for auxiliary modules; this postfix
692  ## label will start with a capitalized first letter following
693  ## the CMS naming conventions and for improved readablility
694  _labelName=labelName[:1].upper()+labelName[1:]
695 
696  ## supported algo types are ak, ca, and kt
697  _algo=''
698  for x in ["ak", "ca", "kt"]:
699  if x in algo.lower():
700  _algo=supportedJetAlgos[x]
701  break
702  if _algo=='':
704  ## add new patJets to process (keep instance for later further modifications)
705  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
706  if 'patJets'+_labelName+postfix in knownModules :
707  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
708  _newPatJets.jetSource=jetSource
709  else :
710  setattr(process, 'patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource))
711  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
712  knownModules.append('patJets'+_labelName+postfix)
713  ## add new selectedPatJets to process
715  if 'selectedPatJets'+_labelName+postfix in knownModules :
716  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
717  _newSelectedPatJets.src='patJets'+_labelName+postfix
718  else :
719  setattr(process, 'selectedPatJets'+_labelName+postfix, selectedPatJets.clone(src='patJets'+_labelName+postfix))
720  knownModules.append('selectedPatJets'+_labelName+postfix)
721 
722  ## add new patJetPartonMatch to process
723  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
724  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
725  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
726  _newPatJetPartonMatch.src=jetSource
727  _newPatJetPartonMatch.matched=genParticles
728  else :
729  setattr(process, 'patJetPartonMatch'+_labelName+postfix, patJetPartonMatch.clone(src=jetSource, matched=genParticles))
730  knownModules.append('patJetPartonMatch'+_labelName+postfix)
731  ## add new patJetGenJetMatch to process
732  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
733  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
734  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
735  _newPatJetGenJetMatch.src=jetSource
736  _newPatJetGenJetMatch.maxDeltaR=rParam
737  _newPatJetGenJetMatch.matched=genJetCollection
738  else :
739  setattr(process, 'patJetGenJetMatch'+_labelName+postfix, patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection))
740  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
741  ## modify new patJets collection accordingly
742  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
743  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
744  ## get jet MC truth flavour if required by user
745  if (getJetMCFlavour):
746  ## legacy jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
747  ## add new patJetPartonsLegacy to process
748  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
749  if 'patJetPartonsLegacy'+postfix not in knownModules :
750  setattr(process, 'patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles))
751  knownModules.append('patJetPartonsLegacy'+postfix)
752  else:
753  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
754  ## add new patJetPartonAssociationLegacy to process
755  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
756  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
757  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
758  _newPatJetPartonAssociation.jets=jetSource
759  else :
760  setattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix, patJetPartonAssociationLegacy.clone(jets=jetSource))
761  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
762  ## add new patJetPartonAssociationLegacy to process
763  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
764  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
765  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
766  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
767  else:
768  setattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix, patJetFlavourAssociationLegacy.clone(srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix))
769  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
770  ## modify new patJets collection accordingly
771  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
772  ## new jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
773  ## add new patJetPartons to process
775  if 'patJetPartons'+postfix not in knownModules :
776  setattr(process, 'patJetPartons'+postfix, patJetPartons.clone(particles=genParticles))
777  knownModules.append('patJetPartons'+postfix)
778  else:
779  getattr(process, 'patJetPartons'+postfix).particles=genParticles
780  ## add new patJetFlavourAssociation to process
781  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
782  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
783  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
784  _newPatJetFlavourAssociation.jets=jetSource
785  _newPatJetFlavourAssociation.jetAlgorithm=_algo
786  _newPatJetFlavourAssociation.rParam=rParam
787  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
788  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
789  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"algorithmicPartons")
790  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
791  else :
792  setattr(process, 'patJetFlavourAssociation'+_labelName+postfix,
793  patJetFlavourAssociation.clone(
794  jets=jetSource,
795  jetAlgorithm=_algo,
796  rParam=rParam,
797  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
798  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
799  partons = cms.InputTag("patJetPartons"+postfix,"algorithmicPartons"),
800  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")
801  )
802  )
803  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
804  ## modify new patJets collection accordingly
805  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
806  ## if the jets is actually a subjet
807  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
808  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
809  _newPatJetFlavourAssociation.jets=fatJets
810  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
811  _newPatJetFlavourAssociation.subjets=jetSource
812  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
813  else:
814  _newPatJets.getJetMCFlavour = False
815 
816  ## add jetTrackAssociation for legacy btagging (or jetTracksAssociation only) if required by user
817  if (jetTrackAssociation or bTaggingLegacy):
818  ## add new jetTracksAssociationAtVertex to process
819  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
820  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
821  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
822  _newJetTracksAssociationAtVertex.jets=jetSource
823  _newJetTracksAssociationAtVertex.pvSrc=pvSource
824  else:
825  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
826  if explicitJTA:
827  jetTracksAssociator=ak4JetTracksAssociatorExplicit
828  setattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix, jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource))
829  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
830  ## add new patJetCharge to process
832  if 'patJetCharge'+_labelName+postfix in knownModules :
833  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
834  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
835  else:
836  setattr(process, 'patJetCharge'+_labelName+postfix, patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix))
837  knownModules.append('patJetCharge'+_labelName+postfix)
838  ## modify new patJets collection accordingly
839  _newPatJets.addAssociatedTracks=True
840  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
841  _newPatJets.addJetCharge=True
842  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
843  else:
844  ## modify new patJets collection accordingly
845  _newPatJets.addAssociatedTracks=False
846  _newPatJets.trackAssociationSource=''
847  _newPatJets.addJetCharge=False
848  _newPatJets.jetChargeSource=''
849  ## run btagging if required by user
850  if (bTagging):
851  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
852  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, btagPrefix, postfix)
853  else:
854  _newPatJets.addBTagInfo = False
855  _newPatJets.addTagInfos = False
856  ## adjust output module; these collections will be empty anyhow, but we do it to stay clean
857  for outputModule in outputModules:
858  if hasattr(process,outputModule):
859  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
860 
861  ## add jet correction factors if required by user
862  if (jetCorrections != None):
863  ## check the jet corrections format
864  checkJetCorrectionsFormat(jetCorrections)
865  ## setup jet energy corrections and MET corrections
866  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
867  else:
868  ## switch jetCorrFactors off
869  _newPatJets.addJetCorrFactors=False
870 
871 addJetCollection=AddJetCollection()
def setupJetCorrections
Definition: jetTools.py:24
def undefinedLabelName
Definition: jetTools.py:1458
_parameters
initialization of the base class
Definition: jetTools.py:539
def setupBTagging
Definition: jetTools.py:174
def checkJetCorrectionsFormat
Definition: jetTools.py:16
def unsupportedJetAlgorithm
Definition: jetTools.py:1465
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 541 of file jetTools.py.

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

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

Definition at line 486 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__(), trigTools.SwitchOnTriggerMatchingStandAlone.__init__(), jetTools.AddJetCollection.__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 485 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 539 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(), trigTools.SwitchOnTriggerMatchEmbedding.toolCode(), jetTools.AddJetCollection.toolCode(), jetTools.SwitchJetCollection.toolCode(), jetTools.UpdateJetCollection.toolCode(), jetTools.AddJetID.toolCode(), jetTools.SetTagInfos.toolCode(), and runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.updateJECs().