180 def loadTrigCounts(self, runnum):
181
182 if self.verbose:
183 print(
'TriggerHandler.loadTrigCounts(%d) called' % runnum)
184
185 self.countsReader.setIOVRangeFromRun(runnum)
186
187
188 chanList = self.trigChan.values()
189 chanList.sort()
190
191 nMaxChan = 50
192 nChanBlock = 0
193 chanBlock = []
194
195
196 tmpList = []
197 for chan in chanList:
198 if chan < 0: continue
199 tmpList.append( chan )
200 chanList = tmpList
201
202 if self.verbose:
203 print(
'breaking up', len(chanList),
'into', nMaxChan,
'for run', runnum)
204
205
206
207
208
209 for x in range(0, len(chanList), nMaxChan):
210 top =
min([x+nMaxChan, len(chanList)])
211
212 if self.verbose:
213 print(
'Initializing block [%d] from %d to %d' % (nChanBlock, x, top))
214
215 chanBlock.append( chanList[x:top] )
216 nChanBlock += 1
217
218 for x in range(nChanBlock):
219 if self.verbose:
print(
'Channel Selector', chanBlock[x])
220 self.countsReader.setChannel(chanBlock[x])
221 self.countsReader.readData()
222
223 for obj in self.countsReader.data:
224
225 since = obj.since()
226 until = obj.until()
227 if self.verbose:
228 print(runLBString(since), runLBString(until), obj.channelId(), obj.payload()[
'BeforePrescale'], obj.payload()[
'AfterPrescale'], obj.payload()[
'L1Accept'])
229
230
231 ss = since
232 chan = int(obj.channelId())
233 trig = self.chanTrig.
get(chan,
"")
234 if len(trig) == 0:
235 print(
'TriggerHandler.loadTrigCounts(%d) - found unknown channel %d in %s!' % (runnum, chan, runLBString(ss)))
236 continue
237
238 if ss not in self.trigL1Dict:
239 self.trigL1Dict[ss] = TriggerL1Data()
240 self.trigL1Dict[ss].runlb = obj.since()
241 self.trigL1Dict[ss].startTime = self.lblbDict.
get(ss, (0., 0.))[0]
242 self.trigL1Dict[ss].endTime = self.lblbDict.
get(ss, (0., 0.))[1]
243 self.trigL1Dict[ss].dtime = (self.trigL1Dict[ss].endTime - self.trigL1Dict[ss].startTime)/1.E9
244
245 self.trigL1Dict[ss].TBP[trig] = obj.payload()['BeforePrescale']
246 self.trigL1Dict[ss].TAP[trig] = obj.payload()['AfterPrescale']
247 self.trigL1Dict[ss].TAV[trig] = obj.payload()['L1Accept']
248
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)