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 908 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 915 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().

915  def __init__(self):
916  """
917  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
918  """
919 
920  ConfigToolBase.__init__(self)
921 
922  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
923  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
924  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
925  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
926  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
927  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
928  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
929  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
930  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
931  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
932  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
933  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
934  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
935  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
936  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
937  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
938  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
939  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
940  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
941  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
942  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
943  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
944  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 \
945  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 \
946  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
947  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 \
948  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 \
949  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\' \
950  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
951  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
952  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. \
953  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)
954  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
955  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 \
956  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 \
957  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 \
958  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
959  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
960  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 \
961  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
962  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 \
963  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 \
964  to more than one output module.")
965 
966  self._parameters=copy.deepcopy(self._defaultParameters)
967 
968  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\
969  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 \
970  the descriptions of each parameter for more information."
971 
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 978 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, ProcessAcceleratorCUDA.ProcessAcceleratorCUDA.apply(), SignedImpactParameter3D.apply(), SignedDecayLength3D.apply(), SignedTransverseImpactParameter.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(), 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(), SiPixelLorentzAngleCalibration.setParameter(), IntegratedCalibrationBase.setParameter(), SiStripBackplaneCalibration.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

978  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):
979  """
980  Function call wrapper. This will check the parameters and call the actual implementation that
981  can be found in toolCode via the base class function apply.
982  """
983  if labelName is None:
984  labelName=self._defaultParameters['labelName'].value
985  self.setParameter('labelName', labelName)
986  if postfix is None:
987  postfix=self._defaultParameters['postfix'].value
988  self.setParameter('postfix', postfix)
989  if btagPrefix is None:
990  btagPrefix=self._defaultParameters['btagPrefix'].value
991  self.setParameter('btagPrefix', btagPrefix)
992  if jetSource is None:
993  jetSource=self._defaultParameters['jetSource'].value
994  self.setParameter('jetSource', jetSource)
995  if pfCandidates is None:
996  pfCandidates=self._defaultParameters['pfCandidates'].value
997  self.setParameter('pfCandidates', pfCandidates)
998  if explicitJTA is None:
999  explicitJTA=self._defaultParameters['explicitJTA'].value
1000  self.setParameter('explicitJTA', explicitJTA)
1001  if pvSource is None:
1002  pvSource=self._defaultParameters['pvSource'].value
1003  self.setParameter('pvSource', pvSource)
1004  if svSource is None:
1005  svSource=self._defaultParameters['svSource'].value
1006  self.setParameter('svSource', svSource)
1007  if elSource is None:
1008  elSource=self._defaultParameters['elSource'].value
1009  self.setParameter('elSource', elSource)
1010  if muSource is None:
1011  muSource=self._defaultParameters['muSource'].value
1012  self.setParameter('muSource', muSource)
1013  if runIVF is None:
1014  runIVF=self._defaultParameters['runIVF'].value
1015  self.setParameter('runIVF', runIVF)
1016  if tightBTagNTkHits is None:
1017  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
1018  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
1019  if loadStdRecoBTag is None:
1020  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
1021  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
1022  if svClustering is None:
1023  svClustering=self._defaultParameters['svClustering'].value
1024  self.setParameter('svClustering', svClustering)
1025  if fatJets is None:
1026  fatJets=self._defaultParameters['fatJets'].value
1027  self.setParameter('fatJets', fatJets)
1028  if groomedFatJets is None:
1029  groomedFatJets=self._defaultParameters['groomedFatJets'].value
1030  self.setParameter('groomedFatJets', groomedFatJets)
1031  if algo is None:
1032  algo=self._defaultParameters['algo'].value
1033  self.setParameter('algo', algo)
1034  if rParam is None:
1035  rParam=self._defaultParameters['rParam'].value
1036  self.setParameter('rParam', rParam)
1037  if getJetMCFlavour is None:
1038  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
1039  self.setParameter('getJetMCFlavour', getJetMCFlavour)
1040  if genJetCollection is None:
1041  genJetCollection=self._defaultParameters['genJetCollection'].value
1042  self.setParameter('genJetCollection', genJetCollection)
1043  if genParticles is None:
1044  genParticles=self._defaultParameters['genParticles'].value
1045  self.setParameter('genParticles', genParticles)
1046  if jetCorrections is None:
1047  jetCorrections=self._defaultParameters['jetCorrections'].value
1048  self.setParameter('jetCorrections', jetCorrections)
1049  if btagDiscriminators is None:
1050  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
1051  self.setParameter('btagDiscriminators', btagDiscriminators)
1052  if btagInfos is None:
1053  btagInfos=self._defaultParameters['btagInfos'].value
1054  self.setParameter('btagInfos', btagInfos)
1055  if jetTrackAssociation is None:
1056  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
1057  self.setParameter('jetTrackAssociation', jetTrackAssociation)
1058  if outputModules is None:
1059  outputModules=self._defaultParameters['outputModules'].value
1060  self.setParameter('outputModules', outputModules)
1061  self.apply(process)
1062 

◆ getDefaultParameters()

def jetTools.AddJetCollection.getDefaultParameters (   self)

◆ toolCode()

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

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

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

Member Data Documentation

◆ _comment

jetTools.AddJetCollection._comment
private

add comments

Definition at line 968 of file jetTools.py.

◆ _defaultParameters

jetTools.AddJetCollection._defaultParameters
staticprivate

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

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