CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/RecoTauTag/RecoTau/python/RecoTauCombinatoricProducer_cfi.py

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