ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
python.CoolDataReader.CoolDataReader Class Reference
Collaboration diagram for python.CoolDataReader.CoolDataReader:

Public Member Functions

def __init__ (self, dbstr=None, folderstr=None)
 
def setFolder (self, dbstr, folderstr)
 
def setTag (self, tagstr='')
 
def setChannel (self, channelIdList=[])
 
def setChannelAll (self)
 
def setChannelId (self, channelId)
 
def setIOVRange (self, iovstart=cool.ValidityKeyMin, iovend=cool.ValidityKeyMax)
 
def setIOVRangeFromRun (self, runnum)
 
def readData (self)
 
def readChannelList (self, channels)
 

Public Attributes

 verbose
 
 dbstr
 
 folderstr
 
 channelIdList
 
 tag
 
 iovstart
 
 iovend
 
 folder
 
 data
 

Detailed Description

Definition at line 33 of file CoolDataReader.py.

Constructor & Destructor Documentation

◆ __init__()

def python.CoolDataReader.CoolDataReader.__init__ (   self,
  dbstr = None,
  folderstr = None 
)

Definition at line 35 of file CoolDataReader.py.

35  def __init__(self, dbstr=None, folderstr=None):
36 
37  self.verbose = False
38 
39  # Defined variables
40  self.dbstr = None
41  self.folderstr = None
42  self.channelIdList = []
43  self.tag = ''
44  self.iovstart = None
45  self.iovend = None
46 
47  self.folder = None
48  self.data = []
49 
50  # Initialize to default values
51  self.setChannel()
52  self.setTag()
53  self.setFolder(dbstr, folderstr)
54  self.setIOVRange()
55 

Member Function Documentation

◆ readChannelList()

def python.CoolDataReader.CoolDataReader.readChannelList (   self,
  channels 
)

Definition at line 141 of file CoolDataReader.py.

141  def readChannelList(self, channels):
142 
143  # Open iterator over our defined IOV range
144  try:
145  itr = self.folder.browseObjects(self.iovstart, self.iovend, channels, self.tag)
146  except Exception as e:
147  print('CoolDataReader.readData() - exception reading folder:', self.folderstr)
148  print(e)
149  print('CoolDataReader.readData() - will try to reconnect (once)')
150 
151  # Force re-opening connection
152  dbHandler = LumiDBHandler()
153  dbHandler.verbose = True
154  self.folder = dbHandler.getFolder(self.dbstr, self.folderstr, force=True)
155 
156  if self.folder is None:
157  print('CoolDataReader.readData() - forced re-opening failed!')
158  return self.data
159 
160  # OK, lets try reading this again
161  print('CoolDataReader.readData() - trying to re-read re-opened folder!')
162  try:
163  itr = self.folder.browseObjects(self.iovstart, self.iovend, channels, self.tag)
164  except Exception as e:
165  print('CoolDataReader.readData() - exception reading folder:', self.folderstr)
166  print(e)
167  return self.data
168 
169  while itr.goToNext():
170  obj = itr.currentRef()
171  # print obj.payload()
172  self.data.append(obj.clone())
173 
174  itr.close()
175 
176 
177 

◆ readData()

def python.CoolDataReader.CoolDataReader.readData (   self)

Definition at line 87 of file CoolDataReader.py.

87  def readData(self):
88 
89  self.data = []
90 
91  # Open the DB connection here if needed
92  if self.folder is None:
93  dbHandler = LumiDBHandler()
94  self.folder = dbHandler.getFolder(self.dbstr, self.folderstr)
95 
96  if self.folder is None:
97  print("Can't access DB", self.dbstr, 'folder', self.folderstr, '!')
98  return self.data
99 
100  # Create the channel list
101  if len(self.channelIdList) == 0:
102  channels = cool.ChannelSelection.all()
103  self.readChannelList(channels)
104 
105  else:
106  # Build the channel list here
107  self.channelIdList.sort() # Must be sorted!
108 
109  # Must read channels 50 at a time due to COOL limit...
110  ichan = 0
111  while (ichan < len(self.channelIdList)) :
112 
113  jchan = 0
114  channels = None
115  firstChan = True
116 
117  for channelId in self.channelIdList[ichan:]:
118  jchan += 1
119  if firstChan:
120  firstChan = False
121  channels = cool.ChannelSelection(channelId)
122  else:
123  channels.addChannel(channelId)
124  if jchan == 50: break
125 
126  # Remeber how many we have read for next time
127  if self.verbose:
128  print('CoolDataReader.readData() - loaded %d channels from %d' % (jchan, ichan))
129  ichan += jchan
130 
131  if self.verbose:
132  print('CoolDataReader.readData() - browsing', self.iovstart, self.iovend, 'with channel', channels, 'and tag', self.tag)
133 
134  self.readChannelList(channels)
135 
136  # End of loop building channel list and reading
137 
138  # End of if statement reading data
139  return self.data
140 

◆ setChannel()

def python.CoolDataReader.CoolDataReader.setChannel (   self,
  channelIdList = [] 
)

Definition at line 67 of file CoolDataReader.py.

67  def setChannel(self, channelIdList=[]):
68  self.channelIdList = channelIdList
69 

◆ setChannelAll()

def python.CoolDataReader.CoolDataReader.setChannelAll (   self)

Definition at line 70 of file CoolDataReader.py.

70  def setChannelAll(self):
71  self.setChannel()
72 

◆ setChannelId()

def python.CoolDataReader.CoolDataReader.setChannelId (   self,
  channelId 
)

Definition at line 73 of file CoolDataReader.py.

73  def setChannelId(self, channelId):
74  self.setChannel([channelId])
75 

◆ setFolder()

def python.CoolDataReader.CoolDataReader.setFolder (   self,
  dbstr,
  folderstr 
)

Definition at line 56 of file CoolDataReader.py.

56  def setFolder(self, dbstr, folderstr):
57  # Force re-opening connection if these are different
58  if (dbstr != self.dbstr) or (folderstr != self.folderstr):
59  self.folder = None
60 
61  self.dbstr = dbstr
62  self.folderstr = folderstr
63 

◆ setIOVRange()

def python.CoolDataReader.CoolDataReader.setIOVRange (   self,
  iovstart = cool.ValidityKeyMin,
  iovend = cool.ValidityKeyMax 
)

Definition at line 76 of file CoolDataReader.py.

76  def setIOVRange(self, iovstart=cool.ValidityKeyMin, iovend=cool.ValidityKeyMax):
77  self.iovstart = iovstart
78  self.iovend = iovend
79 

◆ setIOVRangeFromRun()

def python.CoolDataReader.CoolDataReader.setIOVRangeFromRun (   self,
  runnum 
)

Definition at line 80 of file CoolDataReader.py.

80  def setIOVRangeFromRun(self, runnum):
81  self.iovstart = runnum << 32
82  self.iovend = ((runnum+1) << 32) - 1
83 

◆ setTag()

def python.CoolDataReader.CoolDataReader.setTag (   self,
  tagstr = '' 
)

Definition at line 64 of file CoolDataReader.py.

64  def setTag(self, tagstr=''):
65  self.tag = tagstr
66 

Member Data Documentation

◆ channelIdList

python.CoolDataReader.CoolDataReader.channelIdList

Definition at line 42 of file CoolDataReader.py.

◆ data

python.CoolDataReader.CoolDataReader.data

Definition at line 48 of file CoolDataReader.py.

◆ dbstr

python.CoolDataReader.CoolDataReader.dbstr

Definition at line 40 of file CoolDataReader.py.

◆ folder

python.CoolDataReader.CoolDataReader.folder

Definition at line 47 of file CoolDataReader.py.

◆ folderstr

python.CoolDataReader.CoolDataReader.folderstr

Definition at line 41 of file CoolDataReader.py.

◆ iovend

python.CoolDataReader.CoolDataReader.iovend

Definition at line 45 of file CoolDataReader.py.

◆ iovstart

python.CoolDataReader.CoolDataReader.iovstart

Definition at line 44 of file CoolDataReader.py.

◆ tag

python.CoolDataReader.CoolDataReader.tag

Definition at line 43 of file CoolDataReader.py.

◆ verbose

python.CoolDataReader.CoolDataReader.verbose

Definition at line 37 of file CoolDataReader.py.


The documentation for this class was generated from the following file:
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18