ATLAS Offline Software
AtlRunQuerySelectorEvents.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2 
3 
4 from time import time
5 import sys
6 
7 from CoolRunQuery.utils.AtlRunQueryIOV import IOVRange
8 from CoolRunQuery.utils.AtlRunQueryTimer import timer
9 from CoolRunQuery.utils.AtlRunQueryUtils import coolDbConn, GetRanges
10 
11 from .AtlRunQuerySelectorBase import RunLBBasedCondition
12 
14  def __init__(self, name, events=None):
15  self.events = events
16  super(EventSelector,self).__init__(name=name,
17  dbfolderkey='oracle::SFO-based',
18  channelKeys = [(0,'#Events','EFEvents')])
19  if events:
20  self.cutRange = GetRanges(events)
21 
22 
23 
24  def __str__(self):
25  if self.applySelection:
26  return "SELOUT Checking if number of events matches %s" % self.events
27  else:
28  return "Retrieving event numbers"
29 
30  def select(self, runlist):
31 
32  # some preparation: compile the show patterns
33  start = time()
34 
35  print (self, end='')
36  sys.stdout.flush()
37  newrunlist = []
38  connection = coolDbConn.GetSFODBConnection()
39  cursor = connection.cursor()
40  cursor.arraysize = 1000
41 
42  runnrlist = [r.runNr for r in runlist]
43 
44  from CoolRunQuery.AtlRunQuerySFO import GetSFO_NphysicseventsAll
45  with timer("GetSFO_NphysicseventsAll", disabled=True):
46  events = GetSFO_NphysicseventsAll( cursor, runnrlist ) # { runnr: nPhysEvents }
47 
48  for run in runlist:
49 
50  iov = IOVRange(runStart=run.runNr, lbStart=1, runEnd=run.runNr+1, lbEnd=0)
51 
52  for k in self.ResultKey():
53  if run.runNr not in events:
54  # the OVERLAP_EVENTS information is not yet available in the SFO (before Nov 15, 2009)
55  # use the inclusive number instead
56  run.addResult(k, "n.a.", iov, reject=False)
57  run.showDataIncomplete=True
58  continue
59 
60  nev = events[run.runNr]
61 
62  if self.ApplySelection(k) and not self.passes(nev,k):
63  run.addResult(k, self.prettyValue(nev,k), iov, reject=True)
64  continue
65 
66  run.addResult(k, self.prettyValue(nev,k), iov)
67 
68  rej = self.rejectRun(run)
69 
70  if not rej:
71  newrunlist += [run.runNr]
72 
73  runlist = [r for r in runlist if r.runNr in newrunlist]
74 
75  duration = time() - start
76  if self.applySelection:
77  print (" ==> %i runs found (%.2f sec)" % (len(runlist),duration))
78  else:
79  print (" ==> Done (%g sec)" % duration)
80  return runlist
81 
82  def passes(self,values,key):
83  try:
84  val = int(values)
85  except ValueError: # if n.a.
86  self.selDataMissing = True
87  return True
88  for cr in self.cutRange:
89  if val>=cr[0] and val<=cr[1]:
90  return True
91  return False
92 
93 
95  def __init__(self, name, events=None):
96  self.events = events
97  self.showAllevents = False
98  super(AllEventsSelector,self).__init__(name=name,
99  dbfolderkey='COOLONL_TDAQ::/TDAQ/RunCtrl/EventCounters',
100  channelKeys = [(0,'#Events (incl. calib.)','EFEvents'),
101  (0,'#Events (streamed)','RecordedEvents'),
102  (0,'#L2A','L2Events')])
103  if events:
104  self.cutRange = GetRanges(events)
105 
106  def __str__(self):
107  if self.applySelection:
108  return "SELOUT Checking if number of events matches %s" % self.events
109  else:
110  return "Retrieving event numbers"
111 
112  def passes(self,values,key):
113  try:
114  val = int(values)
115  except ValueError: # if n.a.
116  self.selDataMissing = True
117  return True
118  for cr in self.cutRange:
119  if val>=cr[0] and val<=cr[1]:
120  return True
121  return False
122 
124  def __init__(self, name, events=None):
125  self.events = events
126  self.showL1events = False
127  super(L1EventsSelector,self).__init__(name=name,
128  dbfolderkey='COOLONL_TRIGGER::/TRIGGER/LVL1/CTPCORELBDATA',
129  channelKeys = [(0,'#L1A','GlobalL1AcceptCounter')])
130  def setShowL1events(self):
131  self.showL1events = True
132  super(L1EventsSelector,self).setShowOutput()
133 
134  def __str__(self):
135  if self.applySelection:
136  return "SELOUT Checking if number of L1A events matches %s" % self.events
137  else:
138  return "Retrieving L1A numbers"
139 
140  def passes(self,values,key):
141  return True
142 
python.selector.AtlRunQuerySelectorEvents.AllEventsSelector
Definition: AtlRunQuerySelectorEvents.py:94
python.selector.AtlRunQuerySelectorEvents.AllEventsSelector.passes
def passes(self, values, key)
Definition: AtlRunQuerySelectorEvents.py:112
python.selector.AtlRunQuerySelectorEvents.EventSelector.cutRange
cutRange
Definition: AtlRunQuerySelectorEvents.py:20
python.selector.AtlRunQuerySelectorEvents.EventSelector.__init__
def __init__(self, name, events=None)
Definition: AtlRunQuerySelectorEvents.py:14
python.selector.AtlRunQuerySelectorEvents.AllEventsSelector.__str__
def __str__(self)
Definition: AtlRunQuerySelectorEvents.py:106
python.selector.AtlRunQuerySelectorEvents.EventSelector.select
def select(self, runlist)
Definition: AtlRunQuerySelectorEvents.py:30
python.selector.AtlRunQuerySelectorEvents.EventSelector.events
events
Definition: AtlRunQuerySelectorEvents.py:15
python.selector.AtlRunQuerySelectorBase.Selector.applySelection
applySelection
Definition: AtlRunQuerySelectorBase.py:149
python.selector.AtlRunQuerySelectorBase.Condition.setShowOutput
def setShowOutput(self, listofchans=None)
Definition: AtlRunQuerySelectorBase.py:248
python.selector.AtlRunQuerySelectorEvents.AllEventsSelector.cutRange
cutRange
Definition: AtlRunQuerySelectorEvents.py:104
python.selector.AtlRunQuerySelectorBase.Selector.ApplySelection
def ApplySelection(self, key)
Definition: AtlRunQuerySelectorBase.py:155
python.selector.AtlRunQuerySelectorEvents.AllEventsSelector.showAllevents
showAllevents
Definition: AtlRunQuerySelectorEvents.py:97
python.utils.AtlRunQueryTimer.timer
def timer(name, disabled=False)
Definition: AtlRunQueryTimer.py:85
python.selector.AtlRunQuerySelectorEvents.L1EventsSelector.showL1events
showL1events
Definition: AtlRunQuerySelectorEvents.py:126
python.selector.AtlRunQuerySelectorEvents.AllEventsSelector.events
events
Definition: AtlRunQuerySelectorEvents.py:96
python.AtlRunQuerySFO.GetSFO_NphysicseventsAll
def GetSFO_NphysicseventsAll(cursor, runlist)
Definition: AtlRunQuerySFO.py:249
python.selector.AtlRunQuerySelectorEvents.EventSelector.__str__
def __str__(self)
Definition: AtlRunQuerySelectorEvents.py:24
python.selector.AtlRunQuerySelectorEvents.L1EventsSelector
Definition: AtlRunQuerySelectorEvents.py:123
python.selector.AtlRunQuerySelectorEvents.EventSelector
Definition: AtlRunQuerySelectorEvents.py:13
python.selector.AtlRunQuerySelectorEvents.L1EventsSelector.__init__
def __init__(self, name, events=None)
Definition: AtlRunQuerySelectorEvents.py:124
python.selector.AtlRunQuerySelectorBase.RunLBBasedCondition.rejectRun
def rejectRun(self, run)
Definition: AtlRunQuerySelectorBase.py:447
python.selector.AtlRunQuerySelectorEvents.AllEventsSelector.__init__
def __init__(self, name, events=None)
Definition: AtlRunQuerySelectorEvents.py:95
python.utils.AtlRunQueryUtils.GetRanges
def GetRanges(rangestr, intRepFnc=stringToIntOrTime, maxval=1<< 30)
Definition: AtlRunQueryUtils.py:327
python.selector.AtlRunQuerySelectorBase.Condition.ResultKey
def ResultKey(self)
Definition: AtlRunQuerySelectorBase.py:230
python.selector.AtlRunQuerySelectorEvents.L1EventsSelector.passes
def passes(self, values, key)
Definition: AtlRunQuerySelectorEvents.py:140
python.selector.AtlRunQuerySelectorBase.Condition.selDataMissing
selDataMissing
Definition: AtlRunQuerySelectorBase.py:168
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
python.selector.AtlRunQuerySelectorEvents.EventSelector.passes
def passes(self, values, key)
Definition: AtlRunQuerySelectorEvents.py:82
python.selector.AtlRunQuerySelectorEvents.L1EventsSelector.events
events
Definition: AtlRunQuerySelectorEvents.py:125
python.selector.AtlRunQuerySelectorBase.Selector.prettyValue
def prettyValue(self, value, key)
Definition: AtlRunQuerySelectorBase.py:153
python.selector.AtlRunQuerySelectorEvents.L1EventsSelector.__str__
def __str__(self)
Definition: AtlRunQuerySelectorEvents.py:134
python.selector.AtlRunQuerySelectorBase.RunLBBasedCondition
Definition: AtlRunQuerySelectorBase.py:264
python.selector.AtlRunQuerySelectorEvents.L1EventsSelector.setShowL1events
def setShowL1events(self)
Definition: AtlRunQuerySelectorEvents.py:130