Belle II Software  release-05-01-25
EventCountLimiter.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 # Purpose:
5 # basf module to return false if the event counter equals or exceeds the user-defined limit
6 #
7 import basf2
8 
9 # =========================================================================
10 #
11 # EventCountLimiter
12 #
13 # =========================================================================
14 
15 
16 class EventCountLimiter(basf2.Module):
17  """Report when the event counter has reached or exceeded its limit"""
18 
19  def __init__(self, maxCount):
20  """Constructor
21 
22  Argument:
23  maxCount (int): number of events to be processed
24  """
25  super().__init__()
26 
27  self.maxCount = maxCount if (maxCount >= 0) else (1 << 31)
28 
29  self.eventCounter = 0
30 
31  def initialize(self):
32  """Handle job initialization (nothing to do here)"""
33  pass
34 
35  def terminate(self):
36  """Handle job termination (nothing to do here)"""
37  pass
38 
39  def beginRun(self):
40  """Handle begin of run (nothing to do here)"""
41  pass
42 
43  def endRun(self):
44  """Handle end of run (nothing to do here)"""
45  pass
46 
47  def event(self):
48  """Process one event: has eventCounter reached or exceeded its limit?"""
49  self.eventCounter += 1
50  super().return_value(self.eventCounter < self.maxCount)
EventCountLimiter.EventCountLimiter.eventCounter
eventCounter
internal event counter
Definition: EventCountLimiter.py:29
EventCountLimiter.EventCountLimiter.__init__
def __init__(self, maxCount)
Definition: EventCountLimiter.py:19
EventCountLimiter.EventCountLimiter.initialize
def initialize(self)
Definition: EventCountLimiter.py:31
EventCountLimiter.EventCountLimiter.event
def event(self)
Definition: EventCountLimiter.py:47
EventCountLimiter.EventCountLimiter.beginRun
def beginRun(self)
Definition: EventCountLimiter.py:39
EventCountLimiter.EventCountLimiter.terminate
def terminate(self)
Definition: EventCountLimiter.py:35
EventCountLimiter.EventCountLimiter
Definition: EventCountLimiter.py:16
EventCountLimiter.EventCountLimiter.maxCount
maxCount
internal copy of the event-counter upper limit
Definition: EventCountLimiter.py:27
EventCountLimiter.EventCountLimiter.endRun
def endRun(self)
Definition: EventCountLimiter.py:43