JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
Public Member Functions | Public Attributes | Private Member Functions | Static Private Attributes | List of all members
lhefile.LHEFileBase Class Reference
Inheritance diagram for lhefile.LHEFileBase:
Inheritance graph
[legend]
Collaboration diagram for lhefile.LHEFileBase:
Collaboration graph
[legend]

Public Member Functions

def __init__ (self, filename, *melaargs, **kwargs)
 
def __enter__ (self, *args, **kwargs)
 
def __exit__ (self, *args, **kwargs)
 
def __iter__ (self)
 
def __getattr__ (self, attr)
 
def __setattr__ (self, attr, value)
 

Public Attributes

 isgen
 
 filename
 
 mela
 
 f
 
 daughters
 
 associated
 
 mothers
 
 weight
 
 weights
 

Private Member Functions

def _setInputEvent (self, event)
 
def _LHEclassattributes (cls)
 

Static Private Attributes

 __metaclass__ = abc.ABCMeta
 
dictionary __melas = {}
 

Detailed Description

Simple class to iterate through an LHE file and calculate probabilities for each event
Example usage:
h1 = ROOT.TH1F("costheta1", "costheta1", 100, -1, 1)
h2 = ROOT.TH1F("D_0minus", "D_0minus", 100, 0, 1)
with LHEFile("filename.lhe") as f:
  for event in f:  #event becomes the mela object
    h1.Fill(event.computeDecayAngles().costheta1)
    event.ghz1 = 1
    p0plus = event.computeP()
    event.ghz4 = 1
    p0minus = event.computeP()
    h2.Fill(p0plus / (p0plus + p0minus))

Definition at line 142 of file lhefile.py.

Constructor & Destructor Documentation

◆ __init__()

def lhefile.LHEFileBase.__init__ (   self,
  filename,
melaargs,
**  kwargs 
)

Definition at line 161 of file lhefile.py.

161  def __init__(self, filename, *melaargs, **kwargs):
162  self.isgen = kwargs.pop("isgen", True)
163  reusemela = kwargs.pop("reusemela", False)
164  gzip = kwargs.pop("gzip", False)
165  if kwargs: raise ValueError("Unknown kwargs: " + ", ".join(kwargs))
166  self.filename = filename
167  if reusemela and melaargs in self.__melas:
168  self.mela = self.__melas[melaargs]
169  else:
170  self.__melas[melaargs] = self.mela = Mela(*melaargs)
171 
172  openfunction = open
173  if gzip: from gzip import GzipFile as openfunction
174  self.f = openfunction(self.filename)

Member Function Documentation

◆ __enter__()

def lhefile.LHEFileBase.__enter__ (   self,
args,
**  kwargs 
)

Definition at line 175 of file lhefile.py.

175  def __enter__(self, *args, **kwargs):
176  self.f.__enter__(*args, **kwargs)
177  return self

◆ __exit__()

def lhefile.LHEFileBase.__exit__ (   self,
args,
**  kwargs 
)

Definition at line 178 of file lhefile.py.

178  def __exit__(self, *args, **kwargs):
179  return self.f.__exit__(*args, **kwargs)
180 

◆ __getattr__()

def lhefile.LHEFileBase.__getattr__ (   self,
  attr 
)

Definition at line 216 of file lhefile.py.

216  def __getattr__(self, attr):
217  if attr == "mela": raise RuntimeError("Something is wrong, trying to access mela before it's created")
218  return getattr(self.mela, attr)

◆ __iter__()

def lhefile.LHEFileBase.__iter__ (   self)

Definition at line 181 of file lhefile.py.

181  def __iter__(self):
182  event = ""
183  for linenumber, line in enumerate(self.f, start=1):
184  if "<event>" not in line and not event:
185  continue
186  event += line
187  if "</event>" in line:
188  try:
189  self._setInputEvent(event)
190  yield self
191  event = ""
192  except GeneratorExit:
193  raise
194  except:
195  print("On line", linenumber)
196  raise
197  finally:
198  try:
199  self.mela.resetInputEvent()
200  except:
201  pass
202 

◆ __setattr__()

def lhefile.LHEFileBase.__setattr__ (   self,
  attr,
  value 
)

Definition at line 219 of file lhefile.py.

219  def __setattr__(self, attr, value):
220  if attr in self._LHEclassattributes():
221  super(LHEFileBase, self).__setattr__(attr, value)
222  else:
223  setattr(self.mela, attr, value)
224 

◆ _LHEclassattributes()

def lhefile.LHEFileBase._LHEclassattributes (   cls)
private

Definition at line 213 of file lhefile.py.

213  def _LHEclassattributes(cls):
214  return "filename", "f", "mela", "isgen", "daughters", "mothers", "associated", "weight", "weights"
215 

◆ _setInputEvent()

def lhefile.LHEFileBase._setInputEvent (   self,
  event 
)
private

Definition at line 203 of file lhefile.py.

203  def _setInputEvent(self, event):
204  lheevent = self.lheeventclass(event, self.isgen)
205  self.daughters = lheevent.daughters
206  self.associated = lheevent.associated
207  self.mothers = lheevent.mothers
208  self.weight = lheevent.weight
209  self.weights = lheevent.weights
210  self.setInputEvent(*lheevent)
211 

Member Data Documentation

◆ __melas

dictionary lhefile.LHEFileBase.__melas = {}
staticprivate

Definition at line 159 of file lhefile.py.

◆ __metaclass__

lhefile.LHEFileBase.__metaclass__ = abc.ABCMeta
staticprivate

Definition at line 157 of file lhefile.py.

◆ associated

lhefile.LHEFileBase.associated

Definition at line 206 of file lhefile.py.

◆ daughters

lhefile.LHEFileBase.daughters

Definition at line 205 of file lhefile.py.

◆ f

lhefile.LHEFileBase.f

Definition at line 174 of file lhefile.py.

◆ filename

lhefile.LHEFileBase.filename

Definition at line 166 of file lhefile.py.

◆ isgen

lhefile.LHEFileBase.isgen

Definition at line 162 of file lhefile.py.

◆ mela

lhefile.LHEFileBase.mela

Definition at line 168 of file lhefile.py.

◆ mothers

lhefile.LHEFileBase.mothers

Definition at line 207 of file lhefile.py.

◆ weight

lhefile.LHEFileBase.weight

Definition at line 208 of file lhefile.py.

◆ weights

lhefile.LHEFileBase.weights

Definition at line 209 of file lhefile.py.


The documentation for this class was generated from the following file:
Mela
Definition: Mela.h:48