CMS 3D CMS Logo

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

Functions

def adaptTauDiscriminator
 
def adaptTauDiscriminatorSequence
 
def recoTauTypeMapper
 
def setTauSource
 
def subParameterSets
 

Variables

tuple leadTrackFinding
 
tuple noPrediscriminants
 
 producerIsTauTypeMapper = lambdatauProducer:tauProducer
 
tuple recoTauTypeMapperRegex = re.compile("(\w*)Producer")
 
tuple requireLeadPion
 
tuple requireLeadTrack
 

Function Documentation

def TauDiscriminatorTools.adaptTauDiscriminator (   discriminator,
  newTauProducer = 'shrinkingConePFTauProducer',
  oldTauTypeMapper = recoTauTypeMapper,
  newTauTypeMapper = recoTauTypeMapper,
  preservePFTauProducer = False 
)
Change a TauDiscriminator to use a different tau/prediscriminant sources

Tau discriminators use the following convention: 
     [tauType]DiscriminationByXXX

i.e. fixedConePFTauDiscriminationByIsolation,
allLayer1TausDiscriminationByIsolation, etc

However, the mapping of tauType to tau producer name is not constant.  In
RECO, the form is [tauType]Producer.  In PAT, the producer is just named
[tauType].  To manage this oldTauTypeMapper and newTauTypeMapper are
functions with signature f(str) that translate a TauProducer name (like
shrinkingConePFTauProducer) to its type (shrinkingConePFTau).  Two types of
mapping are provided, 
     * recoTauTypeMapper
           shrinkingConePFTauProducer->shrinkingConePFTau
     * producerIsTauTypeMapper
           allLayer1Taus->allLayer1Taus

Definition at line 44 of file TauDiscriminatorTools.py.

References subParameterSets().

Referenced by adaptTauDiscriminatorSequence(), pfTools.reconfigurePF2PATTaus(), and setTauSource().

44 
45  preservePFTauProducer = False):
46  ''' Change a TauDiscriminator to use a different tau/prediscriminant sources
47 
48  Tau discriminators use the following convention:
49  [tauType]DiscriminationByXXX
50 
51  i.e. fixedConePFTauDiscriminationByIsolation,
52  allLayer1TausDiscriminationByIsolation, etc
53 
54  However, the mapping of tauType to tau producer name is not constant. In
55  RECO, the form is [tauType]Producer. In PAT, the producer is just named
56  [tauType]. To manage this oldTauTypeMapper and newTauTypeMapper are
57  functions with signature f(str) that translate a TauProducer name (like
58  shrinkingConePFTauProducer) to its type (shrinkingConePFTau). Two types of
59  mapping are provided,
60  * recoTauTypeMapper
61  shrinkingConePFTauProducer->shrinkingConePFTau
62  * producerIsTauTypeMapper
63  allLayer1Taus->allLayer1Taus
64 
65  '''
66 
67  oldTauProducer = discriminator.PFTauProducer
68  if isinstance(newTauProducer, str):
69  newTauProducer = cms.InputTag(newTauProducer)
70 
71  # This is useful for the PF2PAT case where you wish to set the producer name
72  # seperately
73  if not preservePFTauProducer:
74  discriminator.PFTauProducer = newTauProducer
75 
76  oldTauType = oldTauTypeMapper(oldTauProducer.value())
77  newTauType = newTauTypeMapper(newTauProducer.value())
78 
79  replacementRegex = re.compile(oldTauType)
80 
81  # Adapt all the prediscriminants
82  for prediscriminant in subParameterSets(discriminator.Prediscriminants):
83  oldProducer = prediscriminant.Producer.value()
84  # Replace the old tau type by the new tau type in the prediscrimant
85  # producer
86  prediscriminant.Producer = cms.InputTag(replacementRegex.sub(newTauType,
87  oldProducer))
def TauDiscriminatorTools.adaptTauDiscriminatorSequence (   sequence,
  kwargs 
)

Definition at line 88 of file TauDiscriminatorTools.py.

References adaptTauDiscriminator().

88 
89 def adaptTauDiscriminatorSequence(sequence, **kwargs):
90  def fixer(discriminator):
91  if hasattr(discriminator, "Prediscriminants"):
92  adaptTauDiscriminator(discriminator, **kwargs)
93  sequence.visit(fixer)
def TauDiscriminatorTools.recoTauTypeMapper (   tauProducer)

Definition at line 36 of file TauDiscriminatorTools.py.

References watchdog.group.

Referenced by pfTools.reconfigurePF2PATTaus().

36 
37 def recoTauTypeMapper(tauProducer):
38  return recoTauTypeMapperRegex.match(tauProducer).group(1)
39 
# For taus where the producer name is the type, like "allLayer1Taus", etc
tuple group
Definition: watchdog.py:82
def TauDiscriminatorTools.setTauSource (   discriminator,
  newTauProducer 
)
Same as adaptTauDiscriminator, kept for backwards compatibility

Definition at line 94 of file TauDiscriminatorTools.py.

References adaptTauDiscriminator().

94 
95 def setTauSource(discriminator, newTauProducer):
96  ''' Same as adaptTauDiscriminator, kept for backwards compatibility'''
97  adaptTauDiscriminator(discriminator, newTauProducer)
98 
def TauDiscriminatorTools.subParameterSets (   pSet)
Generator to return all sub-PSets in a PSet 

Definition at line 27 of file TauDiscriminatorTools.py.

References mps_monitormerge.items.

Referenced by adaptTauDiscriminator().

27 
28 def subParameterSets(pSet):
29  ''' Generator to return all sub-PSets in a PSet '''
30  for name, value in pSet.parameters_().items():
31  if isinstance(value, cms.PSet):
32  yield getattr(pSet, name)
33 
# For RECO type taus, where the tau producer is [tauType]Producer

Variable Documentation

tuple TauDiscriminatorTools.leadTrackFinding
Initial value:
1 = cms.PSet(
2  Producer = cms.InputTag('pfRecoTauDiscriminationByLeadingTrackFinding'),
3  cut = cms.double(0.5)
4 )

Definition at line 4 of file TauDiscriminatorTools.py.

tuple TauDiscriminatorTools.noPrediscriminants
Initial value:
1 = cms.PSet(
2  BooleanOperator = cms.string("and"),
3  )

Definition at line 10 of file TauDiscriminatorTools.py.

TauDiscriminatorTools.producerIsTauTypeMapper = lambdatauProducer:tauProducer

Definition at line 40 of file TauDiscriminatorTools.py.

Referenced by pfTools.reconfigurePF2PATTaus().

tuple TauDiscriminatorTools.recoTauTypeMapperRegex = re.compile("(\w*)Producer")

Definition at line 35 of file TauDiscriminatorTools.py.

tuple TauDiscriminatorTools.requireLeadPion
Initial value:
1 = cms.PSet(
2  BooleanOperator = cms.string("and"),
3  leadPion = leadTrackFinding,
4  )

Definition at line 22 of file TauDiscriminatorTools.py.

tuple TauDiscriminatorTools.requireLeadTrack
Initial value:
1 = cms.PSet(
2  BooleanOperator = cms.string("and"),
3  leadTrack = leadTrackFinding,
4  )

Definition at line 15 of file TauDiscriminatorTools.py.