def usePFIso(process, postfix = "PFIso"):
    print "Building particle-based isolation "
    print "***************** "
    process.load("CommonTools.ParticleFlow.Isolation.pfElectronIsolation_cff")
    process.load("CommonTools.ParticleFlow.Isolation.pfMuonIsolation_cff")

    setupPFElectronIso(process, 'gsfElectrons', postfix)
    setupPFMuonIso(process, 'muons', postfix)
    adaptPFIsoMuons( process, applyPostfix(process,"patMuons",""), postfix)
    adaptPFIsoElectrons( process, applyPostfix(process,"patElectrons",""), postfix)
Exemple #2
0
def applyMuonParameters(process):
    process.muIsoSequence = setupPFMuonIso(process, 'muons')
    process.pfParticleSelectionSequence = pfParticleSelectionSequence

    process.patMuons.isoDeposits = cms.PSet(
        pfAllParticles=cms.InputTag(
            "muPFIsoDepositPUPFIso"),  # all PU   CH+MU+E
        pfChargedHadrons=cms.InputTag(
            "muPFIsoDepositChargedPFIso"),  # all noPU CH
        pfNeutralHadrons=cms.InputTag("muPFIsoDepositNeutralPFIso"),  # all NH
        pfPhotons=cms.InputTag("muPFIsoDepositGammaPFIso"),  # all PH
        user=cms.VInputTag(
            cms.InputTag("muPFIsoDepositChargedAllPFIso"))  # all noPU CH+MU+E
    )

    process.patMuons.isolationValues = cms.PSet(
        pfAllParticles=cms.InputTag("muPFIsoValuePU04PFIso"),
        pfChargedHadrons=cms.InputTag("muPFIsoValueCharged04PFIso"),
        pfNeutralHadrons=cms.InputTag("muPFIsoValueNeutral04PFIso"),
        pfPhotons=cms.InputTag("muPFIsoValueGamma04PFIso"),
        user=cms.VInputTag(cms.InputTag("muPFIsoValueChargedAll04PFIso")))

    process.patMuons.embedTrack = cms.bool(True)

    process.patMuonsWithEmbeddedVariables = cms.EDProducer(
        'MuonsUserEmbedded',
        muonTag=cms.InputTag("patMuonsTriggerMatch"),
        vertexTag=cms.InputTag("offlinePrimaryVerticesWithBS"))

    return
def applyMuonParameters(process):
    process.muIsoSequence       = setupPFMuonIso(process,'muons')
    process.pfParticleSelectionSequence = pfParticleSelectionSequence

    process.patMuons.isoDeposits = cms.PSet(
        pfAllParticles   = cms.InputTag("muPFIsoDepositPUPFIso"),              # all PU   CH+MU+E
        pfChargedHadrons = cms.InputTag("muPFIsoDepositChargedPFIso"),         # all noPU CH
        pfNeutralHadrons = cms.InputTag("muPFIsoDepositNeutralPFIso"),         # all NH
        pfPhotons        = cms.InputTag("muPFIsoDepositGammaPFIso"),           # all PH
        user = cms.VInputTag( cms.InputTag("muPFIsoDepositChargedAllPFIso") )  # all noPU CH+MU+E
        )

    process.patMuons.isolationValues = cms.PSet(
        pfAllParticles   = cms.InputTag("muPFIsoValuePU04PFIso"),
        pfChargedHadrons = cms.InputTag("muPFIsoValueCharged04PFIso"),
        pfNeutralHadrons = cms.InputTag("muPFIsoValueNeutral04PFIso"),
        pfPhotons        = cms.InputTag("muPFIsoValueGamma04PFIso"),
        user = cms.VInputTag( cms.InputTag("muPFIsoValueChargedAll04PFIso") )
        )

    process.patMuons.embedTrack = cms.bool(True)

    process.patMuonsWithEmbeddedVariables = cms.EDProducer('MuonsUserEmbedded',
        muonTag = cms.InputTag("patMuonsTriggerMatch"),
        vertexTag = cms.InputTag("offlinePrimaryVerticesWithBS")
        )

    return
def usePFIso(process, postfix = "PFIso"):
    print "Building particle-based isolation "
    print "***************** "
    process.eleIsoSequence = setupPFElectronIso(process, 'gsfElectrons', postfix)
    process.muIsoSequence = setupPFMuonIso(process, 'muons', postfix)
    adaptPFIsoMuons( process, applyPostfix(process,"patMuons",""), postfix)
    adaptPFIsoElectrons( process, applyPostfix(process,"patElectrons",""), postfix)
    getattr(process,'patDefaultSequence').replace( getattr(process,"patCandidates"),
                                                   process.pfParticleSelectionSequence +
                                                   process.eleIsoSequence +
                                                   process.muIsoSequence +
                                                   getattr(process,"patCandidates") )
def usePFIso(process, postfix="PFIso"):
    print "Building particle-based isolation "
    print "***************** "
    process.eleIsoSequence = setupPFElectronIso(process, 'gsfElectrons',
                                                postfix)
    process.muIsoSequence = setupPFMuonIso(process, 'muons', postfix)
    adaptPFIsoMuons(process, applyPostfix(process, "patMuons", ""), postfix)
    adaptPFIsoElectrons(process, applyPostfix(process, "patElectrons", ""),
                        postfix)
    getattr(process, 'patDefaultSequence').replace(
        getattr(process, "patCandidates"),
        process.pfParticleSelectionSequence + process.eleIsoSequence +
        process.muIsoSequence + getattr(process, "patCandidates"))
Exemple #6
0
          vertexes = cms.InputTag("offlinePrimaryVertices"),
          algos = cms.VPSet(stdalgos),
          rho     = cms.InputTag("kt6PFJets","rho"),
          jec     = cms.string("AK5PF"),
          applyJec = cms.bool(True),
          inputIsCorrected = cms.bool(False),                                     
          residualsFromTxt = cms.bool(False),
          residualsTxt     = cms.FileInPath("RecoJets/JetProducers/data/dummy.txt"),
          )

################################################################
### Lepton Isolation
################################################################
from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFElectronIso, setupPFMuonIso
process.eleIsoSequence = setupPFElectronIso(process, 'gsfElectrons')
process.muIsoSequence = setupPFMuonIso(process, 'pfAllMuons')
# massSearchReplaceAnyInputTag(process.pfParticleSelectionSequence,
#                              "offlinePrimaryVertices",
#                              "goodOfflinePrimaryVertices",
#                              verbose=True)
# massSearchReplaceAnyInputTag(process.eleIsoSequence,
#                              "offlinePrimaryVertices",
#                              "goodOfflinePrimaryVertices",
#                              verbose=True)
# massSearchReplaceAnyInputTag(process.muIsoSequence,
#                              "offlinePrimaryVertices",
#                              "goodOfflinePrimaryVertices",
#                              verbose=True)

process.eleIsoSequence.remove(process.elPFIsoValueCharged03NoPFIdPFIso)
process.eleIsoSequence.remove(process.elPFIsoValueChargedAll03NoPFIdPFIso)
Exemple #7
0
def getBaseConfig(globaltag= 'START53_V15A::All', testfile=cms.untracked.vstring(""), maxevents=100, nickname = 'SM_VBFHToTauTau_M_90_powheg_pythia_8TeV', kappaTag = 'Kappa_1_0_0'):

	from Kappa.Skimming.KSkimming_template_cfg import process
	process.source.fileNames      = testfile
	process.maxEvents.input	      = maxevents				## number of events to be processed (-1 = all in file)
	process.kappaTuple.outputFile = 'kappaTuple.root'			## name of output file
	process.kappaTuple.verbose    = cms.int32(0)				## verbosity level
	process.kappaTuple.profile    = cms.bool(True)
	if not globaltag.lower() == 'auto' :
		process.GlobalTag.globaltag   = globaltag
		print "GT (overwritten):", process.GlobalTag.globaltag
	data = datasetsHelper.isData(nickname)
	centerOfMassEnergy = datasetsHelper.getCenterOfMassEnergy(nickname)
	isEmbedded = datasetsHelper.getIsEmbedded(nickname)

	process.p = cms.Path()
	## ------------------------------------------------------------------------
	# Configure Metadata describing the file
	process.kappaTuple.active										= cms.vstring('TreeInfo')
	process.kappaTuple.TreeInfo.parameters = cms.PSet(
		dataset						= cms.string(datasetsHelper.getDatasetName(nickname)),
		generator					= cms.string(datasetsHelper.getGenerator(nickname)),
		productionProcess			= cms.string(datasetsHelper.getProcess(nickname)),
		globalTag					= cms.string(globaltag),
		prodCampaignGlobalTag	= cms.string(datasetsHelper.getProductionCampaignGlobalTag(nickname, centerOfMassEnergy)),
		runPeriod					= cms.string(datasetsHelper.getRunPeriod(nickname)),
		kappaTag						= cms.string(kappaTag),
		isEmbedded					= cms.bool(isEmbedded),
		jetMultiplicity			= cms.int32(datasetsHelper.getJetMultiplicity(nickname)),
		centerOfMassEnergy		= cms.int32(centerOfMassEnergy),
		puScenario					= cms.string(datasetsHelper.getPuScenario(nickname, centerOfMassEnergy)),
		isData						= cms.bool(data),
	)


	## ------------------------------------------------------------------------
	# General configuration

	process.kappaTuple.active += cms.vstring('VertexSummary')	## save VertexSummary,
	process.kappaTuple.active += cms.vstring('BeamSpot')		## save Beamspot,
	process.kappaTuple.active += cms.vstring('TriggerObjects')

	if not isEmbedded:
		if data:
			process.kappaTuple.active+= cms.vstring('DataInfo')		## produce Metadata for data,
		else:
			process.kappaTuple.active+= cms.vstring('GenInfo')		## produce Metadata for MC,
			process.kappaTuple.active+= cms.vstring('GenParticles')		## save GenParticles,
			process.kappaTuple.active+= cms.vstring('GenTaus')				## save GenParticles,
	
	# prune GenParticles
	if not data:
		process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
		process.prunedGenParticles = cms.EDProducer("GenParticlePruner",
			src = cms.InputTag("genParticles", "", "SIM"),
			select = cms.vstring(
				"drop  *",
				"keep status == 3",  # all status 3
				"keep++ abs(pdgId) == 23", # Z
				"keep++ abs(pdgId) == 24", # W
				"keep++ abs(pdgId) == 25", # H
				"keep abs(pdgId) == 11 || abs(pdgId) == 13",  # charged leptons
				"keep++ abs(pdgId) == 15"  # keep full tau decay chain
			)
		)
	
	process.kappaTuple.Info.hltWhitelist = cms.vstring(			## HLT selection
		# https://github.com/cms-analysis/HiggsAnalysis-KITHiggsToTauTau/blob/master/data/triggerTables-2011-2012.txt
		# https://twiki.cern.ch/twiki/bin/viewauth/CMS/HiggsToTauTauWorkingSummer2013
		# can be tested at http://regexpal.com
		# e
		"^HLT_Ele[0-9]+_CaloIdVT(_CaloIsoT)?_TrkIdT(_TrkIsoT)?_v[0-9]+$",
		"^HLT_Ele[0-9]+_WP[0-9]+_v[0-9]+$",
		# m
		"^HLT_(Iso)?Mu[0-9]+(_eta2p1)?_v[0-9]+$",
		# ee
		"^HLT_Ele[0-9]+_CaloId(L|T)(_TrkIdVL)?_CaloIsoVL(_TrkIdVL)?(_TrkIsoVL)?" +
			"_Ele[0-9]+_CaloId(L|T)(_TrkIdVL)?_CaloIsoVL(_TrkIdVL)?(_TrkIsoVL)?_v[0-9]+$",
		"^HLT_Ele[0-9]+_Ele[0-9]+_CaloId(L|T)_CaloIsoVL(_TrkIdVL_TrkIsoVL)?_v[0-9]+$",
		# mm
		"^HLT_(Double)?Mu[0-9]+(_(Mu|Jet)[0-9]+)?_v[0-9]+$",
		# em
		"^HLT_Mu[0-9]+_(Ele|Photon)[0-9]+_CaloId(L|T|VT)(_CaloIsoVL|_IsoT)?(_TrkIdVL_TrkIsoVL)?_v[0-9]+$",
		# et
		"^HLT_Ele[0-9]+_CaloIdVT(_Calo(IsoRho|Iso)T)?_TrkIdT(_TrkIsoT)?_(Loose|Medium|Tight)IsoPFTau[0-9]+_v[0-9]+$",
		"^HLT_Ele[0-9]+_eta2p1_WP[0-9]+(Rho|NoIso)_LooseIsoPFTau[0-9]+_v[0-9]+$",
		# mt
		"^HLT_(Iso)?Mu[0-9]+(_eta2p1)?_(Loose|Medium|Tight)IsoPFTau[0-9]+(_Trk[0-9]_eta2p1)?_v[0-9]+$",
		# tt
		"^HLT_Double(Medium)?IsoPFTau[0-9]+_Trk(1|5)_eta2p1_(Jet[0-9]+|Prong[0-9])?_v[0-9]+$",
		"^HLT_Double(Medium)?IsoPFTau[0-9]+_Trk(1|5)(_eta2p1)?_v[0-9]+$",
		# specials (possible generalization: Mu15, L1ETM20, Photon20, Ele8)
		"^HLT_Ele[0-9]+_CaloId(L|T|VT)_CaloIso(VL|T|VT)(_TrkIdT)?(_TrkIsoVT)?_(SC|Ele)[0-9](_Mass[0-9]+)?_v[0-9]+$",
		"^HLT_Ele8_v[0-9]+$",
		"^HLT_IsoMu15(_eta2p1)?_L1ETM20_v[0-9]+$",
		"^HLT_Photon20_CaloIdVT_IsoT_Ele8_CaloIdL_CaloIsoVL_v[0-9]+$",
		# specials for tag and probe and em fakerate studies could be added if enough bits are ensured
		#"^HLT_Ele[0-9]+_CaloId(L|T|VT)_CaloIso(VL|T|VT)(_TrkIdT_TrkIso(T|VT))?_(SC|Ele)[0-9]+(_Mass[0-9]+)?_v[0-9]+$",
		#"^HLT_Mu[0-9]+_Photon[0-9]+_CaloIdVT_IsoT_v[0-9]+$",
		#"^HLT_Ele[0-9]+_CaloId(L|T)(_TrkIdVL)?_CaloIsoVL(_TrkIdVL_TrkIsoVL)?(_TrkIsoVL)?(_Jet[0-9]+|)?_v[0-9]+$",
		)
	
	process.kappaTuple.Info.hltBlacklist = cms.vstring(
		"HLT_Mu13_Mu8", # v21 gives errors for the trigger objects
		)

	## ------------------------------------------------------------------------
	# Configure PFCandidates and offline PV
	process.load("Kappa.Skimming.KPFCandidates_cff")
	#process.kappaTuple.active += cms.vstring('PFCandidates')		## save PFCandidates for deltaBeta corrected
	process.kappaTuple.PFCandidates.whitelist = cms.vstring(                ## isolation used for electrons and muons.
##		"pfNoPileUpChargedHadrons",    ## switch to pfAllChargedParticles
		"pfAllChargedParticles",       ## same as pfNoPileUpChargedHadrons +pf_electrons + pf_muons
		"pfNoPileUpNeutralHadrons",
		"pfNoPileUpPhotons",
		"pfPileUpChargedHadrons",
		)

	process.p *= ( process.makePFBRECO * process.makePFCandidatesForDeltaBeta )
	
	## ------------------------------------------------------------------------
	# Configure Muons
	process.load("Kappa.Skimming.KMuons_cff")
	process.kappaTuple.active += cms.vstring('Muons')	                ## produce/save KappaMuons
	process.kappaTuple.Muons.minPt = cms.double(8.0)
	process.p *= process.makeKappaMuons

	## ------------------------------------------------------------------------
	# Configure Electrons
	process.load("Kappa.Skimming.KElectrons_cff")
	process.kappaTuple.active += cms.vstring('Electrons')	                ## produce/save KappaElectrons,
	process.kappaTuple.Electrons.ids = cms.vstring("mvaTrigV0",
	                                               "mvaTrigNoIPV0",
	                                               "mvaNonTrigV0")
	process.kappaTuple.Electrons.minPt = cms.double(8.0)
	process.p *= process.makeKappaElectrons
	
	## for electron/muon iso
	# https://github.com/ajgilbert/ICHiggsTauTau/blob/master/test/higgstautau_cfg.py#L418-L448
	from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFElectronIso, setupPFMuonIso
	process.eleIsoSequence = setupPFElectronIso(process, 'patElectrons')
	process.muIsoSequence = setupPFMuonIso(process, 'muons')
	
	process.eleIsoSequence.remove(process.elPFIsoValueCharged03NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValueChargedAll03NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValueGamma03NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValueNeutral03NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValuePU03NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValueCharged04NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValueChargedAll04NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValueGamma04NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValueNeutral04NoPFIdPFIso)
	process.eleIsoSequence.remove(process.elPFIsoValuePU04NoPFIdPFIso)
	process.elPFIsoValueGamma04PFIdPFIso.deposits[0].vetos      = cms.vstring('EcalEndcaps:ConeVeto(0.08)','EcalBarrel:ConeVeto(0.08)')
	process.elPFIsoValueNeutral04PFIdPFIso.deposits[0].vetos    = cms.vstring()
	process.elPFIsoValuePU04PFIdPFIso.deposits[0].vetos         = cms.vstring()
	process.elPFIsoValueCharged04PFIdPFIso.deposits[0].vetos    = cms.vstring('EcalEndcaps:ConeVeto(0.015)')
	process.elPFIsoValueChargedAll04PFIdPFIso.deposits[0].vetos = cms.vstring('EcalEndcaps:ConeVeto(0.015)','EcalBarrel:ConeVeto(0.01)')
	process.pfiso = cms.Sequence(process.pfParticleSelectionSequence + process.eleIsoSequence + process.muIsoSequence)

	# rho for electron iso
	from RecoJets.JetProducers.kt4PFJets_cfi import kt4PFJets
	process.kt6PFJetsForIsolation = kt4PFJets.clone( rParam = 0.6, doRhoFastjet = True )
	process.kt6PFJetsForIsolation.Rho_EtaMax = cms.double(2.5)
	process.p *= (process.pfiso * process.kt6PFJetsForIsolation)

	## ------------------------------------------------------------------------
	# Configure Taus
	process.load("Kappa.Skimming.KTaus_cff")
	process.kappaTuple.active += cms.vstring('Taus')	                ## produce/save KappaTaus
	process.kappaTuple.Taus.minPt = cms.double(8.0)
	process.p *= process.makeKappaTaus

	## ------------------------------------------------------------------------
	## Kappa Jets
	process.load("Kappa.Skimming.KJets_cff")
	process.kappaTuple.active += cms.vstring('Jets', 'PileupDensity')
	process.kappaTuple.Jets = cms.PSet(
		process.kappaNoCut,
		process.kappaNoRegEx,
		taggers = cms.vstring(
			"QGlikelihood",
			"QGmlp",
			"TrackCountingHighEffBJetTags",
			"TrackCountingHighPurBJetTags", 
			"JetProbabilityBJetTags",
			"JetBProbabilityBJetTags", 
			"SoftElectronBJetTags",
			"SoftMuonBJetTags",
			"SoftMuonByIP3dBJetTags",
			"SoftMuonByPtBJetTags",
			"SimpleSecondaryVertexBJetTags", 
			"CombinedSecondaryVertexBJetTags",
			"CombinedSecondaryVertexMVABJetTags",
			"puJetIDFullDiscriminant",
			"puJetIDFullLoose",
			"puJetIDFullMedium",
			"puJetIDFullTight",
			"puJetIDCutbasedDiscriminant",
			"puJetIDCutbasedLoose",
			"puJetIDCutbasedMedium",
			"puJetIDCutbasedTight"
			),
		AK5PFTaggedJets = cms.PSet(
			src = cms.InputTag("ak5PFJets"),
			QGtagger = cms.InputTag("AK5PFJetsQGTagger"),
			Btagger  = cms.InputTag("ak5PF"),
			PUJetID  = cms.InputTag("ak5PFPuJetMva"),
			PUJetID_full = cms.InputTag("full"),
			),
		AK5PFTaggedJetsCHS = cms.PSet(
			src = cms.InputTag("ak5PFJetsCHS"),
			QGtagger = cms.InputTag("AK5PFJetsCHSQGTagger"),
			Btagger  = cms.InputTag("ak5PFCHS"),
			PUJetID  = cms.InputTag("ak5PFCHSPuJetMva"),
			PUJetID_full = cms.InputTag("full"),
			),
		)
	process.kappaTuple.Jets.minPt = cms.double(10.0)

	## ------------------------------------------------------------------------
	# Special settings for embedded samples
	# https://twiki.cern.ch/twiki/bin/viewauth/CMS/MuonTauReplacementWithPFlow
	if isEmbedded:
		process.load('RecoBTag/Configuration/RecoBTag_cff')
		process.load('RecoJets/JetAssociationProducers/ak5JTA_cff')
		process.ak5PFJetNewTracksAssociatorAtVertex.tracks = "tmfTracks"
		process.ak5PFCHSNewJetTracksAssociatorAtVertex.tracks = "tmfTracks"
		process.p *= process.btagging
		# disable overrideHLTCheck for embedded samples, since it triggers an Kappa error
		process.kappaTuple.Info.overrideHLTCheck = cms.untracked.bool(True)
		process.kappaTuple.active+= cms.vstring('DataInfo')
		process.kappaTuple.active+= cms.vstring('GenParticles')		## save GenParticles,
		process.kappaTuple.active+= cms.vstring('GenTaus')				## save GenParticles,
		process.kappaTuple.GenParticles.genParticles.src = cms.InputTag("genParticles","","EmbeddedRECO")
		process.kappaTuple.Info.isEmbedded = cms.bool(True)

	# Let Jets run
	process.p *= (
		process.makeKappaTaus *
		process.makePFJets *
		process.makePFJetsCHS *
		process.makeQGTagging *
		process.makeBTagging *
		process.makePUJetID
	)

	## ------------------------------------------------------------------------
	## MET
	process.load("Kappa.Skimming.KMET_cff")
	process.kappaTuple.active += cms.vstring('GenMET')                         ## produce/save KappaMET
	process.kappaTuple.active += cms.vstring('MET')                       ## produce/save KappaPFMET
	process.p *= process.makeKappaMET
	#"""
	
	if not data:
		process.load('PhysicsTools/JetMCAlgos/TauGenJets_cfi')
		process.load('PhysicsTools/JetMCAlgos/TauGenJetsDecayModeSelectorAllHadrons_cfi')
		process.p *= (process.tauGenJets+process.tauGenJetsSelectorAllHadrons)
		process.kappaTuple.GenJets.whitelist = cms.vstring("tauGenJets")
		process.kappaTuple.active += cms.vstring('GenJets')
	
	# add python config to TreeInfo
	process.kappaTuple.TreeInfo.parameters.config = cms.string(process.dumpPython())
	
	# add repository revisions to TreeInfo
	for repo, rev in tools.get_repository_revisions().iteritems():
		setattr(process.kappaTuple.TreeInfo.parameters, repo, cms.string(rev))
	

	## ------------------------------------------------------------------------
	## And let it run
	process.p *= (
		process.kappaOut
	)
	## ------------------------------------------------------------------------
	## declare edm OutputModule (expects a path 'p'), uncommented if wanted

	#process.edmOut = cms.OutputModule(
	#	"PoolOutputModule",
	#	fileName = cms.untracked.string('dump.root'),				## name of output file
	#	SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring('p') ),	## save only events passing the full path
	#	outputCommands = cms.untracked.vstring('drop *', 'keep *_*_*_KAPPA')	## save each edm object that has been produced by process KAPPA
	#	)
	#process.ep = cms.EndPath(process.edmOut)

	return process
Exemple #8
0
process.patCandidateSummary.candidates.remove(cms.InputTag("patPhotons") )
process.patDefaultSequence.remove(process.selectedPatPhotons)
process.selectedPatCandidateSummary.candidates.remove(cms.InputTag("selectedPatPhotons") )

process.PFTau += process.recoTauFixedConeSequence
process.offlineSequence = cms.Sequence(
    #process.recoTauClassicHPSSequence +
    #process.produceAndDiscriminateFixedConePFTaus +
    process.PFTau +
    process.patDefaultSequence
    )

#Needed??
## pf-isolation
from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFMuonIso, setupPFElectronIso
process.muIsoSequence       = cms.Sequence( setupPFMuonIso(process,'muons') )
process.electronIsoSequence = cms.Sequence( setupPFElectronIso(process,'gedGsfElectrons') )
from CommonTools.ParticleFlow.pfParticleSelection_cff import pfParticleSelectionSequence
process.pfParticleSelectionSequence = pfParticleSelectionSequence
process.pfIsolationSequence = cms.Sequence(
    process.pfParticleSelectionSequence*
    process.muIsoSequence* process.electronIsoSequence
    )
process.offlineSequence.replace(
    process.patDefaultSequence,
    process.pfIsolationSequence + process.patDefaultSequence)

#Custom cone size for Electron isolation
process.elPFIsoValueChargedAll04PFIdPFIso.deposits[0].vetos = cms.vstring(
    'EcalBarrel:ConeVeto(0.01)','EcalEndcaps:ConeVeto(0.015)',
    )
process.patTaus.embedIsolationPFNeutralHadrCands = cms.bool(True)
process.patTaus.embedIsolationPFGammaCands = cms.bool(True)
process.patTaus.embedSignalPFChargedHadrCands = cms.bool(True)
process.patTaus.embedSignalPFNeutralHadrCands = cms.bool(True)
process.patTaus.embedSignalPFGammaCands = cms.bool(True)
process.patTaus.embedLeadPFChargedHadrCand = cms.bool(True)
process.patTaus.embedLeadPFNeutralCand = cms.bool(True)

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

process.load("CommonTools.ParticleFlow.Isolation.pfMuonIsolation_cff")
process.load("CommonTools.ParticleFlow.Isolation.pfElectronIsolation_cff")

from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFMuonIso, setupPFElectronIso

process.stdMuonSequencePFIso = setupPFMuonIso(process,'muons')
process.stdElectronSequencePFIso = setupPFElectronIso(process,'gsfElectrons')

from CommonTools.ParticleFlow.pfParticleSelection_cff import pfParticleSelectionSequence
process.pfParticleSelectionSequence = pfParticleSelectionSequence

process.patMuons.isoDeposits = cms.PSet(
    pfAllParticles = cms.InputTag("muPFIsoDepositPUPFIso"), # all PU CH+MU+E
    pfChargedHadrons = cms.InputTag("muPFIsoDepositChargedPFIso"), # all noPU CH

    pfNeutralHadrons = cms.InputTag("muPFIsoDepositNeutralPFIso"), # all NH
    pfPhotons = cms.InputTag("muPFIsoDepositGammaPFIso"), # all PH

    user = cms.VInputTag(
    cms.InputTag("muPFIsoDepositChargedAllPFIso"), # all noPU CH+MU+E
    )
# --------------------------------------------------------------------------------

## remove certain objects from the default sequence
# removeAllPATObjectsBut(process, ['Muons', 'Electrons', 'Taus', 'METs'])
# removeSpecificPATObjects(process, ['Electrons', 'Muons', 'Taus'])

from PhysicsTools.PatAlgos.tools.tauTools import *

switchToPFTauHPS(process)  # For HPS Taus
# switchToPFTauHPSpTaNC(process) # For HPS TaNC Taus

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

from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFMuonIso, setupPFElectronIso

process.muIsoSequence = setupPFMuonIso(process, "muons")
process.electronIsoSequence = setupPFElectronIso(process, "gsfElectrons")

from CommonTools.ParticleFlow.pfParticleSelection_cff import pfParticleSelectionSequence

process.pfParticleSelectionSequence = pfParticleSelectionSequence


process.patMuons.isoDeposits = cms.PSet(
    pfAllParticles=cms.InputTag("muPFIsoDepositPUPFIso"),  # all PU   CH+MU+E
    pfChargedHadrons=cms.InputTag("muPFIsoDepositChargedPFIso"),  # all noPU CH
    pfNeutralHadrons=cms.InputTag("muPFIsoDepositNeutralPFIso"),  # all NH
    pfPhotons=cms.InputTag("muPFIsoDepositGammaPFIso"),  # all PH
    user=cms.VInputTag(cms.InputTag("muPFIsoDepositChargedAllPFIso")),  # all noPU CH+MU+E
)
    input = cms.untracked.int32(10)
)

# Load various tools before PAT
import os
cmssw_version = os.environ["CMSSW_VERSION"].replace("CMSSW_","")
if cmssw_version.startswith('4'): #earlier value was 4
        process.load("JetMETCorrections.METPUSubtraction.mvaPFMET_leptons_42X_cff")
else:
        process.load("JetMETCorrections.METPUSubtraction.mvaPFMET_leptons_cff")
	process.load("RecoTauTag.Configuration.RecoPFTauTag_cff")
	process.load("RecoJets.JetProducers.PileupJetID_cfi")
	
	process.load('CommonTools.ParticleFlow.pfMuons_cff')
	from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFMuonIso
	process.muIsoSequence = setupPFMuonIso(process, 'pfSelectedMuons')

	process.load('EGamma.EGammaAnalysisTools.electronIdMVAProducer_cfi')
	from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFElectronIso
	process.elIsoSequence = setupPFElectronIso(process, 'gsfElectrons')

# Produce rho for PU correction
process.load('JetMETCorrections.Configuration.DefaultJEC_cff')
process.load('RecoJets.Configuration.RecoPFJets_cff')
process.kt6PFJets.doRhoFastjet = True
process.ak5PFJets.doAreaFastjet = True

# Load PAT stuff
process.load("PhysicsTools.PatAlgos.patSequences_cff")

# We PAT taus for SVfit. However, to create PAT taus we also need all the
Exemple #12
0
process.maxEvents = cms.untracked.PSet(input=cms.untracked.int32(10))

# Load various tools before PAT
import os
cmssw_version = os.environ["CMSSW_VERSION"].replace("CMSSW_", "")
if cmssw_version.startswith('4'):  #earlier value was 4
    process.load("JetMETCorrections.METPUSubtraction.mvaPFMET_leptons_42X_cff")
else:
    process.load("JetMETCorrections.METPUSubtraction.mvaPFMET_leptons_cff")
    process.load("RecoTauTag.Configuration.RecoPFTauTag_cff")
    process.load("RecoJets.JetProducers.PileupJetID_cfi")

    process.load('CommonTools.ParticleFlow.pfMuons_cff')
    from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFMuonIso
    process.muIsoSequence = setupPFMuonIso(process, 'pfSelectedMuons')

    process.load('EGamma.EGammaAnalysisTools.electronIdMVAProducer_cfi')
    from CommonTools.ParticleFlow.Tools.pfIsolation import setupPFElectronIso
    process.elIsoSequence = setupPFElectronIso(process, 'gsfElectrons')

# Produce rho for PU correction
process.load('JetMETCorrections.Configuration.DefaultJEC_cff')
process.load('RecoJets.Configuration.RecoPFJets_cff')
process.kt6PFJets.doRhoFastjet = True
process.ak5PFJets.doAreaFastjet = True

# Load PAT stuff
process.load("PhysicsTools.PatAlgos.patSequences_cff")

# We PAT taus for SVfit. However, to create PAT taus we also need all the