ATLAS Offline Software
TileCalibBlobPython_badChannelExample.py
Go to the documentation of this file.
1 #!/bin/env python
2 
3 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
4 #
5 # TileCalibBlobPython_badChannelExample.py
6 # Nils Gollub <nils.gollub@cern.ch>, 2007-12-19
7 
8 import os
9 from TileCalibBlobPython import TileCalibTools
10 from TileCalibBlobPython import TileCalibDefaultWriter
11 from TileCalibBlobPython import TileBchTools
12 from TileCalibBlobObjs.Classes import TileBchPrbs, TileBchDecoder
13 
14 #=======================================================
15 #=== create bad channel manager
16 #=======================================================
17 mgr = TileBchTools.TileBchMgr()
18 import logging
19 mgr.setLogLvl(logging.INFO)
20 
21 #============================================================
22 #=== recreate DB and initialize with default (no bad channels)
23 #============================================================
24 folder = "/TILE/OFL02/STATUS/ADC"
25 db = TileCalibTools.openDb('SQLITE', 'CONDBR2', 'UPDATE')
26 tag = "TileOfl02StatusAdc-RUN2-UPD4-08"
27 #=== check if status folder exist, otherwise create
28 if not db.existsFolder(folder):
29  defaultWriter = TileCalibDefaultWriter.TileCalibDefaultWriter(db)
30  defaultWriter.writeBadChannels(tag)
31 
32 #=======================================================
33 #=== initialize with current db, (MAXRUN,MAXLBK) is default
34 #=======================================================
35 mgr.initialize(db, folder, tag, (191714,0))
36 mgr.listBadAdcs()
37 
38 #=======================================================
39 #=== update from file
40 #=== (can be found in offline/TileCalorimter/TileConditions/share))
41 #=======================================================
42 #mgr.updateFromFile("Tile2007.bch")
43 
44 #=======================================================
45 #=== add some more problems
46 #=======================================================
47 prbs = [TileBchPrbs.LargeHfNoise, TileBchPrbs.NoCis]
48 mgr.setAdcProblems(4,63,14,1,prbs)
49 mgr.addAdcProblem( 4,63,14,1,TileBchPrbs.StuckBit )
50 mgr.addAdcProblem( 4,63,14,1,TileBchPrbs.NoHV )
51 mgr.addAdcProblem( 4,63,14,1,TileBchPrbs.NoCis )
52 
53 mgr.setAdcProblems(1,0,14,1,prbs)
54 mgr.addAdcProblem( 1,0,14,1,TileBchPrbs.StuckBit )
55 mgr.addAdcProblem( 1,0,14,1,TileBchPrbs.NoHV )
56 mgr.addAdcProblem( 1,0,14,1,TileBchPrbs.NoCis )
57 #=======================================================
58 #=== remove some problems
59 #=======================================================
60 mgr.delAdcProblem( 4,62,13,1,TileBchPrbs.AdcDead )
61 mgr.delAdcProblem( 4,62,14,1,TileBchPrbs.StuckBit )
62 
63 
64 #=======================================================
65 #=== print bad channels
66 #=======================================================
67 mgr.listBadAdcs()
68 
69 #=======================================================
70 #=== commit changes
71 #=======================================================
72 author = os.getlogin()
73 comment = "testing bad channels in LBA01, EBC64"
74 since= (222222 , 0)
75 mgr.commitToDb(db, folder, tag, TileBchDecoder.BitPat_ofl01, author, comment, since)
76 db.closeDatabase()