CMS 3D CMS Logo

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__ (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)
 
def __init__ (self)
 
def getDefaultParameters (self)
 
def toolCode (self, process)
 

Private Attributes

 _comment
 add comments More...
 
 _parameters
 initialization of the base class More...
 

Static Private Attributes

 _defaultParameters
 
 _label
 

Detailed Description

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

Definition at line 853 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 860 of file jetTools.py.

References heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RunOnData._defaultParameters, heavyIonTools.ProductionDefaults._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(), l1t::TriggerSystem.addParameter(), LutXml.addParameter(), ConfigToolBase.ConfigToolBase.addParameter(), and edm::ParameterSet.addParameter().

860  def __init__(self):
861  """
862  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
863  """
864  ## initialization of the base class
865  ConfigToolBase.__init__(self)
866  ## add all parameters that should be known to the class
867  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
868  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
869  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
870  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
871  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
872  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
873  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
874  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
875  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
876  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
877  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
878  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
879  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
880  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
881  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
882  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
883  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
884  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
885  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
886  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
887  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
888  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
889  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 \
890  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 \
891  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
892  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 \
893  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 \
894  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\' \
895  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
896  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
897  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. \
898  If this list is empty no btag discriminator information will be added to your new patJet collection.", allowedValues=(supportedBtagDiscr.keys()+supportedMetaDiscr.keys()),Type=list)
899  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
900  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 \
901  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 \
902  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 \
903  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
904  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
905  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 \
906  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
907  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 \
908  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 \
909  to more than one output module.")
910  ## set defaults
911  self._parameters=copy.deepcopy(self._defaultParameters)
912  ## add comments
913  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\
914  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 \
915  the descriptions of each parameter for more information."
916 
_parameters
initialization of the base class
Definition: jetTools.py:911
_comment
add comments
Definition: jetTools.py:913

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 923 of file jetTools.py.

References heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RunOnData._defaultParameters, heavyIonTools.ProductionDefaults._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(), DummyOOTPileupCorrection.apply(), gen::PhotosppInterface.apply(), gen::PhotosInterface.apply(), SurveyParameters.apply(), FWPSetCellEditor.apply(), FWGUIEventFilter.apply(), DeviationsFromFileSensor2D.apply(), BeamSpotAlignmentParameters.apply(), RigidBodyAlignmentParameters.apply(), ConfigToolBase.ConfigToolBase.apply(), AlignmentParameters.apply(), BowedSurfaceAlignmentParameters.apply(), OOTPileupCorrData.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(), 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(), models.RegExp.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(), PedeReader.setParameter(), QIE8Simulator.setParameter(), AbsElectronicODERHS.setParameter(), IntegratedCalibrationBase.setParameter(), SiStripLorentzAngleCalibration.setParameter(), SiPixelLorentzAngleCalibration.setParameter(), SiStripBackplaneCalibration.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

923  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):
924  """
925  Function call wrapper. This will check the parameters and call the actual implementation that
926  can be found in toolCode via the base class function apply.
927  """
928  if labelName is None:
929  labelName=self._defaultParameters['labelName'].value
930  self.setParameter('labelName', labelName)
931  if postfix is None:
932  postfix=self._defaultParameters['postfix'].value
933  self.setParameter('postfix', postfix)
934  if btagPrefix is None:
935  btagPrefix=self._defaultParameters['btagPrefix'].value
936  self.setParameter('btagPrefix', btagPrefix)
937  if jetSource is None:
938  jetSource=self._defaultParameters['jetSource'].value
939  self.setParameter('jetSource', jetSource)
940  if pfCandidates is None:
941  pfCandidates=self._defaultParameters['pfCandidates'].value
942  self.setParameter('pfCandidates', pfCandidates)
943  if explicitJTA is None:
944  explicitJTA=self._defaultParameters['explicitJTA'].value
945  self.setParameter('explicitJTA', explicitJTA)
946  if pvSource is None:
947  pvSource=self._defaultParameters['pvSource'].value
948  self.setParameter('pvSource', pvSource)
949  if svSource is None:
950  svSource=self._defaultParameters['svSource'].value
951  self.setParameter('svSource', svSource)
952  if elSource is None:
953  elSource=self._defaultParameters['elSource'].value
954  self.setParameter('elSource', elSource)
955  if muSource is None:
956  muSource=self._defaultParameters['muSource'].value
957  self.setParameter('muSource', muSource)
958  if runIVF is None:
959  runIVF=self._defaultParameters['runIVF'].value
960  self.setParameter('runIVF', runIVF)
961  if tightBTagNTkHits is None:
962  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
963  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
964  if loadStdRecoBTag is None:
965  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
966  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
967  if svClustering is None:
968  svClustering=self._defaultParameters['svClustering'].value
969  self.setParameter('svClustering', svClustering)
970  if fatJets is None:
971  fatJets=self._defaultParameters['fatJets'].value
972  self.setParameter('fatJets', fatJets)
973  if groomedFatJets is None:
974  groomedFatJets=self._defaultParameters['groomedFatJets'].value
975  self.setParameter('groomedFatJets', groomedFatJets)
976  if algo is None:
977  algo=self._defaultParameters['algo'].value
978  self.setParameter('algo', algo)
979  if rParam is None:
980  rParam=self._defaultParameters['rParam'].value
981  self.setParameter('rParam', rParam)
982  if getJetMCFlavour is None:
983  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
984  self.setParameter('getJetMCFlavour', getJetMCFlavour)
985  if genJetCollection is None:
986  genJetCollection=self._defaultParameters['genJetCollection'].value
987  self.setParameter('genJetCollection', genJetCollection)
988  if genParticles is None:
989  genParticles=self._defaultParameters['genParticles'].value
990  self.setParameter('genParticles', genParticles)
991  if jetCorrections is None:
992  jetCorrections=self._defaultParameters['jetCorrections'].value
993  self.setParameter('jetCorrections', jetCorrections)
994  if btagDiscriminators is None:
995  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
996  self.setParameter('btagDiscriminators', btagDiscriminators)
997  if btagInfos is None:
998  btagInfos=self._defaultParameters['btagInfos'].value
999  self.setParameter('btagInfos', btagInfos)
1000  if jetTrackAssociation is None:
1001  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
1002  self.setParameter('jetTrackAssociation', jetTrackAssociation)
1003  if outputModules is None:
1004  outputModules=self._defaultParameters['outputModules'].value
1005  self.setParameter('outputModules', outputModules)
1006  self.apply(process)
1007 
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)
Definition: jetTools.py:923
def jetTools.AddJetCollection.getDefaultParameters (   self)
def jetTools.AddJetCollection.toolCode (   self,
  process 
)
Tool code implementation

Definition at line 1008 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, helpers.addToProcessAndTask(), jetTools.checkJetCorrectionsFormat(), helpers.getPatAlgosToolsTask(), list(), jetTools.setupBTagging(), jetTools.setupJetCorrections(), split, jetTools.undefinedLabelName(), jetTools.unsupportedJetAlgorithm(), and pileupCalc.upper.

1008  def toolCode(self, process):
1009  """
1010  Tool code implementation
1011  """
1012  task = getPatAlgosToolsTask(process)
1013 
1014  ## initialize parameters
1015  labelName=self._parameters['labelName'].value
1016  postfix=self._parameters['postfix'].value
1017  btagPrefix=self._parameters['btagPrefix'].value
1018  jetSource=self._parameters['jetSource'].value
1019  pfCandidates=self._parameters['pfCandidates'].value
1020  explicitJTA=self._parameters['explicitJTA'].value
1021  pvSource=self._parameters['pvSource'].value
1022  svSource=self._parameters['svSource'].value
1023  elSource=self._parameters['elSource'].value
1024  muSource=self._parameters['muSource'].value
1025  runIVF=self._parameters['runIVF'].value
1026  tightBTagNTkHits=self._parameters['tightBTagNTkHits'].value
1027  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
1028  svClustering=self._parameters['svClustering'].value
1029  fatJets=self._parameters['fatJets'].value
1030  groomedFatJets=self._parameters['groomedFatJets'].value
1031  algo=self._parameters['algo'].value
1032  rParam=self._parameters['rParam'].value
1033  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
1034  genJetCollection=self._parameters['genJetCollection'].value
1035  genParticles=self._parameters['genParticles'].value
1036  jetCorrections=self._parameters['jetCorrections'].value
1037  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
1038  btagInfos=list(self._parameters['btagInfos'].value)
1039  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
1040  outputModules=list(self._parameters['outputModules'].value)
1041 
1042  ## added jets must have a defined 'labelName'
1043  if labelName=='UNDEFINED':
1044  undefinedLabelName(self)
1045 
1046  ## a list of all producer modules, which are already known to process
1047  knownModules = process.producerNames().split()
1048  ## determine whether btagging information is required or not
1049  if btagDiscriminators.count('None')>0:
1050  btagDiscriminators.remove('None')
1051  if btagInfos.count('None')>0:
1052  btagInfos.remove('None')
1053  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
1054  ## check if any legacy btag discriminators are being used
1055  infos = 0
1056  for info in btagInfos:
1057  if info.startswith('pf'): infos = infos + 1
1058  if 'softpf' in info.lower(): infos = infos + 1
1059  tags = 0
1060  for tag in btagDiscriminators:
1061  if tag.startswith('pf'): tags = tags + 1
1062  if 'softpf' in tag.lower(): tags = tags + 1
1063  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
1064  ## construct postfix label for auxiliary modules; this postfix
1065  ## label will start with a capitalized first letter following
1066  ## the CMS naming conventions and for improved readablility
1067  _labelName=labelName[:1].upper()+labelName[1:]
1068 
1069  ## supported algo types are ak, ca, and kt
1070  _algo=''
1071  for x in ["ak", "ca", "kt"]:
1072  if x in algo.lower():
1073  _algo=supportedJetAlgos[x]
1074  break
1075  if _algo=='':
1077  ## add new patJets to process (keep instance for later further modifications)
1078  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
1079  if 'patJets'+_labelName+postfix in knownModules :
1080  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1081  _newPatJets.jetSource=jetSource
1082  else :
1083  addToProcessAndTask('patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource), process, task)
1084  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1085  knownModules.append('patJets'+_labelName+postfix)
1086  ## add new selectedPatJets to process
1087  from PhysicsTools.PatAlgos.selectionLayer1.jetSelector_cfi import selectedPatJets
1088  if 'selectedPatJets'+_labelName+postfix in knownModules :
1089  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
1090  _newSelectedPatJets.src='patJets'+_labelName+postfix
1091  else :
1092  addToProcessAndTask('selectedPatJets'+_labelName+postfix,
1093  selectedPatJets.clone(src='patJets'+_labelName+postfix),
1094  process, task)
1095  knownModules.append('selectedPatJets'+_labelName+postfix)
1096 
1097  ## add new patJetPartonMatch to process
1098  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
1099  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
1100  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
1101  _newPatJetPartonMatch.src=jetSource
1102  _newPatJetPartonMatch.matched=genParticles
1103  else :
1104  addToProcessAndTask('patJetPartonMatch'+_labelName+postfix,
1105  patJetPartonMatch.clone(src=jetSource, matched=genParticles),
1106  process, task)
1107  knownModules.append('patJetPartonMatch'+_labelName+postfix)
1108  ## add new patJetGenJetMatch to process
1109  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
1110  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
1111  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
1112  _newPatJetGenJetMatch.src=jetSource
1113  _newPatJetGenJetMatch.maxDeltaR=rParam
1114  _newPatJetGenJetMatch.matched=genJetCollection
1115  else :
1116  addToProcessAndTask('patJetGenJetMatch'+_labelName+postfix,
1117  patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection),
1118  process, task)
1119  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
1120  ## modify new patJets collection accordingly
1121  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
1122  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
1123  ## get jet MC truth flavour if required by user
1124  if (getJetMCFlavour):
1125  ## legacy jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
1126  ## add new patJetPartonsLegacy to process
1127  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
1128  if 'patJetPartonsLegacy'+postfix not in knownModules :
1129  addToProcessAndTask('patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles),
1130  process, task)
1131  knownModules.append('patJetPartonsLegacy'+postfix)
1132  else:
1133  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
1134  ## add new patJetPartonAssociationLegacy to process
1135  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
1136  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
1137  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
1138  _newPatJetPartonAssociation.jets=jetSource
1139  else :
1140  addToProcessAndTask('patJetPartonAssociationLegacy'+_labelName+postfix,
1141  patJetPartonAssociationLegacy.clone(jets=jetSource), process, task)
1142  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
1143  ## add new patJetPartonAssociationLegacy to process
1144  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
1145  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
1146  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
1147  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
1148  else:
1149  addToProcessAndTask('patJetFlavourAssociationLegacy'+_labelName+postfix,
1150  patJetFlavourAssociationLegacy.clone(
1151  srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix),
1152  process, task)
1153  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
1154  ## modify new patJets collection accordingly
1155  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
1156  ## new jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
1157  ## add new patJetPartons to process
1159  if 'patJetPartons'+postfix not in knownModules :
1160  addToProcessAndTask('patJetPartons'+postfix, patJetPartons.clone(particles=genParticles), process, task)
1161  knownModules.append('patJetPartons'+postfix)
1162  else:
1163  getattr(process, 'patJetPartons'+postfix).particles=genParticles
1164  ## add new patJetFlavourAssociation to process
1165  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
1166  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
1167  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1168  _newPatJetFlavourAssociation.jets=jetSource
1169  _newPatJetFlavourAssociation.jetAlgorithm=_algo
1170  _newPatJetFlavourAssociation.rParam=rParam
1171  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
1172  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
1173  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"physicsPartons")
1174  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
1175  else :
1176  addToProcessAndTask('patJetFlavourAssociation'+_labelName+postfix,
1177  patJetFlavourAssociation.clone(
1178  jets=jetSource,
1179  jetAlgorithm=_algo,
1180  rParam=rParam,
1181  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
1182  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
1183  partons = cms.InputTag("patJetPartons"+postfix,"physicsPartons"),
1184  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")),
1185  process, task)
1186 
1187  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
1188  ## modify new patJets collection accordingly
1189  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
1190  ## if the jets is actually a subjet
1191  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
1192  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1193  _newPatJetFlavourAssociation.jets=fatJets
1194  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
1195  _newPatJetFlavourAssociation.subjets=jetSource
1196  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
1197  else:
1198  _newPatJets.getJetMCFlavour = False
1199 
1200  ## add jetTrackAssociation for legacy btagging (or jetTracksAssociation only) if required by user
1201  if (jetTrackAssociation or bTaggingLegacy):
1202  ## add new jetTracksAssociationAtVertex to process
1203  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
1204  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
1205  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
1206  _newJetTracksAssociationAtVertex.jets=jetSource
1207  _newJetTracksAssociationAtVertex.pvSrc=pvSource
1208  else:
1209  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
1210  if explicitJTA:
1211  jetTracksAssociator=ak4JetTracksAssociatorExplicit
1212  addToProcessAndTask('jetTracksAssociatorAtVertex'+_labelName+postfix,
1213  jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource),
1214  process, task)
1215  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
1216  ## add new patJetCharge to process
1218  if 'patJetCharge'+_labelName+postfix in knownModules :
1219  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
1220  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
1221  else:
1222  addToProcessAndTask('patJetCharge'+_labelName+postfix,
1223  patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix),
1224  process, task)
1225  knownModules.append('patJetCharge'+_labelName+postfix)
1226  ## modify new patJets collection accordingly
1227  _newPatJets.addAssociatedTracks=True
1228  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
1229  _newPatJets.addJetCharge=True
1230  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
1231  else:
1232  ## modify new patJets collection accordingly
1233  _newPatJets.addAssociatedTracks=False
1234  _newPatJets.trackAssociationSource=''
1235  _newPatJets.addJetCharge=False
1236  _newPatJets.jetChargeSource=''
1237  ## run btagging if required by user
1238  if (bTagging):
1239  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
1240  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, btagPrefix, postfix)
1241  else:
1242  _newPatJets.addBTagInfo = False
1243  _newPatJets.addTagInfos = False
1244  ## adjust output module; these collections will be empty anyhow, but we do it to stay clean
1245  for outputModule in outputModules:
1246  if hasattr(process,outputModule):
1247  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
1248 
1249  ## add jet correction factors if required by user
1250  if (jetCorrections != None):
1251  ## check the jet corrections format
1252  checkJetCorrectionsFormat(jetCorrections)
1253  ## setup jet energy corrections and MET corrections
1254  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
1255  else:
1256  ## switch jetCorrFactors off
1257  _newPatJets.addJetCorrFactors=False
1258 
1259 addJetCollection=AddJetCollection()
1260 
def undefinedLabelName(obj)
Definition: jetTools.py:1863
def toolCode(self, process)
Definition: jetTools.py:1008
def addToProcessAndTask(label, module, process, task)
Definition: helpers.py:28
def setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, patJets, labelName, postfix)
Definition: jetTools.py:25
_parameters
initialization of the base class
Definition: jetTools.py:911
def setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets, algo, rParam, btagDiscriminators, btagInfos, patJets, labelName, btagPrefix, postfix)
Definition: jetTools.py:236
def checkJetCorrectionsFormat(jetCorrections)
Definition: jetTools.py:17
def getPatAlgosToolsTask(process)
Definition: helpers.py:13
double split
Definition: MVATrainer.cc:139
def unsupportedJetAlgorithm(obj)
Definition: jetTools.py:1870
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 913 of file jetTools.py.

jetTools.AddJetCollection._defaultParameters
staticprivate

Definition at line 858 of file jetTools.py.

Referenced by HiCoreTools.RestrictInputToAOD.__call__(), trackTools.MakeAODTrackCandidates.__call__(), runJetUncertainties.RunJetUncertainties.__call__(), metTools.AddMETCollection.__call__(), editorTools.ChangeSource.__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__(), trigTools.SwitchOnTriggerMatchEmbedding.__call__(), jetTools.AddJetCollection.__call__(), jetTools.SwitchJetCollection.__call__(), jetTools.UpdateJetCollection.__call__(), jetTools.AddJetID.__call__(), jetTools.SetTagInfos.__call__(), editorTools.UserCodeTool.__init__(), metTools.AddMETCollection.__init__(), HiCoreTools.RestrictInputToAOD.__init__(), trackTools.MakeAODTrackCandidates.__init__(), runJetUncertainties.RunJetUncertainties.__init__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__init__(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool.__init__(), editorTools.ChangeSource.__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__(), trigTools.SwitchOnTriggerMatchEmbedding.__init__(), jetTools.AddJetCollection.__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(), editorTools.ChangeSource.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(), trigTools.SwitchOnTriggerMatchEmbedding.getDefaultParameters(), jetTools.AddJetCollection.getDefaultParameters(), jetTools.SwitchJetCollection.getDefaultParameters(), jetTools.UpdateJetCollection.getDefaultParameters(), jetTools.AddJetID.getDefaultParameters(), jetTools.SetTagInfos.getDefaultParameters(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.initializeInputTag(), ConfigToolBase.ConfigToolBase.reset(), and ConfigToolBase.ConfigToolBase.setParameter().

jetTools.AddJetCollection._label
staticprivate
jetTools.AddJetCollection._parameters
private

initialization of the base class

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

Definition at line 911 of file jetTools.py.

Referenced by runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__call__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.ak4JetReclustering(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.createMVAMETModule(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.createSmearedJetModule(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.extractMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getCorrectedMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getUnclusteredVariationsForMVAMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getVariations(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.jetCleaning(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.jetConfiguration(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.miniAODConfiguration(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.miniAODConfigurationPost(), 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().