CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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
 
tuple requireLeadTrackCalo
 

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 53 of file TauDiscriminatorTools.py.

References subParameterSets().

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

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

Definition at line 97 of file TauDiscriminatorTools.py.

References adaptTauDiscriminator().

97 
98 def adaptTauDiscriminatorSequence(sequence, **kwargs):
99  def fixer(discriminator):
100  if hasattr(discriminator, "Prediscriminants"):
101  adaptTauDiscriminator(discriminator, **kwargs)
102  sequence.visit(fixer)
def TauDiscriminatorTools.recoTauTypeMapper (   tauProducer)

Definition at line 45 of file TauDiscriminatorTools.py.

Referenced by pfTools.reconfigurePF2PATTaus().

45 
46 def recoTauTypeMapper(tauProducer):
47  return recoTauTypeMapperRegex.match(tauProducer).group(1)
48 
# For taus where the producer name is the type, like "allLayer1Taus", etc
def TauDiscriminatorTools.setTauSource (   discriminator,
  newTauProducer 
)
Same as adaptTauDiscriminator, kept for backwards compatibility

Definition at line 103 of file TauDiscriminatorTools.py.

References adaptTauDiscriminator().

104 def setTauSource(discriminator, newTauProducer):
105  ''' Same as adaptTauDiscriminator, kept for backwards compatibility'''
106  adaptTauDiscriminator(discriminator, newTauProducer)
107 
def TauDiscriminatorTools.subParameterSets (   pSet)
Generator to return all sub-PSets in a PSet 

Definition at line 36 of file TauDiscriminatorTools.py.

Referenced by adaptTauDiscriminator().

36 
37 def subParameterSets(pSet):
38  ''' Generator to return all sub-PSets in a PSet '''
39  for name, value in pSet.parameters_().iteritems():
40  if isinstance(value, cms.PSet):
41  yield getattr(pSet, name)
42 
# 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 49 of file TauDiscriminatorTools.py.

Referenced by pfTools.reconfigurePF2PATTaus().

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

Definition at line 44 of file TauDiscriminatorTools.py.

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

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

tuple TauDiscriminatorTools.requireLeadTrackCalo
Initial value:
1 = cms.PSet(
2  BooleanOperator = cms.string("and"),
3  leadTrack = cms.PSet(
4  Producer = cms.InputTag('caloRecoTauDiscriminationByLeadingTrackFinding'),
5  cut = cms.double(0.5)
6  )
7  )

Definition at line 21 of file TauDiscriminatorTools.py.