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"),
107 verbosity = cms.int32(0)
111 _combinatoricTauConfig = cms.PSet(
112 name = cms.string(
"combinatoric"),
113 plugin = cms.string(
"RecoTauBuilderCombinatoricPlugin"),
114 pfCandSrc = cms.InputTag(
"particleFlow"),
115 isolationConeSize = PFRecoTauPFJetInputs.isolationConeSize,
116 qualityCuts = PFTauQualityCuts,
117 decayModes = cms.VPSet(
118 combinatoricDecayModeConfigs.config1prong0pi0,
119 combinatoricDecayModeConfigs.config1prong1pi0,
120 combinatoricDecayModeConfigs.config1prong2pi0,
121 combinatoricDecayModeConfigs.config2prong0pi0,
122 combinatoricDecayModeConfigs.config2prong1pi0,
123 combinatoricDecayModeConfigs.config3prong0pi0,
124 combinatoricDecayModeConfigs.config3prong1pi0
126 signalConeSize = cms.string(
"max(min(0.1, 3.0/pt()), 0.05)"),
127 minAbsPhotonSumPt_insideSignalCone = cms.double(2.5),
128 minRelPhotonSumPt_insideSignalCone = cms.double(0.10),
129 minAbsPhotonSumPt_outsideSignalCone = cms.double(1.e+9),
130 minRelPhotonSumPt_outsideSignalCone = cms.double(1.e+9)
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(
True),
143 builders = cms.VPSet(
144 _combinatoricTauConfig
146 modifiers = cms.VPSet(
147 combinatoricModifierConfigs