CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions
genutils Namespace Reference

Functions

def allDaughters (particle, daughters, rank)
 
def bosonToX (particles, bosonType, xType)
 
def findStatus1Leptons (particle)
 
def isNotFromHadronicShower (l)
 
def isNotHadronicId (pdgId, includeSMLeptons=True)
 
def isPromptLepton (lepton, beforeFSR, includeMotherless=True, includeTauDecays=False)
 
def lastGenCopy (gp)
 
def realGenDaughters (gp, excludeRadiation=True)
 
def realGenMothers (gp)
 

Function Documentation

def genutils.allDaughters (   particle,
  daughters,
  rank 
)
Fills daughters with all the daughters of particle.
Recursive function.

Definition at line 20 of file genutils.py.

Referenced by bosonToX().

20 def allDaughters(particle, daughters, rank ):
21  '''Fills daughters with all the daughters of particle.
22  Recursive function.'''
23  rank += 1
24  for i in range( particle.numberOfDaughters() ):
25  dau = GenParticle(particle.daughter(i))
26  dau.rank = rank
27  daughters.append( dau )
28  daughters = allDaughters( dau, daughters, rank )
29  return daughters
30 
31 
def allDaughters(particle, daughters, rank)
Definition: genutils.py:20
def genutils.bosonToX (   particles,
  bosonType,
  xType 
)

Definition at line 32 of file genutils.py.

References funct.abs(), and allDaughters().

32 def bosonToX(particles, bosonType, xType):
33  bosons = [x for x in particles if x.status()==3 and x.pdgId()==bosonType]
34  daughters = []
35  if len(bosons)==0:
36  return [], False
37  boson = bosons[0]
38  daus = []
39  allDaughters( boson, daus, 0)
40  xDaus = [x for x in daus if x.status()==3 and abs(x.pdgId())==xType]
41  # print printOut(xDaus)
42  return xDaus, True
43 
def bosonToX(particles, bosonType, xType)
Definition: genutils.py:32
def allDaughters(particle, daughters, rank)
Definition: genutils.py:20
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def genutils.findStatus1Leptons (   particle)
Returns status 1 e and mu among the particle daughters

Definition at line 5 of file genutils.py.

References funct.abs().

5 def findStatus1Leptons(particle):
6  '''Returns status 1 e and mu among the particle daughters'''
7  leptons = []
8  for i in range( particle.numberOfDaughters() ):
9  dau = particle.daughter(i)
10  if dau.status() == 1:
11  if abs(dau.pdgId())==11 or abs(dau.pdgId())==13:
12  leptons.append( dau )
13  else:
14  continue
15  else:
16  leptons = findStatus1Leptons( dau, leptons )
17  return leptons
18 
19 
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def findStatus1Leptons(particle)
Definition: genutils.py:5
def genutils.isNotFromHadronicShower (   l)

Definition at line 66 of file genutils.py.

References funct.abs().

Referenced by gen.GeneratorAnalyzer.GeneratorAnalyzer.makeMCInfo().

67  for x in range(l.numberOfMothers()):
68  mom = l.mother(x)
69  if mom.status() > 2: return True
70  id = abs(mom.pdgId())
71  if id > 1000000: return True
72  if id > 100: return False
73  if id < 6: return False
74  if id == 21: return False
75  if id in [11,12,13,14,15,16]:
76  if l.status() > 2: return True
77  return isNotFromHadronicShower(mom)
78  if id >= 22 and id <= 39: return True
79  return True
80 
def isNotFromHadronicShower(l)
Definition: genutils.py:66
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def genutils.isNotHadronicId (   pdgId,
  includeSMLeptons = True 
)

Definition at line 44 of file genutils.py.

References funct.abs().

Referenced by isPromptLepton().

44 def isNotHadronicId(pdgId,includeSMLeptons=True):
45  if abs(pdgId) in [11,12,13,14,15,16]:
46  return includeSMLeptons
47  i = (abs(pdgId) % 1000)
48  return i > 10 and i != 21 and i < 100
49 
def isNotHadronicId(pdgId, includeSMLeptons=True)
Definition: genutils.py:44
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def genutils.isPromptLepton (   lepton,
  beforeFSR,
  includeMotherless = True,
  includeTauDecays = False 
)

Definition at line 50 of file genutils.py.

References funct.abs(), and isNotHadronicId().

Referenced by objects.LeptonAnalyzer.LeptonAnalyzer.matchAnyLeptons().

50 def isPromptLepton(lepton, beforeFSR, includeMotherless=True, includeTauDecays=False):
51  if abs(lepton.pdgId()) not in [11,13,15]:
52  return False
53  if lepton.numberOfMothers() == 0:
54  return includeMotherless;
55  mom = lepton.mother()
56  if mom.pdgId() == lepton.pdgId():
57  if beforeFSR: return False
58  return isPromptLepton(mom, beforeFSR, includeMotherless, includeTauDecays)
59  elif abs(mom.pdgId()) == 15:
60  if not includeTauDecays: return False
61  return isPromptLepton(mom, beforeFSR, includeMotherless, includeTauDecays)
62  else:
63  return isNotHadronicId(mom.pdgId(), includeSMLeptons=False)
64 
65 
def isPromptLepton(lepton, beforeFSR, includeMotherless=True, includeTauDecays=False)
Definition: genutils.py:50
def isNotHadronicId(pdgId, includeSMLeptons=True)
Definition: genutils.py:44
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def genutils.lastGenCopy (   gp)

Definition at line 112 of file genutils.py.

References common_cff.pdgId.

112 def lastGenCopy(gp):
113  me = gp.pdgId();
114  for i in range(gp.numberOfDaughters()):
115  if gp.daughter(i).pdgId() == me:
116  return False
117  return True
118 
119 
120 
def lastGenCopy(gp)
Definition: genutils.py:112
def genutils.realGenDaughters (   gp,
  excludeRadiation = True 
)
Get the daughters of a particle, going through radiative X -> X' + a
   decays, either including or excluding the radiation among the daughters
   e.g. for  
              X -> X' + a, X' -> b c 
       realGenDaughters(X, excludeRadiation=True)  = { b, c }
       realGenDaughters(X, excludeRadiation=False) = { a, b, c }

Definition at line 81 of file genutils.py.

Referenced by gen.GeneratorAnalyzer.GeneratorAnalyzer.makeMCInfo().

81 def realGenDaughters(gp,excludeRadiation=True):
82  """Get the daughters of a particle, going through radiative X -> X' + a
83  decays, either including or excluding the radiation among the daughters
84  e.g. for
85  X -> X' + a, X' -> b c
86  realGenDaughters(X, excludeRadiation=True) = { b, c }
87  realGenDaughters(X, excludeRadiation=False) = { a, b, c }"""
88  ret = []
89  for i in range(gp.numberOfDaughters()):
90  dau = gp.daughter(i)
91  if dau.pdgId() == gp.pdgId():
92  if excludeRadiation:
93  return realGenDaughters(dau)
94  else:
95  ret += realGenDaughters(dau)
96  else:
97  ret.append(dau)
98  return ret
99 
def realGenDaughters(gp, excludeRadiation=True)
Definition: genutils.py:81
def genutils.realGenMothers (   gp)
Get the mothers of a particle X going through intermediate X -> X' chains.
   e.g. if Y -> X, X -> X' realGenMothers(X') = Y

Definition at line 100 of file genutils.py.

Referenced by gen.GeneratorAnalyzer.GeneratorAnalyzer.makeMCInfo().

101  """Get the mothers of a particle X going through intermediate X -> X' chains.
102  e.g. if Y -> X, X -> X' realGenMothers(X') = Y"""
103  ret = []
104  for i in range(gp.numberOfMothers()):
105  mom = gp.mother(i)
106  if mom.pdgId() == gp.pdgId():
107  ret += realGenMothers(mom)
108  else:
109  ret.append(mom)
110  return ret
111 
def realGenMothers(gp)
Definition: genutils.py:100