test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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  "keep abs(pdgId) == 12 || abs(pdgId) == 14 || abs(pdgId) == 16", # keep neutrinos
9  "drop status == 2", # drop the shower part of the history
10  "+keep pdgId == 22 && status == 1 && (pt > 10 || isPromptFinalState())", # keep gamma above 10 GeV (or all prompt) and its first parent
11  "+keep abs(pdgId) == 11 && status == 1 && (pt > 3 || isPromptFinalState())", # keep first parent of electrons above 3 GeV (or prompt)
12  "keep++ abs(pdgId) == 15", # but keep keep taus with decays
13  "drop status > 30 && status < 70 ", #remove pythia8 garbage
14  "drop pdgId == 21 && pt < 5", #remove pythia8 garbage
15  "drop status == 2 && abs(pdgId) == 21", # but remove again gluons in the inheritance chain
16  "keep abs(pdgId) == 23 || abs(pdgId) == 24 || abs(pdgId) == 25 || abs(pdgId) == 6 || abs(pdgId) == 37 ", # keep VIP(articles)s
17  "keep abs(pdgId) == 310 && abs(eta) < 2.5 && pt > 1 ", # keep K0
18  "+keep abs(pdgId) == 13 && status == 1", # keep muon parents
19 # keep heavy flavour quarks for parton-based jet flavour
20  "keep (4 <= abs(pdgId) <= 5)",
21 # keep light-flavour quarks and gluons for parton-based jet flavour
22  "keep (1 <= abs(pdgId) <= 3 || pdgId = 21) & (status = 2 || status = 11 || status = 71 || status = 72) && pt>5",
23 # keep b and c hadrons for hadron-based jet flavour
24  "keep (400 < abs(pdgId) < 600) || (4000 < abs(pdgId) < 6000)",
25 # keep onia states
26  "keep abs(pdgId) == 333",
27  "keep abs(pdgId) == 443 || abs(pdgId) == 100443 || abs(pdgId) == 10441 || abs(pdgId) == 20443 || abs(pdgId) == 445 || abs(pdgId) == 30443",
28  "keep abs(pdgId) == 553 || abs(pdgId) == 100553 || abs(pdgId) == 200553 || abs(pdgId) == 10551 || abs(pdgId) == 20553 || abs(pdgId) == 555",
29 # additional c hadrons for jet fragmentation studies
30  "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",
31 # additional b hadrons for jet fragmentation studies
32  "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",
33 #keep SUSY particles
34  "keep (1000001 <= abs(pdgId) <= 1000039 ) || ( 2000001 <= abs(pdgId) <= 2000015)",
35 # keep protons
36  "keep pdgId = 2212",
37  "keep status == 3 || ( 21 <= status <= 29) || ( 11 <= status <= 19)", #keep event summary (status=3 for pythia6, 21 <= status <= 29 for pythia8)
38  "keep isHardProcess() || fromHardProcessFinalState() || fromHardProcessDecayed() || fromHardProcessBeforeFSR() || (statusFlags().fromHardProcess() && statusFlags().isLastCopy())", #keep event summary based on status flags
39  )
40 )