Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
import FWCore.ParameterSet.Config as cms
from PhysicsTools.NanoAOD.common_cff import *

hltTauTable = cms.EDProducer("SimplePFTauCandidateFlatTableProducer",
      skipNonExistingSrc = cms.bool(True),
      src = cms.InputTag("hltHpsPFTauProducer"),
      name = cms.string("hltHpsPFTau"),
      cut = cms.string(""),
      doc = cms.string("HLT HPS Taus information"),
      singleton = cms.bool(False),
      extension = cms.bool(False),
      variables = cms.PSet(
        P4Vars,
        # taken from https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/NanoAOD/python/taus_cff.py#L61 
        leadTkPtOverTauPt = Var("?leadChargedHadrCand.isNonnull()?leadChargedHadrCand.pt/pt:1",float, doc="pt of the leading track divided by tau pt",precision=10),
        leadTkDeltaEta = Var("?leadChargedHadrCand.isNonnull()?(leadChargedHadrCand.eta - eta):0",float, doc="eta of the leading track, minus tau eta",precision=8),
        leadTkDeltaPhi = Var("?leadChargedHadrCand.isNonnull()?deltaPhi(leadChargedHadrCand.phi, phi):0",float, doc="phi of the leading track, minus tau phi",precision=8),
        # taken from https://github.com/cms-tau-pog/TauMLTools/blob/00bd9416f3198d7aa19ff9799037c14f2fa14514/Production/python/customiseHLT.py#L88 
        charge = Var("charge", int, doc="electric charge"),
        vx = Var("vx", float, doc='x coordinate of vertex position'),
        vy = Var("vy", float, doc='y coordinate of vertex position'),
        vz = Var("vz", float, doc='z coordinate of vertex position'),
        pdgId = Var("pdgId", int, doc='PDG identifier'),
        dz = Var("? leadPFCand.trackRef.isNonnull && leadPFCand.trackRef.isAvailable ? leadPFCand.trackRef.dz : -999 ", float, doc='lead PF Candidate dz'),
        dzError = Var("? leadPFCand.trackRef.isNonnull && leadPFCand.trackRef.isAvailable ? leadPFCand.trackRef.dzError : -999 ", float, doc='lead PF Candidate dz Error'),
        decayMode = Var("decayMode", int, doc='tau decay mode'),
        # # source: DataFormats/TauReco/interface/PFTau.h
        # ## variables available in PF tau
        emFraction = Var("emFraction", float, doc = " Ecal/Hcal Cluster Energy"),
        hcalTotOverPLead = Var("hcalTotOverPLead", float, doc = " total Hcal Cluster E / leadPFChargedHadron P"),
        signalConeSize = Var("signalConeSize", float, doc = "Size of signal cone"),
        # variables available in PF jets
        jetIsValid = Var("jetRef.isNonnull && jetRef.isAvailable", bool, doc = "jet is valid"),
      ),
)

hltTauExtTable = cms.EDProducer("HLTTauTableProducer",
                                tableName = cms.string("hltHpsPFTau"),
                                skipNonExistingSrc = cms.bool(True),
                                taus = cms.InputTag( "hltHpsPFTauProducer" ),
                                deepTauVSe = cms.InputTag("hltHpsPFTauDeepTauProducer", "VSe"),
                                deepTauVSmu = cms.InputTag("hltHpsPFTauDeepTauProducer", "VSmu"),
                                deepTauVSjet = cms.InputTag("hltHpsPFTauDeepTauProducer", "VSjet"),
                                tauTransverseImpactParameters = cms.InputTag( "hltHpsPFTauTransverseImpactParametersForDeepTau" ),
                                precision = cms.int32(7),
                                )