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 841 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 848 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(), PythonParameterSet.addParameter(), l1t::TriggerSystem.addParameter(), LutXml.addParameter(), ConfigToolBase.ConfigToolBase.addParameter(), and edm::ParameterSet.addParameter().

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

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 911 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(), SignedTransverseImpactParameter.apply(), MatrixReader.MatrixReader.apply, SignedDecayLength3D.apply(), DummyOOTPileupCorrection.apply(), gen::PhotosppInterface.apply(), gen::PhotosInterface.apply(), SurveyParameters.apply(), FWPSetCellEditor.apply(), FWGUIEventFilter.apply(), DeviationsFromFileSensor2D.apply(), BeamSpotAlignmentParameters.apply(), RigidBodyAlignmentParameters.apply(), ConfigToolBase.ConfigToolBase.apply(), AlignmentParameters.apply(), BowedSurfaceAlignmentParameters.apply(), OOTPileupCorrData.apply(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ImportTool.apply(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ApplyTool.apply(), AbsOOTPileupCorrection.apply(), TwoBowedSurfacesAlignmentParameters.apply(), Vispa.Gui.BoxContentDialog.BoxContentDialog.apply(), reco::modules::TrackerTrackHitFilter::Rule.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(), IntegratedCalibrationBase.setParameter(), SiStripLorentzAngleCalibration.setParameter(), SiPixelLorentzAngleCalibration.setParameter(), SiStripBackplaneCalibration.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

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

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

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

jetTools.AddJetCollection._defaultParameters
staticprivate

Definition at line 846 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__(), HiCoreTools.RestrictInputToAOD.__init__(), trackTools.MakeAODTrackCandidates.__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 899 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.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().