ATLAS Offline Software
Loading...
Searching...
No Matches
python.CoolDataReader.CoolDataReader Class Reference
Collaboration diagram for python.CoolDataReader.CoolDataReader:

Public Member Functions

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

Public Attributes

bool verbose = False
 dbstr = None
 folderstr = None
list channelIdList = []
str tag = ''
int iovstart = None
tuple iovend = None
 folder = None
list data = []

Detailed Description

Definition at line 33 of file CoolDataReader.py.

Constructor & Destructor Documentation

◆ __init__()

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()

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
void print(char *figname, TCanvas *c1)

◆ readData()

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
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.

◆ setChannel()

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()

python.CoolDataReader.CoolDataReader.setChannelAll ( self)

Definition at line 70 of file CoolDataReader.py.

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

◆ setChannelId()

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()

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()

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()

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()

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

list python.CoolDataReader.CoolDataReader.data = []

Definition at line 48 of file CoolDataReader.py.

◆ dbstr

python.CoolDataReader.CoolDataReader.dbstr = None

Definition at line 40 of file CoolDataReader.py.

◆ folder

python.CoolDataReader.CoolDataReader.folder = None

Definition at line 47 of file CoolDataReader.py.

◆ folderstr

python.CoolDataReader.CoolDataReader.folderstr = None

Definition at line 41 of file CoolDataReader.py.

◆ iovend

python.CoolDataReader.CoolDataReader.iovend = None

Definition at line 45 of file CoolDataReader.py.

◆ iovstart

python.CoolDataReader.CoolDataReader.iovstart = None

Definition at line 44 of file CoolDataReader.py.

◆ tag

python.CoolDataReader.CoolDataReader.tag = ''

Definition at line 43 of file CoolDataReader.py.

◆ verbose

bool python.CoolDataReader.CoolDataReader.verbose = False

Definition at line 37 of file CoolDataReader.py.


The documentation for this class was generated from the following file: