Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-14 23:36:08

0001 import FWCore.ParameterSet.Config as cms
0002 from PhysicsTools.NanoAOD.nano_cff import nanoMetadata
0003 
0004 l1tPh2NanoTask = cms.Task(nanoMetadata)
0005 l1tPh2NanoSequence = cms.Sequence(l1tPh2NanoTask)
0006 
0007 ### P2GT objects
0008 from DPGAnalysis.Phase2L1TNanoAOD.l1tPh2GTtables_cff import *
0009 def addPh2GTObjects(process):
0010     process.l1tPh2NanoTask.add(p2GTL1TablesTask)
0011     return process
0012 
0013 ### Main Ph2L1 objects
0014 from DPGAnalysis.Phase2L1TNanoAOD.l1tPh2Nanotables_cff import *
0015 def addPh2L1Objects(process):
0016     process.l1tPh2NanoTask.add(p2L1TablesTask)
0017     return process
0018 
0019 #### GENERATOR INFO
0020 ## based on https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/NanoAOD/python/nanogen_cff.py#L2-L36
0021 from PhysicsTools.NanoAOD.genparticles_cff import * ## for GenParts
0022 from PhysicsTools.NanoAOD.jetMC_cff import * ## for GenJets
0023 from PhysicsTools.NanoAOD.met_cff import metMCTable ## for GenMET
0024 from PhysicsTools.NanoAOD.globals_cff import puTable ## for PU
0025 from PhysicsTools.NanoAOD.taus_cff import * ## for Gen taus
0026 def addGenObjects(process):
0027 
0028     ## add more GenVariables
0029     # from L1Ntuple Gen: https://github.com/artlbv/cmssw/blob/94a5ec13b8ce76afb8ea4f157bb92fb547fadee2/L1Trigger/L1TNtuples/plugins/L1GenTreeProducer.cc#L203
0030     genParticleTable.variables.vertX = Var("vertex.x", float, "vertex X")
0031     genParticleTable.variables.vertY = Var("vertex.y", float, "vertex Y")
0032     genParticleTable.variables.vertZ = Var("vertex.z", float, "vertex Z")
0033     genParticleTable.variables.lXY = Var("sqrt(vertex().x() * vertex().x() + vertex().y() * vertex().y())", float, "lXY")
0034     genParticleTable.variables.dXY = Var("-vertex().x() * sin(phi()) + vertex().y() * cos(phi())", float, "dXY")
0035 
0036     ## add pruned gen particles a la Mini
0037     if False: 
0038         ## Gen all 
0039         # genParticleTable.src = "genParticles" # see 
0040         ## Mini default, see  https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/PatAlgos/python/slimming/prunedGenParticles_cfi.py
0041         # genParticleTable.src = "prunedGenParticles"
0042         ## Nano default, see https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/NanoAOD/python/genparticles_cff.py#L8
0043         # genParticleTable.src = "finalGenParticles" 
0044 
0045         process.prunedGenParticleTable = genParticleTable.clone()
0046         process.prunedGenParticleTable.src = "prunedGenParticles"
0047         process.prunedGenParticleTable.name = "prunedGenPart"
0048         process.l1tPh2NanoTask.add(process.prunedGenParticleTable)
0049 
0050     # lower genVisTau pt threshold
0051     process.genVisTauTable.cut = "pt > 1"
0052     # lower AK8 gen jet threshold
0053     process.genJetAK8Table.cut = "pt > 10"
0054 
0055     process.l1tPh2NanoTask.add(
0056                 puTable, metMCTable,
0057                 genParticleTask, genParticleTablesTask,
0058                 genTauTask,
0059     )
0060     
0061     # add all GenJets: AK4 and AK8
0062     process.l1tPh2NanoTask.add(genJetTable,patJetPartonsNano,genJetFlavourTable)
0063     process.l1tPh2NanoTask.add(genJetAK8Table,genJetAK8FlavourAssociation,genJetAK8FlavourTable)
0064 
0065     return process
0066 
0067 def addFullPh2L1Nano(process):
0068     addGenObjects(process)
0069     addPh2L1Objects(process)
0070     addPh2GTObjects(process)
0071 
0072     return process
0073