ATLAS Offline Software
Loading...
Searching...
No Matches
TileRawChannelBuilderTestConfig.TestAlg Class Reference
Inheritance diagram for TileRawChannelBuilderTestConfig.TestAlg:
Collaboration diagram for TileRawChannelBuilderTestConfig.TestAlg:

Public Member Functions

 __init__ (self, name)
 initialize (self)
 finalize (self)
 execute (self)
 make_digits (self, digits)
 make_digit_coll (self, idHelper, hashFunc, icoll, colldata)
 compare_chans (self, chans, exp_chans)

Static Public Member Functions

 make_vec (data)

Public Attributes

 tool1 = gettool ('tool1')
 tool2 = gettool ('tool2')

Detailed Description

Definition at line 250 of file TileRawChannelBuilderTestConfig.py.

Constructor & Destructor Documentation

◆ __init__()

TileRawChannelBuilderTestConfig.TestAlg.__init__ ( self,
name )

Definition at line 251 of file TileRawChannelBuilderTestConfig.py.

251 def __init__ (self, name):
252 Alg.__init__ (self, name)
253 return
254

Member Function Documentation

◆ compare_chans()

TileRawChannelBuilderTestConfig.TestAlg.compare_chans ( self,
chans,
exp_chans )

Definition at line 361 of file TileRawChannelBuilderTestConfig.py.

361 def compare_chans (self, chans, exp_chans):
362 assert chans.get_type() == 0
363 assert chans.get_unit() == 0
364 assert chans.get_bsflags() == (3<<28)
365
366 exp_chans = exp_chans.copy()
367 idHelper = self.detStore['CaloCell_ID'].tile_idHelper()
368
369 for coll in chans:
370 for c in coll:
371 lchan = [c.amplitude(),
372 c.time(),
373 c.quality(),
374 c.pedestal()]
375
376 cid = c.identify()
377 addr = (idHelper.section(cid),
378 idHelper.side(cid),
379 idHelper.module(cid),
380 idHelper.tower(cid),
381 idHelper.sampling(cid),
382 idHelper.pmt(cid))
383
384 l = exp_chans.get (addr)
385 if not l:
386 print ('xxx unexpected chan', addr, lchan)
387 assert 0
388 continue
389
390 l = l[:]
391
392 if (reldiff (lchan[0], l[0]) > 1e-3 or
393 reldiff (lchan[1], l[1]) > 1e-3 or
394 reldiff (lchan[2], l[2]) > 1e-3 or
395 reldiff (lchan[3], l[3]) > 1e-3):
396 print ('xxx chan mismatch: ', addr, lchan, l)
397 assert 0
398 del exp_chans[addr]
399
400 for extra in exp_chans:
401 print ('xxx unfound chan', extra)
402 assert 0
403 return
404
405
406

◆ execute()

TileRawChannelBuilderTestConfig.TestAlg.execute ( self)

Definition at line 275 of file TileRawChannelBuilderTestConfig.py.

275 def execute (self):
276 ctx = self.getContext()
277 iev = ctx.evt()
278
279 if iev == 3:
280 return StatusCode.Success
281
282 tool = self.tool1
283 exp_chans = exp_chans_0
284
285 if iev == 0:
286 # Event 0: nominal
287 pass
288
289 elif iev == 1:
290 # Event 1: DQstatus bad channels
291 exp_chans = exp_chans_1
292
293 elif iev == 2:
294 # Event 2: noise filter
295 tool = self.tool2
296 exp_chans = exp_chans_2
297
298 else:
299 # Event 3: noise filter + dsp
300 exp_chans = exp_chans_3
301
302 digits = self.make_digits (digits_0)
303
304 if not tool.createContainer(ctx):
305 return StatusCode.Failure
306
307 for coll in digits:
308 if not tool.build (coll, ctx):
309 return StatusCode.Failure
310
311 if not tool.commitContainer(ctx):
312 return StatusCode.Failure
313
314 chans = self.evtStore['TileRawChannelFiltered']
315 self.compare_chans (chans, exp_chans)
316
317 return StatusCode.Success
318
319

◆ finalize()

TileRawChannelBuilderTestConfig.TestAlg.finalize ( self)

Definition at line 270 of file TileRawChannelBuilderTestConfig.py.

270 def finalize (self):
271 # self.check_bad_chan_lines()
272 return StatusCode.Success
273
274

◆ initialize()

TileRawChannelBuilderTestConfig.TestAlg.initialize ( self)

Definition at line 255 of file TileRawChannelBuilderTestConfig.py.

255 def initialize (self):
256 ROOT.ICaloCellMakerTool
257
258 def gettool (name):
259 tool = ROOT.ToolHandle(ROOT.TileRawChannelBuilder)('TileRawChannelBuilderTest/' + name)
260 if not tool.retrieve():
261 assert 0
262 return tool
263
264 self.tool1 = gettool ('tool1')
265 self.tool2 = gettool ('tool2')
266
267 return StatusCode.Success
268
269
void initialize()

◆ make_digit_coll()

TileRawChannelBuilderTestConfig.TestAlg.make_digit_coll ( self,
idHelper,
hashFunc,
icoll,
colldata )

Definition at line 346 of file TileRawChannelBuilderTestConfig.py.

346 def make_digit_coll (self, idHelper, hashFunc, icoll, colldata):
347 coll = ROOT.TileDigitsCollection (hashFunc.identifier(icoll))
348
349 for addr, data in colldata:
350 if isinstance(addr, tuple):
351 adc_id = idHelper.adc_id (*addr)
352 chan = ROOT.TileDigits (adc_id, TestAlg.make_vec (data))
353 else:
354 hwid = ROOT.HWIdentifier (addr)
355 chan = ROOT.TileDigits (hwid, TestAlg.make_vec (data))
356 coll.push_back (chan)
357
358 return coll
359
360

◆ make_digits()

TileRawChannelBuilderTestConfig.TestAlg.make_digits ( self,
digits )

Definition at line 329 of file TileRawChannelBuilderTestConfig.py.

329 def make_digits (self, digits):
330 idHelper = self.detStore['CaloCell_ID'].tile_idHelper()
331
332 unit = 0 # TileRawChannelUnit::ADCcounts
333 typ = TileFragHash.Default
334 cont = ROOT.TileDigitsContainer (False, typ, unit)
335 hashFunc = cont.hashFunc()
336
337 for icoll, colldata in digits:
338
339 coll = self.make_digit_coll (idHelper, hashFunc, icoll, colldata)
340 cont.addCollection (coll, ROOT.IdentifierHash(icoll))
341 ROOT.SetOwnership (coll, False)
342
343 return cont
344
345

◆ make_vec()

TileRawChannelBuilderTestConfig.TestAlg.make_vec ( data)
static

Definition at line 321 of file TileRawChannelBuilderTestConfig.py.

321 def make_vec (data):
322 v = getattr(ROOT, 'std::vector<float>')()
323 v.reserve (len (data))
324 for x in data:
325 v.push_back (x)
326 return v
327
328

Member Data Documentation

◆ tool1

TileRawChannelBuilderTestConfig.TestAlg.tool1 = gettool ('tool1')

Definition at line 264 of file TileRawChannelBuilderTestConfig.py.

◆ tool2

TileRawChannelBuilderTestConfig.TestAlg.tool2 = gettool ('tool2')

Definition at line 265 of file TileRawChannelBuilderTestConfig.py.


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