CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
prunedGenParticles_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 prunedGenParticles = cms.EDProducer("GenParticlePruner",
4  src = cms.InputTag("genParticles"),
5  select = cms.vstring(
6  "drop *", # this is the default
7  "++keep abs(pdgId) == 11 || abs(pdgId) == 13 || abs(pdgId) == 15", # keep leptons, with history
8  "drop status == 2", # drop the shower part of the history
9  "keep++ (400 < abs(pdgId) < 600) || (4000 < abs(pdgId) < 6000)", # keep decays for BPH studies
10  "drop status == 1", # drop the status=1 from BPH
11  "keep+ (400 < abs(pdgId) < 600) || (4000 < abs(pdgId) < 6000)", # but keep first daughter, to allow lifetime determinations
12  "keep abs(pdgId) == 11 || abs(pdgId) == 13 || abs(pdgId) == 15", # keep leptons (also status1)
13  "keep abs(pdgId) == 12 || abs(pdgId) == 14 || abs(pdgId) == 16", # keep neutrinos
14  "+keep pdgId == 22 && status == 1 && (pt > 10 || isPromptFinalState())", # keep gamma above 10 GeV (or all prompt) and its first parent
15  "+keep abs(pdgId) == 11 && status == 1 && (pt > 3 || isPromptFinalState())", # keep first parent of electrons above 3 GeV (or prompt)
16  "keep++ abs(pdgId) == 15", # but keep keep taus with decays
17  "drop status > 30 && status < 70 ", # remove pythia8 garbage
18  "drop pdgId == 21 && pt < 5", # remove pythia8 garbage
19  "drop status == 2 && abs(pdgId) == 21", # but remove again gluons in the inheritance chain
20  "keep abs(pdgId) == 23 || abs(pdgId) == 24 || abs(pdgId) == 25 || abs(pdgId) == 6 || abs(pdgId) == 37 ", # keep VIP(articles)s
21  "keep abs(pdgId) == 310 && abs(eta) < 2.5 && pt > 1 ", # keep K0
22  "+keep abs(pdgId) == 13 && status == 1", # keep muon parents
23 # keep heavy flavour quarks for parton-based jet flavour
24  "keep (4 <= abs(pdgId) <= 5)",
25 # keep light-flavour quarks and gluons for parton-based jet flavour
26  "keep (1 <= abs(pdgId) <= 3 || pdgId = 21) & (status = 2 || status = 11 || status = 71 || status = 72) && pt>5",
27 # keep onia states, phi, X(3872), Z(4430)+ and psi(4040)
28  "keep abs(pdgId) == 323 && abs(eta) < 2.5 && pt > 1",
29  "keep+ abs(pdgId) == 333",
30  "keep+ abs(pdgId) == 9920443 || abs(pdgId) == 9042413 || abs(pdgId) == 9000443 || abs(pdgId) == 100541 || abs(pdgId) == 100543",
31  "keep+ abs(pdgId) == 443 || abs(pdgId) == 100443 || abs(pdgId) == 10441 || abs(pdgId) == 20443 || abs(pdgId) == 445 || abs(pdgId) == 30443",
32  "keep+ abs(pdgId) == 553 || abs(pdgId) == 100553 || abs(pdgId) == 200553 || abs(pdgId) == 10551 || abs(pdgId) == 20553 || abs(pdgId) == 555",
33 # additional c hadrons for jet fragmentation studies
34  "keep abs(pdgId) = 10411 || abs(pdgId) = 10421 || abs(pdgId) = 10413 || abs(pdgId) = 10423 || abs(pdgId) = 20413 || abs(pdgId) = 20423 || abs(pdgId) = 10431 || abs(pdgId) = 10433 || abs(pdgId) = 20433",
35 # additional b hadrons for jet fragmentation studies
36  "keep abs(pdgId) = 10511 || abs(pdgId) = 10521 || abs(pdgId) = 10513 || abs(pdgId) = 10523 || abs(pdgId) = 20513 || abs(pdgId) = 20523 || abs(pdgId) = 10531 || abs(pdgId) = 10533 || abs(pdgId) = 20533 || abs(pdgId) = 10541 || abs(pdgId) = 10543 || abs(pdgId) = 20543",
37 #keep SUSY particles
38  "keep (1000001 <= abs(pdgId) <= 1000039 ) || ( 2000001 <= abs(pdgId) <= 2000015)",
39 # keep hidden valley particles
40  "keep (4900001 <= abs(pdgId) <= 4900991)",
41 # keep dark matter particles
42  "keep (51 <= abs(pdgId) <= 53)",
43 # keep protons
44  "keep pdgId = 2212",
45  "keep status == 3 || ( 21 <= status <= 29) || ( 11 <= status <= 19)", #keep event summary (status=3 for pythia6, 21 <= status <= 29 for pythia8)
46  "keep isHardProcess() || fromHardProcessFinalState() || fromHardProcessDecayed() || fromHardProcessBeforeFSR() || (statusFlags().fromHardProcess() && statusFlags().isLastCopy())", #keep event summary based on status flags
47  )
48 )