1 import FWCore.ParameterSet.Config
as cms
4 from PhysicsTools.NanoAOD.globalVariablesTableProducer_cfi
import globalVariablesTableProducer
5 from PhysicsTools.NanoAOD.simpleBeamspotFlatTableProducer_cfi
import simpleBeamspotFlatTableProducer
6 from PhysicsTools.NanoAOD.simpleGenEventFlatTableProducer_cfi
import simpleGenEventFlatTableProducer
7 from PhysicsTools.NanoAOD.simpleGenFilterFlatTableProducerLumi_cfi
import simpleGenFilterFlatTableProducerLumi
9 beamSpotTable = simpleBeamspotFlatTableProducer.clone(
10 src = cms.InputTag(
"offlineBeamSpot"),
11 name = cms.string(
"BeamSpot"),
12 doc = cms.string(
"offlineBeamSpot, the offline reconstructed beamspot"),
14 type =
Var(
"type()",
"int16",doc=
"BeamSpot type (Unknown = -1, Fake = 0, LHC = 1, Tracker = 2)"),
15 z =
Var(
"position().z()",float,doc=
"BeamSpot center, z coordinate (cm)",precision=-1),
16 zError =
Var(
"z0Error()",float,doc=
"Error on BeamSpot center, z coordinate (cm)",precision=-1),
17 sigmaZ =
Var(
"sigmaZ()",float,doc=
"Width of BeamSpot in z (cm)",precision=-1),
18 sigmaZError =
Var(
"sigmaZ0Error()",float,doc=
"Error on width of BeamSpot in z (cm)",precision=-1),
22 rhoTable = globalVariablesTableProducer.clone(
23 name = cms.string(
"Rho"),
25 fixedGridRhoAll =
ExtVar( cms.InputTag(
"fixedGridRhoAll"),
"double", doc =
"rho from all PF Candidates, no foreground removal (for isolation of prompt photons)" ),
26 fixedGridRhoFastjetAll =
ExtVar( cms.InputTag(
"fixedGridRhoFastjetAll"),
"double", doc =
"rho from all PF Candidates, used e.g. for JECs" ),
27 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" ),
28 fixedGridRhoFastjetCentralCalo =
ExtVar( cms.InputTag(
"fixedGridRhoFastjetCentralCalo"),
"double", doc =
"rho from calo towers with |eta| < 2.5, used e.g. egamma PFCluster isolation" ),
29 fixedGridRhoFastjetCentral =
ExtVar( cms.InputTag(
"fixedGridRhoFastjetCentral"),
"double", doc =
"rho from all PF Candidates for central region, used e.g. for JECs" ),
30 fixedGridRhoFastjetCentralChargedPileUp =
ExtVar( cms.InputTag(
"fixedGridRhoFastjetCentralChargedPileUp"),
"double", doc =
"rho from charged PF Candidates for central region, used e.g. for JECs" ),
34 puTable = cms.EDProducer(
"NPUTablesProducer",
35 src = cms.InputTag(
"slimmedAddPileupInfo"),
36 pvsrc = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
37 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] ),
38 savePtHatMax = cms.bool(
True),
40 (run2_nanoAOD_ANY | run3_nanoAOD_122 | run3_nanoAOD_124).toModify(
41 puTable, savePtHatMax=
False 44 genTable = simpleGenEventFlatTableProducer.clone(
45 src = cms.InputTag(
"generator"),
46 name= cms.string(
"Generator"),
47 doc = cms.string(
"Generator information"),
49 x1 =
Var(
"?hasPDF?pdf().x.first:-1", float, doc=
"x1 fraction of proton momentum carried by the first parton",precision=14 ),
50 x2 =
Var(
"?hasPDF?pdf().x.second:-1", float, doc=
"x2 fraction of proton momentum carried by the second parton",precision=14 ),
51 xpdf1 =
Var(
"?hasPDF?pdf().xPDF.first:-1", float, doc=
"x*pdf(x) for the first parton", precision=14 ),
52 xpdf2 =
Var(
"?hasPDF?pdf().xPDF.second:-1", float, doc=
"x*pdf(x) for the second parton", precision=14 ),
53 id1 =
Var(
"?hasPDF?pdf().id.first:-1", int, doc=
"id of first parton", precision=6 ),
54 id2 =
Var(
"?hasPDF?pdf().id.second:-1", int, doc=
"id of second parton", precision=6 ),
55 scalePDF =
Var(
"?hasPDF?pdf().scalePDF:-1", float, doc=
"Q2 scale for PDF", precision=14 ),
56 binvar =
Var(
"?hasBinningValues()?binningValues()[0]:-1", float, doc=
"MC generation binning value", precision=14),
57 weight =
Var(
"weight()", float,doc=
"MC generator weight", precision=14),
61 genFilterTable = simpleGenFilterFlatTableProducerLumi.clone(
62 src = cms.InputTag(
"genFilterEfficiencyProducer"),
63 name= cms.string(
"GenFilter"),
64 doc = cms.string(
"Generator filter information"),
66 numEventsTotal =
Var(
"numEventsTotal()", int, doc=
"generator filter: total number of events", precision=6),
67 numEventsPassed =
Var(
"numEventsPassed()", int, doc=
"generator filter: passed number of events", precision=6),
68 filterEfficiency =
Var(
"filterEfficiency()", float, doc=
"generator filter: efficiency", precision=14),
69 filterEfficiencyError =
Var(
"filterEfficiencyError()", float, doc=
"generator filter: efficiency error", precision=14),
73 globalTablesTask = cms.Task(beamSpotTable, rhoTable)
74 globalTablesMCTask = cms.Task(puTable,genTable,genFilterTable)
def Var(expr, valtype, doc=None, precision=-1, lazyEval=False)
def ExtVar(tag, valtype, doc=None, precision=-1)