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 1201 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 1208 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().

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

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

◆ getDefaultParameters()

def jetTools.AddJetCollection.getDefaultParameters (   self)

◆ toolCode()

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

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

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

Member Data Documentation

◆ _comment

jetTools.AddJetCollection._comment
private

add comments

Definition at line 1261 of file jetTools.py.

◆ _defaultParameters

jetTools.AddJetCollection._defaultParameters
staticprivate

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