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

Constructor & Destructor Documentation

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

892  def __init__(self):
893  """
894  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
895  """
896  ## initialization of the base class
897  ConfigToolBase.__init__(self)
898  ## add all parameters that should be known to the class
899  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
900  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
901  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
902  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
903  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
904  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
905  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
906  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
907  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
908  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
909  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
910  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
911  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
912  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
913  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
914  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
915  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
916  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
917  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
918  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
919  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
920  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
921  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 \
922  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 \
923  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
924  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 \
925  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 \
926  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\' \
927  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
928  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
929  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. \
930  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)
931  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
932  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 \
933  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 \
934  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 \
935  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
936  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
937  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 \
938  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
939  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 \
940  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 \
941  to more than one output module.")
942  ## set defaults
943  self._parameters=copy.deepcopy(self._defaultParameters)
944  ## add comments
945  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\
946  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 \
947  the descriptions of each parameter for more information."
948 
_parameters
initialization of the base class
Definition: jetTools.py:943
_comment
add comments
Definition: jetTools.py:945
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run

Member Function Documentation

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

References heavyIonTools.ConfigureHeavyIons._defaultParameters, coreTools.RunOnData._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, jetTools.AddJetCollection._defaultParameters, SignedImpactParameter3D.apply(), gen::PhotosInterfaceBase.apply(), SurveyParameters.apply(), SignedTransverseImpactParameter.apply(), SignedDecayLength3D.apply(), MatrixReader.MatrixReader.apply, DummyOOTPileupCorrection.apply(), gen::PhotosppInterface.apply(), gen::PhotosInterface.apply(), FWPSetCellEditor.apply(), BeamSpotAlignmentParameters.apply(), RigidBodyAlignmentParameters.apply(), FWGUIEventFilter.apply(), DeviationsFromFileSensor2D.apply(), ConfigToolBase.ConfigToolBase.apply(), AlignmentParameters.apply(), BowedSurfaceAlignmentParameters.apply(), OOTPileupCorrData.apply(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool.apply(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ApplyTool.apply(), AbsOOTPileupCorrection.apply(), Vispa.Gui.BoxContentDialog.BoxContentDialog.apply(), reco::modules::TrackerTrackHitFilter::Rule.apply(), TwoBowedSurfacesAlignmentParameters.apply(), Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.apply(), reco::Add< T >.apply(), reco::Sub< T >.apply(), reco::Mul< T >.apply(), reco::Div< T >.apply(), cmsswVersionTools.PickRelValInputFiles.apply(), reco::And< bool >.apply(), models.RegExp.apply(), reco::Or< bool >.apply(), reco::Less< T >.apply(), reco::LessEqual< T >.apply(), reco::More< T >.apply(), reco::MoreEqual< T >.apply(), reco::Equal< T >.apply(), npstat::ArrayND< Numeric >.apply(), npstat::ArrayND< Num1, Len1, Dim1 >.apply(), npstat::ArrayND< Numeric, StackLen, StackDim >.apply(), Config.ProcessModifier.apply(), PedeReader.setParameter(), QIE8Simulator.setParameter(), AbsElectronicODERHS.setParameter(), SiStripLorentzAngleCalibration.setParameter(), IntegratedCalibrationBase.setParameter(), SiPixelLorentzAngleCalibration.setParameter(), SiStripBackplaneCalibration.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

955  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):
956  """
957  Function call wrapper. This will check the parameters and call the actual implementation that
958  can be found in toolCode via the base class function apply.
959  """
960  if labelName is None:
961  labelName=self._defaultParameters['labelName'].value
962  self.setParameter('labelName', labelName)
963  if postfix is None:
964  postfix=self._defaultParameters['postfix'].value
965  self.setParameter('postfix', postfix)
966  if btagPrefix is None:
967  btagPrefix=self._defaultParameters['btagPrefix'].value
968  self.setParameter('btagPrefix', btagPrefix)
969  if jetSource is None:
970  jetSource=self._defaultParameters['jetSource'].value
971  self.setParameter('jetSource', jetSource)
972  if pfCandidates is None:
973  pfCandidates=self._defaultParameters['pfCandidates'].value
974  self.setParameter('pfCandidates', pfCandidates)
975  if explicitJTA is None:
976  explicitJTA=self._defaultParameters['explicitJTA'].value
977  self.setParameter('explicitJTA', explicitJTA)
978  if pvSource is None:
979  pvSource=self._defaultParameters['pvSource'].value
980  self.setParameter('pvSource', pvSource)
981  if svSource is None:
982  svSource=self._defaultParameters['svSource'].value
983  self.setParameter('svSource', svSource)
984  if elSource is None:
985  elSource=self._defaultParameters['elSource'].value
986  self.setParameter('elSource', elSource)
987  if muSource is None:
988  muSource=self._defaultParameters['muSource'].value
989  self.setParameter('muSource', muSource)
990  if runIVF is None:
991  runIVF=self._defaultParameters['runIVF'].value
992  self.setParameter('runIVF', runIVF)
993  if tightBTagNTkHits is None:
994  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
995  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
996  if loadStdRecoBTag is None:
997  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
998  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
999  if svClustering is None:
1000  svClustering=self._defaultParameters['svClustering'].value
1001  self.setParameter('svClustering', svClustering)
1002  if fatJets is None:
1003  fatJets=self._defaultParameters['fatJets'].value
1004  self.setParameter('fatJets', fatJets)
1005  if groomedFatJets is None:
1006  groomedFatJets=self._defaultParameters['groomedFatJets'].value
1007  self.setParameter('groomedFatJets', groomedFatJets)
1008  if algo is None:
1009  algo=self._defaultParameters['algo'].value
1010  self.setParameter('algo', algo)
1011  if rParam is None:
1012  rParam=self._defaultParameters['rParam'].value
1013  self.setParameter('rParam', rParam)
1014  if getJetMCFlavour is None:
1015  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
1016  self.setParameter('getJetMCFlavour', getJetMCFlavour)
1017  if genJetCollection is None:
1018  genJetCollection=self._defaultParameters['genJetCollection'].value
1019  self.setParameter('genJetCollection', genJetCollection)
1020  if genParticles is None:
1021  genParticles=self._defaultParameters['genParticles'].value
1022  self.setParameter('genParticles', genParticles)
1023  if jetCorrections is None:
1024  jetCorrections=self._defaultParameters['jetCorrections'].value
1025  self.setParameter('jetCorrections', jetCorrections)
1026  if btagDiscriminators is None:
1027  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
1028  self.setParameter('btagDiscriminators', btagDiscriminators)
1029  if btagInfos is None:
1030  btagInfos=self._defaultParameters['btagInfos'].value
1031  self.setParameter('btagInfos', btagInfos)
1032  if jetTrackAssociation is None:
1033  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
1034  self.setParameter('jetTrackAssociation', jetTrackAssociation)
1035  if outputModules is None:
1036  outputModules=self._defaultParameters['outputModules'].value
1037  self.setParameter('outputModules', outputModules)
1038  self.apply(process)
1039 
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)
Definition: jetTools.py:955
def jetTools.AddJetCollection.getDefaultParameters (   self)
def jetTools.AddJetCollection.toolCode (   self,
  process 
)
Tool code implementation

Definition at line 1040 of file jetTools.py.

References editorTools.UserCodeTool._parameters, heavyIonTools.ConfigureHeavyIons._parameters, coreTools.RunOnData._parameters, Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigFolder._parameters, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool._parameters, heavyIonTools.ProductionDefaults._parameters, ConfigToolBase.ConfigToolBase._parameters, editorTools.ChangeSource._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(), list(), jetTools.setupBTagging(), jetTools.setupJetCorrections(), split, jetTools.undefinedLabelName(), jetTools.unsupportedJetAlgorithm(), and pileupCalc.upper.

1040  def toolCode(self, process):
1041  """
1042  Tool code implementation
1043  """
1044  task = getPatAlgosToolsTask(process)
1045 
1046  ## initialize parameters
1047  labelName=self._parameters['labelName'].value
1048  postfix=self._parameters['postfix'].value
1049  btagPrefix=self._parameters['btagPrefix'].value
1050  jetSource=self._parameters['jetSource'].value
1051  pfCandidates=self._parameters['pfCandidates'].value
1052  explicitJTA=self._parameters['explicitJTA'].value
1053  pvSource=self._parameters['pvSource'].value
1054  svSource=self._parameters['svSource'].value
1055  elSource=self._parameters['elSource'].value
1056  muSource=self._parameters['muSource'].value
1057  runIVF=self._parameters['runIVF'].value
1058  tightBTagNTkHits=self._parameters['tightBTagNTkHits'].value
1059  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
1060  svClustering=self._parameters['svClustering'].value
1061  fatJets=self._parameters['fatJets'].value
1062  groomedFatJets=self._parameters['groomedFatJets'].value
1063  algo=self._parameters['algo'].value
1064  rParam=self._parameters['rParam'].value
1065  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
1066  genJetCollection=self._parameters['genJetCollection'].value
1067  genParticles=self._parameters['genParticles'].value
1068  jetCorrections=self._parameters['jetCorrections'].value
1069  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
1070  btagInfos=list(self._parameters['btagInfos'].value)
1071  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
1072  outputModules=list(self._parameters['outputModules'].value)
1073 
1074  ## added jets must have a defined 'labelName'
1075  if labelName=='UNDEFINED':
1076  undefinedLabelName(self)
1077 
1078  ## a list of all producer modules, which are already known to process
1079  knownModules = process.producerNames().split()
1080  ## determine whether btagging information is required or not
1081  if btagDiscriminators.count('None')>0:
1082  btagDiscriminators.remove('None')
1083  if btagInfos.count('None')>0:
1084  btagInfos.remove('None')
1085  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
1086  ## check if any legacy btag discriminators are being used
1087  infos = 0
1088  for info in btagInfos:
1089  if info.startswith('pf'): infos = infos + 1
1090  if 'softpf' in info.lower(): infos = infos + 1
1091  tags = 0
1092  for tag in btagDiscriminators:
1093  if tag.startswith('pf'): tags = tags + 1
1094  if 'softpf' in tag.lower(): tags = tags + 1
1095  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
1096  ## construct postfix label for auxiliary modules; this postfix
1097  ## label will start with a capitalized first letter following
1098  ## the CMS naming conventions and for improved readablility
1099  _labelName=labelName[:1].upper()+labelName[1:]
1100 
1101  ## supported algo types are ak, ca, and kt
1102  _algo=''
1103  for x in ["ak", "ca", "kt"]:
1104  if x in algo.lower():
1105  _algo=supportedJetAlgos[x]
1106  break
1107  if _algo=='':
1109  ## add new patJets to process (keep instance for later further modifications)
1110  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
1111  if 'patJets'+_labelName+postfix in knownModules :
1112  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1113  _newPatJets.jetSource=jetSource
1114  else :
1115  addToProcessAndTask('patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource), process, task)
1116  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1117  knownModules.append('patJets'+_labelName+postfix)
1118  ## add new selectedPatJets to process
1119  from PhysicsTools.PatAlgos.selectionLayer1.jetSelector_cfi import selectedPatJets
1120  if 'selectedPatJets'+_labelName+postfix in knownModules :
1121  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
1122  _newSelectedPatJets.src='patJets'+_labelName+postfix
1123  else :
1124  addToProcessAndTask('selectedPatJets'+_labelName+postfix,
1125  selectedPatJets.clone(src='patJets'+_labelName+postfix),
1126  process, task)
1127  knownModules.append('selectedPatJets'+_labelName+postfix)
1128 
1129  ## add new patJetPartonMatch to process
1130  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
1131  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
1132  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
1133  _newPatJetPartonMatch.src=jetSource
1134  _newPatJetPartonMatch.matched=genParticles
1135  else :
1136  addToProcessAndTask('patJetPartonMatch'+_labelName+postfix,
1137  patJetPartonMatch.clone(src=jetSource, matched=genParticles),
1138  process, task)
1139  knownModules.append('patJetPartonMatch'+_labelName+postfix)
1140  ## add new patJetGenJetMatch to process
1141  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
1142  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
1143  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
1144  _newPatJetGenJetMatch.src=jetSource
1145  _newPatJetGenJetMatch.maxDeltaR=rParam
1146  _newPatJetGenJetMatch.matched=genJetCollection
1147  else :
1148  addToProcessAndTask('patJetGenJetMatch'+_labelName+postfix,
1149  patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection),
1150  process, task)
1151  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
1152  ## modify new patJets collection accordingly
1153  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
1154  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
1155  ## get jet MC truth flavour if required by user
1156  if (getJetMCFlavour):
1157  ## legacy jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
1158  ## add new patJetPartonsLegacy to process
1159  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
1160  if 'patJetPartonsLegacy'+postfix not in knownModules :
1161  addToProcessAndTask('patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles),
1162  process, task)
1163  knownModules.append('patJetPartonsLegacy'+postfix)
1164  else:
1165  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
1166  ## add new patJetPartonAssociationLegacy to process
1167  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
1168  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
1169  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
1170  _newPatJetPartonAssociation.jets=jetSource
1171  else :
1172  addToProcessAndTask('patJetPartonAssociationLegacy'+_labelName+postfix,
1173  patJetPartonAssociationLegacy.clone(jets=jetSource), process, task)
1174  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
1175  ## add new patJetPartonAssociationLegacy to process
1176  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
1177  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
1178  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
1179  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
1180  else:
1181  addToProcessAndTask('patJetFlavourAssociationLegacy'+_labelName+postfix,
1182  patJetFlavourAssociationLegacy.clone(
1183  srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix),
1184  process, task)
1185  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
1186  ## modify new patJets collection accordingly
1187  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
1188  ## new jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
1189  ## add new patJetPartons to process
1191  if 'patJetPartons'+postfix not in knownModules :
1192  addToProcessAndTask('patJetPartons'+postfix, patJetPartons.clone(particles=genParticles), process, task)
1193  knownModules.append('patJetPartons'+postfix)
1194  else:
1195  getattr(process, 'patJetPartons'+postfix).particles=genParticles
1196  ## add new patJetFlavourAssociation to process
1197  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
1198  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
1199  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1200  _newPatJetFlavourAssociation.jets=jetSource
1201  _newPatJetFlavourAssociation.jetAlgorithm=_algo
1202  _newPatJetFlavourAssociation.rParam=rParam
1203  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
1204  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
1205  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"physicsPartons")
1206  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
1207  else :
1208  addToProcessAndTask('patJetFlavourAssociation'+_labelName+postfix,
1209  patJetFlavourAssociation.clone(
1210  jets=jetSource,
1211  jetAlgorithm=_algo,
1212  rParam=rParam,
1213  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
1214  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
1215  partons = cms.InputTag("patJetPartons"+postfix,"physicsPartons"),
1216  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")),
1217  process, task)
1218 
1219  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
1220  ## modify new patJets collection accordingly
1221  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
1222  ## if the jets is actually a subjet
1223  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
1224  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1225  _newPatJetFlavourAssociation.jets=fatJets
1226  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
1227  _newPatJetFlavourAssociation.subjets=jetSource
1228  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
1229  else:
1230  _newPatJets.getJetMCFlavour = False
1231 
1232  ## add jetTrackAssociation for legacy btagging (or jetTracksAssociation only) if required by user
1233  if (jetTrackAssociation or bTaggingLegacy):
1234  ## add new jetTracksAssociationAtVertex to process
1235  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
1236  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
1237  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
1238  _newJetTracksAssociationAtVertex.jets=jetSource
1239  _newJetTracksAssociationAtVertex.pvSrc=pvSource
1240  else:
1241  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
1242  if explicitJTA:
1243  jetTracksAssociator=ak4JetTracksAssociatorExplicit
1244  addToProcessAndTask('jetTracksAssociatorAtVertex'+_labelName+postfix,
1245  jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource),
1246  process, task)
1247  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
1248  ## add new patJetCharge to process
1250  if 'patJetCharge'+_labelName+postfix in knownModules :
1251  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
1252  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
1253  else:
1254  addToProcessAndTask('patJetCharge'+_labelName+postfix,
1255  patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix),
1256  process, task)
1257  knownModules.append('patJetCharge'+_labelName+postfix)
1258  ## modify new patJets collection accordingly
1259  _newPatJets.addAssociatedTracks=True
1260  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
1261  _newPatJets.addJetCharge=True
1262  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
1263  else:
1264  ## modify new patJets collection accordingly
1265  _newPatJets.addAssociatedTracks=False
1266  _newPatJets.trackAssociationSource=''
1267  _newPatJets.addJetCharge=False
1268  _newPatJets.jetChargeSource=''
1269  ## run btagging if required by user
1270  if (bTagging):
1271  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
1272  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, btagPrefix, postfix)
1273  else:
1274  _newPatJets.addBTagInfo = False
1275  _newPatJets.addTagInfos = False
1276  ## adjust output module; these collections will be empty anyhow, but we do it to stay clean
1277  for outputModule in outputModules:
1278  if hasattr(process,outputModule):
1279  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
1280 
1281  ## add jet correction factors if required by user
1282  if (jetCorrections != None):
1283  ## check the jet corrections format
1284  checkJetCorrectionsFormat(jetCorrections)
1285  ## setup jet energy corrections and MET corrections
1286  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
1287  else:
1288  ## switch jetCorrFactors off
1289  _newPatJets.addJetCorrFactors=False
1290 
1291 addJetCollection=AddJetCollection()
1292 
def undefinedLabelName(obj)
Definition: jetTools.py:1905
def toolCode(self, process)
Definition: jetTools.py:1040
def addToProcessAndTask(label, module, process, task)
Definition: helpers.py:29
def setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, patJets, labelName, postfix)
Definition: jetTools.py:26
_parameters
initialization of the base class
Definition: jetTools.py:943
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:237
def checkJetCorrectionsFormat(jetCorrections)
Definition: jetTools.py:18
def getPatAlgosToolsTask(process)
Definition: helpers.py:14
double split
Definition: MVATrainer.cc:139
def unsupportedJetAlgorithm(obj)
Definition: jetTools.py:1912
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run

Member Data Documentation

jetTools.AddJetCollection._comment
private

add comments

Definition at line 945 of file jetTools.py.

jetTools.AddJetCollection._defaultParameters
staticprivate

Definition at line 890 of file jetTools.py.

Referenced by HiCoreTools.RestrictInputToAOD.__call__(), trackTools.MakeAODTrackCandidates.__call__(), runJetUncertainties.RunJetUncertainties.__call__(), metTools.AddMETCollection.__call__(), editorTools.ChangeSource.__call__(), HiCoreTools.RemoveMCMatching.__call__(), trackTools.MakePATTrackCandidates.__call__(), trigTools.SwitchOnTrigger.__call__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__call__(), HiCoreTools.RemoveAllPATObjectsBut.__call__(), HiCoreTools.RemoveSpecificPATObjects.__call__(), trigTools.SwitchOnTriggerStandAlone.__call__(), trackTools.MakeTrackCandidates.__call__(), tauTools.AddTauCollection.__call__(), trigTools.SwitchOnTriggerMatching.__call__(), HiCoreTools.RemoveCleaning.__call__(), HiCoreTools.AddCleaning.__call__(), trigTools.SwitchOnTriggerMatchingStandAlone.__call__(), trigTools.SwitchOnTriggerMatchEmbedding.__call__(), jetTools.AddJetCollection.__call__(), jetTools.SwitchJetCollection.__call__(), jetTools.UpdateJetCollection.__call__(), jetTools.AddJetID.__call__(), jetTools.SetTagInfos.__call__(), editorTools.UserCodeTool.__init__(), metTools.AddMETCollection.__init__(), trackTools.MakeAODTrackCandidates.__init__(), HiCoreTools.RestrictInputToAOD.__init__(), runJetUncertainties.RunJetUncertainties.__init__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__init__(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool.__init__(), editorTools.ChangeSource.__init__(), HiCoreTools.RemoveMCMatching.__init__(), trackTools.MakePATTrackCandidates.__init__(), trigTools.SwitchOnTrigger.__init__(), HiCoreTools.RemoveAllPATObjectsBut.__init__(), HiCoreTools.RemoveSpecificPATObjects.__init__(), trigTools.SwitchOnTriggerStandAlone.__init__(), trackTools.MakeTrackCandidates.__init__(), tauTools.AddTauCollection.__init__(), trigTools.SwitchOnTriggerMatching.__init__(), HiCoreTools.RemoveCleaning.__init__(), HiCoreTools.AddCleaning.__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(), HiCoreTools.RestrictInputToAOD.getDefaultParameters(), trackTools.MakeAODTrackCandidates.getDefaultParameters(), metTools.AddMETCollection.getDefaultParameters(), editorTools.ChangeSource.getDefaultParameters(), HiCoreTools.RemoveMCMatching.getDefaultParameters(), trackTools.MakePATTrackCandidates.getDefaultParameters(), trigTools.SwitchOnTrigger.getDefaultParameters(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.getDefaultParameters(), HiCoreTools.RemoveAllPATObjectsBut.getDefaultParameters(), HiCoreTools.RemoveSpecificPATObjects.getDefaultParameters(), trigTools.SwitchOnTriggerStandAlone.getDefaultParameters(), trackTools.MakeTrackCandidates.getDefaultParameters(), tauTools.AddTauCollection.getDefaultParameters(), trigTools.SwitchOnTriggerMatching.getDefaultParameters(), HiCoreTools.RemoveCleaning.getDefaultParameters(), HiCoreTools.AddCleaning.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().

jetTools.AddJetCollection._label
staticprivate
jetTools.AddJetCollection._parameters
private

initialization of the base class

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

Definition at line 943 of file jetTools.py.

Referenced by runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__call__(), 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(), HiCoreTools.RestrictInputToAOD.toolCode(), trackTools.MakeAODTrackCandidates.toolCode(), metTools.AddMETCollection.toolCode(), runJetUncertainties.RunJetUncertainties.toolCode(), HiCoreTools.RemoveMCMatching.toolCode(), trigTools.SwitchOnTrigger.toolCode(), trackTools.MakePATTrackCandidates.toolCode(), HiCoreTools.RemoveAllPATObjectsBut.toolCode(), HiCoreTools.RemoveSpecificPATObjects.toolCode(), trigTools.SwitchOnTriggerStandAlone.toolCode(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.toolCode(), trackTools.MakeTrackCandidates.toolCode(), tauTools.AddTauCollection.toolCode(), HiCoreTools.RemoveCleaning.toolCode(), trigTools.SwitchOnTriggerMatching.toolCode(), HiCoreTools.AddCleaning.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().