2 import FWCore.ParameterSet.Config
as cms
4 from RecoTauTag.RecoTau.PFRecoTauEnergyAlgorithmPlugin_cfi
import pfTauEnergyAlgorithmPlugin
5 from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi
import PFRecoTauPFJetInputs
8 Configuration for combinatoric PFTau producer plugins.
10 Note that this plugin produces many taus for each PFJet!
11 To be useful the output from this module must be cleaned
12 using an implementation of the RecoTauCleaner module.
14 Author: Evan K. Friis, UC Davis
28 combinatoricDecayModeConfigs = cms.PSet(
29 config1prong0pi0 = cms.PSet(
31 nCharged = cms.uint32(1),
32 nPiZeros = cms.uint32(0),
33 maxTracks = cms.uint32(6),
34 maxPiZeros = cms.uint32(0),
36 config1prong1pi0 = cms.PSet(
38 nCharged = cms.uint32(1),
39 nPiZeros = cms.uint32(1),
40 maxTracks = cms.uint32(6),
41 maxPiZeros = cms.uint32(6),
43 config1prong2pi0 = cms.PSet(
45 nCharged = cms.uint32(1),
46 nPiZeros = cms.uint32(2),
47 maxTracks = cms.uint32(6),
48 maxPiZeros = cms.uint32(5),
50 config2prong0pi0 = cms.PSet(
52 nCharged = cms.uint32(2),
53 nPiZeros = cms.uint32(0),
54 maxTracks = cms.uint32(6),
55 maxPiZeros = cms.uint32(0),
57 config2prong1pi0 = cms.PSet(
59 nCharged = cms.uint32(2),
60 nPiZeros = cms.uint32(1),
61 maxTracks = cms.uint32(6),
62 maxPiZeros = cms.uint32(3),
64 config3prong0pi0 = cms.PSet(
66 nCharged = cms.uint32(3),
67 nPiZeros = cms.uint32(0),
68 maxTracks = cms.uint32(6),
69 maxPiZeros = cms.uint32(0),
71 config3prong1pi0 = cms.PSet(
73 nCharged = cms.uint32(3),
74 nPiZeros = cms.uint32(1),
75 maxTracks = cms.uint32(6),
76 maxPiZeros = cms.uint32(3),
80 combinatoricModifierConfigs = [
82 name = cms.string(
"sipt"),
83 plugin = cms.string(
"RecoTauImpactParameterSignificancePlugin"),
84 qualityCuts = PFTauQualityCuts,
88 name = cms.string(
"elec_rej"),
89 plugin = cms.string(
"RecoTauElectronRejectionPlugin"),
91 ElectronPreIDProducer = cms.InputTag(
"elecpreid"),
92 EcalStripSumE_deltaPhiOverQ_minValue = cms.double(-0.1),
93 EcalStripSumE_deltaPhiOverQ_maxValue = cms.double(0.5),
94 EcalStripSumE_minClusEnergy = cms.double(0.1),
95 EcalStripSumE_deltaEta = cms.double(0.03),
96 ElecPreIDLeadTkMatch_maxDR = cms.double(0.01),
97 maximumForElectrionPreIDOutput = cms.double(-0.1),
98 DataType = cms.string(
"AOD"),
104 pfTauEnergyAlgorithmPlugin,
105 name = cms.string(
"tau_en_reconstruction"),
106 plugin = cms.string(
"PFRecoTauEnergyAlgorithmPlugin"),
110 _combinatoricTauConfig = cms.PSet(
111 name = cms.string(
"combinatoric"),
112 plugin = cms.string(
"RecoTauBuilderCombinatoricPlugin"),
113 pfCandSrc = cms.InputTag(
"particleFlow"),
114 isolationConeSize = PFRecoTauPFJetInputs.isolationConeSize,
115 qualityCuts = PFTauQualityCuts,
116 decayModes = cms.VPSet(
117 combinatoricDecayModeConfigs.config1prong0pi0,
118 combinatoricDecayModeConfigs.config1prong1pi0,
119 combinatoricDecayModeConfigs.config1prong2pi0,
120 combinatoricDecayModeConfigs.config2prong0pi0,
121 combinatoricDecayModeConfigs.config2prong1pi0,
122 combinatoricDecayModeConfigs.config3prong0pi0,
123 combinatoricDecayModeConfigs.config3prong1pi0
125 signalConeSize = cms.string(
"max(min(0.1, 3.0/pt()), 0.05)"),
126 minAbsPhotonSumPt_insideSignalCone = cms.double(2.5),
127 minRelPhotonSumPt_insideSignalCone = cms.double(0.10),
128 minAbsPhotonSumPt_outsideSignalCone = cms.double(1.e+9),
129 minRelPhotonSumPt_outsideSignalCone = cms.double(1.e+9),
130 verbosity = cms.int32(0)
133 combinatoricRecoTaus = cms.EDProducer(
"RecoTauProducer",
134 jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
135 minJetPt = PFRecoTauPFJetInputs.minJetPt,
136 maxJetAbsEta = PFRecoTauPFJetInputs.maxJetAbsEta,
137 jetRegionSrc = cms.InputTag(
"recoTauAK4PFJets08Region"),
138 chargedHadronSrc = cms.InputTag(
'ak4PFJetsRecoTauChargedHadrons'),
139 piZeroSrc = cms.InputTag(
"ak4PFJetsRecoTauPiZeros"),
140 buildNullTaus = cms.bool(
False),
141 outputSelection = cms.string(
"leadChargedHadrCand().isNonnull()"),
144 builders = cms.VPSet(
145 _combinatoricTauConfig
147 modifiers = cms.VPSet(
148 combinatoricModifierConfigs