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 1269 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 1276 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().

1276  def __init__(self):
1277  """
1278  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
1279  """
1280 
1281  ConfigToolBase.__init__(self)
1282 
1283  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
1284  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
1285  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
1286  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
1287  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
1288  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
1289  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
1290  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
1291  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
1292  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
1293  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
1294  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
1295  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
1296  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
1297  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
1298  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
1299  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
1300  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
1301  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
1302  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
1303  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
1304  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
1305  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 \
1306  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 \
1307  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
1308  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 \
1309  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 \
1310  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\' \
1311  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
1312  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
1313  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. \
1314  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)
1315  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
1316  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 \
1317  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 \
1318  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 \
1319  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
1320  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
1321  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 \
1322  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
1323  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 \
1324  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 \
1325  to more than one output module.")
1326 
1327  self._parameters=copy.deepcopy(self._defaultParameters)
1328 
1329  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\
1330  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 \
1331  the descriptions of each parameter for more information."
1332 
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 1339 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().

1339  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):
1340  """
1341  Function call wrapper. This will check the parameters and call the actual implementation that
1342  can be found in toolCode via the base class function apply.
1343  """
1344  if labelName is None:
1345  labelName=self._defaultParameters['labelName'].value
1346  self.setParameter('labelName', labelName)
1347  if postfix is None:
1348  postfix=self._defaultParameters['postfix'].value
1349  self.setParameter('postfix', postfix)
1350  if btagPrefix is None:
1351  btagPrefix=self._defaultParameters['btagPrefix'].value
1352  self.setParameter('btagPrefix', btagPrefix)
1353  if jetSource is None:
1354  jetSource=self._defaultParameters['jetSource'].value
1355  self.setParameter('jetSource', jetSource)
1356  if pfCandidates is None:
1357  pfCandidates=self._defaultParameters['pfCandidates'].value
1358  self.setParameter('pfCandidates', pfCandidates)
1359  if explicitJTA is None:
1360  explicitJTA=self._defaultParameters['explicitJTA'].value
1361  self.setParameter('explicitJTA', explicitJTA)
1362  if pvSource is None:
1363  pvSource=self._defaultParameters['pvSource'].value
1364  self.setParameter('pvSource', pvSource)
1365  if svSource is None:
1366  svSource=self._defaultParameters['svSource'].value
1367  self.setParameter('svSource', svSource)
1368  if elSource is None:
1369  elSource=self._defaultParameters['elSource'].value
1370  self.setParameter('elSource', elSource)
1371  if muSource is None:
1372  muSource=self._defaultParameters['muSource'].value
1373  self.setParameter('muSource', muSource)
1374  if runIVF is None:
1375  runIVF=self._defaultParameters['runIVF'].value
1376  self.setParameter('runIVF', runIVF)
1377  if tightBTagNTkHits is None:
1378  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
1379  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
1380  if loadStdRecoBTag is None:
1381  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
1382  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
1383  if svClustering is None:
1384  svClustering=self._defaultParameters['svClustering'].value
1385  self.setParameter('svClustering', svClustering)
1386  if fatJets is None:
1387  fatJets=self._defaultParameters['fatJets'].value
1388  self.setParameter('fatJets', fatJets)
1389  if groomedFatJets is None:
1390  groomedFatJets=self._defaultParameters['groomedFatJets'].value
1391  self.setParameter('groomedFatJets', groomedFatJets)
1392  if algo is None:
1393  algo=self._defaultParameters['algo'].value
1394  self.setParameter('algo', algo)
1395  if rParam is None:
1396  rParam=self._defaultParameters['rParam'].value
1397  self.setParameter('rParam', rParam)
1398  if getJetMCFlavour is None:
1399  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
1400  self.setParameter('getJetMCFlavour', getJetMCFlavour)
1401  if genJetCollection is None:
1402  genJetCollection=self._defaultParameters['genJetCollection'].value
1403  self.setParameter('genJetCollection', genJetCollection)
1404  if genParticles is None:
1405  genParticles=self._defaultParameters['genParticles'].value
1406  self.setParameter('genParticles', genParticles)
1407  if jetCorrections is None:
1408  jetCorrections=self._defaultParameters['jetCorrections'].value
1409  self.setParameter('jetCorrections', jetCorrections)
1410  if btagDiscriminators is None:
1411  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
1412  self.setParameter('btagDiscriminators', btagDiscriminators)
1413  if btagInfos is None:
1414  btagInfos=self._defaultParameters['btagInfos'].value
1415  self.setParameter('btagInfos', btagInfos)
1416  if jetTrackAssociation is None:
1417  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
1418  self.setParameter('jetTrackAssociation', jetTrackAssociation)
1419  if outputModules is None:
1420  outputModules=self._defaultParameters['outputModules'].value
1421  self.setParameter('outputModules', outputModules)
1422  self.apply(process)
1423 

◆ getDefaultParameters()

def jetTools.AddJetCollection.getDefaultParameters (   self)

◆ toolCode()

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

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

1424  def toolCode(self, process):
1425  """
1426  Tool code implementation
1427  """
1428  task = getPatAlgosToolsTask(process)
1429 
1430 
1431  labelName=self._parameters['labelName'].value
1432  postfix=self._parameters['postfix'].value
1433  btagPrefix=self._parameters['btagPrefix'].value
1434  jetSource=self._parameters['jetSource'].value
1435  pfCandidates=self._parameters['pfCandidates'].value
1436  explicitJTA=self._parameters['explicitJTA'].value
1437  pvSource=self._parameters['pvSource'].value
1438  svSource=self._parameters['svSource'].value
1439  elSource=self._parameters['elSource'].value
1440  muSource=self._parameters['muSource'].value
1441  runIVF=self._parameters['runIVF'].value
1442  tightBTagNTkHits=self._parameters['tightBTagNTkHits'].value
1443  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
1444  svClustering=self._parameters['svClustering'].value
1445  fatJets=self._parameters['fatJets'].value
1446  groomedFatJets=self._parameters['groomedFatJets'].value
1447  algo=self._parameters['algo'].value
1448  rParam=self._parameters['rParam'].value
1449  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
1450  genJetCollection=self._parameters['genJetCollection'].value
1451  genParticles=self._parameters['genParticles'].value
1452  jetCorrections=self._parameters['jetCorrections'].value
1453  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
1454  btagInfos=list(self._parameters['btagInfos'].value)
1455  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
1456  outputModules=list(self._parameters['outputModules'].value)
1457 
1458 
1459  if labelName=='UNDEFINED':
1460  undefinedLabelName(self)
1461 
1462 
1463  knownModules = process.producerNames().split()
1464 
1465  if btagDiscriminators.count('None')>0:
1466  btagDiscriminators.remove('None')
1467  if btagInfos.count('None')>0:
1468  btagInfos.remove('None')
1469  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
1470 
1471  infos = 0
1472  for info in btagInfos:
1473  if info.startswith('pf'): infos = infos + 1
1474  if 'softpf' in info.lower(): infos = infos + 1
1475  tags = 0
1476  for tag in btagDiscriminators:
1477  if tag.startswith('pf'): tags = tags + 1
1478  if 'softpf' in tag.lower(): tags = tags + 1
1479  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
1480 
1483  _labelName=labelName[:1].upper()+labelName[1:]
1484 
1485 
1486  _algo=''
1487  for x in ["ak", "ca", "kt"]:
1488  if x in algo.lower():
1489  _algo=supportedJetAlgos[x]
1490  break
1491  if _algo=='':
1493 
1494  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
1495  if 'patJets'+_labelName+postfix in knownModules :
1496  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1497  _newPatJets.jetSource=jetSource
1498  else :
1499  addToProcessAndTask('patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource), process, task)
1500  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1501  knownModules.append('patJets'+_labelName+postfix)
1502 
1503  from PhysicsTools.PatAlgos.selectionLayer1.jetSelector_cfi import selectedPatJets
1504  if 'selectedPatJets'+_labelName+postfix in knownModules :
1505  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
1506  _newSelectedPatJets.src='patJets'+_labelName+postfix
1507  else :
1508  addToProcessAndTask('selectedPatJets'+_labelName+postfix,
1509  selectedPatJets.clone(src='patJets'+_labelName+postfix),
1510  process, task)
1511  knownModules.append('selectedPatJets'+_labelName+postfix)
1512 
1513 
1514  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
1515  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
1516  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
1517  _newPatJetPartonMatch.src=jetSource
1518  _newPatJetPartonMatch.matched=genParticles
1519  else :
1520  addToProcessAndTask('patJetPartonMatch'+_labelName+postfix,
1521  patJetPartonMatch.clone(src=jetSource, matched=genParticles),
1522  process, task)
1523  knownModules.append('patJetPartonMatch'+_labelName+postfix)
1524 
1525  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
1526  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
1527  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
1528  _newPatJetGenJetMatch.src=jetSource
1529  _newPatJetGenJetMatch.maxDeltaR=rParam
1530  _newPatJetGenJetMatch.matched=genJetCollection
1531  else :
1532  addToProcessAndTask('patJetGenJetMatch'+_labelName+postfix,
1533  patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection),
1534  process, task)
1535  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
1536 
1537  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
1538  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
1539 
1540  if (getJetMCFlavour):
1541 
1543  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
1544  if 'patJetPartonsLegacy'+postfix not in knownModules :
1545  addToProcessAndTask('patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles),
1546  process, task)
1547  knownModules.append('patJetPartonsLegacy'+postfix)
1548  else:
1549  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
1550 
1551  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
1552  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
1553  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
1554  _newPatJetPartonAssociation.jets=jetSource
1555  else :
1556  addToProcessAndTask('patJetPartonAssociationLegacy'+_labelName+postfix,
1557  patJetPartonAssociationLegacy.clone(jets=jetSource), process, task)
1558  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
1559 
1560  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
1561  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
1562  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
1563  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
1564  else:
1565  addToProcessAndTask('patJetFlavourAssociationLegacy'+_labelName+postfix,
1566  patJetFlavourAssociationLegacy.clone(
1567  srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix),
1568  process, task)
1569  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
1570 
1571  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
1572 
1575  if 'patJetPartons'+postfix not in knownModules :
1576  addToProcessAndTask('patJetPartons'+postfix, patJetPartons.clone(particles=genParticles), process, task)
1577  knownModules.append('patJetPartons'+postfix)
1578  else:
1579  getattr(process, 'patJetPartons'+postfix).particles=genParticles
1580 
1581  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
1582  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
1583  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1584  _newPatJetFlavourAssociation.jets=jetSource
1585  _newPatJetFlavourAssociation.jetAlgorithm=_algo
1586  _newPatJetFlavourAssociation.rParam=rParam
1587  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
1588  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
1589  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"physicsPartons")
1590  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
1591  else :
1592  addToProcessAndTask('patJetFlavourAssociation'+_labelName+postfix,
1593  patJetFlavourAssociation.clone(
1594  jets=jetSource,
1595  jetAlgorithm=_algo,
1596  rParam=rParam,
1597  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
1598  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
1599  partons = cms.InputTag("patJetPartons"+postfix,"physicsPartons"),
1600  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")),
1601  process, task)
1602 
1603  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
1604  if 'Puppi' in jetSource.value() and pfCandidates.value() == 'particleFlow':
1605  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1606  _newPatJetFlavourAssociation.weights = cms.InputTag("puppi")
1607 
1608  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
1609 
1610  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
1611  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1612  _newPatJetFlavourAssociation.jets=fatJets
1613  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
1614  _newPatJetFlavourAssociation.subjets=jetSource
1615  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
1616  else:
1617  _newPatJets.getJetMCFlavour = False
1618  _newPatJets.addJetFlavourInfo = False
1619 
1620 
1621  if (jetTrackAssociation or bTaggingLegacy):
1622 
1623  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
1624  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
1625  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
1626  _newJetTracksAssociationAtVertex.jets=jetSource
1627  _newJetTracksAssociationAtVertex.pvSrc=pvSource
1628  else:
1629  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
1630  if explicitJTA:
1631  jetTracksAssociator=ak4JetTracksAssociatorExplicit
1632  addToProcessAndTask('jetTracksAssociatorAtVertex'+_labelName+postfix,
1633  jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource),
1634  process, task)
1635  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
1636 
1638  if 'patJetCharge'+_labelName+postfix in knownModules :
1639  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
1640  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
1641  else:
1642  addToProcessAndTask('patJetCharge'+_labelName+postfix,
1643  patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix),
1644  process, task)
1645  knownModules.append('patJetCharge'+_labelName+postfix)
1646 
1647  _newPatJets.addAssociatedTracks=True
1648  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
1649  _newPatJets.addJetCharge=True
1650  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
1651  else:
1652 
1653  _newPatJets.addAssociatedTracks=False
1654  _newPatJets.trackAssociationSource=''
1655  _newPatJets.addJetCharge=False
1656  _newPatJets.jetChargeSource=''
1657 
1658  if (bTagging):
1659  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
1660  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, btagPrefix, postfix)
1661  else:
1662  _newPatJets.addBTagInfo = False
1663  _newPatJets.addTagInfos = False
1664 
1665  for outputModule in outputModules:
1666  if hasattr(process,outputModule):
1667  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
1668 
1669 
1670  if (jetCorrections != None):
1671 
1672  checkJetCorrectionsFormat(jetCorrections)
1673 
1674  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
1675  else:
1676 
1677  _newPatJets.addJetCorrFactors=False
1678 
1679 addJetCollection=AddJetCollection()
1680 
def undefinedLabelName(obj)
Definition: jetTools.py:2293
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:271
def checkJetCorrectionsFormat(jetCorrections)
Definition: jetTools.py:23
def getPatAlgosToolsTask(process)
Definition: helpers.py:13
def unsupportedJetAlgorithm(obj)
Definition: jetTools.py:2300

Member Data Documentation

◆ _comment

jetTools.AddJetCollection._comment
private

add comments

Definition at line 1329 of file jetTools.py.

◆ _defaultParameters

jetTools.AddJetCollection._defaultParameters
staticprivate

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

Referenced by runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.ak4JetReclustering(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.createShiftedModules(), 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.produceMET(), 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().