Go to the documentation of this file.00001 import FWCore.ParameterSet.Config as cms
00002
00003 from RecoTauTag.Configuration.RecoPFTauTag_cff import *
00004 from RecoTauTag.TauTagTools.PFTauSelector_cfi import pfTauSelector
00005
00006 from PhysicsTools.PFCandProducer.pfJets_cff import pfJets
00007
00008 '''
00009
00010 pfTaus_cff
00011
00012 Specify the prototype/default Configuration of 'pfTaus', which is a selected
00013 collection of taus that is used as an input to the 'patTaus'. The pf2pat tau
00014 selection is constructed by:
00015 * Rerunning a tau algorithm (fixedConePFTaus, shrinkingConePFTaus, etc)
00016 * Cloning and running a set of discriminants for this algorithm so they are
00017 independent of other cfis
00018 * Constructing pfTaus via a PFTauSelector using the cloned discriminants
00019 * In PhysicsTools.PatAlgos.tools.pfTools the regular discriminants are
00020 modified to take the pfTaus as input. The original discriminant
00021 labels are kept (i.e. fixedConePFTauDiscriminationByIsolation) but the Tau
00022 source is defined as pfTaus
00023
00024 '''
00025
00026
00027 pfTausProducer = shrinkingConePFTauProducer.clone()
00028
00029
00030
00031 pfTausDiscriminationByLeadingTrackFinding = \
00032 shrinkingConePFTauDiscriminationByLeadingTrackFinding.clone()
00033 pfTausDiscriminationByLeadingTrackFinding.PFTauProducer = "pfTausProducer"
00034
00035
00036 pfTausDiscriminationByLeadingPionPtCut = \
00037 shrinkingConePFTauDiscriminationByLeadingPionPtCut.clone()
00038 pfTausDiscriminationByLeadingPionPtCut.PFTauProducer = "pfTausProducer"
00039
00040 pfTausDiscriminationByIsolation = \
00041 shrinkingConePFTauDiscriminationByIsolation.clone()
00042 pfTausDiscriminationByIsolation.Prediscriminants.leadTrack.Producer = \
00043 "pfTausDiscriminationByLeadingTrackFinding"
00044 pfTausDiscriminationByIsolation.PFTauProducer = "pfTausProducer"
00045
00046
00047 pfTausBaseSequence = cms.Sequence(
00048 pfTausProducer +
00049 pfTausDiscriminationByLeadingTrackFinding +
00050 pfTausDiscriminationByLeadingPionPtCut +
00051 pfTausDiscriminationByIsolation
00052 )
00053
00054
00055 from RecoJets.JetAssociationProducers.j2tParametersVX_cfi import *
00056 pfJetTracksAssociatorAtVertex = cms.EDProducer(
00057 "JetTracksAssociatorAtVertex",
00058 j2tParametersVX,
00059 jets = cms.InputTag("pfJets")
00060 )
00061 pfTausProducer.jetSrc = pfJetTracksAssociatorAtVertex.jets
00062
00063 pfTausProducer.builders[0].pfCandSrc = pfJets.src
00064
00065
00066 pfJetsPiZeros = ak5PFJetsRecoTauPiZeros.clone()
00067 pfJetsLegacyTaNCPiZeros = ak5PFJetsLegacyTaNCPiZeros.clone()
00068 pfJetsLegacyHPSPiZeros = ak5PFJetsLegacyHPSPiZeros.clone()
00069
00070 pfJetsPiZeros.src = pfJetTracksAssociatorAtVertex.jets
00071 pfJetsLegacyTaNCPiZeros.src = pfJetTracksAssociatorAtVertex.jets
00072 pfJetsLegacyHPSPiZeros.src = pfJetTracksAssociatorAtVertex.jets
00073
00074
00075 pfTauTagInfoProducer = pfRecoTauTagInfoProducer.clone()
00076 pfTauTagInfoProducer.PFCandidateProducer = pfJets.src
00077 pfTauTagInfoProducer.PFJetTracksAssociatorProducer = 'pfJetTracksAssociatorAtVertex'
00078
00079 pfTausProducer.modifiers[1] = cms.PSet(
00080 name = cms.string("pfTauTTIworkaround"),
00081 plugin = cms.string("RecoTauTagInfoWorkaroundModifer"),
00082 pfTauTagInfoSrc = cms.InputTag("pfTauTagInfoProducer"),
00083 )
00084
00085 pfTausPreSequence = cms.Sequence(
00086 pfJetTracksAssociatorAtVertex +
00087 pfTauTagInfoProducer +
00088 pfJetsPiZeros +
00089 pfJetsLegacyTaNCPiZeros +
00090 pfJetsLegacyHPSPiZeros
00091 )
00092
00093
00094 pfTaus = pfTauSelector.clone()
00095 pfTaus.src = cms.InputTag("pfTausProducer")
00096 pfTaus.discriminators = cms.VPSet(
00097 cms.PSet( discriminator=cms.InputTag("pfTausDiscriminationByLeadingPionPtCut"),selectionCut=cms.double(0.5) ),
00098 cms.PSet( discriminator=cms.InputTag("pfTausDiscriminationByIsolation"),selectionCut=cms.double(0.5) )
00099 )
00100
00101 pfTauSequence = cms.Sequence(
00102 pfTausPreSequence +
00103 pfTausBaseSequence +
00104 pfTaus
00105 )
00106
00107