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(
False),
141 outputSelection = cms.string(
"leadPFChargedHadrCand().isNonnull()"),
144 builders = cms.VPSet(
145 _combinatoricTauConfig
147 modifiers = cms.VPSet(
148 combinatoricModifierConfigs