CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RecoTauCombinatoricProducer_cfi.py
Go to the documentation of this file.
2 from RecoTauTag.RecoTau.PFRecoTauQualityCuts_cfi import PFTauQualityCuts
3 
4 '''
5 
6 Configuration for combinatoric PFTau producer plugins.
7 
8 Note that this plugin produces many taus for each PFJet!
9 To be useful the output from this module must be cleaned
10 using an implementation of the RecoTauCleaner module.
11 
12 Author: Evan K. Friis, UC Davis
13 
14 
15 '''
16 
17 # N.B. for combinatoric taus that worst-case scaling
18 # is (maxTracks choose dmTracks) * (maxPiZeros choose dmPiZeros)
19 #
20 # So for decay mode 11 (3 tracks, 1 pizero), with 10 for both
21 #
22 # (10 choose 3) * (10 choose 1) = 1200!
23 
24 # Configurations for the different decay modes
25 
26 combinatoricDecayModeConfigs = cms.PSet(
27  config1prong0pi0 = cms.PSet(
28  # One prong no pizero mode
29  nCharged = cms.uint32(1),
30  nPiZeros = cms.uint32(0),
31  maxTracks = cms.uint32(6),
32  maxPiZeros = cms.uint32(0),
33  ),
34  config1prong1pi0 = cms.PSet(
35  #One prong one pizero mode
36  nCharged = cms.uint32(1),
37  nPiZeros = cms.uint32(1),
38  maxTracks = cms.uint32(6),
39  maxPiZeros = cms.uint32(6),
40  ),
41  config1prong2pi0 = cms.PSet(
42  #One prong two pizero mode
43  nCharged = cms.uint32(1),
44  nPiZeros = cms.uint32(2),
45  maxTracks = cms.uint32(6),
46  maxPiZeros = cms.uint32(5),
47  ),
48  config3prong0pi0 = cms.PSet(
49  # Three prong no pizero mode
50  nCharged = cms.uint32(3),
51  nPiZeros = cms.uint32(0),
52  maxTracks = cms.uint32(6),
53  maxPiZeros = cms.uint32(0),
54  ),
55  config3prong1pi0 = cms.PSet(
56  # Three prong one pizero mode
57  nCharged = cms.uint32(3),
58  nPiZeros = cms.uint32(1),
59  maxTracks = cms.uint32(6),
60  maxPiZeros = cms.uint32(3),
61  )
62 )
63 
64 _combinatoricTauConfig = cms.PSet(
65  name = cms.string("combinatoric"),
66  plugin = cms.string("RecoTauBuilderCombinatoricPlugin"),
67  pfCandSrc = cms.InputTag("particleFlow"),
68  usePFLeptons = cms.bool(True),
69  isolationConeSize = cms.double(0.5),
70  qualityCuts = PFTauQualityCuts.signalQualityCuts,
71  primaryVertexSrc = cms.InputTag("offlinePrimaryVertices"),
72  decayModes = cms.VPSet(
73  combinatoricDecayModeConfigs.config1prong0pi0,
74  combinatoricDecayModeConfigs.config1prong1pi0,
75  combinatoricDecayModeConfigs.config1prong2pi0,
76  combinatoricDecayModeConfigs.config3prong0pi0,
77  #combinatoricDecayModeConfigs.config3prong1pi0,
78  )
79 )
80 
81 combinatoricRecoTaus = cms.EDProducer(
82  "RecoTauProducer",
83  jetSrc = cms.InputTag("ak5PFJets"),
84  piZeroSrc = cms.InputTag("ak5PFJetsRecoTauPiZeros"),
85  buildNullTaus = cms.bool(True),
86  # Make maximum size from which to collect isolation cone objects, w.r.t to
87  # the axis of the signal cone objects
88  builders = cms.VPSet(
89  _combinatoricTauConfig,
90  ),
91  modifiers = cms.VPSet(
92  cms.PSet(
93  name = cms.string("sipt"),
94  plugin = cms.string("RecoTauImpactParameterSignificancePlugin"),
95  pvSrc = cms.InputTag("offlinePrimaryVertices"),
96  ),
97  # Electron rejection
98  cms.PSet(
99  name = cms.string("elec_rej"),
100  plugin = cms.string("RecoTauElectronRejectionPlugin"),
101  #Electron rejection parameters
102  ElectronPreIDProducer = cms.InputTag("elecpreid"),
103  EcalStripSumE_deltaPhiOverQ_minValue = cms.double(-0.1),
104  EcalStripSumE_deltaPhiOverQ_maxValue = cms.double(0.5),
105  EcalStripSumE_minClusEnergy = cms.double(0.1),
106  EcalStripSumE_deltaEta = cms.double(0.03),
107  ElecPreIDLeadTkMatch_maxDR = cms.double(0.01),
108  maximumForElectrionPreIDOutput = cms.double(-0.1),
109  DataType = cms.string("AOD"),
110  ),
111  ),
112 )