Skip to content

Commit

Permalink
Merge pull request #3762 from jpavel/71x_taus_jetPreSelection_ak4
Browse files Browse the repository at this point in the history
Reco -- Adding pre-selection to input (AK4) jets for tau RECO
  • Loading branch information
ktf committed May 14, 2014
2 parents 7748635 + 836b36b commit 45b6e85
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 26 deletions.
18 changes: 12 additions & 6 deletions RecoTauTag/Configuration/python/HPSPFTaus_cff.py
Expand Up @@ -22,6 +22,12 @@
# Load helper functions to change the source of the discriminants
from RecoTauTag.RecoTau.TauDiscriminatorTools import *

# Load PFjet input parameters
from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs

# deltaBeta correction factor calculated for taus from ak5PFJets (Run I)
ak5dBetaCorrection=0.0772/0.1687

# Select those taus that pass the HPS selections
# - pt > 15, mass cuts, tauCone cut
from RecoTauTag.RecoTau.PFRecoTauDiscriminationByHPSSelection_cfi import hpsSelectionDiscriminator, decayMode_1Prong0Pi0, decayMode_1Prong1Pi0, decayMode_1Prong2Pi0, decayMode_3Prong0Pi0
Expand Down Expand Up @@ -125,7 +131,7 @@
deltaBetaPUTrackPtCutOverride = cms.double(0.5),
applyDeltaBetaCorrection = True,
isoConeSizeForDeltaBeta = 0.8,
deltaBetaFactor = "%0.4f"%(0.0494/0.1687),
deltaBetaFactor = "%0.4f"%(0.0772/0.1687),
applyOccupancyCut = False,
applySumPtCut = True,
)
Expand All @@ -141,7 +147,7 @@
hpsPFTauDiscriminationByVLooseCombinedIsolationDBSumPtCorr = hpsPFTauDiscriminationByVLooseIsolationDBSumPtCorr.clone(
ApplyDiscriminationByTrackerIsolation = True,
ApplyDiscriminationByECALIsolation = True,
deltaBetaFactor = "%0.4f"%((0.09/0.16)*(0.0494/0.1687)),
deltaBetaFactor = "%0.4f"%((0.09/0.25)*(0.0772/0.1687)),
applyOccupancyCut = False,
applySumPtCut = True,
maximumSumPtCut = 3.0,
Expand All @@ -153,7 +159,7 @@
hpsPFTauDiscriminationByLooseCombinedIsolationDBSumPtCorr = hpsPFTauDiscriminationByLooseIsolationDBSumPtCorr.clone(
ApplyDiscriminationByTrackerIsolation = True,
ApplyDiscriminationByECALIsolation = True,
deltaBetaFactor = "%0.4f"%(0.0494/0.1687),
deltaBetaFactor = "%0.4f"%(ak5dBetaCorrection),
applyOccupancyCut = False,
applySumPtCut = True,
maximumSumPtCut = 2.0,
Expand Down Expand Up @@ -182,7 +188,7 @@
hpsPFTauDiscriminationByMediumCombinedIsolationDBSumPtCorr = hpsPFTauDiscriminationByMediumIsolationDBSumPtCorr.clone(
ApplyDiscriminationByTrackerIsolation = True,
ApplyDiscriminationByECALIsolation = True,
deltaBetaFactor = "%0.4f"%(0.0494/0.1687),
deltaBetaFactor = "%0.4f"%(ak5dBetaCorrection),
applyOccupancyCut = False,
applySumPtCut = True,
maximumSumPtCut = 1.0,
Expand All @@ -194,7 +200,7 @@
hpsPFTauDiscriminationByTightCombinedIsolationDBSumPtCorr = hpsPFTauDiscriminationByTightIsolationDBSumPtCorr.clone(
ApplyDiscriminationByTrackerIsolation = True,
ApplyDiscriminationByECALIsolation = True,
deltaBetaFactor = "%0.4f"%(0.0494/0.1687),
deltaBetaFactor = "%0.4f"%(ak5dBetaCorrection),
applyOccupancyCut = False,
applySumPtCut = True,
maximumSumPtCut = 0.8,
Expand Down Expand Up @@ -587,7 +593,7 @@
applyDeltaBetaCorrection = cms.bool(False),
storeRawSumPt = cms.bool(True),
storeRawPUsumPt = cms.bool(False),
customOuterCone = cms.double(0.4),
customOuterCone = PFRecoTauPFJetInputs.isolationConeSize,
isoConeSizeForDeltaBeta = cms.double(0.8),
verbosity = cms.int32(0)
)
Expand Down
9 changes: 6 additions & 3 deletions RecoTauTag/Configuration/python/RecoPFTauTag_cff.py
@@ -1,5 +1,7 @@
import FWCore.ParameterSet.Config as cms

from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs

#-------------------------------------------------------------------------------
#------------------ Jet Production and Preselection-----------------------------
#-------------------------------------------------------------------------------
Expand All @@ -19,15 +21,15 @@
from RecoTauTag.RecoTau.RecoTauJetRegionProducer_cfi import \
RecoTauJetRegionProducer
recoTauAK4PFJets08Region=RecoTauJetRegionProducer.clone(
src = cms.InputTag("ak4PFJets")
src = PFRecoTauPFJetInputs.inputJetCollection
)



# Reconstruct the pi zeros in our pre-selected jets.
from RecoTauTag.RecoTau.RecoTauPiZeroProducer_cfi import \
ak4PFJetsLegacyHPSPiZeros
ak4PFJetsLegacyHPSPiZeros.jetSrc = cms.InputTag("ak4PFJets")
ak4PFJetsLegacyHPSPiZeros.jetSrc = PFRecoTauPFJetInputs.inputJetCollection
# import charged hadrons
from RecoTauTag.RecoTau.PFRecoTauChargedHadronProducer_cfi import \
ak4PFJetsRecoTauChargedHadrons
Expand All @@ -43,7 +45,7 @@
from RecoTauTag.RecoTau.RecoTauCombinatoricProducer_cfi import \
combinatoricRecoTaus

combinatoricRecoTaus.jetSrc = cms.InputTag("ak4PFJets")
combinatoricRecoTaus.jetSrc = PFRecoTauPFJetInputs.inputJetCollection


#-------------------------------------------------------------------------------
Expand All @@ -63,6 +65,7 @@
from RecoJets.JetAssociationProducers.ak4JTA_cff \
import ak4JetTracksAssociatorAtVertexPF
ak4PFJetTracksAssociatorAtVertex = ak4JetTracksAssociatorAtVertexPF.clone()
ak4PFJetTracksAssociatorAtVertex.jets = PFRecoTauPFJetInputs.inputJetCollection
tautagInfoModifer = cms.PSet(
name = cms.string("TTIworkaround"),
plugin = cms.string("RecoTauTagInfoWorkaroundModifer"),
Expand Down
8 changes: 7 additions & 1 deletion RecoTauTag/RecoTau/plugins/RecoTauProducer.cc
Expand Up @@ -58,6 +58,9 @@ class RecoTauProducer : public edm::stream::EDProducer<>
edm::InputTag jetRegionSrc_;
edm::InputTag chargedHadronSrc_;
edm::InputTag piZeroSrc_;

double minJetPt_;
double maxJetAbsEta_;
//token definition
edm::EDGetTokenT<reco::CandidateView> jet_token;
edm::EDGetTokenT<edm::Association<reco::PFJetCollection> > jetRegion_token;
Expand All @@ -81,6 +84,8 @@ RecoTauProducer::RecoTauProducer(const edm::ParameterSet& pset)
chargedHadronSrc_ = pset.getParameter<edm::InputTag>("chargedHadronSrc");
piZeroSrc_ = pset.getParameter<edm::InputTag>("piZeroSrc");

minJetPt_ = ( pset.exists("minJetPt") ) ? pset.getParameter<double>("minJetPt") : -1.0;
maxJetAbsEta_ = ( pset.exists("maxJetAbsEta") ) ? pset.getParameter<double>("maxJetAbsEta") : 99.0;
//consumes definition
jet_token=consumes<reco::CandidateView>(jetSrc_);
jetRegion_token = consumes<edm::Association<reco::PFJetCollection> >(jetRegionSrc_);
Expand Down Expand Up @@ -159,6 +164,8 @@ void RecoTauProducer::produce(edm::Event& evt, const edm::EventSetup& es)
// Loop over the jets and build the taus for each jet
BOOST_FOREACH( reco::PFJetRef jetRef, jets ) {
// Get the jet with extra constituents from an area around the jet
if(jetRef->pt() - minJetPt_ < 1e-5) continue;
if(fabs(jetRef->eta()) - maxJetAbsEta_ > -1e-5) continue;
reco::PFJetRef jetRegionRef = (*jetRegionHandle)[jetRef];
if ( jetRegionRef.isNull() ) {
throw cms::Exception("BadJetRegionRef")
Expand Down Expand Up @@ -189,7 +196,6 @@ void RecoTauProducer::produce(edm::Event& evt, const edm::EventSetup& es)

// Get the pizeros associated with this jet
const std::vector<reco::RecoTauPiZero>& piZeros = (*piZeroAssoc)[jetRef];

// Loop over our builders and create the set of taus for this jet
unsigned int nTausBuilt = 0;
for ( BuilderList::const_iterator builder = builders_.begin();
Expand Down
Expand Up @@ -4,9 +4,10 @@
import RecoTauTag.RecoTau.PFRecoTauChargedHadronQualityPlugins_cfi as ranking

from RecoTauTag.RecoTau.PFRecoTauQualityCuts_cfi import PFTauQualityCuts
from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs

ak4PFJetsRecoTauChargedHadrons = cms.EDProducer("PFRecoTauChargedHadronProducer",
jetSrc = cms.InputTag("ak4PFJets"),
jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
jetRegionSrc = cms.InputTag("recoTauAK4PFJets08Region"),
outputSelection = cms.string('pt > %1.1f' % PFTauQualityCuts.signalQualityCuts.minTrackPt.value()), # CV: apply minimum Pt cut as sanity check
builders = cms.VPSet(
Expand Down
@@ -1,6 +1,7 @@
import FWCore.ParameterSet.Config as cms

from RecoTauTag.RecoTau.TauDiscriminatorTools import noPrediscriminants
from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs

decayMode_1Prong0Pi0 = cms.PSet(
nCharged = cms.uint32(1),
Expand Down Expand Up @@ -63,7 +64,7 @@
"PFRecoTauDiscriminationByHPSSelection",
PFTauProducer = cms.InputTag('combinatoricRecoTaus'),
Prediscriminants = noPrediscriminants,
matchingCone = cms.double(0.4),
matchingCone = PFRecoTauPFJetInputs.jetConeSize,
minTauPt = cms.double(0.0),
coneSizeFormula = cms.string("max(min(0.1, 3.0/pt()), 0.05)"),
decayModes = cms.VPSet(
Expand Down
Expand Up @@ -33,7 +33,7 @@

# This must correspond to the cone size of the algorithm which built the
# tau. (or if customOuterCone option is used, the custom cone size)
isoConeSizeForDeltaBeta = cms.double(0.4),
isoConeSizeForDeltaBeta = cms.double(0.5),
# The delta beta factor maps the expected neutral contribution in the
# isolation cone from the observed PU charged contribution. This factor can
# optionally be a function (use 'x') of the number of vertices in the event
Expand All @@ -48,6 +48,6 @@
# Rho corrections
applyRhoCorrection = cms.bool(False),
rhoProducer = cms.InputTag("fixedGridRhoFastjetAll"),
rhoConeSize = cms.double(0.4),
rhoConeSize = cms.double(0.5),
rhoUEOffsetCorrection = cms.double(1.0)
)
9 changes: 9 additions & 0 deletions RecoTauTag/RecoTau/python/PFRecoTauPFJetInputs_cfi.py
@@ -0,0 +1,9 @@
import FWCore.ParameterSet.Config as cms

PFRecoTauPFJetInputs = cms.PSet (
inputJetCollection = cms.InputTag("ak4PFJets"),
jetConeSize = cms.double(0.5), # for matching between tau and jet
isolationConeSize = cms.double(0.5), # for the size of the tau isolation
minJetPt = cms.double(14.0), # do not make taus from jet with pt below that value
maxJetAbsEta = cms.double(2.5) # do not make taus from jet more forward/backward than this
)
8 changes: 5 additions & 3 deletions RecoTauTag/RecoTau/python/RecoTauCombinatoricProducer_cfi.py
Expand Up @@ -2,7 +2,7 @@
import FWCore.ParameterSet.Config as cms
from RecoTauTag.RecoTau.PFRecoTauQualityCuts_cfi import PFTauQualityCuts
from RecoTauTag.RecoTau.PFRecoTauEnergyAlgorithmPlugin_cfi import pfTauEnergyAlgorithmPlugin

from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs
'''
Configuration for combinatoric PFTau producer plugins.
Expand Down Expand Up @@ -74,7 +74,7 @@
name = cms.string("combinatoric"),
plugin = cms.string("RecoTauBuilderCombinatoricPlugin"),
pfCandSrc = cms.InputTag("particleFlow"),
isolationConeSize = cms.double(0.4),
isolationConeSize = PFRecoTauPFJetInputs.isolationConeSize,
qualityCuts = PFTauQualityCuts,
decayModes = cms.VPSet(
combinatoricDecayModeConfigs.config1prong0pi0,
Expand All @@ -87,7 +87,9 @@
)

combinatoricRecoTaus = cms.EDProducer("RecoTauProducer",
jetSrc = cms.InputTag("ak4PFJets"),
jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
minJetPt = PFRecoTauPFJetInputs.minJetPt,
maxJetAbsEta = PFRecoTauPFJetInputs.maxJetAbsEta,
jetRegionSrc = cms.InputTag("recoTauAK4PFJets08Region"),
chargedHadronSrc = cms.InputTag('ak4PFJetsRecoTauChargedHadrons'),
piZeroSrc = cms.InputTag("ak4PFJetsRecoTauPiZeros"),
Expand Down
4 changes: 3 additions & 1 deletion RecoTauTag/RecoTau/python/RecoTauJetRegionProducer_cfi.py
@@ -1,9 +1,11 @@
import FWCore.ParameterSet.Config as cms

from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs

RecoTauJetRegionProducer = cms.EDProducer(
"RecoTauJetRegionProducer",
deltaR = cms.double(0.8),
src = cms.InputTag("ak4PFJets"),
src = PFRecoTauPFJetInputs.inputJetCollection,
pfCandSrc = cms.InputTag("particleFlow"),
pfCandAssocMapSrc = cms.InputTag("")
)
10 changes: 6 additions & 4 deletions RecoTauTag/RecoTau/python/RecoTauPiZeroProducer_cfi.py
Expand Up @@ -2,10 +2,12 @@

import RecoTauTag.RecoTau.RecoTauPiZeroBuilderPlugins_cfi as builders
import RecoTauTag.RecoTau.RecoTauPiZeroQualityPlugins_cfi as ranking
from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs


ak4PFJetsRecoTauGreedyPiZeros = cms.EDProducer(
"RecoTauPiZeroProducer",
jetSrc = cms.InputTag("ak4PFJets"),
jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
massHypothesis = cms.double(0.136),
outputSelection = cms.string('pt > 1.5'),
builders = cms.VPSet(
Expand All @@ -18,7 +20,7 @@

ak4PFJetsRecoTauPiZeros = cms.EDProducer(
"RecoTauPiZeroProducer",
jetSrc = cms.InputTag("ak4PFJets"),
jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
massHypothesis = cms.double(0.136),
outputSelection = cms.string('pt > 1.5'),
builders = cms.VPSet(
Expand All @@ -35,7 +37,7 @@

ak4PFJetsLegacyTaNCPiZeros = cms.EDProducer(
"RecoTauPiZeroProducer",
jetSrc = cms.InputTag("ak4PFJets"),
jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
massHypothesis = cms.double(0.136),
outputSelection = cms.string('pt > 1.5'),
builders = cms.VPSet(
Expand All @@ -49,7 +51,7 @@

ak4PFJetsLegacyHPSPiZeros = cms.EDProducer(
"RecoTauPiZeroProducer",
jetSrc = cms.InputTag("ak4PFJets"),
jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
massHypothesis = cms.double(0.136),
outputSelection = cms.string('pt > 0'),
builders = cms.VPSet(
Expand Down
10 changes: 6 additions & 4 deletions RecoTauTag/RecoTau/python/RecoTauShrinkingConeProducer_cfi.py
@@ -1,6 +1,6 @@
import FWCore.ParameterSet.Config as cms
from RecoTauTag.RecoTau.PFRecoTauQualityCuts_cfi import PFTauQualityCuts

from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs
'''
Configuration for 'shrinkingCone' PFTau Producer
Expand Down Expand Up @@ -29,10 +29,12 @@

shrinkingConeRecoTaus = cms.EDProducer(
"RecoTauProducer",
jetSrc = cms.InputTag("ak4PFJets"),
jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
piZeroSrc = cms.InputTag("ak4PFJetsRecoTauPiZeros"),
jetRegionSrc = cms.InputTag("recoTauAK5PFJets08Region"),
chargedHadronSrc = cms.InputTag('ak5PFJetsRecoTauChargedHadrons'),
jetRegionSrc = cms.InputTag("recoTauAK4PFJets08Region"),
chargedHadronSrc = cms.InputTag('ak4PFJetsRecoTauChargedHadrons'),
minJetPt = cms.double(-1.0),
maxJetAbsEta = cms.double(99.0),
builders = cms.VPSet(
_shrinkingConeRecoTausConfig
),
Expand Down

0 comments on commit 45b6e85

Please sign in to comment.