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 1186 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 1193 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().

1193  def __init__(self):
1194  """
1195  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
1196  """
1197 
1198  ConfigToolBase.__init__(self)
1199 
1200  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
1201  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
1202  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
1203  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
1204  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
1205  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
1206  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
1207  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
1208  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
1209  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
1210  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
1211  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
1212  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
1213  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
1214  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
1215  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
1216  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
1217  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
1218  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
1219  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
1220  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
1221  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
1222  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 \
1223  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 \
1224  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
1225  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 \
1226  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 \
1227  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\' \
1228  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
1229  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
1230  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. \
1231  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)
1232  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
1233  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 \
1234  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 \
1235  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 \
1236  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
1237  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
1238  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 \
1239  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
1240  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 \
1241  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 \
1242  to more than one output module.")
1243 
1244  self._parameters=copy.deepcopy(self._defaultParameters)
1245 
1246  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\
1247  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 \
1248  the descriptions of each parameter for more information."
1249 
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 1256 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, SlidingPeakFinder.apply(), 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, StackLen, StackDim >.apply(), npstat::ArrayND< Numeric >.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().

1256  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):
1257  """
1258  Function call wrapper. This will check the parameters and call the actual implementation that
1259  can be found in toolCode via the base class function apply.
1260  """
1261  if labelName is None:
1262  labelName=self._defaultParameters['labelName'].value
1263  self.setParameter('labelName', labelName)
1264  if postfix is None:
1265  postfix=self._defaultParameters['postfix'].value
1266  self.setParameter('postfix', postfix)
1267  if btagPrefix is None:
1268  btagPrefix=self._defaultParameters['btagPrefix'].value
1269  self.setParameter('btagPrefix', btagPrefix)
1270  if jetSource is None:
1271  jetSource=self._defaultParameters['jetSource'].value
1272  self.setParameter('jetSource', jetSource)
1273  if pfCandidates is None:
1274  pfCandidates=self._defaultParameters['pfCandidates'].value
1275  self.setParameter('pfCandidates', pfCandidates)
1276  if explicitJTA is None:
1277  explicitJTA=self._defaultParameters['explicitJTA'].value
1278  self.setParameter('explicitJTA', explicitJTA)
1279  if pvSource is None:
1280  pvSource=self._defaultParameters['pvSource'].value
1281  self.setParameter('pvSource', pvSource)
1282  if svSource is None:
1283  svSource=self._defaultParameters['svSource'].value
1284  self.setParameter('svSource', svSource)
1285  if elSource is None:
1286  elSource=self._defaultParameters['elSource'].value
1287  self.setParameter('elSource', elSource)
1288  if muSource is None:
1289  muSource=self._defaultParameters['muSource'].value
1290  self.setParameter('muSource', muSource)
1291  if runIVF is None:
1292  runIVF=self._defaultParameters['runIVF'].value
1293  self.setParameter('runIVF', runIVF)
1294  if tightBTagNTkHits is None:
1295  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
1296  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
1297  if loadStdRecoBTag is None:
1298  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
1299  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
1300  if svClustering is None:
1301  svClustering=self._defaultParameters['svClustering'].value
1302  self.setParameter('svClustering', svClustering)
1303  if fatJets is None:
1304  fatJets=self._defaultParameters['fatJets'].value
1305  self.setParameter('fatJets', fatJets)
1306  if groomedFatJets is None:
1307  groomedFatJets=self._defaultParameters['groomedFatJets'].value
1308  self.setParameter('groomedFatJets', groomedFatJets)
1309  if algo is None:
1310  algo=self._defaultParameters['algo'].value
1311  self.setParameter('algo', algo)
1312  if rParam is None:
1313  rParam=self._defaultParameters['rParam'].value
1314  self.setParameter('rParam', rParam)
1315  if getJetMCFlavour is None:
1316  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
1317  self.setParameter('getJetMCFlavour', getJetMCFlavour)
1318  if genJetCollection is None:
1319  genJetCollection=self._defaultParameters['genJetCollection'].value
1320  self.setParameter('genJetCollection', genJetCollection)
1321  if genParticles is None:
1322  genParticles=self._defaultParameters['genParticles'].value
1323  self.setParameter('genParticles', genParticles)
1324  if jetCorrections is None:
1325  jetCorrections=self._defaultParameters['jetCorrections'].value
1326  self.setParameter('jetCorrections', jetCorrections)
1327  if btagDiscriminators is None:
1328  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
1329  self.setParameter('btagDiscriminators', btagDiscriminators)
1330  if btagInfos is None:
1331  btagInfos=self._defaultParameters['btagInfos'].value
1332  self.setParameter('btagInfos', btagInfos)
1333  if jetTrackAssociation is None:
1334  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
1335  self.setParameter('jetTrackAssociation', jetTrackAssociation)
1336  if outputModules is None:
1337  outputModules=self._defaultParameters['outputModules'].value
1338  self.setParameter('outputModules', outputModules)
1339  self.apply(process)
1340 

◆ getDefaultParameters()

def jetTools.AddJetCollection.getDefaultParameters (   self)

◆ toolCode()

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

Definition at line 1341 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().

1341  def toolCode(self, process):
1342  """
1343  Tool code implementation
1344  """
1345  task = getPatAlgosToolsTask(process)
1346 
1347 
1348  labelName=self._parameters['labelName'].value
1349  postfix=self._parameters['postfix'].value
1350  btagPrefix=self._parameters['btagPrefix'].value
1351  jetSource=self._parameters['jetSource'].value
1352  pfCandidates=self._parameters['pfCandidates'].value
1353  explicitJTA=self._parameters['explicitJTA'].value
1354  pvSource=self._parameters['pvSource'].value
1355  svSource=self._parameters['svSource'].value
1356  elSource=self._parameters['elSource'].value
1357  muSource=self._parameters['muSource'].value
1358  runIVF=self._parameters['runIVF'].value
1359  tightBTagNTkHits=self._parameters['tightBTagNTkHits'].value
1360  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
1361  svClustering=self._parameters['svClustering'].value
1362  fatJets=self._parameters['fatJets'].value
1363  groomedFatJets=self._parameters['groomedFatJets'].value
1364  algo=self._parameters['algo'].value
1365  rParam=self._parameters['rParam'].value
1366  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
1367  genJetCollection=self._parameters['genJetCollection'].value
1368  genParticles=self._parameters['genParticles'].value
1369  jetCorrections=self._parameters['jetCorrections'].value
1370  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
1371  btagInfos=list(self._parameters['btagInfos'].value)
1372  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
1373  outputModules=list(self._parameters['outputModules'].value)
1374 
1375 
1376  if labelName=='UNDEFINED':
1377  undefinedLabelName(self)
1378 
1379 
1380  knownModules = process.producerNames().split()
1381 
1382  if btagDiscriminators.count('None')>0:
1383  btagDiscriminators.remove('None')
1384  if btagInfos.count('None')>0:
1385  btagInfos.remove('None')
1386  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
1387 
1388  infos = 0
1389  for info in btagInfos:
1390  if info.startswith('pf'): infos = infos + 1
1391  if 'softpf' in info.lower(): infos = infos + 1
1392  tags = 0
1393  for tag in btagDiscriminators:
1394  if tag.startswith('pf'): tags = tags + 1
1395  if 'softpf' in tag.lower(): tags = tags + 1
1396  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
1397 
1400  _labelName=labelName[:1].upper()+labelName[1:]
1401 
1402 
1403  _algo=''
1404  for x in ["ak", "ca", "kt"]:
1405  if x in algo.lower():
1406  _algo=supportedJetAlgos[x]
1407  break
1408  if _algo=='':
1410 
1411  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
1412  if 'patJets'+_labelName+postfix in knownModules :
1413  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1414  _newPatJets.jetSource=jetSource
1415  else :
1416  addToProcessAndTask('patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource), process, task)
1417  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1418  knownModules.append('patJets'+_labelName+postfix)
1419 
1420  from PhysicsTools.PatAlgos.selectionLayer1.jetSelector_cfi import selectedPatJets
1421  if 'selectedPatJets'+_labelName+postfix in knownModules :
1422  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
1423  _newSelectedPatJets.src='patJets'+_labelName+postfix
1424  else :
1425  addToProcessAndTask('selectedPatJets'+_labelName+postfix,
1426  selectedPatJets.clone(src='patJets'+_labelName+postfix),
1427  process, task)
1428  knownModules.append('selectedPatJets'+_labelName+postfix)
1429 
1430 
1431  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
1432  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
1433  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
1434  _newPatJetPartonMatch.src=jetSource
1435  _newPatJetPartonMatch.matched=genParticles
1436  else :
1437  addToProcessAndTask('patJetPartonMatch'+_labelName+postfix,
1438  patJetPartonMatch.clone(src=jetSource, matched=genParticles),
1439  process, task)
1440  knownModules.append('patJetPartonMatch'+_labelName+postfix)
1441 
1442  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
1443  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
1444  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
1445  _newPatJetGenJetMatch.src=jetSource
1446  _newPatJetGenJetMatch.maxDeltaR=rParam
1447  _newPatJetGenJetMatch.matched=genJetCollection
1448  else :
1449  addToProcessAndTask('patJetGenJetMatch'+_labelName+postfix,
1450  patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection),
1451  process, task)
1452  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
1453 
1454  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
1455  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
1456 
1457  if (getJetMCFlavour):
1458 
1460  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
1461  if 'patJetPartonsLegacy'+postfix not in knownModules :
1462  addToProcessAndTask('patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles),
1463  process, task)
1464  knownModules.append('patJetPartonsLegacy'+postfix)
1465  else:
1466  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
1467 
1468  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
1469  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
1470  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
1471  _newPatJetPartonAssociation.jets=jetSource
1472  else :
1473  addToProcessAndTask('patJetPartonAssociationLegacy'+_labelName+postfix,
1474  patJetPartonAssociationLegacy.clone(jets=jetSource), process, task)
1475  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
1476 
1477  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
1478  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
1479  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
1480  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
1481  else:
1482  addToProcessAndTask('patJetFlavourAssociationLegacy'+_labelName+postfix,
1483  patJetFlavourAssociationLegacy.clone(
1484  srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix),
1485  process, task)
1486  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
1487 
1488  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
1489 
1492  if 'patJetPartons'+postfix not in knownModules :
1493  addToProcessAndTask('patJetPartons'+postfix, patJetPartons.clone(particles=genParticles), process, task)
1494  knownModules.append('patJetPartons'+postfix)
1495  else:
1496  getattr(process, 'patJetPartons'+postfix).particles=genParticles
1497 
1498  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
1499  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
1500  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1501  _newPatJetFlavourAssociation.jets=jetSource
1502  _newPatJetFlavourAssociation.jetAlgorithm=_algo
1503  _newPatJetFlavourAssociation.rParam=rParam
1504  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
1505  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
1506  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"physicsPartons")
1507  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
1508  else :
1509  addToProcessAndTask('patJetFlavourAssociation'+_labelName+postfix,
1510  patJetFlavourAssociation.clone(
1511  jets=jetSource,
1512  jetAlgorithm=_algo,
1513  rParam=rParam,
1514  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
1515  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
1516  partons = cms.InputTag("patJetPartons"+postfix,"physicsPartons"),
1517  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")),
1518  process, task)
1519 
1520  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
1521  if 'Puppi' in jetSource.value() and pfCandidates.value() == 'particleFlow':
1522  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1523  _newPatJetFlavourAssociation.weights = cms.InputTag("puppi")
1524 
1525  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
1526 
1527  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
1528  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1529  _newPatJetFlavourAssociation.jets=fatJets
1530  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
1531  _newPatJetFlavourAssociation.subjets=jetSource
1532  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
1533  else:
1534  _newPatJets.getJetMCFlavour = False
1535  _newPatJets.addJetFlavourInfo = False
1536 
1537 
1538  if (jetTrackAssociation or bTaggingLegacy):
1539 
1540  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
1541  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
1542  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
1543  _newJetTracksAssociationAtVertex.jets=jetSource
1544  _newJetTracksAssociationAtVertex.pvSrc=pvSource
1545  else:
1546  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
1547  if explicitJTA:
1548  jetTracksAssociator=ak4JetTracksAssociatorExplicit
1549  addToProcessAndTask('jetTracksAssociatorAtVertex'+_labelName+postfix,
1550  jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource),
1551  process, task)
1552  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
1553 
1555  if 'patJetCharge'+_labelName+postfix in knownModules :
1556  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
1557  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
1558  else:
1559  addToProcessAndTask('patJetCharge'+_labelName+postfix,
1560  patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix),
1561  process, task)
1562  knownModules.append('patJetCharge'+_labelName+postfix)
1563 
1564  _newPatJets.addAssociatedTracks=True
1565  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
1566  _newPatJets.addJetCharge=True
1567  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
1568  else:
1569 
1570  _newPatJets.addAssociatedTracks=False
1571  _newPatJets.trackAssociationSource=''
1572  _newPatJets.addJetCharge=False
1573  _newPatJets.jetChargeSource=''
1574 
1575  if (bTagging):
1576  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
1577  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, btagPrefix, postfix)
1578  else:
1579  _newPatJets.addBTagInfo = False
1580  _newPatJets.addTagInfos = False
1581 
1582  for outputModule in outputModules:
1583  if hasattr(process,outputModule):
1584  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
1585 
1586 
1587  if (jetCorrections != None):
1588 
1589  checkJetCorrectionsFormat(jetCorrections)
1590 
1591  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
1592  else:
1593 
1594  _newPatJets.addJetCorrFactors=False
1595 
1596 addJetCollection=AddJetCollection()
1597 
def undefinedLabelName(obj)
Definition: jetTools.py:2210
def addToProcessAndTask(label, module, process, task)
Definition: helpers.py:28
def setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, patJets, labelName, postfix)
Definition: jetTools.py:31
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:254
def checkJetCorrectionsFormat(jetCorrections)
Definition: jetTools.py:23
def getPatAlgosToolsTask(process)
Definition: helpers.py:13
def unsupportedJetAlgorithm(obj)
Definition: jetTools.py:2217

Member Data Documentation

◆ _comment

jetTools.AddJetCollection._comment
private

add comments

Definition at line 1246 of file jetTools.py.

◆ _defaultParameters

jetTools.AddJetCollection._defaultParameters
staticprivate

Definition at line 1191 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 1244 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().