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 826 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 833 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().

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

896  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):
897  """
898  Function call wrapper. This will check the parameters and call the actual implementation that
899  can be found in toolCode via the base class function apply.
900  """
901  if labelName is None:
902  labelName=self._defaultParameters['labelName'].value
903  self.setParameter('labelName', labelName)
904  if postfix is None:
905  postfix=self._defaultParameters['postfix'].value
906  self.setParameter('postfix', postfix)
907  if btagPrefix is None:
908  btagPrefix=self._defaultParameters['btagPrefix'].value
909  self.setParameter('btagPrefix', btagPrefix)
910  if jetSource is None:
911  jetSource=self._defaultParameters['jetSource'].value
912  self.setParameter('jetSource', jetSource)
913  if pfCandidates is None:
914  pfCandidates=self._defaultParameters['pfCandidates'].value
915  self.setParameter('pfCandidates', pfCandidates)
916  if explicitJTA is None:
917  explicitJTA=self._defaultParameters['explicitJTA'].value
918  self.setParameter('explicitJTA', explicitJTA)
919  if pvSource is None:
920  pvSource=self._defaultParameters['pvSource'].value
921  self.setParameter('pvSource', pvSource)
922  if svSource is None:
923  svSource=self._defaultParameters['svSource'].value
924  self.setParameter('svSource', svSource)
925  if elSource is None:
926  elSource=self._defaultParameters['elSource'].value
927  self.setParameter('elSource', elSource)
928  if muSource is None:
929  muSource=self._defaultParameters['muSource'].value
930  self.setParameter('muSource', muSource)
931  if runIVF is None:
932  runIVF=self._defaultParameters['runIVF'].value
933  self.setParameter('runIVF', runIVF)
934  if tightBTagNTkHits is None:
935  tightBTagNTkHits=self._defaultParameters['tightBTagNTkHits'].value
936  self.setParameter('tightBTagNTkHits', tightBTagNTkHits)
937  if loadStdRecoBTag is None:
938  loadStdRecoBTag=self._defaultParameters['loadStdRecoBTag'].value
939  self.setParameter('loadStdRecoBTag', loadStdRecoBTag)
940  if svClustering is None:
941  svClustering=self._defaultParameters['svClustering'].value
942  self.setParameter('svClustering', svClustering)
943  if fatJets is None:
944  fatJets=self._defaultParameters['fatJets'].value
945  self.setParameter('fatJets', fatJets)
946  if groomedFatJets is None:
947  groomedFatJets=self._defaultParameters['groomedFatJets'].value
948  self.setParameter('groomedFatJets', groomedFatJets)
949  if algo is None:
950  algo=self._defaultParameters['algo'].value
951  self.setParameter('algo', algo)
952  if rParam is None:
953  rParam=self._defaultParameters['rParam'].value
954  self.setParameter('rParam', rParam)
955  if getJetMCFlavour is None:
956  getJetMCFlavour=self._defaultParameters['getJetMCFlavour'].value
957  self.setParameter('getJetMCFlavour', getJetMCFlavour)
958  if genJetCollection is None:
959  genJetCollection=self._defaultParameters['genJetCollection'].value
960  self.setParameter('genJetCollection', genJetCollection)
961  if genParticles is None:
962  genParticles=self._defaultParameters['genParticles'].value
963  self.setParameter('genParticles', genParticles)
964  if jetCorrections is None:
965  jetCorrections=self._defaultParameters['jetCorrections'].value
966  self.setParameter('jetCorrections', jetCorrections)
967  if btagDiscriminators is None:
968  btagDiscriminators=self._defaultParameters['btagDiscriminators'].value
969  self.setParameter('btagDiscriminators', btagDiscriminators)
970  if btagInfos is None:
971  btagInfos=self._defaultParameters['btagInfos'].value
972  self.setParameter('btagInfos', btagInfos)
973  if jetTrackAssociation is None:
974  jetTrackAssociation=self._defaultParameters['jetTrackAssociation'].value
975  self.setParameter('jetTrackAssociation', jetTrackAssociation)
976  if outputModules is None:
977  outputModules=self._defaultParameters['outputModules'].value
978  self.setParameter('outputModules', outputModules)
979  self.apply(process)
980 
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:896
def jetTools.AddJetCollection.getDefaultParameters (   self)
def jetTools.AddJetCollection.toolCode (   self,
  process 
)
Tool code implementation

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

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

jetTools.AddJetCollection._defaultParameters
staticprivate

Definition at line 831 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 884 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.produceMET(), 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().