process.ak5CaloJets = ak5CaloJets
process.ak7CaloJets = ak5CaloJets.clone(rParam=cms.double(0.7))

from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets

process.ak5GenJets = ak5GenJets


# CATopJets
process.load("RecoJets.Configuration.GenJetParticles_cff")
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets

process.ca4GenJets = ca4GenJets
###process.load("VHbbAnalysis.HbbAnalyzer.HbbFilterJets_cff")

process.ca8GenJets = ca4GenJets.clone(rParam=cms.double(0.8))


process.load("RecoJets.JetProducers.caSubjetFilterPFJets_cfi")
from RecoJets.JetProducers.caSubjetFilterPFJets_cfi import caSubjetFilterPFJets

process.caVHPFJets = caSubjetFilterPFJets.clone()

process.load("RecoJets.JetProducers.caSubjetFilterCaloJets_cfi")
from RecoJets.JetProducers.caSubjetFilterCaloJets_cfi import caSubjetFilterCaloJets

process.caVHCaloJets = caSubjetFilterCaloJets.clone()

process.load("RecoJets.JetProducers.caSubjetFilterGenJets_cfi")
from RecoJets.JetProducers.caSubjetFilterGenJets_cfi import caSubjetFilterGenJets
Example #2
0
# Jet Substructure (FastJet 3)
# ------------------------------------------------------------------------------
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak5PrunedPFlow = ak5PFJetsPruned.clone(doAreaFastjet = cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ak5FilteredPFlow = ak5PFJetsFiltered.clone(doAreaFastjet = cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsMassDropFiltered
ak5MassDropFilteredPFlow = ak5PFJetsMassDropFiltered.clone(doAreaFastjet = cms.bool(True))

#process.ca12GenJetsNoNu = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJetsNoNu"))
process.ca12GenJets = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJets"))
process.ca12PFJetsPFlow = ca4PFJets.clone(
    rParam = cms.double(1.2),
    src = cms.InputTag("pfNoElectron"+postfix),
    doAreaFastjet = cms.bool(True),
    doRhoFastjet = cms.bool(True),
    Rho_EtaMax = cms.double(6.0),
    Ghost_EtaMax = cms.double(7.0)
    )
## this thing produces subjets by default
process.ca12PFJetsPrunedPFlow = ak5PrunedPFlow.clone(
    src = cms.InputTag("pfNoElectron"+postfix),
    doAreaFastjet = cms.bool(True),
    rParam = cms.double(1.2),
    jetAlgorithm = cms.string("CambridgeAachen"),
    #writeCompound = cms.bool(True), # this is used by default
Example #3
0
# ------------------------------------------------------------------------------
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets

from RecoJets.JetProducers.ak5PFJetsPruned_cfi import ak5PFJetsPruned
ak5PrunedPFlow = ak5PFJetsPruned.clone(doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsFiltered
ak5FilteredPFlow = ak5PFJetsFiltered.clone(doAreaFastjet=cms.bool(True))

from RecoJets.JetProducers.ak5PFJetsFiltered_cfi import ak5PFJetsMassDropFiltered
ak5MassDropFilteredPFlow = ak5PFJetsMassDropFiltered.clone(
    doAreaFastjet=cms.bool(True))

#process.ca12GenJetsNoNu = ca4GenJets.clone( rParam = cms.double(1.2),src = cms.InputTag("genParticlesForJetsNoNu"))
process.ca12GenJets = ca4GenJets.clone(rParam=cms.double(1.2),
                                       src=cms.InputTag("genParticlesForJets"))
process.ca12PFJetsPFlow = ca4PFJets.clone(rParam=cms.double(1.2),
                                          src=cms.InputTag("pfNoElectron" +
                                                           postfix),
                                          doAreaFastjet=cms.bool(True),
                                          doRhoFastjet=cms.bool(True),
                                          Rho_EtaMax=cms.double(6.0),
                                          Ghost_EtaMax=cms.double(7.0))
## this thing produces subjets by default
process.ca12PFJetsPrunedPFlow = ak5PrunedPFlow.clone(
    src=cms.InputTag("pfNoElectron" + postfix),
    doAreaFastjet=cms.bool(True),
    rParam=cms.double(1.2),
    jetAlgorithm=cms.string("CambridgeAachen"),
    #writeCompound = cms.bool(True), # this is used by default
    #jetCollInstanceName = cms.string("SubJets"), # this is used by default
from Analysis.BoostedTopAnalysis.BoostedTopWTagParams_cfi import boostedTopWTagParams

process.hltHighLevel = cms.EDFilter("HLTHighLevel",
    TriggerResultsTag = cms.InputTag("TriggerResults","","HLT"),
    HLTPaths = cms.vstring('HLT_HT750_v*'),           # provide list of HLT paths (or patterns) you want
    eventSetupPathsKey = cms.string(''), # not empty => use read paths from AlCaRecoTriggerBitsRcd via this key
    andOr = cms.bool(True),             # how to deal with multiple triggers: True (OR) accept if ANY is true, False (AND) accept if ALL are true
    throw = cms.bool(True)    # throw exception on unknown path names
)

##########################################################################################
# GENJETS
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets

process.ca8GenJets = ca4GenJets.clone( rParam = cms.double(0.8),
                                           src = cms.InputTag(genjetparticles))

process.ca8GenJetsPruned = ca4GenJets.clone(
  rParam = cms.double(0.8),
  src = cms.InputTag(genjetparticles),
  usePruning = cms.bool(True),
  zcut = cms.double(0.1),
  rcut_factor = cms.double(0.5),
  nFilt = cms.int32(2),
  writeCompound = cms.bool(True),
  jetCollInstanceName=cms.string("SubJets")
  )

##########################################################################################
# RECO
Example #5
0
)
getattr(process,'patJets'+postfix).discriminatorSources += cms.VInputTag(
    cms.InputTag("combinedCSVJPBJetTags"),
    cms.InputTag("negativeCombinedCSVJPBJetTags"),
    cms.InputTag("positiveCombinedCSVJPBJetTags"),
    cms.InputTag("combinedCSVJPSLBJetTags"),
    cms.InputTag("negativeCombinedCSVJPSLBJetTags"),
    cms.InputTag("positiveCombinedCSVJPSLBJetTags")
)
#-------------------------------------

#-------------------------------------
# CA8 jets (Gen and Reco)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.ca8GenJetsNoNu = ca4GenJets.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu")
)

from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets
process.ca8PFJets = ca4PFJets.clone(
    rParam = cms.double(0.8),
    src = getattr(process,"pfJets"+postfix).src,
    srcPVs = getattr(process,"pfJets"+postfix).srcPVs,
    doAreaFastjet = cms.bool(True),
    jetPtMin = cms.double(options.fatJetPtMin)
)

## CA8 pruned jets (Gen and Reco)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
process.ca8GenJetsNoNuPruned = ca4GenJets.clone(
Example #6
0
    select = cms.vstring(
        'keep *',
        'drop 11 <= abs(pdgId) <= 16',  # drop leptons
        'keep+ abs(pdgId) == 24', # but keep from W ... 
        'keep+ abs(pdgId) == 23', # and from Z
        'keep+ abs(pdgId) == 25', # and from h0
    )
)

###############################################
# GEN JETS

from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets

process.ca8GenJets = ca4GenJets.clone( rParam = cms.double(0.8),
                                           src = cms.InputTag(genjetparticles))

process.ca15GenJets = ca4GenJets.clone( rParam = cms.double(1.5),
                                           src = cms.InputTag(genjetparticles))

process.ak3GenJets = ak5GenJets.clone( rParam = cms.double(0.3),
                                           src = cms.InputTag(genjetparticles))
        
process.ca15FilteredGenJets = process.ca8GenJets.clone(
        nFilt = cms.int32(3),
        rFilt = cms.double(0.3),
        src = cms.InputTag(genjetparticles),
        useFiltering = cms.bool(True),
        useExplicitGhosts = cms.bool(True),
        writeCompound = cms.bool(True),
        rParam       = cms.double(1.5),
Example #7
0
from RecoJets.JetProducers.sc5GenJets_cfi import sisCone5GenJets
from RecoJets.JetProducers.ic5GenJets_cfi import iterativeCone5GenJets
from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets
from RecoJets.JetProducers.gk5GenJets_cfi import gk5GenJets
from RecoJets.JetProducers.kt4GenJets_cfi import kt4GenJets
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets

from RecoHI.HiJetAlgos.HiGenJets_cff import *


sisCone7GenJets = sisCone5GenJets.clone( rParam = 0.7 )
ak7GenJets      = ak5GenJets.clone( rParam = 0.7 )
gk7GenJets      = gk5GenJets.clone( rParam = 0.7 )
kt6GenJets      = kt4GenJets.clone( rParam = 0.6 )
ca6GenJets      = ca4GenJets.clone( rParam = 0.6 )


sisCone5GenJetsNoNu = sisCone5GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
sisCone7GenJetsNoNu = sisCone7GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
kt4GenJetsNoNu = kt4GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
kt6GenJetsNoNu = kt6GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
iterativeCone5GenJetsNoNu = iterativeCone5GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
ak5GenJetsNoNu = ak5GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
ak7GenJetsNoNu = ak7GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
gk5GenJetsNoNu = gk5GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
gk7GenJetsNoNu = gk7GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
ca4GenJetsNoNu = ca4GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )
ca6GenJetsNoNu = ca6GenJets.clone( src = cms.InputTag("genParticlesForJetsNoNu") )

sisCone5GenJetsNoMuNoNu = sisCone5GenJets.clone( src = cms.InputTag("genParticlesForJetsNoMuNoNu") )
        9900016,
        39,
    ),
    partonicFinalState=cms.bool(False),
    excludeResonances=cms.bool(True),
    excludeFromResonancePids=cms.vuint32(12, 13, 14, 16),
    tausAsJets=cms.bool(False),
)


from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets

process.ak5GenJets = ak5GenJets.clone()
process.ak5GenJetsNoNu = ak5GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
process.ca8GenJetsNoNu = ca4GenJets.clone(rParam=cms.double(0.8), src=cms.InputTag("genParticlesForJetsNoNu"))
process.ak8GenJetsNoNu = ak5GenJets.clone(rParam=cms.double(0.8), src=cms.InputTag("genParticlesForJetsNoNu"))

process.load("PhysicsTools.HepMCCandAlgos.flavorHistoryPaths_cfi")
process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
process.prunedGenParticles = cms.EDProducer(
    "GenParticlePruner",
    src=cms.InputTag("genParticles"),
    select=cms.vstring(
        "drop  *",
        "keep status = 3",  # keeps  particles from the hard matrix element
        "keep (abs(pdgId) >= 11 & abs(pdgId) <= 16) & status = 1",  # keeps e/mu and nus with status 1
        "keep (abs(pdgId)  = 15) & status = 3",  # keeps taus
    ),
)
Example #9
0
process.goodOfflinePrimaryVertices = cms.EDFilter(
    "PrimaryVertexObjectFilter",
    filterParams=pvSelector.clone(
        maxZ=cms.double(24.0),
        minNdof=cms.double(4.0)  # this is >= 4
    ),
    src=cms.InputTag(pvSrc))

###############################
########## Gen Setup ##########
###############################

process.load("RecoJets.Configuration.GenJetParticles_cff")
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets
process.ca8GenJetsNoNu = ca4GenJets.clone(
    rParam=cms.double(0.8), src=cms.InputTag("genParticlesForJetsNoNu"))

process.ak8GenJetsNoNu = ak5GenJets.clone(
    rParam=cms.double(0.8), src=cms.InputTag("genParticlesForJetsNoNu"))

process.load("TopQuarkAnalysis.TopEventProducers.sequences.ttGenEvent_cff")

# add the flavor history
process.load("PhysicsTools.HepMCCandAlgos.flavorHistoryPaths_cfi")

# prune gen particles
process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
process.prunedGenParticles = cms.EDProducer(
    "GenParticlePruner",
    src=cms.InputTag("genParticles"),
    select=cms.vstring(
def createProcess(runOnMC, runCHS, correctMETWithT1, processCaloJets, processCA8Jets, globalTag):

  ## import skeleton process
  from PhysicsTools.PatAlgos.patTemplate_cfg import process

  # load the PAT config
  process.load("PhysicsTools.PatAlgos.patSequences_cff")
  process.load("JetMETCorrections.Configuration.JetCorrectionProducers_cff")

  # Do some CHS stuff
  process.ak5PFchsL1Fastjet  = process.ak5PFL1Fastjet.clone(algorithm = 'AK5PFchs')
  process.ak5PFchsL2Relative = process.ak5PFL2Relative.clone(algorithm = 'AK5PFchs')
  process.ak5PFchsL3Absolute = process.ak5PFL3Absolute.clone(algorithm = 'AK5PFchs')
  process.ak5PFchsResidual   = process.ak5PFResidual.clone(algorithm = 'AK5PFchs')
  process.ak5PFchsL1FastL2L3 = cms.ESProducer(
      'JetCorrectionESChain',
      correctors = cms.vstring('ak5PFchsL1Fastjet', 'ak5PFchsL2Relative','ak5PFchsL3Absolute')
      )


  from PhysicsTools.SelectorUtils.pvSelector_cfi import pvSelector

  ## The good primary vertex filter ____________________________________________||
  ## This filter throw events with no primary vertex
  process.primaryVertexFilter = cms.EDFilter(
      "VertexSelector",
      src = cms.InputTag("offlinePrimaryVertices"),
      cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"),
      filter = cms.bool(True)
      )

  process.goodOfflinePrimaryVertices = cms.EDFilter("PrimaryVertexObjectFilter",
      filterParams = pvSelector.clone( minNdof = cms.double(4.0), maxZ = cms.double(24.0) ),
      src = cms.InputTag('offlinePrimaryVertices')
      )

  # Configure PAT to use PF2PAT instead of AOD sources
  # this function will modify the PAT sequences.
  from PhysicsTools.PatAlgos.tools.coreTools import removeSpecificPATObjects, removeMCMatching
  from PhysicsTools.PatAlgos.tools.pfTools import usePF2PAT, adaptPFIsoElectrons, adaptPVs, usePFIso
  #from PhysicsTools.PatAlgos.tools.metTools import *

  def usePF2PATForAnalysis(jetAlgo, postfix, useTypeIMET, usePFNoPU):

    # Jet corrections
    # No L2L3 Residual on purpose
    if usePFNoPU:
      jetCorrections = ("%sPFchs" % algo, ['L1FastJet', 'L2Relative', 'L3Absolute'])
      postfix += "chs"
    else:
      jetCorrections = ("%sPF" % algo, ['L1FastJet', 'L2Relative', 'L3Absolute'])

    #if not runOnMC:
    #  jetCorrections[1].append('L2L3Residual')

    p = postfix

    usePF2PAT(process, runPF2PAT=True, jetAlgo=jetAlgo, runOnMC=runOnMC, postfix=p, jetCorrections=jetCorrections, typeIMetCorrections = useTypeIMET)
    getattr(process, "pfPileUp" + p).Enable = True
    getattr(process, "pfPileUp" + p).Vertices = 'goodOfflinePrimaryVertices'
    getattr(process, "pfPileUp" + p).checkClosestZVertex = cms.bool(False)

    getattr(process, "pfJets" + p).doAreaFastjet = cms.bool(True)
    getattr(process, "pfJets" + p).doRhoFastjet = False
    getattr(process, 'patJetCorrFactors' + p).rho = cms.InputTag("kt6PFJets", "rho") # Do not use kt6PFJetsPFlowAK5, it's not ok for L1FastJet.

    # top projections in PF2PAT:
    getattr(process,"pfNoPileUp" + p).enable = cms.bool(usePFNoPU)
    getattr(process,"pfNoMuon" + p).enable = True
    getattr(process,"pfNoElectron" + p).enable = True
    getattr(process,"pfNoTau" + p).enable = True
    getattr(process,"pfNoJet" + p).enable = True

    getattr(process,"patElectrons" + p).embedTrack = True

    getattr(process,"patMuons" + p).embedTrack = True
    # enable delta beta correction for muon selection in PF2PAT?
    getattr(process,"pfIsolatedMuons" + p).doDeltaBetaCorrection = True

    getattr(process, "patJets" + p).embedPFCandidates = False
    # Keep only jets with pt > 2 Gev
    getattr(process, "selectedPatJets" + p).cut = "pt > 2";

    # Use a cone of 0.3 for photon isolation
    #adaptPFIsoPhotons(process, applyPostfix(process, "patPhotons", postfix), postfix, "03")

    # 2012 Photon ID

    # Electron conversion
    setattr(process, "patConversions" + p, cms.EDProducer("PATConversionProducer",
        # input collection
        electronSource = cms.InputTag("selectedPatElectrons" + p)
    ))

    # Switch electron isolation to dR = 0.3, for PF2PAT
    getattr(process, "pfIsolatedElectrons" + p).isolationValueMapsCharged = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFId" + p))
    getattr(process, "pfIsolatedElectrons" + p).deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFId" + p)
    getattr(process, "pfIsolatedElectrons" + p).isolationValueMapsNeutral = cms.VInputTag(cms.InputTag("elPFIsoValueNeutral03PFId" + p), cms.InputTag("elPFIsoValueGamma03PFId" + p))

    getattr(process, "pfElectrons" + p).isolationValueMapsCharged  = cms.VInputTag(cms.InputTag("elPFIsoValueCharged03PFId" + p))
    getattr(process, "pfElectrons" + p).deltaBetaIsolationValueMap = cms.InputTag("elPFIsoValuePU03PFId" + p)
    getattr(process, "pfElectrons" + p).isolationValueMapsNeutral  = cms.VInputTag(cms.InputTag( "elPFIsoValueNeutral03PFId" + p), cms.InputTag("elPFIsoValueGamma03PFId" + p))

    # ... And for PAT
    adaptPFIsoElectrons(process, getattr(process, "pfElectrons" + p), p, "03")

    
    if runOnMC:
      cloneProcessingSnippet(process, getattr(process, "makePatMuons" + p), "Loose" + p, p)
      getattr(process, "muonMatchLoose" + p).src = cms.InputTag("pfMuons" + p)
      getattr(process, "patMuonsLoose" + p).pfMuonSource = cms.InputTag("pfMuons" + p)
      getattr(process, "patDefaultSequence" + p).replace(getattr(process, "makePatMuons" + p), getattr(process, "makePatMuons" + p) + getattr(process, "makePatMuonsLoose" + p))
    else:
      setattr(process, "patMuonsLoose" + p, getattr(process, "patMuons" + p).clone(
          pfMuonSource = cms.InputTag("pfMuons" + p)
        )
      )

    setattr(process, "selectedPatMuonsLoose" + p, getattr(process, "selectedPatMuons" + p).clone(
        src = cms.InputTag("patMuonsLoose" + p)
      )
    )
    sequence = getattr(process, "patDefaultSequence" + p)

    if not runOnMC:
      sequence += getattr(process, "patMuonsLoose" + p)

    sequence += (getattr(process, "selectedPatMuonsLoose" + p))

    setattr(process, "patElectronsLoose" + p, getattr(process, "patElectrons" + p).clone(
        pfElectronSource = cms.InputTag("pfElectrons" + p)
      )
    )
    setattr(process, "selectedPatElectronsLoose" + p, getattr(process, "selectedPatElectrons" + p).clone(
        src = cms.InputTag("patElectronsLoose" + p)
      )
    )
    adaptPFIsoElectrons(process, getattr(process, "patElectronsLoose" + p), postfix, "03")
    sequence = getattr(process, "patDefaultSequence" + p)
    sequence += (getattr(process, "patElectronsLoose" + p) * getattr(process, "selectedPatElectronsLoose" + p))


    #giulia turn off qg tagger
    ## Setup quark gluon tagger
    #process.load('QuarkGluonTagger.EightTeV.QGTagger_RecoJets_cff')
    #cloneProcessingSnippet(process, process.QuarkGluonTagger, p)
    #getattr(process, "QGTagger" + p).srcJets = cms.InputTag("selectedPatJets" + p)
    #getattr(process, "QGTagger" + p).isPatJet = cms.untracked.bool(True)
    #getattr(process, "QGTagger" + p).useCHS = cms.untracked.bool(usePFNoPU)

    ## Remove the processing of primary vertices, as it's already what we do here
    #getattr(process, 'QGTagger' + p).srcPV = cms.InputTag('goodOfflinePrimaryVertices')
    #getattr(process, 'QuarkGluonTagger' + p).remove(getattr(process, 'goodOfflinePrimaryVerticesQG' + p))

    if not runOnMC:
      if 'L2L3Residual' in jetCorrections:
        getattr(process, 'patPFJetMETtype1p2Corr' + p).jetCorrLabel = 'L2L3Residual'
      getattr(process, 'patPFMet' + p).addGenMET = cms.bool(False)

    names = ["Taus"]
    #if jetAlgo != "AK5":
      #names += ["Electrons", "Muons"]
    if len(names) > 0:
      removeSpecificPATObjects(process, names = names, outputModules = ['out'], postfix = p) 

    adaptPVs(process, pvCollection = cms.InputTag("goodOfflinePrimaryVertices"), postfix = p)

    getattr(process, "patDefaultSequence" + p).replace(getattr(process, "selectedPatElectrons" + p), getattr(process, "selectedPatElectrons" + p) + getattr(process, "patConversions" + p))

    #getattr(process, "patDefaultSequence" + p).replace(getattr(process, "selectedPatJets" + p), getattr(process, "selectedPatJets" + p) + getattr(process, "QuarkGluonTagger" + p))

    return getattr(process, "patPF2PATSequence" + p)

  if correctMETWithT1:
    process.load("PhysicsTools.PatUtils.patPFMETCorrections_cff")
    
  from PhysicsTools.PatAlgos.tools.helpers import cloneProcessingSnippet

  print "##########################"
  print "PF jets with PF2PAT"
  print "Using Type I met" if correctMETWithT1 else "NOT using Type I met"
  print "##########################"

  #runCHS = False

  postfixes = {'PFlowAK5': 'AK5'}
  #postfixes = {'PFlowAK5': 'AK5', 'PFlowAK7': 'AK7', 'PFlowCA8': 'CA8'}
  #postfixes = {'PFlowCA8': 'CA8'}

  ##giulia turn off qg tagger
  ## Setup quark gluon tagger
  #process.load('QuarkGluonTagger.EightTeV.QGTagger_RecoJets_cff')

  process.sequence_chs = cms.Sequence()
  process.sequence_nochs = cms.Sequence()
  for p, algo in postfixes.items():
    process.sequence_nochs += usePF2PATForAnalysis(jetAlgo=algo, postfix=p, usePFNoPU=False, useTypeIMET=correctMETWithT1)
    if runCHS:
      process.sequence_chs   += usePF2PATForAnalysis(jetAlgo=algo, postfix=p, usePFNoPU=True, useTypeIMET=correctMETWithT1)

  #  setattr(process, 'QGTagger' + p, process.QGTagger.clone())
  #  getattr(process, "QGTagger" + p).srcJets = cms.InputTag("selectedPatJets" + p)
  #  getattr(process, "QGTagger" + p).isPatJet = cms.untracked.bool(True)
  #  getattr(process, "QGTagger" + p).useCHS = cms.untracked.bool(False)
  #
  #  process.QuarkGluonTagger.replace(process.QGTagger, getattr(process, 'QGTagger' + p))

    if runCHS:
      chsP = p + "chs"
  
  #    setattr(process, 'QGTagger' + chsP, process.QGTagger.clone())
  #    getattr(process, "QGTagger" + chsP).srcJets = cms.InputTag("selectedPatJets" + chsP)
  #    getattr(process, "QGTagger" + chsP).isPatJet = cms.untracked.bool(True)
  #    getattr(process, "QGTagger" + chsP).useCHS = cms.untracked.bool(True)
  
  #    process.QuarkGluonTagger.replace(getattr(process, 'QGTagger' + p), getattr(process, 'QGTagger' + p) + getattr(process, 'QGTagger' + chsP))
  
  print "##########################"
  print "Calo jets" if processCaloJets else "No processing of calo jets"
  print "##########################"

  usePFIso(process, "")
  #adaptPFIsoPhotons(process,  process.patPhotons, "", "03")

  # chiara init ----------------------------------
  print "##########################"
  print "CA8 Jets" if processCA8Jets else "No processing of CA8 jets collection"
  print "##########################"

  if processCA8Jets:

    from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection

    # Reco CA 0.8 jets 
    # non sapendo quali parametri usare esattamente lascerei i default della reco per ora.
    # Per doAreaFastjet e doRhoFastjet per il momento usiamo quanto e' ridefinito sopra
    from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets
    process.ca8PFJetsPFlow = ca4PFJets.clone(
      rParam = cms.double(0.8)
      # src = cms.InputTag('pfNoElectron'+postfix),    
      # doAreaFastjet = cms.bool(True),   
      # doRhoFastjet = cms.bool(True),    
      # Rho_EtaMax = cms.double(6.0),    
      # Ghost_EtaMax = cms.double(7.0)   
      )

    # Gen CA 0.8 jets
    from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
    process.ca8GenJetsNoNu = ca4GenJets.clone(
      rParam = cms.double(0.8),
      src = cms.InputTag("genParticlesForJetsNoNu")
      )
  # chiara end ----------------------------------

  
  if processCaloJets:

    # No L2L3 Residual on purpose
    jetCorrections = ('AK5Calo', ['L1Offset', 'L2Relative', 'L3Absolute'])

    addJetCollection(process, cms.InputTag('ak7CaloJets'),
        'AK7',
        'Calo',
        doJTA            = True,
        doBTagging       = True,
        jetCorrLabel     = jetCorrections,
        doType1MET       = correctMETWithT1,
        doL1Cleaning     = False,
        doL1Counters     = False,
        genJetCollection = cms.InputTag("ak7GenJets"),
        doJetID          = True,
        jetIdLabel       = "ak7"
        )



    switchJetCollection(process, cms.InputTag('ak5CaloJets'),
        doJTA            = True,
        doBTagging       = True,
        jetCorrLabel     = jetCorrections,
        doType1MET       = correctMETWithT1,
        genJetCollection = cms.InputTag("ak5GenJets"),
        doJetID          = True,
        jetIdLabel       = "ak5"
        )

    process.selectedPatJets.cut = "pt > 2"
    process.selectedPatJetsAK7Calo.cut = "pt > 2"

  else:
    removeSpecificPATObjects(process, names = ['Jets', 'METs'])

  if not runOnMC:
    # Remove MC Matching
    removeMCMatching(process, names = ["All"])

  removeSpecificPATObjects(process, names = ['Electrons', 'Muons', 'Taus'])

  if runCHS:
    print "##########################"
    print "Running CHS sequence"
    print "##########################"

  process.analysisSequence = cms.Sequence()

  process.analysisSequence *= process.sequence_nochs
  #if runCHS:
  #  process.analysisSequence *= process.sequence_chs

  # chiara init ----------------------------------
  if processCA8Jets:
    process.analysisSequence *= process.ca8PFJetsPFlow
    print("done process.ca8PFJetsPFlow")
    process.analysisSequence *= process.ca8GenJetsNoNu
    print("done process.ca8GenJetsNoNu")

    # nuovo


  # chiara end ----------------------------------


  #GIULIA
  # Quark Gluon tagging
  #process.analysisSequence *= process.QuarkGluonTagger

  # Add default pat sequence to our path
  # This brings to life TcMET, Calo jets and Photons
  ########process.analysisSequence *= process.patDefaultSequence

  # Add our PhotonIsolationProducer to the analysisSequence. This producer compute pf isolations
  # for our photons
  process.photonPFIsolation = cms.EDProducer("PhotonIsolationProducer",
      src = cms.InputTag("selectedPatPhotons")
      )

  ##########process.analysisSequence *= process.photonPFIsolation

  # Filtering

  # require physics declared
  process.load('HLTrigger.special.hltPhysicsDeclared_cfi')
  process.hltPhysicsDeclared.L1GtReadoutRecordTag = 'gtDigis'

  # require scraping filter
  process.scrapingVeto = cms.EDFilter("FilterOutScraping",
      applyfilter = cms.untracked.bool(True),
      debugOn = cms.untracked.bool(False),
      numtrack = cms.untracked.uint32(10),
      thresh = cms.untracked.double(0.25)
      )

  # Count events
  process.nEventsTotal    = cms.EDProducer("EventCountProducer")
  process.nEventsFiltered = cms.EDProducer("EventCountProducer")

  # MET Filters
  process.load("RecoMET.METFilters.metFilters_cff")

  # HCAL Laser filter : work only on Winter13 rereco
  process.load("EventFilter.HcalRawToDigi.hcallaserFilterFromTriggerResult_cff")

  # Let it run
  process.p = cms.Path(
      process.nEventsTotal +

      # Filters
      process.hcalfilter +
      process.primaryVertexFilter +
      process.scrapingVeto +
      process.metFilters +

      process.goodOfflinePrimaryVertices +

      # Physics
      process.analysisSequence +

      process.nEventsFiltered
      )

  if runOnMC:
    process.p.remove(process.hcalfilter)
    process.p.remove(process.scrapingVeto)

  # Add PF2PAT output to the created file
  from PhysicsTools.PatAlgos.patEventContent_cff import patEventContentNoCleaning
  #process.load("CommonTools.ParticleFlow.PF2PAT_EventContent_cff")
  process.out.outputCommands = cms.untracked.vstring('drop *',    
                                                     #process.out.outputCommands = cms.untracked.vstring('keep *')   #'drop *',
                                                     'keep *_*_*_SIM',
                                                     'keep *_*_*_HLT',
                                                     'keep *_*_*_RECO',
                                                     'keep *_*ca8*_*_PAT')
      #'keep *_photonCore_*_*',
      #'keep double_kt6*Jets*_rho_*',
      #'keep *_goodOfflinePrimaryVertices_*_*',
      #'keep recoPFCandidates_particleFlow_*_*',

      # Content of *patEventContentNoCleaning
      #'keep *_selectedPatPhotons*_*_*', 'keep *_selectedPatElectrons*_*_*', 'keep *_selectedPatMuons*_*_*', 'keep *_selectedPatTaus*_*_*', 'keep *_selectedPatJets*_*_*', 'drop *_selectedPatJets_pfCandidates_*', 'drop *_*PF_caloTowers_*', 'drop *_*JPT_pfCandidates_*', 'drop *_*Calo_pfCandidates_*', 'keep *_patMETs*_*_*', 'keep *_selectedPatPFParticles*_*_*', 'keep *_selectedPatTrackCands*_*_*',
      #'keep *_cleanPatPhotons*_*_*', 'keep *_cleanPatElectrons*_*_*', 'keep *_cleanPatMuons*_*_*', 'keep *_cleanPatTaus*_*_*',
      #'keep *_cleanPatJets*_*_*', 'keep *_cleanPatHemispheres*_*_*', 'keep *_cleanPatPFParticles*_*_*',
      #'keep *_cleanPatTrackCands*_*_*',
      #'drop *_*PFlow_caloTowers_*',
                                                     
      # Type I residual
      #'drop *_selectedPatJetsForMET*_*_PAT',
      #'keep *_patPFMet*_*_PAT', # Keep raw met

      # Trigger
      #'keep *_TriggerResults_*_HLT',

      # Debug
      #'keep *_pf*_*_PAT'

      # Photon ID
      #'keep *_patConversions*_*_*',
      #'keep *_photonPFIsolation*_*_*',

      # Quark Gluon tagging
      #'keep *_QGTagger*_*_*',
      #'drop *_kt6PFJetsIsoQG_*_PAT',
      #'drop *_kt6PFJetsQG_*_PAT',
      # MC truth
      #'keep *_genParticles_*_*'
      #)

  if runOnMC:
    process.out.outputCommands.extend(['keep *_addPileupInfo_*_*', 'keep *_generator_*_*'])

  # switch on PAT trigger
  # from PhysicsTools.PatAlgos.tools.trigTools import switchOnTrigger
  # switchOnTrigger( process )

  ## ------------------------------------------------------
  #  In addition you usually want to change the following
  #  parameters:
  ## ------------------------------------------------------
  #
  process.GlobalTag.globaltag = "%s::All" % (globalTag) ##  (according to https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideFrontierConditions)
  #                                         ##
  #process.source.fileNames =  cms.untracked.vstring('file:input_data.root')  ##  (e.g. 'file:AOD.root')
  #                                         ##
  #process.maxEvents.input = 2500
  process.maxEvents.input = 5000
  #                                         ##
  #   process.out.outputCommands = [ ... ]  ##  (e.g. taken from PhysicsTools/PatAlgos/python/patEventContent_cff.py)
  #                                         ##
  process.options.wantSummary = False   ##  (to suppress the long output at the end of the job)
  process.MessageLogger.cerr.FwkReport.reportEvery = 1000

  # Remove annoying ecalLaser messages
  process.MessageLogger.suppressError = cms.untracked.vstring ('ecalLaserCorrFilter')

  return process
Example #11
0
from RecoJets.JetProducers.sc5GenJets_cfi import sisCone5GenJets
from RecoJets.JetProducers.ic5GenJets_cfi import iterativeCone5GenJets
from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets
from RecoJets.JetProducers.ak4GenJets_cfi import ak4GenJets
from RecoJets.JetProducers.gk5GenJets_cfi import gk5GenJets
from RecoJets.JetProducers.kt4GenJets_cfi import kt4GenJets
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets

from RecoHI.HiJetAlgos.HiGenJets_cff import *

sisCone8GenJets = sisCone5GenJets.clone(rParam=0.8)
ak8GenJets = ak5GenJets.clone(rParam=0.8, jetPtMin=15.0)
gk8GenJets = gk5GenJets.clone(rParam=0.8)
kt6GenJets = kt4GenJets.clone(rParam=0.6)
ca8GenJets = ca4GenJets.clone(rParam=0.8)

sisCone5GenJetsNoNu = sisCone5GenJets.clone(
    src=cms.InputTag("genParticlesForJetsNoNu"))
sisCone8GenJetsNoNu = sisCone8GenJets.clone(
    src=cms.InputTag("genParticlesForJetsNoNu"))
kt4GenJetsNoNu = kt4GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
kt6GenJetsNoNu = kt6GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
iterativeCone5GenJetsNoNu = iterativeCone5GenJets.clone(
    src=cms.InputTag("genParticlesForJetsNoNu"))
ak5GenJetsNoNu = ak5GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
ak4GenJetsNoNu = ak4GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
ak8GenJetsNoNu = ak8GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
gk5GenJetsNoNu = gk5GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
gk8GenJetsNoNu = gk8GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
ca4GenJetsNoNu = ca4GenJets.clone(src=cms.InputTag("genParticlesForJetsNoNu"))
Example #12
0
    btagDiscriminators = bTagDiscriminators,
    jetCorrections = jetCorrectionsAK4,
    genJetCollection = cms.InputTag(genJetCollection),
    #genParticles = cms.InputTag(genParticles),
    #explicitJTA = True,
    postfix = postfix
)

#-------------------------------------

#-------------------------------------
## Fat jets (Gen and Reco)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.genJetsNoNu = ca4GenJets.clone(
    jetAlgorithm = cms.string(options.jetAlgo),
    rParam = cms.double(options.jetRadius),
    src = (cms.InputTag("packedGenParticlesForJetsNoNu") if options.miniAOD else cms.InputTag("genParticlesForJetsNoNu"+postfix))
)
from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets
process.PFJetsCHS = ca4PFJets.clone(
    jetAlgorithm = cms.string(options.jetAlgo),
    rParam = cms.double(options.jetRadius),
    src = (getattr(process,"ak4PFJets").src if options.miniAOD else getattr(process,"pfJetsPFBRECO"+postfix).src),
    srcPVs = (getattr(process,"ak4PFJets").srcPVs if options.miniAOD else getattr(process,"pfJetsPFBRECO"+postfix).srcPVs),
    doAreaFastjet = cms.bool(True),
    jetPtMin = cms.double(options.fatJetPtMin)
)
## Pruned fat jets (Gen and Reco) (each module produces two jet collections, fat jets and subjets)
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
process.genJetsNoNuPruned = ca4GenJets.clone(
    SubJetParameters,
Example #13
0
from RecoJets.JetProducers.CATopJetParameters_cfi import *
from RecoJets.JetProducers.GenJetParameters_cfi import *
from RecoJets.JetProducers.caTopTaggers_cff import *

 # CATopTagInfos, HEPTopTagInfos
# process.CATopTagInfos = CATopTagInfos.clone()

###############################################
# GEN JETS
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.ak5GenJets_cfi import ak5GenJets

process.ak3GenJets = ak5GenJets.clone( rParam = cms.double(0.3),
                                           src = cms.InputTag("packedGenParticles"))

process.ca8GenJets = ca4GenJets.clone( rParam = cms.double(0.8),
                                           src = cms.InputTag("packedGenParticles"))

process.ak15GenJets = ak5GenJets.clone( rParam = cms.double(1.5),
                                           src = cms.InputTag("packedGenParticles"))

#ADD NO NU

process.ak15GenJetsFiltered = ak5GenJets.clone(
  rParam = cms.double(1.5),
  src = cms.InputTag("packedGenParticles"),
  useFiltering = cms.bool(True),
  nFilt = cms.int32(3),
  rFilt = cms.double(0.3),
  writeCompound = cms.bool(True),
  jetCollInstanceName=cms.string("SubJets")
  )
from RecoJets.JetProducers.PFJetParameters_cfi import *
from RecoJets.JetProducers.AnomalousCellParameters_cfi import *

process.caPrunedPFJets = cms.EDProducer(
    "SubJetProducer",
    PFJetParameters,
    AnomalousCellParameters,
    SubJetParameters,
    jetAlgorithm=cms.string("CambridgeAachen"),
    rParam=SubJetParameters.jetSize)
process.caPrunedPFJets.nSubjets = cms.int32(2)
process.caPrunedPFJets.inputEMin = cms.double(1.0)
process.caPrunedPFJets.jetCollInstanceName = cms.string("subjets")

process.ca8GenJets = ca4GenJets.clone(rParam=cms.double(0.8))

from PhysicsTools.PatAlgos.tools.metTools import *

addPfMET(process, 'PF')

# switch jet collection to our juets
from PhysicsTools.PatAlgos.tools.jetTools import *

print "About to switch jet collection"

if runon == '31x':
    run33xOn31xMC(process,
                  jetSrc=cms.InputTag("antikt5CaloJets"),
                  jetIdTag="antikt5")
Example #15
0
usePF2PAT(process,runPF2PAT=True, jetAlgo=jetAlgo, runOnMC=not options.runOnData, postfix=postfix,
          jetCorrections=inputJetCorrLabelAK5, pvCollection=cms.InputTag('goodOfflinePrimaryVertices'))

## Top projections in PF2PAT
getattr(process,"pfPileUp"+postfix).checkClosestZVertex = False
getattr(process,"pfNoPileUp"+postfix).enable = options.usePFchs
getattr(process,"pfNoMuon"+postfix).enable = True
getattr(process,"pfNoElectron"+postfix).enable = True
getattr(process,"pfNoTau"+postfix).enable = False
getattr(process,"pfNoJet"+postfix).enable = True

#-------------------------------------
## CA8 jets (Gen and Reco)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.ca8GenJetsNoNu = ca4GenJets.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu")
)
from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets
process.ca8PFJetsCHS = ca4PFJets.clone(
    rParam = cms.double(0.8),
    src = getattr(process,"pfJets"+postfix).src,
    srcPVs = getattr(process,"pfJets"+postfix).srcPVs,
    doAreaFastjet = getattr(process,"pfJets"+postfix).doAreaFastjet,
    jetPtMin = cms.double(20.)
)

## CA8 filtered jets (Gen and Reco) (each module produces two jet collections, fat jets and subjets)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.ca8GenJetsNoNuFiltered = ca4GenJets.clone(
    rParam = cms.double(0.8),
    src = cms.InputTag("genParticlesForJetsNoNu"),
    cms.InputTag("negativeCombinedCSVJPBJetTags"),
    cms.InputTag("positiveCombinedCSVJPBJetTags"),
    cms.InputTag("combinedCSVJPSLBJetTags"),
    cms.InputTag("negativeCombinedCSVJPSLBJetTags"),
    cms.InputTag("positiveCombinedCSVJPSLBJetTags"))

## Load standard PAT objects (here we only need PAT muons but the framework will figure out what it needs to run using the unscheduled mode)
process.load("PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff")
process.load("PhysicsTools.PatAlgos.selectionLayer1.selectedPatCandidates_cff")
#-------------------------------------

#-------------------------------------
# CA8 jets (Gen and Reco)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
process.ca8GenJetsNoNu = ca4GenJets.clone(
    rParam=cms.double(0.8),
    src=cms.InputTag("genParticlesForJetsNoNu" + postfix))

from RecoJets.JetProducers.ca4PFJets_cfi import ca4PFJets
process.ca8PFJets = ca4PFJets.clone(rParam=cms.double(0.8),
                                    src=getattr(process,
                                                "pfJets" + postfix).src,
                                    srcPVs=getattr(process,
                                                   "pfJets" + postfix).srcPVs,
                                    doAreaFastjet=cms.bool(True),
                                    jetPtMin=cms.double(options.fatJetPtMin))

## CA8 pruned jets (Gen and Reco)
from RecoJets.JetProducers.ca4GenJets_cfi import ca4GenJets
from RecoJets.JetProducers.SubJetParameters_cfi import SubJetParameters
process.ca8GenJetsNoNuPruned = ca4GenJets.clone(