CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
python.Lumis Class Reference

Public Member Functions

def __del__ (self)
 
def __init__ (self, inputFiles='', **kwargs)
 
def __iter__ (self)
 
def aux (self)
 
def getByLabel (self, *args)
 
def luminosityBlockAuxiliary (self)
 

Private Member Functions

def _createFWLiteLumi (self)
 Private Member Functions ##. More...
 
def _next (self)
 

Private Attributes

 _currFilename
 
 _filenames
 
 _lumi
 
 _lumiCounts
 
 _maxLumis
 Parse optional arguments ##. More...
 
 _secondaryFilenames
 
 _tfile
 
 _veryFirstTime
 

Detailed Description

autotoc_md41

## Lumis

autotoc_md43

Python interface to FWLite LuminosityBlock

Definition at line 141 of file __init__.py.

Constructor & Destructor Documentation

◆ __init__()

def python.Lumis.__init__ (   self,
  inputFiles = '',
**  kwargs 
)

Definition at line 143 of file __init__.py.

143  def __init__ (self, inputFiles = '', **kwargs):
144  self._lumi = None
145  self._lumiCounts = 0
146  self._tfile = None
147  self._maxLumis = 0
148  if isinstance (inputFiles, list):
149  # it's a list
150  self._filenames = inputFiles[:]
151  elif isinstance (inputFiles, VarParsing):
152  # it's a VarParsing object
153  options = inputFiles
154  self._maxLumis = options.maxEvents
155  self._filenames = options.inputFiles
156  else:
157  # it's probably a single string
158  self._filenames = [inputFiles]
159 
162  if 'maxEvents' in kwargs:
163  self._maxLumis = kwargs['maxEvents']
164  del kwargs['maxEvents']
165  if 'options' in kwargs:
166  options = kwargs ['options']
167  self._maxLumis = options.maxEvents
168  self._filenames = options.inputFiles
169  self._secondaryFilenames = options.secondaryInputFiles
170  del kwargs['options']
171  # Since we deleted the options as we used them, that means
172  # that kwargs should be empty. If it's not, that means that
173  # somebody passed in an argument that we're not using and we
174  # should complain.
175  if len (kwargs):
176  raise RuntimeError("Unknown arguments %s" % kwargs)
177  if not self._filenames:
178  raise RuntimeError("No input files given")
179  if not self._createFWLiteLumi():
180  # this shouldn't happen as you are getting nothing the
181  # very first time out, but let's at least check to
182  # avoid problems.
183  raise RuntimeError("Never and information about Lumi")
184 
185 

◆ __del__()

def python.Lumis.__del__ (   self)
(Internal) Destructor

Definition at line 186 of file __init__.py.

186  def __del__ (self):
187  """(Internal) Destructor"""
188  # print "Goodbye cruel world, I'm leaving you today."
189  del self._lumi
190  # print "Goodbye, goodbye, goodbye."
191 
192 

References python.Lumis._lumi.

Member Function Documentation

◆ __iter__()

def python.Lumis.__iter__ (   self)

Definition at line 193 of file __init__.py.

193  def __iter__ (self):
194  return self._next()
195 
196 

References python.Lumis._next().

◆ _createFWLiteLumi()

def python.Lumis._createFWLiteLumi (   self)
private

Private Member Functions ##.

(Internal) Creates an FWLite Lumi

Definition at line 257 of file __init__.py.

257  def _createFWLiteLumi (self):
258  """(Internal) Creates an FWLite Lumi"""
259  # are there any files left?
260  if not self._filenames:
261  return False
262  if self._lumi:
263  del self._lumi
264  self._lumi = None
265  self._veryFirstTime = False
266  self._currFilename = self._filenames.pop(0)
267  #print "Opening file", self._currFilename
268  if self._tfile:
269  del self._tfile
270  self._tfile = ROOT.TFile.Open (self._currFilename)
271  self._lumi = ROOT.fwlite.LuminosityBlock (self._tfile);
272  self._lumi.toBegin()
273  return True
274 
275 

References python.Lumis._filenames, and python.Lumis._lumi.

Referenced by python.Lumis._next().

◆ _next()

def python.Lumis._next (   self)
private
(Internal) Iterator internals

Definition at line 276 of file __init__.py.

276  def _next (self):
277  """(Internal) Iterator internals"""
278  while True:
279  if self._lumi.atEnd():
280  if not self._createFWLiteLumi():
281  # there are no more files here, so we are done
282  break
283  yield self
284  self._lumiCounts += 1
285  if self._maxLumis > 0 and self._lumiCounts >= self._maxLumis:
286  break
287  self._lumi.__preinc__()
288 
289 
290 

References python.Lumis._createFWLiteLumi(), python.Lumis._lumi, python.Lumis._lumiCounts, and python.Lumis._maxLumis.

Referenced by python.Lumis.__iter__(), python.Runs.__iter__(), and python.Events.__iter__().

◆ aux()

def python.Lumis.aux (   self)

Definition at line 197 of file __init__.py.

197  def aux (self):
198  try:
199  return self._lumi.luminosityBlockAuxiliary()
200  except:
201  raise RuntimeError("Lumis.aux() called on object in invalid state")
202 
203 

References python.Lumis._lumi, and python.Lumis.luminosityBlockAuxiliary().

◆ getByLabel()

def python.Lumis.getByLabel (   self,
args 
)
Calls FWLite's getByLabel.  Called:
getByLabel (moduleLabel, handle)
getByLabel (moduleLabel, productInstanceLabel, handle),
getByLabel (moduleLabel, productInstanceLabel, processLabel, handle),
or
getByLabel ( (mL, pIL,pL), handle)

Definition at line 211 of file __init__.py.

211  def getByLabel (self, *args):
212  """Calls FWLite's getByLabel. Called:
213  getByLabel (moduleLabel, handle)
214  getByLabel (moduleLabel, productInstanceLabel, handle),
215  getByLabel (moduleLabel, productInstanceLabel, processLabel, handle),
216  or
217  getByLabel ( (mL, pIL,pL), handle)
218  """
219  length = len (args)
220  if length < 2 or length > 4:
221  # not called correctly
222  raise RuntimeError("Incorrect number of arguments")
223  # handle is always the last argument
224  argsList = list (args)
225  handle = argsList.pop()
226  if len(argsList)==1 :
227  if( isinstance (argsList[0], tuple) or
228  isinstance (argsList[0], list) ) :
229  if len (argsList[0]) > 3:
230  raise RuntimeError("getByLabel Error: label tuple has too " \
231  "many arguments '%s'" % argsList[0])
232  argsList = list(argsList[0])
233  if( isinstance(argsList[0], str) and ":" in argsList[0] ):
234  if argsList[0].count(":") > 3:
235  raise RuntimeError("getByLabel Error: label tuple has too " \
236  "many arguments '%s'" % argsList[0].split(":"))
237  argsList = argsList[0].split(":")
238  while len(argsList) < 3:
239  argsList.append ('')
240  (moduleLabel, productInstanceLabel, processLabel) = argsList
241  labelString = "'" + "', '".join(argsList) + "'"
242  if not handle._wrapper :
243  handle._resetWrapper()
244  handle._setStatus ( self._lumi.getByLabel( handle._typeInfoGetter(),
245  moduleLabel,
246  productInstanceLabel,
247  processLabel,
248  handle._addressOf() ),
249  labelString )
250  return handle.isValid()
251 
252 

References python.Lumis._lumi, submitPVResolutionJobs.count, join(), and submitPVValidationJobs.split().

◆ luminosityBlockAuxiliary()

def python.Lumis.luminosityBlockAuxiliary (   self)

Definition at line 204 of file __init__.py.

204  def luminosityBlockAuxiliary (self):
205  try:
206  return self._lumi.luminosityBlockAuxiliary()
207  except:
208  raise RuntimeError("Lumis.luminosityBlockAuxiliary() called on object in invalid state")
209 
210 

References python.Lumis._lumi.

Referenced by python.Lumis.aux().

Member Data Documentation

◆ _currFilename

python.Lumis._currFilename
private

Definition at line 266 of file __init__.py.

◆ _filenames

python.Lumis._filenames
private

◆ _lumi

python.Lumis._lumi
private

◆ _lumiCounts

python.Lumis._lumiCounts
private

Definition at line 145 of file __init__.py.

Referenced by python.Lumis._next().

◆ _maxLumis

python.Lumis._maxLumis
private

Parse optional arguments ##.

Definition at line 147 of file __init__.py.

Referenced by python.Lumis._next().

◆ _secondaryFilenames

python.Lumis._secondaryFilenames
private

Definition at line 169 of file __init__.py.

◆ _tfile

python.Lumis._tfile
private

Definition at line 146 of file __init__.py.

◆ _veryFirstTime

python.Lumis._veryFirstTime
private
join
static std::string join(char **cmd)
Definition: RemoteFile.cc:17
submitPVValidationJobs.split
def split(sequence, size)
Definition: submitPVValidationJobs.py:352
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19