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

Constructor & Destructor Documentation

◆ __init__()

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 940 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(), Python11ParameterSet.addParameter(), l1t::TriggerSystem.addParameter(), LutXml.addParameter(), ConfigToolBase.ConfigToolBase.addParameter(), and edm::ParameterSet.addParameter().

940  def __init__(self):
941  """
942  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
943  """
944 
945  ConfigToolBase.__init__(self)
946 
947  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
948  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
949  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
950  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
951  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
952  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
953  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
954  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
955  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
956  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
957  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
958  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
959  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
960  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
961  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
962  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
963  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
964  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
965  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
966  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
967  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
968  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
969  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 \
970  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 \
971  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
972  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 \
973  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 \
974  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\' \
975  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
976  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
977  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. \
978  If this list is empty no btag discriminator information will be added to your new patJet collection.", allowedValues=(list(set().union(supportedBtagDiscr.keys(),supportedMetaDiscr.keys()))),Type=list)
979  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
980  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 \
981  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 \
982  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 \
983  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
984  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
985  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 \
986  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
987  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 \
988  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 \
989  to more than one output module.")
990 
991  self._parameters=copy.deepcopy(self._defaultParameters)
992 
993  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\
994  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 \
995  the descriptions of each parameter for more information."
996 
def __init__(self, dataset, job_number, job_id, job_name, isDA, isMC, applyBOWS, applyEXTRACOND, extraconditions, runboundary, lumilist, intlumi, maxevents, gt, allFromGT, alignmentDB, alignmentTAG, apeDB, apeTAG, bowDB, bowTAG, vertextype, tracktype, refittertype, ttrhtype, applyruncontrol, ptcut, CMSSW_dir, the_dir)

Member Function Documentation

◆ __call__()

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 1003 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(), SignedDecayLength3D.apply(), SignedTransverseImpactParameter.apply(), ProcessAcceleratorCUDA.ProcessAcceleratorCUDA.apply(), ProcessAcceleratorROCm.ProcessAcceleratorROCm.apply(), gen::PhotosInterfaceBase.apply(), SurveyParameters.apply(), DummyOOTPileupCorrection.apply(), MatrixReader.MatrixReader.apply, gen::PhotosppInterface.apply(), FWPSetCellEditor.apply(), BeamSpotAlignmentParameters.apply(), RigidBodyAlignmentParameters.apply(), DeviationsFromFileSensor2D.apply(), FWGUIEventFilter.apply(), AlignmentParameters.apply(), ConfigToolBase.ConfigToolBase.apply(), BowedSurfaceAlignmentParameters.apply(), OOTPileupCorrData.apply(), ProcessAcceleratorAlpaka.ProcessAcceleratorAlpaka.apply(), AbsOOTPileupCorrection.apply(), TwoBowedSurfacesAlignmentParameters.apply(), reco::modules::TrackerTrackHitFilter::Rule.apply(), cmsswVersionTools.PickRelValInputFiles.apply(), models.RegExp.apply(), npstat::ArrayND< Numeric >.apply(), npstat::ArrayND< Numeric, StackLen, StackDim >.apply(), Config.ProcessModifier.apply(), Config.ProcessAccelerator.apply(), Config.ProcessAcceleratorTest.apply(), Config.ProcessAcceleratorTest2.apply(), HGCalCassette.setParameter(), PedeReader.setParameter(), QIE8Simulator.setParameter(), AbsElectronicODERHS.setParameter(), SiStripLorentzAngleCalibration.setParameter(), IntegratedCalibrationBase.setParameter(), SiPixelLorentzAngleCalibration.setParameter(), SiStripBackplaneCalibration.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

1003  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):
1004  """
1005  Function call wrapper. This will check the parameters and call the actual implementation that
1006  can be found in toolCode via the base class function apply.
1007  """
1008  if labelName is None:
1009  labelName=self._defaultParameters['labelName'].value
1010  self.setParameter('labelName', labelName)
1011  if postfix is None:
1012  postfix=self._defaultParameters['postfix'].value
1013  self.setParameter('postfix', postfix)
1014  if btagPrefix is None:
1015  btagPrefix=self._defaultParameters['btagPrefix'].value
1016  self.setParameter('btagPrefix', btagPrefix)
1017  if jetSource is None:
1018  jetSource=self._defaultParameters['jetSource'].value
1019  self.setParameter('jetSource', jetSource)
1020  if pfCandidates is None:
1021  pfCandidates=self._defaultParameters['pfCandidates'].value
1022  self.setParameter('pfCandidates', pfCandidates)
1023  if explicitJTA is None:
1024  explicitJTA=self._defaultParameters['explicitJTA'].value
1025  self.setParameter('explicitJTA', explicitJTA)
1026  if pvSource is None:
1027  pvSource=self._defaultParameters['pvSource'].value
1028  self.setParameter('pvSource', pvSource)
1029  if svSource is None:
1030  svSource=self._defaultParameters['svSource'].value
1031  self.setParameter('svSource', svSource)
1032  if elSource is None:
1033  elSource=self._defaultParameters['elSource'].value
1034  self.setParameter('elSource', elSource)
1035  if muSource is None:
1036  muSource=self._defaultParameters['muSource'].value
1037  self.setParameter('muSource', muSource)
1038  if runIVF is None:
1039  runIVF=self._defaultParameters['runIVF'].value
1040  self.setParameter('runIVF', runIVF)
1041  if tightBTagNTkHits is None:
1042  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
1043  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
1044  if loadStdRecoBTag is None:
1045  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
1046  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
1047  if svClustering is None:
1048  svClustering=self._defaultParameters['svClustering'].value
1049  self.setParameter('svClustering', svClustering)
1050  if fatJets is None:
1051  fatJets=self._defaultParameters['fatJets'].value
1052  self.setParameter('fatJets', fatJets)
1053  if groomedFatJets is None:
1054  groomedFatJets=self._defaultParameters['groomedFatJets'].value
1055  self.setParameter('groomedFatJets', groomedFatJets)
1056  if algo is None:
1057  algo=self._defaultParameters['algo'].value
1058  self.setParameter('algo', algo)
1059  if rParam is None:
1060  rParam=self._defaultParameters['rParam'].value
1061  self.setParameter('rParam', rParam)
1062  if getJetMCFlavour is None:
1063  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
1064  self.setParameter('getJetMCFlavour', getJetMCFlavour)
1065  if genJetCollection is None:
1066  genJetCollection=self._defaultParameters['genJetCollection'].value
1067  self.setParameter('genJetCollection', genJetCollection)
1068  if genParticles is None:
1069  genParticles=self._defaultParameters['genParticles'].value
1070  self.setParameter('genParticles', genParticles)
1071  if jetCorrections is None:
1072  jetCorrections=self._defaultParameters['jetCorrections'].value
1073  self.setParameter('jetCorrections', jetCorrections)
1074  if btagDiscriminators is None:
1075  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
1076  self.setParameter('btagDiscriminators', btagDiscriminators)
1077  if btagInfos is None:
1078  btagInfos=self._defaultParameters['btagInfos'].value
1079  self.setParameter('btagInfos', btagInfos)
1080  if jetTrackAssociation is None:
1081  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
1082  self.setParameter('jetTrackAssociation', jetTrackAssociation)
1083  if outputModules is None:
1084  outputModules=self._defaultParameters['outputModules'].value
1085  self.setParameter('outputModules', outputModules)
1086  self.apply(process)
1087 

◆ getDefaultParameters()

def jetTools.AddJetCollection.getDefaultParameters (   self)

◆ toolCode()

def jetTools.AddJetCollection.toolCode (   self,
  process 
)
Tool code implementation

Definition at line 1088 of file jetTools.py.

References heavyIonTools.ConfigureHeavyIons._parameters, coreTools.RunOnData._parameters, heavyIonTools.ProductionDefaults._parameters, ConfigToolBase.ConfigToolBase._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(), jetTools.setupBTagging(), jetTools.setupJetCorrections(), submitPVValidationJobs.split(), jetTools.undefinedLabelName(), and jetTools.unsupportedJetAlgorithm().

1088  def toolCode(self, process):
1089  """
1090  Tool code implementation
1091  """
1092  task = getPatAlgosToolsTask(process)
1093 
1094 
1095  labelName=self._parameters['labelName'].value
1096  postfix=self._parameters['postfix'].value
1097  btagPrefix=self._parameters['btagPrefix'].value
1098  jetSource=self._parameters['jetSource'].value
1099  pfCandidates=self._parameters['pfCandidates'].value
1100  explicitJTA=self._parameters['explicitJTA'].value
1101  pvSource=self._parameters['pvSource'].value
1102  svSource=self._parameters['svSource'].value
1103  elSource=self._parameters['elSource'].value
1104  muSource=self._parameters['muSource'].value
1105  runIVF=self._parameters['runIVF'].value
1106  tightBTagNTkHits=self._parameters['tightBTagNTkHits'].value
1107  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
1108  svClustering=self._parameters['svClustering'].value
1109  fatJets=self._parameters['fatJets'].value
1110  groomedFatJets=self._parameters['groomedFatJets'].value
1111  algo=self._parameters['algo'].value
1112  rParam=self._parameters['rParam'].value
1113  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
1114  genJetCollection=self._parameters['genJetCollection'].value
1115  genParticles=self._parameters['genParticles'].value
1116  jetCorrections=self._parameters['jetCorrections'].value
1117  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
1118  btagInfos=list(self._parameters['btagInfos'].value)
1119  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
1120  outputModules=list(self._parameters['outputModules'].value)
1121 
1122 
1123  if labelName=='UNDEFINED':
1124  undefinedLabelName(self)
1125 
1126 
1127  knownModules = process.producerNames().split()
1128 
1129  if btagDiscriminators.count('None')>0:
1130  btagDiscriminators.remove('None')
1131  if btagInfos.count('None')>0:
1132  btagInfos.remove('None')
1133  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
1134 
1135  infos = 0
1136  for info in btagInfos:
1137  if info.startswith('pf'): infos = infos + 1
1138  if 'softpf' in info.lower(): infos = infos + 1
1139  tags = 0
1140  for tag in btagDiscriminators:
1141  if tag.startswith('pf'): tags = tags + 1
1142  if 'softpf' in tag.lower(): tags = tags + 1
1143  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
1144 
1147  _labelName=labelName[:1].upper()+labelName[1:]
1148 
1149 
1150  _algo=''
1151  for x in ["ak", "ca", "kt"]:
1152  if x in algo.lower():
1153  _algo=supportedJetAlgos[x]
1154  break
1155  if _algo=='':
1157 
1158  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
1159  if 'patJets'+_labelName+postfix in knownModules :
1160  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1161  _newPatJets.jetSource=jetSource
1162  else :
1163  addToProcessAndTask('patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource), process, task)
1164  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1165  knownModules.append('patJets'+_labelName+postfix)
1166 
1167  from PhysicsTools.PatAlgos.selectionLayer1.jetSelector_cfi import selectedPatJets
1168  if 'selectedPatJets'+_labelName+postfix in knownModules :
1169  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
1170  _newSelectedPatJets.src='patJets'+_labelName+postfix
1171  else :
1172  addToProcessAndTask('selectedPatJets'+_labelName+postfix,
1173  selectedPatJets.clone(src='patJets'+_labelName+postfix),
1174  process, task)
1175  knownModules.append('selectedPatJets'+_labelName+postfix)
1176 
1177 
1178  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
1179  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
1180  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
1181  _newPatJetPartonMatch.src=jetSource
1182  _newPatJetPartonMatch.matched=genParticles
1183  else :
1184  addToProcessAndTask('patJetPartonMatch'+_labelName+postfix,
1185  patJetPartonMatch.clone(src=jetSource, matched=genParticles),
1186  process, task)
1187  knownModules.append('patJetPartonMatch'+_labelName+postfix)
1188 
1189  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
1190  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
1191  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
1192  _newPatJetGenJetMatch.src=jetSource
1193  _newPatJetGenJetMatch.maxDeltaR=rParam
1194  _newPatJetGenJetMatch.matched=genJetCollection
1195  else :
1196  addToProcessAndTask('patJetGenJetMatch'+_labelName+postfix,
1197  patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection),
1198  process, task)
1199  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
1200 
1201  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
1202  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
1203 
1204  if (getJetMCFlavour):
1205 
1207  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
1208  if 'patJetPartonsLegacy'+postfix not in knownModules :
1209  addToProcessAndTask('patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles),
1210  process, task)
1211  knownModules.append('patJetPartonsLegacy'+postfix)
1212  else:
1213  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
1214 
1215  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
1216  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
1217  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
1218  _newPatJetPartonAssociation.jets=jetSource
1219  else :
1220  addToProcessAndTask('patJetPartonAssociationLegacy'+_labelName+postfix,
1221  patJetPartonAssociationLegacy.clone(jets=jetSource), process, task)
1222  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
1223 
1224  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
1225  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
1226  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
1227  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
1228  else:
1229  addToProcessAndTask('patJetFlavourAssociationLegacy'+_labelName+postfix,
1230  patJetFlavourAssociationLegacy.clone(
1231  srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix),
1232  process, task)
1233  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
1234 
1235  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
1236 
1239  if 'patJetPartons'+postfix not in knownModules :
1240  addToProcessAndTask('patJetPartons'+postfix, patJetPartons.clone(particles=genParticles), process, task)
1241  knownModules.append('patJetPartons'+postfix)
1242  else:
1243  getattr(process, 'patJetPartons'+postfix).particles=genParticles
1244 
1245  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
1246  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
1247  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1248  _newPatJetFlavourAssociation.jets=jetSource
1249  _newPatJetFlavourAssociation.jetAlgorithm=_algo
1250  _newPatJetFlavourAssociation.rParam=rParam
1251  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
1252  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
1253  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"physicsPartons")
1254  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
1255  else :
1256  addToProcessAndTask('patJetFlavourAssociation'+_labelName+postfix,
1257  patJetFlavourAssociation.clone(
1258  jets=jetSource,
1259  jetAlgorithm=_algo,
1260  rParam=rParam,
1261  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
1262  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
1263  partons = cms.InputTag("patJetPartons"+postfix,"physicsPartons"),
1264  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")),
1265  process, task)
1266 
1267  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
1268  if 'Puppi' in jetSource.value() and pfCandidates.value() == 'particleFlow':
1269  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1270  _newPatJetFlavourAssociation.weights = cms.InputTag("puppi")
1271 
1272  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
1273 
1274  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
1275  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1276  _newPatJetFlavourAssociation.jets=fatJets
1277  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
1278  _newPatJetFlavourAssociation.subjets=jetSource
1279  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
1280  else:
1281  _newPatJets.getJetMCFlavour = False
1282  _newPatJets.addJetFlavourInfo = False
1283 
1284 
1285  if (jetTrackAssociation or bTaggingLegacy):
1286 
1287  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
1288  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
1289  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
1290  _newJetTracksAssociationAtVertex.jets=jetSource
1291  _newJetTracksAssociationAtVertex.pvSrc=pvSource
1292  else:
1293  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
1294  if explicitJTA:
1295  jetTracksAssociator=ak4JetTracksAssociatorExplicit
1296  addToProcessAndTask('jetTracksAssociatorAtVertex'+_labelName+postfix,
1297  jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource),
1298  process, task)
1299  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
1300 
1302  if 'patJetCharge'+_labelName+postfix in knownModules :
1303  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
1304  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
1305  else:
1306  addToProcessAndTask('patJetCharge'+_labelName+postfix,
1307  patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix),
1308  process, task)
1309  knownModules.append('patJetCharge'+_labelName+postfix)
1310 
1311  _newPatJets.addAssociatedTracks=True
1312  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
1313  _newPatJets.addJetCharge=True
1314  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
1315  else:
1316 
1317  _newPatJets.addAssociatedTracks=False
1318  _newPatJets.trackAssociationSource=''
1319  _newPatJets.addJetCharge=False
1320  _newPatJets.jetChargeSource=''
1321 
1322  if (bTagging):
1323  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
1324  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, btagPrefix, postfix)
1325  else:
1326  _newPatJets.addBTagInfo = False
1327  _newPatJets.addTagInfos = False
1328 
1329  for outputModule in outputModules:
1330  if hasattr(process,outputModule):
1331  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
1332 
1333 
1334  if (jetCorrections != None):
1335 
1336  checkJetCorrectionsFormat(jetCorrections)
1337 
1338  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
1339  else:
1340 
1341  _newPatJets.addJetCorrFactors=False
1342 
1343 addJetCollection=AddJetCollection()
1344 
def undefinedLabelName(obj)
Definition: jetTools.py:1957
def addToProcessAndTask(label, module, process, task)
Definition: helpers.py:28
def setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, patJets, labelName, postfix)
Definition: jetTools.py:26
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:249
def checkJetCorrectionsFormat(jetCorrections)
Definition: jetTools.py:18
def getPatAlgosToolsTask(process)
Definition: helpers.py:13
def unsupportedJetAlgorithm(obj)
Definition: jetTools.py:1964

Member Data Documentation

◆ _comment

jetTools.AddJetCollection._comment
private

add comments

Definition at line 993 of file jetTools.py.

◆ _defaultParameters

jetTools.AddJetCollection._defaultParameters
staticprivate

Definition at line 938 of file jetTools.py.

Referenced by trackTools.MakeAODTrackCandidates.__call__(), runJetUncertainties.RunJetUncertainties.__call__(), metTools.AddMETCollection.__call__(), trackTools.MakePATTrackCandidates.__call__(), trigTools.SwitchOnTrigger.__call__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__call__(), trigTools.SwitchOnTriggerStandAlone.__call__(), tauTools.AddTauCollection.__call__(), trackTools.MakeTrackCandidates.__call__(), trigTools.SwitchOnTriggerMatching.__call__(), trigTools.SwitchOnTriggerMatchingStandAlone.__call__(), trigTools.SwitchOnTriggerMatchEmbedding.__call__(), jetTools.AddJetCollection.__call__(), jetTools.SwitchJetCollection.__call__(), jetTools.UpdateJetCollection.__call__(), jetTools.AddJetID.__call__(), jetTools.SetTagInfos.__call__(), metTools.AddMETCollection.__init__(), trackTools.MakeAODTrackCandidates.__init__(), runJetUncertainties.RunJetUncertainties.__init__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__init__(), trackTools.MakePATTrackCandidates.__init__(), trigTools.SwitchOnTrigger.__init__(), trigTools.SwitchOnTriggerStandAlone.__init__(), tauTools.AddTauCollection.__init__(), trackTools.MakeTrackCandidates.__init__(), trigTools.SwitchOnTriggerMatching.__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(), trackTools.MakeAODTrackCandidates.getDefaultParameters(), metTools.AddMETCollection.getDefaultParameters(), trackTools.MakePATTrackCandidates.getDefaultParameters(), trigTools.SwitchOnTrigger.getDefaultParameters(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getDefaultParameters(), trigTools.SwitchOnTriggerStandAlone.getDefaultParameters(), tauTools.AddTauCollection.getDefaultParameters(), trackTools.MakeTrackCandidates.getDefaultParameters(), trigTools.SwitchOnTriggerMatching.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().

◆ _label

jetTools.AddJetCollection._label
staticprivate

◆ _parameters

jetTools.AddJetCollection._parameters
private

initialization of the base class

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

Definition at line 991 of file jetTools.py.

Referenced by runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.ak4JetReclustering(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.createSmearedJetModule(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.extractMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getCorrectedMET(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getMETUncertainties(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getVariations(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.jetCleaning(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.jetConfiguration(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.miniAODConfiguration(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.miniAODConfigurationPost(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.miniAODConfigurationPre(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.recomputeRawMetFromPfcs(), trackTools.MakeAODTrackCandidates.toolCode(), metTools.AddMETCollection.toolCode(), runJetUncertainties.RunJetUncertainties.toolCode(), trigTools.SwitchOnTrigger.toolCode(), trackTools.MakePATTrackCandidates.toolCode(), trigTools.SwitchOnTriggerStandAlone.toolCode(), tauTools.AddTauCollection.toolCode(), trackTools.MakeTrackCandidates.toolCode(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.toolCode(), trigTools.SwitchOnTriggerMatching.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().