CMS 3D CMS Logo

particlelevel_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
3 
4 
5 
6 ##################### User floats producers, selectors ##########################
7 
8 mergedGenParticles = cms.EDProducer("MergedGenParticleProducer",
9  inputPruned = cms.InputTag("prunedGenParticles"),
10  inputPacked = cms.InputTag("packedGenParticles"),
11 )
12 
13 genParticles2HepMC = cms.EDProducer("GenParticles2HepMCConverter",
14  genParticles = cms.InputTag("mergedGenParticles"),
15  genEventInfo = cms.InputTag("generator"),
16  signalParticlePdgIds = cms.vint32(),
17 )
18 
19 genParticles2HepMCHiggsVtx = cms.EDProducer("GenParticles2HepMCConverter",
20  genParticles = cms.InputTag("mergedGenParticles"),
21  genEventInfo = cms.InputTag("generator"),
22  signalParticlePdgIds = cms.vint32(25), ## for the Higgs analysis
23 )
24 
25 
26 particleLevel = cms.EDProducer("ParticleLevelProducer",
27  src = cms.InputTag("genParticles2HepMC:unsmeared"),
28 
29  usePromptFinalStates = cms.bool(True), # for leptons, photons, neutrinos
30  excludePromptLeptonsFromJetClustering = cms.bool(False),
31  excludeNeutrinosFromJetClustering = cms.bool(True),
32 
33  particleMinPt = cms.double(0.),
34  particleMaxEta = cms.double(5.), # HF range. Maximum 6.0 on MiniAOD
35 
36  lepConeSize = cms.double(0.1), # for photon dressing
37  lepMinPt = cms.double(15.),
38  lepMaxEta = cms.double(2.5),
39 
40  jetConeSize = cms.double(0.4),
41  jetMinPt = cms.double(10.),
42  jetMaxEta = cms.double(999.),
43 
44  fatJetConeSize = cms.double(0.8),
45  fatJetMinPt = cms.double(170.),
46  fatJetMaxEta = cms.double(999.),
47 )
48 
49 rivetProducerHTXS = cms.EDProducer('HTXSRivetProducer',
50  HepMCCollection = cms.InputTag('genParticles2HepMCHiggsVtx','unsmeared'),
51  LHERunInfo = cms.InputTag('externalLHEProducer'),
52  ProductionMode = cms.string('AUTO'),
53 )
54 
55 
56 ##################### Tables for final output and docs ##########################
57 rivetLeptonTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
58  src = cms.InputTag("particleLevel:leptons"),
59  cut = cms.string(""),
60  name= cms.string("GenDressedLepton"),
61  doc = cms.string("Dressed leptons from Rivet-based ParticleLevelProducer"),
62  singleton = cms.bool(False), # the number of entries is variable
63  extension = cms.bool(False), # this is the main table
64  externalVariables = cms.PSet(
65  hasTauAnc = ExtVar(cms.InputTag("tautagger"),bool, doc="true if Dressed lepton has a tau as ancestor"),
66  ),
67  variables = cms.PSet(
68  P4Vars,
69  pdgId = Var("pdgId", int, doc="PDG id"),
70  )
71 )
72 
73 
74 tautagger = cms.EDProducer("GenJetTauTaggerProducer",
75  src = rivetLeptonTable.src,
76 )
77 
78 #rivetJetTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
79 # src = cms.InputTag("particleLevel:jets"),
80 # cut = cms.string(""),
81 # name= cms.string("RivetJet"),
82 # doc = cms.string("AK4 jets from Rivet-based ParticleLevelProducer"),
83 # singleton = cms.bool(False), # the number of entries is variable
84 # extension = cms.bool(False),
85 # variables = cms.PSet(
86 # # Identical to GenJets, so we just extend their flavor information
87 # P4Vars,
88 # hadronFlavour = Var("pdgId", int, doc="PDG id"),
89 # )
90 #)
91 
92 #rivetFatJetTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
93 # src = cms.InputTag("particleLevel:fatjets"),
94 # cut = cms.string(""),
95 # name= cms.string("GenFatJet"),
96 # doc = cms.string("AK8 jets from Rivet-based ParticleLevelProducer"),
97 # singleton = cms.bool(False), # the number of entries is variable
98 # extension = cms.bool(False), # this is the main table
99 # variables = cms.PSet(
100 # P4Vars,
101 # hadronFlavour = Var("pdgId", int, doc="PDG id"),
102 # )
103 #)
104 
105 #rivetTagTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
106 # src = cms.InputTag("particleLevel:tags"),
107 # cut = cms.string(""),
108 # name= cms.string("RivetTag"),
109 # doc = cms.string("Tag particles from Rivet-based ParticleLevelProducer, momenta scaled down by 10e-20"),
110 # singleton = cms.bool(False), # the number of entries is variable
111 # extension = cms.bool(False), # this is the main table
112 # variables = cms.PSet(
113 # P4Vars,
114 # pdgId = Var("pdgId", int, doc="PDG id"),
115 # )
116 #)
117 
118 rivetMetTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
119  src = cms.InputTag("particleLevel:mets"),
120  name = cms.string("MET"),
121  doc = cms.string("MET from Rivet-based ParticleLevelProducer in fiducial volume abs(eta)<5"),
122  singleton = cms.bool(True), # there's always exactly one MET per event
123  extension = cms.bool(True), # this is the main table
124  variables = cms.PSet(
125  fiducialGenPt = Var("pt", float, precision=10),
126  fiducialGenPhi = Var("phi", float, precision=10),
127  ),
128 )
129 
130 HTXSCategoryTable = cms.EDProducer("SimpleHTXSFlatTableProducer",
131  src = cms.InputTag("rivetProducerHTXS","HiggsClassification"),
132  cut = cms.string(""),
133  name = cms.string("HTXS"),
134  doc = cms.string("HTXS classification"),
135  singleton = cms.bool(True),
136  extension = cms.bool(False),
137  variables=cms.PSet(
138  stage_0 = Var("stage0_cat",int, doc="HTXS stage-0 category"),
139  stage_1_pTjet30 = Var("stage1_cat_pTjet30GeV",int, doc="HTXS stage-1 category (jet pt>30 GeV)"),
140  stage_1_pTjet25 = Var("stage1_cat_pTjet25GeV",int, doc="HTXS stage-1 category (jet pt>25 GeV)"),
141  stage1_1_cat_pTjet30GeV = Var("stage1_1_cat_pTjet30GeV",int,doc="HTXS stage-1.1 category(jet pt>30 GeV)"),
142  stage1_1_cat_pTjet25GeV = Var("stage1_1_cat_pTjet25GeV",int,doc="HTXS stage-1.1 category(jet pt>25 GeV)"),
143  stage1_1_fine_cat_pTjet30GeV = Var("stage1_1_fine_cat_pTjet30GeV",int,doc="HTXS stage-1.1-fine category(jet pt>30 GeV)"),
144  stage1_1_fine_cat_pTjet25GeV = Var("stage1_1_fine_cat_pTjet25GeV",int,doc="HTXS stage-1.1-fine category(jet pt>25 GeV)"),
145  Higgs_pt = Var("higgs.Pt()",float, doc="pt of the Higgs boson as identified in HTXS", precision=14),
146  Higgs_y = Var("higgs.Rapidity()",float, doc="rapidity of the Higgs boson as identified in HTXS", precision=12),
147  njets30 = Var("jets30.size()","uint8", doc="number of jets with pt>30 GeV as identified in HTXS"),
148  njets25 = Var("jets25.size()","uint8", doc="number of jets with pt>25 GeV as identified in HTXS"),
149  )
150 )
151 
152 
153 particleLevelSequence = cms.Sequence(mergedGenParticles + genParticles2HepMC + particleLevel + tautagger + genParticles2HepMCHiggsVtx + rivetProducerHTXS)
154 particleLevelTables = cms.Sequence(rivetLeptonTable + rivetMetTable + HTXSCategoryTable)
def ExtVar(tag, valtype, compression=None, doc=None, mcOnly=False, precision=-1)
Definition: common_cff.py:31
def Var(expr, valtype, compression=None, doc=None, mcOnly=False, precision=-1)
Definition: common_cff.py:20