Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:23:44

0001 import FWCore.ParameterSet.Config as cms
0002 from PhysicsTools.NanoAOD.common_cff import *
0003 from PhysicsTools.NanoAOD.nano_eras_cff import *
0004 from PhysicsTools.NanoAOD.globalVariablesTableProducer_cfi import globalVariablesTableProducer
0005 from PhysicsTools.NanoAOD.simpleBeamspotFlatTableProducer_cfi import simpleBeamspotFlatTableProducer
0006 from PhysicsTools.NanoAOD.simpleGenEventFlatTableProducer_cfi import simpleGenEventFlatTableProducer
0007 from PhysicsTools.NanoAOD.simpleGenFilterFlatTableProducerLumi_cfi import simpleGenFilterFlatTableProducerLumi
0008 
0009 beamSpotTable = simpleBeamspotFlatTableProducer.clone(
0010     src = cms.InputTag("offlineBeamSpot"),
0011     name = cms.string("BeamSpot"),
0012     doc = cms.string("offlineBeamSpot, the offline reconstructed beamspot"),
0013     variables = cms.PSet(
0014        type = Var("type()","int16",doc="BeamSpot type (Unknown = -1, Fake = 0, LHC = 1, Tracker = 2)"),
0015        z = Var("position().z()",float,doc="BeamSpot center, z coordinate (cm)",precision=-1),
0016        zError = Var("z0Error()",float,doc="Error on BeamSpot center, z coordinate (cm)",precision=-1),
0017        sigmaZ = Var("sigmaZ()",float,doc="Width of BeamSpot in z (cm)",precision=-1),
0018        sigmaZError = Var("sigmaZ0Error()",float,doc="Error on width of BeamSpot in z (cm)",precision=-1),
0019     ),
0020 )
0021 
0022 rhoTable = globalVariablesTableProducer.clone(
0023     name = cms.string("Rho"),
0024     variables = cms.PSet(
0025         fixedGridRhoAll = ExtVar( cms.InputTag("fixedGridRhoAll"), "double", doc = "rho from all PF Candidates, no foreground removal (for isolation of prompt photons)" ),
0026         fixedGridRhoFastjetAll = ExtVar( cms.InputTag("fixedGridRhoFastjetAll"), "double", doc = "rho from all PF Candidates, used e.g. for JECs" ),
0027         fixedGridRhoFastjetCentralNeutral = ExtVar( cms.InputTag("fixedGridRhoFastjetCentralNeutral"), "double", doc = "rho from neutral PF Candidates with |eta| < 2.5, used e.g. for rho corrections of some lepton isolations" ),
0028         fixedGridRhoFastjetCentralCalo = ExtVar( cms.InputTag("fixedGridRhoFastjetCentralCalo"), "double", doc = "rho from calo towers with |eta| < 2.5, used e.g. egamma PFCluster isolation" ),
0029         fixedGridRhoFastjetCentral = ExtVar( cms.InputTag("fixedGridRhoFastjetCentral"), "double", doc = "rho from all PF Candidates for central region, used e.g. for JECs" ),
0030         fixedGridRhoFastjetCentralChargedPileUp = ExtVar( cms.InputTag("fixedGridRhoFastjetCentralChargedPileUp"), "double", doc = "rho from charged PF Candidates for central region, used e.g. for JECs" ),
0031     )
0032 )
0033 
0034 puTable = cms.EDProducer("NPUTablesProducer",
0035         src = cms.InputTag("slimmedAddPileupInfo"),
0036         pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"),
0037         zbins = cms.vdouble( [0.0,1.7,2.6,3.0,3.5,4.2,5.2,6.0,7.5,9.0,12.0] ),
0038         savePtHatMax = cms.bool(True),
0039 )
0040 (run2_nanoAOD_ANY | run3_nanoAOD_122 | run3_nanoAOD_124).toModify(
0041     puTable, savePtHatMax=False
0042 )
0043 
0044 genTable  = simpleGenEventFlatTableProducer.clone(
0045     src = cms.InputTag("generator"),
0046     name= cms.string("Generator"),
0047     doc = cms.string("Generator information"),
0048     variables = cms.PSet(
0049         x1 = Var( "?hasPDF?pdf().x.first:-1", float, doc="x1 fraction of proton momentum carried by the first parton",precision=14 ),
0050         x2 = Var( "?hasPDF?pdf().x.second:-1", float, doc="x2 fraction of proton momentum carried by the second parton",precision=14 ),
0051         xpdf1 = Var( "?hasPDF?pdf().xPDF.first:-1", float, doc="x*pdf(x) for the first parton", precision=14 ),
0052         xpdf2 = Var( "?hasPDF?pdf().xPDF.second:-1", float, doc="x*pdf(x) for the second parton", precision=14 ),
0053         id1 = Var( "?hasPDF?pdf().id.first:-1", int, doc="id of first parton", precision=6 ),
0054         id2 = Var( "?hasPDF?pdf().id.second:-1", int, doc="id of second parton", precision=6 ),
0055         scalePDF = Var( "?hasPDF?pdf().scalePDF:-1", float, doc="Q2 scale for PDF", precision=14 ),
0056         binvar = Var("?hasBinningValues()?binningValues()[0]:-1", float, doc="MC generation binning value", precision=14),
0057         weight = Var("weight()", float,doc="MC generator weight", precision=14),
0058     ),
0059 )
0060 
0061 genFilterTable = simpleGenFilterFlatTableProducerLumi.clone(
0062     src = cms.InputTag("genFilterEfficiencyProducer"),
0063     name= cms.string("GenFilter"),
0064     doc = cms.string("Generator filter information"),
0065     variables = cms.PSet(
0066         numEventsTotal        = Var("numEventsTotal()",        int,   doc="generator filter: total number of events",  precision=6),
0067         numEventsPassed       = Var("numEventsPassed()",       int,   doc="generator filter: passed number of events", precision=6),
0068         filterEfficiency      = Var("filterEfficiency()",      float, doc="generator filter: efficiency",              precision=14),
0069         filterEfficiencyError = Var("filterEfficiencyError()", float, doc="generator filter: efficiency error",        precision=14),
0070     ),
0071 )
0072 
0073 globalTablesTask = cms.Task(beamSpotTable, rhoTable)
0074 globalTablesMCTask = cms.Task(puTable,genTable,genFilterTable)