Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:42

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs
0004 # to be able to run PFTau sequence standalone on AOD
0005 from TrackingTools.TransientTrack.TransientTrackBuilder_cfi import TransientTrackBuilderESProducer
0006 
0007 #-------------------------------------------------------------------------------
0008 #------------------ Jet Production and Preselection-----------------------------
0009 #-------------------------------------------------------------------------------
0010 # Apply a base selection to the jets.  The acceptance selection takes only jets
0011 # with pt > 5 and abs(eta) < 2.5.  The preselection selects jets that have at
0012 # least one constituent with pt > 5.  This cut should be 100% efficient w.r.t a
0013 # lead pion selection.
0014 #
0015 # After the basic preselection has been applied to the jets, the pizeros inside
0016 # the jet are reconstructed.
0017 #-------------------------------------------------------------------------------
0018 
0019 # Collection PFCandidates from a DR=0.8 cone about the jet axis and make new
0020 # faux jets with this collection
0021 from RecoTauTag.RecoTau.RecoTauJetRegionProducer_cfi import RecoTauJetRegionProducer
0022 recoTauAK4PFJets08Region = RecoTauJetRegionProducer.clone(
0023     src = PFRecoTauPFJetInputs.inputJetCollection
0024 )
0025 
0026 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
0027 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
0028 for e in [pp_on_XeXe_2017, pp_on_AA]:
0029     e.toModify(recoTauAK4PFJets08Region, minJetPt = 999999.0)
0030 
0031 # Reconstruct the pi zeros in our pre-selected jets.
0032 from RecoTauTag.RecoTau.RecoTauPiZeroProducer_cff import ak4PFJetsLegacyHPSPiZeros
0033 ak4PFJetsLegacyHPSPiZeros = ak4PFJetsLegacyHPSPiZeros.clone(
0034     jetSrc = PFRecoTauPFJetInputs.inputJetCollection
0035 )
0036 # import charged hadrons
0037 from RecoTauTag.RecoTau.PFRecoTauChargedHadronProducer_cff import ak4PFJetsRecoTauChargedHadrons
0038 ak4PFJetsRecoTauChargedHadrons = ak4PFJetsRecoTauChargedHadrons.clone()
0039 
0040 #-------------------------------------------------------------------------------
0041 #------------------ Produce combinatoric base taus------------------------------
0042 #-------------------------------------------------------------------------------
0043 # These jets form the basis of the HPS & TaNC taus.  There are many taus
0044 # produced for each jet, which are cleaned by the respective algorithms.
0045 # We split it into different collections for each different decay mode.
0046 
0047 from RecoTauTag.RecoTau.RecoTauCombinatoricProducer_cfi import combinatoricRecoTaus, combinatoricModifierConfigs
0048 #-------------------------------------------------------------------------------
0049 #------------------ HPS Taus ---------------------------------------------------
0050 #-------------------------------------------------------------------------------
0051 from RecoTauTag.Configuration.HPSPFTaus_cff import *
0052 
0053 combinatoricRecoTaus = combinatoricRecoTaus.clone(
0054     modifiers = cms.VPSet(combinatoricModifierConfigs),
0055     jetRegionSrc = "recoTauAK4PFJets08Region",
0056     jetSrc = PFRecoTauPFJetInputs.inputJetCollection,
0057     chargedHadronSrc = "ak4PFJetsRecoTauChargedHadrons",
0058     piZeroSrc = "ak4PFJetsLegacyHPSPiZeros"
0059 )
0060 for e in [pp_on_XeXe_2017, pp_on_AA]:
0061     e.toModify(combinatoricRecoTaus, minJetPt = recoTauAK4PFJets08Region.minJetPt)
0062 
0063 #--------------------------------------------------------------------------------
0064 # CV: set mass of tau candidates reconstructed in 1Prong0pi0 decay mode to charged pion mass
0065 combinatoricRecoTaus.modifiers.append(cms.PSet(
0066     name = cms.string("tau_mass"),
0067     plugin = cms.string("PFRecoTauMassPlugin"),
0068     verbosity = cms.int32(0)                                    
0069 ))    
0070 
0071 #-------------------------------------------------------------------------------
0072 #------------------ PFTauTagInfo workaround ------------------------------------
0073 #-------------------------------------------------------------------------------
0074 # Build the PFTauTagInfos separately, then relink them into the taus.
0075 from RecoTauTag.RecoTau.PFRecoTauTagInfoProducer_cfi import pfRecoTauTagInfoProducer
0076 pfRecoTauTagInfoProducer = pfRecoTauTagInfoProducer.clone(
0077     PFJetTracksAssociatorProducer = "ak4PFJetTracksAssociatorAtVertex"
0078 )
0079 from RecoJets.JetAssociationProducers.ak4JTA_cff import ak4JetTracksAssociatorAtVertexPF
0080 ak4PFJetTracksAssociatorAtVertex = ak4JetTracksAssociatorAtVertexPF.clone(
0081     jets = PFRecoTauPFJetInputs.inputJetCollection
0082 )
0083 tautagInfoModifer = cms.PSet(
0084     name = cms.string("TTIworkaround"),
0085     plugin = cms.string("RecoTauTagInfoWorkaroundModifer"),
0086     pfTauTagInfoSrc = cms.InputTag("pfRecoTauTagInfoProducer"),
0087 )
0088 combinatoricRecoTaus.modifiers.append(tautagInfoModifer)
0089 
0090 recoTauPileUpVertices = cms.EDFilter("RecoTauPileUpVertexSelector",
0091     src = cms.InputTag("offlinePrimaryVertices"),
0092     minTrackSumPt = cms.double(5),
0093     filter = cms.bool(False),
0094 )
0095 
0096 recoTauCommonTask = cms.Task(
0097     ak4PFJetTracksAssociatorAtVertex,
0098     recoTauAK4PFJets08Region,
0099     recoTauPileUpVertices,
0100     pfRecoTauTagInfoProducer
0101 )
0102 recoTauCommonSequence = cms.Sequence(
0103     recoTauCommonTask
0104 )
0105 
0106 # Produce only classic HPS taus
0107 recoTauClassicHPSTask = cms.Task(
0108     ak4PFJetsLegacyHPSPiZeros,
0109     ak4PFJetsRecoTauChargedHadrons,
0110     combinatoricRecoTaus,
0111     produceAndDiscriminateHPSPFTausTask
0112 )
0113 recoTauClassicHPSSequence = cms.Sequence(
0114     recoTauClassicHPSTask
0115 )
0116 
0117 PFTauTask = cms.Task(
0118     recoTauCommonTask,
0119     recoTauClassicHPSTask
0120 )
0121 PFTau = cms.Sequence(
0122     PFTauTask
0123 )