CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoTauTag/RecoTau/python/RecoTauCombinatoricProducer_cfi.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 from RecoTauTag.RecoTau.PFRecoTauQualityCuts_cfi import PFTauQualityCuts
00003 from RecoTauTag.RecoTau.RecoTauEnergyRecoveryPlugin_cfi import pfTauEnergyRecoveryPlugin
00004 
00005 '''
00006 
00007 Configuration for combinatoric PFTau producer plugins.
00008 
00009 Note that this plugin produces many taus for each PFJet!
00010 To be useful the output from this module must be cleaned
00011 using an implementation of the RecoTauCleaner module.
00012 
00013 Author: Evan K. Friis, UC Davis
00014 
00015 
00016 '''
00017 
00018 # N.B. for combinatoric taus that worst-case scaling
00019 # is (maxTracks choose dmTracks) * (maxPiZeros choose dmPiZeros)
00020 #
00021 # So for decay mode 11 (3 tracks, 1 pizero), with 10 for both
00022 #
00023 # (10 choose 3) * (10 choose 1) = 1200!
00024 
00025 # Configurations for the different decay modes
00026 
00027 combinatoricDecayModeConfigs = cms.PSet(
00028     config1prong0pi0 = cms.PSet(
00029         # One prong no pizero mode
00030         nCharged = cms.uint32(1),
00031         nPiZeros = cms.uint32(0),
00032         maxTracks = cms.uint32(6),
00033         maxPiZeros = cms.uint32(0),
00034     ),
00035     config1prong1pi0 = cms.PSet(
00036         #One prong one pizero mode
00037         nCharged = cms.uint32(1),
00038         nPiZeros = cms.uint32(1),
00039         maxTracks = cms.uint32(6),
00040         maxPiZeros = cms.uint32(6),
00041     ),
00042     config1prong2pi0 = cms.PSet(
00043         #One prong two pizero mode
00044         nCharged = cms.uint32(1),
00045         nPiZeros = cms.uint32(2),
00046         maxTracks = cms.uint32(6),
00047         maxPiZeros = cms.uint32(5),
00048     ),
00049     config3prong0pi0 = cms.PSet(
00050         # Three prong no pizero mode
00051         nCharged = cms.uint32(3),
00052         nPiZeros = cms.uint32(0),
00053         maxTracks = cms.uint32(6),
00054         maxPiZeros = cms.uint32(0),
00055     ),
00056     config3prong1pi0 = cms.PSet(
00057         # Three prong one pizero mode
00058         nCharged = cms.uint32(3),
00059         nPiZeros = cms.uint32(1),
00060         maxTracks = cms.uint32(6),
00061         maxPiZeros = cms.uint32(3),
00062     )
00063 )
00064 
00065 _combinatoricTauConfig = cms.PSet(
00066     name = cms.string("combinatoric"),
00067     plugin = cms.string("RecoTauBuilderCombinatoricPlugin"),
00068     pfCandSrc = cms.InputTag("particleFlow"),
00069     usePFLeptons = cms.bool(True),
00070     isolationConeSize = cms.double(0.5),
00071     qualityCuts = PFTauQualityCuts,
00072     decayModes = cms.VPSet(
00073         combinatoricDecayModeConfigs.config1prong0pi0,
00074         combinatoricDecayModeConfigs.config1prong1pi0,
00075         combinatoricDecayModeConfigs.config1prong2pi0,
00076         combinatoricDecayModeConfigs.config3prong0pi0,
00077         #combinatoricDecayModeConfigs.config3prong1pi0,
00078     )
00079 )
00080 
00081 combinatoricRecoTaus = cms.EDProducer(
00082     "RecoTauProducer",
00083     jetSrc = cms.InputTag("ak5PFJets"),
00084     jetRegionSrc = cms.InputTag("recoTauAK5PFJets08Region"),
00085     piZeroSrc = cms.InputTag("ak5PFJetsRecoTauPiZeros"),
00086     buildNullTaus = cms.bool(True),
00087     # Make maximum size from which to collect isolation cone objects, w.r.t to
00088     # the axis of the signal cone objects
00089     builders = cms.VPSet(
00090         _combinatoricTauConfig,
00091     ),
00092     modifiers = cms.VPSet(
00093         cms.PSet(
00094             name = cms.string("sipt"),
00095             plugin = cms.string("RecoTauImpactParameterSignificancePlugin"),
00096             qualityCuts = PFTauQualityCuts,
00097         ),
00098         # Electron rejection
00099         cms.PSet(
00100             name = cms.string("elec_rej"),
00101             plugin = cms.string("RecoTauElectronRejectionPlugin"),
00102             #Electron rejection parameters
00103             ElectronPreIDProducer                = cms.InputTag("elecpreid"),
00104             EcalStripSumE_deltaPhiOverQ_minValue = cms.double(-0.1),
00105             EcalStripSumE_deltaPhiOverQ_maxValue = cms.double(0.5),
00106             EcalStripSumE_minClusEnergy          = cms.double(0.1),
00107             EcalStripSumE_deltaEta               = cms.double(0.03),
00108             ElecPreIDLeadTkMatch_maxDR           = cms.double(0.01),
00109             maximumForElectrionPreIDOutput       = cms.double(-0.1),
00110             DataType = cms.string("AOD"),
00111         ),
00112         # Tau energy recovery algorithm
00113         cms.PSet(
00114             pfTauEnergyRecoveryPlugin,
00115             name = cms.string("tau_en_recovery"),
00116             plugin = cms.string("RecoTauEnergyRecoveryPlugin")
00117         )
00118     ),
00119 )