test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions | Variables
tauTools Namespace Reference

Classes

class  AddTauCollection
 

Functions

def _buildIDSourcePSet
 
def _switchToPFTau
 
def applyPostfix
 
def switchToCaloTau
 
def switchToPFTauByType
 
def switchToPFTauFixedCone
 
def switchToPFTauHPS
 
def switchToPFTauShrinkingCone
 

Variables

list classicPFTauIDSources
 
list classicTauIDSources
 
list hpsTauIDSources
 

Function Documentation

def tauTools._buildIDSourcePSet (   tauType,
  idSources,
  postfix = "" 
)
private
Build a PSet defining the tau ID sources to embed into the pat::Tau 

Definition at line 42 of file tauTools.py.

References _switchToPFTau().

Referenced by _switchToPFTau(), and switchToCaloTau().

42 
43 def _buildIDSourcePSet(tauType, idSources, postfix =""):
44  """ Build a PSet defining the tau ID sources to embed into the pat::Tau """
45  output = cms.PSet()
46  for label, discriminator in idSources:
47  if ":" in discriminator:
48  discr = discriminator.split(":")
49  setattr(output, label, cms.InputTag(tauType + discr[0] + postfix + ":" + discr[1]))
50  else:
51  setattr(output, label, cms.InputTag(tauType + discriminator + postfix))
52  return output
def _buildIDSourcePSet
Definition: tauTools.py:42
def tauTools._switchToPFTau (   process,
  tauSource,
  pfTauType,
  idSources,
  patTauLabel = "",
  postfix = "" 
)
private
internal auxiliary function to switch to **any** PFTau collection

Definition at line 58 of file tauTools.py.

References _buildIDSourcePSet(), and applyPostfix().

Referenced by _buildIDSourcePSet(), switchToPFTauFixedCone(), switchToPFTauHPS(), and switchToPFTauShrinkingCone().

58 
59  postfix = ""):
60  """internal auxiliary function to switch to **any** PFTau collection"""
61  print ' switching PAT Tau input to: ', tauSource
62 
63  applyPostfix(process, "tauMatch" + patTauLabel, postfix).src = tauSource
64  applyPostfix(process, "tauGenJetMatch" + patTauLabel, postfix).src = tauSource
65 
66  applyPostfix(process, "tauIsoDepositPFCandidates" + patTauLabel, postfix).src = tauSource
67  applyPostfix(process, "tauIsoDepositPFCandidates" + patTauLabel, postfix).ExtractorPSet.tauSource = tauSource
68  applyPostfix(process, "tauIsoDepositPFChargedHadrons" + patTauLabel, postfix).src = tauSource
69  applyPostfix(process, "tauIsoDepositPFChargedHadrons" + patTauLabel, postfix).ExtractorPSet.tauSource = tauSource
70  applyPostfix(process, "tauIsoDepositPFNeutralHadrons" + patTauLabel, postfix).src = tauSource
71  applyPostfix(process, "tauIsoDepositPFNeutralHadrons" + patTauLabel, postfix).ExtractorPSet.tauSource = tauSource
72  applyPostfix(process, "tauIsoDepositPFGammas" + patTauLabel, postfix).src = tauSource
73  applyPostfix(process, "tauIsoDepositPFGammas" + patTauLabel, postfix).ExtractorPSet.tauSource = tauSource
74 
75  applyPostfix(process, "patTaus" + patTauLabel, postfix).tauSource = tauSource
76  # CV: reconstruction of tau lifetime information not enabled for tau collections other than 'hpsPFTauProducer' yet
77  applyPostfix(process, "patTaus" + patTauLabel, postfix).tauTransverseImpactParameterSource = ""
78  applyPostfix(process, "patTaus" + patTauLabel, postfix).tauIDSources = _buildIDSourcePSet(pfTauType, idSources, postfix)
79 
80  if hasattr(process, "cleanPatTaus" + patTauLabel + postfix):
81  getattr(process, "cleanPatTaus" + patTauLabel + postfix).preselection = preselection
82 
# Name mapping for classic tau ID sources (present for fixed and shrinkingCones)
def applyPostfix
Definition: tauTools.py:9
def _buildIDSourcePSet
Definition: tauTools.py:42
def tauTools.applyPostfix (   process,
  label,
  postfix 
)

Definition at line 9 of file tauTools.py.

References switchToCaloTau().

Referenced by _switchToPFTau(), switchToCaloTau(), and switchToPFTauHPS().

9 
10 def applyPostfix(process, label, postfix):
11  result = None
12  if hasattr(process, label+postfix):
13  result = getattr(process, label + postfix)
14  else:
15  raise ValueError("Error in <applyPostfix>: No module of name = %s attached to process !!" % (label + postfix))
16  return result
17 
# switch to CaloTau collection
def applyPostfix
Definition: tauTools.py:9
def tauTools.switchToCaloTau (   process,
  tauSource = cms.InputTag('caloRecoTauProducer'),
  patTauLabel = "",
  postfix = "" 
)

Definition at line 21 of file tauTools.py.

References _buildIDSourcePSet(), and applyPostfix().

Referenced by applyPostfix(), and tauTools.AddTauCollection.toolCode().

21 
22  postfix = ""):
23  print ' switching PAT Tau input to: ', tauSource
24 
25  applyPostfix(process, "tauMatch" + patTauLabel, postfix).src = tauSource
26  applyPostfix(process, "tauGenJetMatch"+ patTauLabel, postfix).src = tauSource
27 
28  applyPostfix(process, "patTaus" + patTauLabel, postfix).tauSource = tauSource
29  # CV: reconstruction of tau lifetime information not implemented for CaloTaus yet
30  applyPostfix(process, "patTaus" + patTauLabel, postfix).tauTransverseImpactParameterSource = ""
31  applyPostfix(process, "patTaus" + patTauLabel, postfix).tauIDSources = _buildIDSourcePSet('caloRecoTau', classicTauIDSources, postfix)
32 
33  ## Isolation is somewhat an issue, so we start just by turning it off
34  print "NO PF Isolation will be computed for CaloTau (this could be improved later)"
35  applyPostfix(process, "patTaus" + patTauLabel, postfix).isolation = cms.PSet()
36  applyPostfix(process, "patTaus" + patTauLabel, postfix).isoDeposits = cms.PSet()
37  applyPostfix(process, "patTaus" + patTauLabel, postfix).userIsolation = cms.PSet()
38 
39  ## adapt cleanPatTaus
40  if hasattr(process, "cleanPatTaus" + patTauLabel + postfix):
41  getattr(process, "cleanPatTaus" + patTauLabel + postfix).preselection = preselection
def applyPostfix
Definition: tauTools.py:9
def _buildIDSourcePSet
Definition: tauTools.py:42
def tauTools.switchToPFTauByType (   process,
  pfTauType = None,
  tauSource = cms.InputTag('hpsPFTauProducer'),
  patTauLabel = "",
  postfix = "" 
)

Definition at line 220 of file tauTools.py.

Referenced by pfTools.adaptPFTaus(), switchToPFTauHPS(), and tauTools.AddTauCollection.toolCode().

221  postfix = "" ):
222  mapping = {
223  'shrinkingConePFTau' : switchToPFTauShrinkingCone,
224  'fixedConePFTau' : switchToPFTauFixedCone,
225  'hpsPFTau' : switchToPFTauHPS,
226  'caloRecoTau' : switchToCaloTau
227  }
228  if not pfTauType in mapping.keys():
229  raise ValueError("Error in <switchToPFTauByType>: Undefined pfTauType = %s !!" % pfTauType)
230 
231  mapping[pfTauType](process, tauSource = tauSource,
232  patTauLabel = patTauLabel, postfix = postfix)
def tauTools.switchToPFTauFixedCone (   process,
  tauSource = cms.InputTag('fixedConePFTauProducer'),
  patTauLabel = "",
  postfix = "" 
)

Definition at line 180 of file tauTools.py.

References _switchToPFTau(), and switchToPFTauShrinkingCone().

181  postfix = ""):
182  fixedConeIDSources = copy.copy(classicTauIDSources)
183  fixedConeIDSources.extend(classicPFTauIDSources)
184 
185  _switchToPFTau(process, tauSource, 'fixedConePFTau', fixedConeIDSources,
186  patTauLabel = patTauLabel, postfix = postfix)
187 
# switch to PFTau collection produced for shrinking signal cone of size dR = 5.0/Et(PFTau)
def _switchToPFTau
Definition: tauTools.py:58
def tauTools.switchToPFTauHPS (   process,
  tauSource = cms.InputTag('hpsPFTauProducer'),
  patTauLabel = "",
  jecLevels = [],
  postfix = "" 
)

Definition at line 203 of file tauTools.py.

References _switchToPFTau(), applyPostfix(), python.rootplot.root2matplotlib.replace(), and switchToPFTauByType().

Referenced by switchToPFTauShrinkingCone().

204  postfix = ""):
205 
206  _switchToPFTau(process, tauSource, 'hpsPFTau', hpsTauIDSources,
207  patTauLabel = patTauLabel, postfix = postfix)
208 
209  # CV: enable tau lifetime information for HPS PFTaus
210  applyPostfix(process, "patTaus" + patTauLabel, postfix).tauTransverseImpactParameterSource = tauSource.value().replace("Producer", "TransverseImpactParameters")
211 
212  ## adapt cleanPatTaus
213  if hasattr(process, "cleanPatTaus" + patTauLabel + postfix):
214  getattr(process, "cleanPatTaus" + patTauLabel + postfix).preselection = preselection
215 
# Select switcher by string
def applyPostfix
Definition: tauTools.py:9
def _switchToPFTau
Definition: tauTools.py:58
def tauTools.switchToPFTauShrinkingCone (   process,
  tauSource = cms.InputTag('shrinkingConePFTauProducer'),
  patTauLabel = "",
  postfix = "" 
)

Definition at line 191 of file tauTools.py.

References _switchToPFTau(), and switchToPFTauHPS().

Referenced by switchToPFTauFixedCone().

192  postfix = ""):
193  shrinkingIDSources = copy.copy(classicTauIDSources)
194  shrinkingIDSources.extend(classicPFTauIDSources)
195 
196  _switchToPFTau(process, tauSource, 'shrinkingConePFTau', shrinkingIDSources,
197  patTauLabel = patTauLabel, postfix = postfix)
198 
# switch to hadron-plus-strip(s) (HPS) PFTau collection
def _switchToPFTau
Definition: tauTools.py:58

Variable Documentation

list tauTools.classicPFTauIDSources
Initial value:
1 = [
2  ("leadingPionPtCut", "DiscriminationByLeadingPionPtCut"),
3  ("trackIsolationUsingLeadingPion", "DiscriminationByTrackIsolationUsingLeadingPion"),
4  ("ecalIsolationUsingLeadingPion", "DiscriminationByECALIsolationUsingLeadingPion"),
5  ("byIsolationUsingLeadingPion", "DiscriminationByIsolationUsingLeadingPion")
6 ]

Definition at line 93 of file tauTools.py.

list tauTools.classicTauIDSources
Initial value:
1 = [
2  ("leadingTrackFinding", "DiscriminationByLeadingTrackFinding"),
3  ("leadingTrackPtCut", "DiscriminationByLeadingTrackPtCut"),
4  ("trackIsolation", "DiscriminationByTrackIsolation"),
5  ("ecalIsolation", "DiscriminationByECALIsolation"),
6  ("byIsolation", "DiscriminationByIsolation"),
7  ("againstElectron", "DiscriminationAgainstElectron"),
8  ("againstMuon", "DiscriminationAgainstMuon")
9 ]

Definition at line 83 of file tauTools.py.

list tauTools.hpsTauIDSources

Definition at line 101 of file tauTools.py.