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 847 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 854 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().

854  def __init__(self):
855  """
856  Initialize elements of the class. Note that the tool needs to be derived from ConfigToolBase to be usable in the configEditor.
857  """
858  ## initialization of the base class
859  ConfigToolBase.__init__(self)
860  ## add all parameters that should be known to the class
861  self.addParameter(self._defaultParameters,'labelName', 'UNDEFINED', "Label name of the new patJet collection.", str)
862  self.addParameter(self._defaultParameters,'postfix','', "Postfix from usePF2PAT.", str)
863  self.addParameter(self._defaultParameters,'btagPrefix','', "Prefix to be added to b-tag discriminator and TagInfo names", str)
864  self.addParameter(self._defaultParameters,'jetSource','', "Label of the input collection from which the new patJet collection should be created", cms.InputTag)
865  self.addParameter(self._defaultParameters,'pfCandidates',cms.InputTag('particleFlow'), "Label of the input collection for candidatecandidatese used in b-tagging", cms.InputTag)
866  self.addParameter(self._defaultParameters,'explicitJTA', False, "Use explicit jet-track association")
867  self.addParameter(self._defaultParameters,'pvSource',cms.InputTag('offlinePrimaryVertices'), "Label of the input collection for primary vertices used in b-tagging", cms.InputTag)
868  self.addParameter(self._defaultParameters,'svSource',cms.InputTag('inclusiveCandidateSecondaryVertices'), "Label of the input collection for IVF vertices used in b-tagging", cms.InputTag)
869  self.addParameter(self._defaultParameters,'elSource',cms.InputTag('gedGsfElectrons'), "Label of the input collection for electrons used in b-tagging", cms.InputTag)
870  self.addParameter(self._defaultParameters,'muSource',cms.InputTag('muons'), "Label of the input collection for muons used in b-tagging", cms.InputTag)
871  self.addParameter(self._defaultParameters,'runIVF', False, "Re-run IVF secondary vertex reconstruction")
872  self.addParameter(self._defaultParameters,'tightBTagNTkHits', False, "Enable legacy tight b-tag track selection")
873  self.addParameter(self._defaultParameters,'loadStdRecoBTag', False, "Load the standard reconstruction b-tagging modules")
874  self.addParameter(self._defaultParameters,'svClustering', False, "Secondary vertices ghost-associated to jets using jet clustering (mostly intended for subjets)")
875  self.addParameter(self._defaultParameters,'fatJets', cms.InputTag(''), "Fat jet collection used for secondary vertex clustering", cms.InputTag)
876  self.addParameter(self._defaultParameters,'groomedFatJets', cms.InputTag(''), "Groomed fat jet collection used for secondary vertex clustering", cms.InputTag)
877  self.addParameter(self._defaultParameters,'algo', 'AK', "Jet algorithm of the input collection from which the new patJet collection should be created")
878  self.addParameter(self._defaultParameters,'rParam', 0.4, "Jet size (distance parameter R used in jet clustering)")
879  self.addParameter(self._defaultParameters,'getJetMCFlavour', True, "Get jet MC truth flavour")
880  self.addParameter(self._defaultParameters,'genJetCollection', cms.InputTag("ak4GenJets"), "GenJet collection to match to", cms.InputTag)
881  self.addParameter(self._defaultParameters,'genParticles', cms.InputTag("genParticles"), "GenParticle collection to be used", cms.InputTag)
882  self.addParameter(self._defaultParameters,'jetCorrections',None, "Add all relevant information about jet energy corrections that you want to be added to your new patJet \
883  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 \
884  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 \
885  new patJet collection. This should be given as a list of strings. Available values are L1Offset, L1FastJet, L1JPTOffset, L2Relative, L3Absolute, L5Falvour, L7Parton; the \
886  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 \
887  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 \
888  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\' \
889  and \'type-2\' are not case sensitive.", tuple, acceptNoneValue=True)
890  self.addParameter(self._defaultParameters,'btagDiscriminators',['None'], "If you are interested in btagging, in most cases just the labels of the btag discriminators that \
891  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. \
892  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)
893  self.addParameter(self._defaultParameters,'btagInfos',['None'], "The btagInfos objects contain all relevant information from which all discriminators of a certain \
894  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 \
895  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 \
896  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 \
897  will be added to your new patJet collection.", allowedValues=supportedBtagInfos,Type=list)
898  self.addParameter(self._defaultParameters,'jetTrackAssociation',False, "Add JetTrackAssociation and JetCharge from reconstructed tracks to your new patJet collection. This \
899  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 \
900  your new patJetCollection. If btag information of any form is added to the new patJet collection this information will be added automatically.")
901  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 \
902  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 \
903  to more than one output module.")
904  ## set defaults
905  self._parameters=copy.deepcopy(self._defaultParameters)
906  ## add comments
907  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\
908  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 \
909  the descriptions of each parameter for more information."
910 
_parameters
initialization of the base class
Definition: jetTools.py:905
_comment
add comments
Definition: jetTools.py:907
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 917 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().

917  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):
918  """
919  Function call wrapper. This will check the parameters and call the actual implementation that
920  can be found in toolCode via the base class function apply.
921  """
922  if labelName is None:
923  labelName=self._defaultParameters['labelName'].value
924  self.setParameter('labelName', labelName)
925  if postfix is None:
926  postfix=self._defaultParameters['postfix'].value
927  self.setParameter('postfix', postfix)
928  if btagPrefix is None:
929  btagPrefix=self._defaultParameters['btagPrefix'].value
930  self.setParameter('btagPrefix', btagPrefix)
931  if jetSource is None:
932  jetSource=self._defaultParameters['jetSource'].value
933  self.setParameter('jetSource', jetSource)
934  if pfCandidates is None:
935  pfCandidates=self._defaultParameters['pfCandidates'].value
936  self.setParameter('pfCandidates', pfCandidates)
937  if explicitJTA is None:
938  explicitJTA=self._defaultParameters['explicitJTA'].value
939  self.setParameter('explicitJTA', explicitJTA)
940  if pvSource is None:
941  pvSource=self._defaultParameters['pvSource'].value
942  self.setParameter('pvSource', pvSource)
943  if svSource is None:
944  svSource=self._defaultParameters['svSource'].value
945  self.setParameter('svSource', svSource)
946  if elSource is None:
947  elSource=self._defaultParameters['elSource'].value
948  self.setParameter('elSource', elSource)
949  if muSource is None:
950  muSource=self._defaultParameters['muSource'].value
951  self.setParameter('muSource', muSource)
952  if runIVF is None:
953  runIVF=self._defaultParameters['runIVF'].value
954  self.setParameter('runIVF', runIVF)
955  if tightBTagNTkHits is None:
956  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
957  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
958  if loadStdRecoBTag is None:
959  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
960  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
961  if svClustering is None:
962  svClustering=self._defaultParameters['svClustering'].value
963  self.setParameter('svClustering', svClustering)
964  if fatJets is None:
965  fatJets=self._defaultParameters['fatJets'].value
966  self.setParameter('fatJets', fatJets)
967  if groomedFatJets is None:
968  groomedFatJets=self._defaultParameters['groomedFatJets'].value
969  self.setParameter('groomedFatJets', groomedFatJets)
970  if algo is None:
971  algo=self._defaultParameters['algo'].value
972  self.setParameter('algo', algo)
973  if rParam is None:
974  rParam=self._defaultParameters['rParam'].value
975  self.setParameter('rParam', rParam)
976  if getJetMCFlavour is None:
977  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
978  self.setParameter('getJetMCFlavour', getJetMCFlavour)
979  if genJetCollection is None:
980  genJetCollection=self._defaultParameters['genJetCollection'].value
981  self.setParameter('genJetCollection', genJetCollection)
982  if genParticles is None:
983  genParticles=self._defaultParameters['genParticles'].value
984  self.setParameter('genParticles', genParticles)
985  if jetCorrections is None:
986  jetCorrections=self._defaultParameters['jetCorrections'].value
987  self.setParameter('jetCorrections', jetCorrections)
988  if btagDiscriminators is None:
989  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
990  self.setParameter('btagDiscriminators', btagDiscriminators)
991  if btagInfos is None:
992  btagInfos=self._defaultParameters['btagInfos'].value
993  self.setParameter('btagInfos', btagInfos)
994  if jetTrackAssociation is None:
995  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
996  self.setParameter('jetTrackAssociation', jetTrackAssociation)
997  if outputModules is None:
998  outputModules=self._defaultParameters['outputModules'].value
999  self.setParameter('outputModules', outputModules)
1000  self.apply(process)
1001 
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:917
def jetTools.AddJetCollection.getDefaultParameters (   self)
def jetTools.AddJetCollection.toolCode (   self,
  process 
)
Tool code implementation

Definition at line 1002 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.

1002  def toolCode(self, process):
1003  """
1004  Tool code implementation
1005  """
1006  task = getPatAlgosToolsTask(process)
1007 
1008  ## initialize parameters
1009  labelName=self._parameters['labelName'].value
1010  postfix=self._parameters['postfix'].value
1011  btagPrefix=self._parameters['btagPrefix'].value
1012  jetSource=self._parameters['jetSource'].value
1013  pfCandidates=self._parameters['pfCandidates'].value
1014  explicitJTA=self._parameters['explicitJTA'].value
1015  pvSource=self._parameters['pvSource'].value
1016  svSource=self._parameters['svSource'].value
1017  elSource=self._parameters['elSource'].value
1018  muSource=self._parameters['muSource'].value
1019  runIVF=self._parameters['runIVF'].value
1020  tightBTagNTkHits=self._parameters['tightBTagNTkHits'].value
1021  loadStdRecoBTag=self._parameters['loadStdRecoBTag'].value
1022  svClustering=self._parameters['svClustering'].value
1023  fatJets=self._parameters['fatJets'].value
1024  groomedFatJets=self._parameters['groomedFatJets'].value
1025  algo=self._parameters['algo'].value
1026  rParam=self._parameters['rParam'].value
1027  getJetMCFlavour=self._parameters['getJetMCFlavour'].value
1028  genJetCollection=self._parameters['genJetCollection'].value
1029  genParticles=self._parameters['genParticles'].value
1030  jetCorrections=self._parameters['jetCorrections'].value
1031  btagDiscriminators=list(self._parameters['btagDiscriminators'].value)
1032  btagInfos=list(self._parameters['btagInfos'].value)
1033  jetTrackAssociation=self._parameters['jetTrackAssociation'].value
1034  outputModules=list(self._parameters['outputModules'].value)
1035 
1036  ## added jets must have a defined 'labelName'
1037  if labelName=='UNDEFINED':
1038  undefinedLabelName(self)
1039 
1040  ## a list of all producer modules, which are already known to process
1041  knownModules = process.producerNames().split()
1042  ## determine whether btagging information is required or not
1043  if btagDiscriminators.count('None')>0:
1044  btagDiscriminators.remove('None')
1045  if btagInfos.count('None')>0:
1046  btagInfos.remove('None')
1047  bTagging=(len(btagDiscriminators)>0 or len(btagInfos)>0)
1048  ## check if any legacy btag discriminators are being used
1049  infos = 0
1050  for info in btagInfos:
1051  if info.startswith('pf'): infos = infos + 1
1052  if 'softpf' in info.lower(): infos = infos + 1
1053  tags = 0
1054  for tag in btagDiscriminators:
1055  if tag.startswith('pf'): tags = tags + 1
1056  if 'softpf' in tag.lower(): tags = tags + 1
1057  bTaggingLegacy=(len(btagDiscriminators)>tags or len(btagInfos)>infos)
1058  ## construct postfix label for auxiliary modules; this postfix
1059  ## label will start with a capitalized first letter following
1060  ## the CMS naming conventions and for improved readablility
1061  _labelName=labelName[:1].upper()+labelName[1:]
1062 
1063  ## supported algo types are ak, ca, and kt
1064  _algo=''
1065  for x in ["ak", "ca", "kt"]:
1066  if x in algo.lower():
1067  _algo=supportedJetAlgos[x]
1068  break
1069  if _algo=='':
1071  ## add new patJets to process (keep instance for later further modifications)
1072  from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cfi import _patJets as patJets
1073  if 'patJets'+_labelName+postfix in knownModules :
1074  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1075  _newPatJets.jetSource=jetSource
1076  else :
1077  addToProcessAndTask('patJets'+_labelName+postfix, patJets.clone(jetSource=jetSource), process, task)
1078  _newPatJets=getattr(process, 'patJets'+_labelName+postfix)
1079  knownModules.append('patJets'+_labelName+postfix)
1080  ## add new selectedPatJets to process
1081  from PhysicsTools.PatAlgos.selectionLayer1.jetSelector_cfi import selectedPatJets
1082  if 'selectedPatJets'+_labelName+postfix in knownModules :
1083  _newSelectedPatJets=getattr(process, 'selectedPatJets'+_labelName+postfix)
1084  _newSelectedPatJets.src='patJets'+_labelName+postfix
1085  else :
1086  addToProcessAndTask('selectedPatJets'+_labelName+postfix,
1087  selectedPatJets.clone(src='patJets'+_labelName+postfix),
1088  process, task)
1089  knownModules.append('selectedPatJets'+_labelName+postfix)
1090 
1091  ## add new patJetPartonMatch to process
1092  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetPartonMatch
1093  if 'patJetPartonMatch'+_labelName+postfix in knownModules :
1094  _newPatJetPartonMatch=getattr(process, 'patJetPartonMatch'+_labelName+postfix)
1095  _newPatJetPartonMatch.src=jetSource
1096  _newPatJetPartonMatch.matched=genParticles
1097  else :
1098  addToProcessAndTask('patJetPartonMatch'+_labelName+postfix,
1099  patJetPartonMatch.clone(src=jetSource, matched=genParticles),
1100  process, task)
1101  knownModules.append('patJetPartonMatch'+_labelName+postfix)
1102  ## add new patJetGenJetMatch to process
1103  from PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi import patJetGenJetMatch
1104  if 'patJetGenJetMatch'+_labelName+postfix in knownModules :
1105  _newPatJetGenJetMatch=getattr(process, 'patJetGenJetMatch'+_labelName+postfix)
1106  _newPatJetGenJetMatch.src=jetSource
1107  _newPatJetGenJetMatch.maxDeltaR=rParam
1108  _newPatJetGenJetMatch.matched=genJetCollection
1109  else :
1110  addToProcessAndTask('patJetGenJetMatch'+_labelName+postfix,
1111  patJetGenJetMatch.clone(src=jetSource, maxDeltaR=rParam, matched=genJetCollection),
1112  process, task)
1113  knownModules.append('patJetGenJetMatch'+_labelName+postfix)
1114  ## modify new patJets collection accordingly
1115  _newPatJets.genJetMatch.setModuleLabel('patJetGenJetMatch'+_labelName+postfix)
1116  _newPatJets.genPartonMatch.setModuleLabel('patJetPartonMatch'+_labelName+postfix)
1117  ## get jet MC truth flavour if required by user
1118  if (getJetMCFlavour):
1119  ## legacy jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
1120  ## add new patJetPartonsLegacy to process
1121  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonsLegacy
1122  if 'patJetPartonsLegacy'+postfix not in knownModules :
1123  addToProcessAndTask('patJetPartonsLegacy'+postfix, patJetPartonsLegacy.clone(src=genParticles),
1124  process, task)
1125  knownModules.append('patJetPartonsLegacy'+postfix)
1126  else:
1127  getattr(process, 'patJetPartonsLegacy'+postfix).src=genParticles
1128  ## add new patJetPartonAssociationLegacy to process
1129  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetPartonAssociationLegacy
1130  if 'patJetPartonAssociationLegacy'+_labelName+postfix in knownModules :
1131  _newPatJetPartonAssociation=getattr(process, 'patJetPartonAssociationLegacy'+_labelName+postfix)
1132  _newPatJetPartonAssociation.jets=jetSource
1133  else :
1134  addToProcessAndTask('patJetPartonAssociationLegacy'+_labelName+postfix,
1135  patJetPartonAssociationLegacy.clone(jets=jetSource), process, task)
1136  knownModules.append('patJetPartonAssociationLegacy'+_labelName+postfix)
1137  ## add new patJetPartonAssociationLegacy to process
1138  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociationLegacy
1139  if 'patJetFlavourAssociationLegacy'+_labelName+postfix in knownModules :
1140  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociationLegacy'+_labelName+postfix)
1141  _newPatJetFlavourAssociation.srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix
1142  else:
1143  addToProcessAndTask('patJetFlavourAssociationLegacy'+_labelName+postfix,
1144  patJetFlavourAssociationLegacy.clone(
1145  srcByReference='patJetPartonAssociationLegacy'+_labelName+postfix),
1146  process, task)
1147  knownModules.append('patJetFlavourAssociationLegacy'+_labelName+postfix)
1148  ## modify new patJets collection accordingly
1149  _newPatJets.JetPartonMapSource.setModuleLabel('patJetFlavourAssociationLegacy'+_labelName+postfix)
1150  ## new jet flavour (see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideBTagMCTools)
1151  ## add new patJetPartons to process
1153  if 'patJetPartons'+postfix not in knownModules :
1154  addToProcessAndTask('patJetPartons'+postfix, patJetPartons.clone(particles=genParticles), process, task)
1155  knownModules.append('patJetPartons'+postfix)
1156  else:
1157  getattr(process, 'patJetPartons'+postfix).particles=genParticles
1158  ## add new patJetFlavourAssociation to process
1159  from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
1160  if 'patJetFlavourAssociation'+_labelName+postfix in knownModules :
1161  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1162  _newPatJetFlavourAssociation.jets=jetSource
1163  _newPatJetFlavourAssociation.jetAlgorithm=_algo
1164  _newPatJetFlavourAssociation.rParam=rParam
1165  _newPatJetFlavourAssociation.bHadrons=cms.InputTag("patJetPartons"+postfix,"bHadrons")
1166  _newPatJetFlavourAssociation.cHadrons=cms.InputTag("patJetPartons"+postfix,"cHadrons")
1167  _newPatJetFlavourAssociation.partons=cms.InputTag("patJetPartons"+postfix,"physicsPartons")
1168  _newPatJetFlavourAssociation.leptons=cms.InputTag("patJetPartons"+postfix,"leptons")
1169  else :
1170  addToProcessAndTask('patJetFlavourAssociation'+_labelName+postfix,
1171  patJetFlavourAssociation.clone(
1172  jets=jetSource,
1173  jetAlgorithm=_algo,
1174  rParam=rParam,
1175  bHadrons = cms.InputTag("patJetPartons"+postfix,"bHadrons"),
1176  cHadrons = cms.InputTag("patJetPartons"+postfix,"cHadrons"),
1177  partons = cms.InputTag("patJetPartons"+postfix,"physicsPartons"),
1178  leptons = cms.InputTag("patJetPartons"+postfix,"leptons")),
1179  process, task)
1180 
1181  knownModules.append('patJetFlavourAssociation'+_labelName+postfix)
1182  ## modify new patJets collection accordingly
1183  _newPatJets.JetFlavourInfoSource.setModuleLabel('patJetFlavourAssociation'+_labelName+postfix)
1184  ## if the jets is actually a subjet
1185  if fatJets != cms.InputTag('') and groomedFatJets != cms.InputTag(''):
1186  _newPatJetFlavourAssociation=getattr(process, 'patJetFlavourAssociation'+_labelName+postfix)
1187  _newPatJetFlavourAssociation.jets=fatJets
1188  _newPatJetFlavourAssociation.groomedJets=groomedFatJets
1189  _newPatJetFlavourAssociation.subjets=jetSource
1190  _newPatJets.JetFlavourInfoSource=cms.InputTag('patJetFlavourAssociation'+_labelName+postfix,'SubJets')
1191  else:
1192  _newPatJets.getJetMCFlavour = False
1193 
1194  ## add jetTrackAssociation for legacy btagging (or jetTracksAssociation only) if required by user
1195  if (jetTrackAssociation or bTaggingLegacy):
1196  ## add new jetTracksAssociationAtVertex to process
1197  from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertex, ak4JetTracksAssociatorExplicit
1198  if 'jetTracksAssociationAtVertex'+_labelName+postfix in knownModules :
1199  _newJetTracksAssociationAtVertex=getattr(process, 'jetTracksAssociatorAtVertex'+_labelName+postfix)
1200  _newJetTracksAssociationAtVertex.jets=jetSource
1201  _newJetTracksAssociationAtVertex.pvSrc=pvSource
1202  else:
1203  jetTracksAssociator=ak4JetTracksAssociatorAtVertex
1204  if explicitJTA:
1205  jetTracksAssociator=ak4JetTracksAssociatorExplicit
1206  addToProcessAndTask('jetTracksAssociatorAtVertex'+_labelName+postfix,
1207  jetTracksAssociator.clone(jets=jetSource,pvSrc=pvSource),
1208  process, task)
1209  knownModules.append('jetTracksAssociationAtVertex'+_labelName+postfix)
1210  ## add new patJetCharge to process
1212  if 'patJetCharge'+_labelName+postfix in knownModules :
1213  _newPatJetCharge=getattr(process, 'patJetCharge'+_labelName+postfix)
1214  _newPatJetCharge.src='jetTracksAssociatorAtVertex'+_labelName+postfix
1215  else:
1216  addToProcessAndTask('patJetCharge'+_labelName+postfix,
1217  patJetCharge.clone(src = 'jetTracksAssociatorAtVertex'+_labelName+postfix),
1218  process, task)
1219  knownModules.append('patJetCharge'+_labelName+postfix)
1220  ## modify new patJets collection accordingly
1221  _newPatJets.addAssociatedTracks=True
1222  _newPatJets.trackAssociationSource=cms.InputTag('jetTracksAssociatorAtVertex'+_labelName+postfix)
1223  _newPatJets.addJetCharge=True
1224  _newPatJets.jetChargeSource=cms.InputTag('patJetCharge'+_labelName+postfix)
1225  else:
1226  ## modify new patJets collection accordingly
1227  _newPatJets.addAssociatedTracks=False
1228  _newPatJets.trackAssociationSource=''
1229  _newPatJets.addJetCharge=False
1230  _newPatJets.jetChargeSource=''
1231  ## run btagging if required by user
1232  if (bTagging):
1233  setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSource, elSource, muSource, runIVF, tightBTagNTkHits, loadStdRecoBTag, svClustering, fatJets, groomedFatJets,
1234  _algo, rParam, btagDiscriminators, btagInfos, _newPatJets, _labelName, btagPrefix, postfix)
1235  else:
1236  _newPatJets.addBTagInfo = False
1237  _newPatJets.addTagInfos = False
1238  ## adjust output module; these collections will be empty anyhow, but we do it to stay clean
1239  for outputModule in outputModules:
1240  if hasattr(process,outputModule):
1241  getattr(process,outputModule).outputCommands.append("drop *_"+'selected'+_labelName+postfix+"_tagInfos_*")
1242 
1243  ## add jet correction factors if required by user
1244  if (jetCorrections != None):
1245  ## check the jet corrections format
1246  checkJetCorrectionsFormat(jetCorrections)
1247  ## setup jet energy corrections and MET corrections
1248  setupJetCorrections(process, knownModules, jetCorrections, jetSource, pvSource, _newPatJets, _labelName, postfix)
1249  else:
1250  ## switch jetCorrFactors off
1251  _newPatJets.addJetCorrFactors=False
1252 
1253 addJetCollection=AddJetCollection()
1254 
def undefinedLabelName(obj)
Definition: jetTools.py:1857
def toolCode(self, process)
Definition: jetTools.py:1002
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:905
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:1864
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 907 of file jetTools.py.

jetTools.AddJetCollection._defaultParameters
staticprivate

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