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 CommonTools.ParticleFlow.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 pfTausProducerSansRefs = shrinkingConePFTauProducerSansRefs.clone()
00028 pfTausProducer = shrinkingConePFTauProducer.clone()
00029 pfTausProducer.src = "pfTausProducerSansRefs"
00030
00031
00032
00033 pfTausDiscriminationByLeadingTrackFinding = \
00034 shrinkingConePFTauDiscriminationByLeadingTrackFinding.clone()
00035 pfTausDiscriminationByLeadingTrackFinding.PFTauProducer = "pfTausProducer"
00036
00037
00038 pfTausDiscriminationByLeadingPionPtCut = \
00039 shrinkingConePFTauDiscriminationByLeadingPionPtCut.clone()
00040 pfTausDiscriminationByLeadingPionPtCut.PFTauProducer = "pfTausProducer"
00041
00042 pfTausDiscriminationByIsolation = \
00043 shrinkingConePFTauDiscriminationByIsolation.clone()
00044 pfTausDiscriminationByIsolation.Prediscriminants.leadTrack.Producer = \
00045 "pfTausDiscriminationByLeadingTrackFinding"
00046 pfTausDiscriminationByIsolation.PFTauProducer = "pfTausProducer"
00047
00048
00049 pfTausBaseSequence = cms.Sequence(
00050 pfTausProducerSansRefs +
00051 pfTausProducer +
00052 pfTausDiscriminationByLeadingTrackFinding +
00053 pfTausDiscriminationByLeadingPionPtCut +
00054 pfTausDiscriminationByIsolation
00055 )
00056
00057
00058 from RecoJets.JetAssociationProducers.j2tParametersVX_cfi import *
00059 pfJetTracksAssociatorAtVertex = cms.EDProducer(
00060 "JetTracksAssociatorAtVertex",
00061 j2tParametersVX,
00062 jets = cms.InputTag("pfJets")
00063 )
00064 pfTausProducerSansRefs.jetSrc = pfJetTracksAssociatorAtVertex.jets
00065 pfTausProducer.jetSrc = pfTausProducerSansRefs.jetSrc
00066
00067 pfTausProducerSansRefs.builders[0].pfCandSrc = pfJets.src
00068 pfTausProducer.builders[0].pfCandSrc = pfTausProducerSansRefs.builders[0].pfCandSrc
00069
00070 pfTauPileUpVertices = cms.EDFilter(
00071 "RecoTauPileUpVertexSelector",
00072 src = cms.InputTag("offlinePrimaryVertices"),
00073 minTrackSumPt = cms.double(5),
00074 filter = cms.bool(False),
00075 )
00076
00077
00078 pfJetsPiZeros = ak5PFJetsRecoTauPiZeros.clone()
00079 pfJetsLegacyTaNCPiZeros = ak5PFJetsLegacyTaNCPiZeros.clone()
00080 pfJetsLegacyHPSPiZeros = ak5PFJetsLegacyHPSPiZeros.clone()
00081
00082 pfJetsPiZeros.jetSrc = pfJetTracksAssociatorAtVertex.jets
00083 pfJetsLegacyTaNCPiZeros.jetSrc = pfJetTracksAssociatorAtVertex.jets
00084 pfJetsLegacyHPSPiZeros.jetSrc = pfJetTracksAssociatorAtVertex.jets
00085
00086 pfTauPFJets08Region = recoTauAK5PFJets08Region.clone()
00087 pfTauPFJets08Region.src = pfJetTracksAssociatorAtVertex.jets
00088 pfTauPFJets08Region.pfSrc = pfJets.src
00089 pfJetsPiZeros.jetRegionSrc = 'pfTauPFJets08Region'
00090 pfJetsLegacyTaNCPiZeros.jetRegionSrc = 'pfTauPFJets08Region'
00091 pfJetsLegacyHPSPiZeros.jetRegionSrc = 'pfTauPFJets08Region'
00092 pfTausProducerSansRefs.piZeroSrc = "pfJetsLegacyTaNCPiZeros"
00093 pfTausProducerSansRefs.jetRegionSrc = pfJetsLegacyTaNCPiZeros.jetRegionSrc
00094 pfTausProducer.piZeroSrc = pfTausProducerSansRefs.piZeroSrc
00095 pfTausProducer.jetRegionSrc = pfTausProducerSansRefs.jetRegionSrc
00096
00097 pfTauTagInfoProducer = pfRecoTauTagInfoProducer.clone()
00098 pfTauTagInfoProducer.PFCandidateProducer = pfJets.src
00099 pfTauTagInfoProducer.PFJetTracksAssociatorProducer = 'pfJetTracksAssociatorAtVertex'
00100
00101 pfTausProducerSansRefs.modifiers[1] = cms.PSet(
00102 name = cms.string("pfTauTTIworkaround"),
00103 plugin = cms.string("RecoTauTagInfoWorkaroundModifer"),
00104 pfTauTagInfoSrc = cms.InputTag("pfTauTagInfoProducer"),
00105 )
00106 pfTausProducer.modifiers[1] = pfTausProducerSansRefs.modifiers[1]
00107
00108 pfTausPreSequence = cms.Sequence(
00109 pfJetTracksAssociatorAtVertex +
00110 pfTauPFJets08Region +
00111 pfTauPileUpVertices +
00112 pfTauTagInfoProducer +
00113 pfJetsPiZeros +
00114 pfJetsLegacyTaNCPiZeros +
00115 pfJetsLegacyHPSPiZeros
00116 )
00117
00118
00119 pfTaus = pfTauSelector.clone()
00120 pfTaus.src = cms.InputTag("pfTausProducer")
00121 pfTaus.discriminators = cms.VPSet(
00122 cms.PSet( discriminator=cms.InputTag("pfTausDiscriminationByLeadingPionPtCut"),selectionCut=cms.double(0.5) ),
00123 cms.PSet( discriminator=cms.InputTag("pfTausDiscriminationByIsolation"),selectionCut=cms.double(0.5) )
00124 )
00125
00126 pfTauSequence = cms.Sequence(
00127 pfTausPreSequence +
00128 pfTausBaseSequence +
00129 pfTaus
00130 )
00131
00132