ATLAS Offline Software
Loading...
Searching...
No Matches
TileCalibBlobPython_writeBchM7.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_writeBchM7.py
6# Lukas Pribyl <lukas.pribyl@cern.ch>, 2008-05-29
7
8from TileCalibBlobPython import TileCalibTools
9from TileCalibBlobPython import TileBchTools
10from TileCalibBlobObjs.Classes import TileCalibUtils, TileBchPrbs, \
11 TileBchDecoder
12
13from TileCalibBlobPython.TileCalibLogger import getLogger
14log = getLogger("writeBch")
15import logging
16log.setLevel(logging.DEBUG)
17
18
19#===================================================================
20#====================== FILL DB BELOW ==============================
21#===================================================================
22db = TileCalibTools.openDb('SQLITE', 'COMP200', 'UPDATE')
23
24#=== ADC status folder
25folder = TileCalibTools.getTilePrefix(True,True)+"STATUS/ADC"
26
27#=== specify folder and tag
28folderTag = TileCalibUtils.getFullTag(folder, "COM-04")
29
30#=== create bad channel manager
31mgr = TileBchTools.TileBchMgr()
32mgr.setLogLvl(logging.DEBUG)
33
34#=== always initialize with no bad channels
35log.info("Initializing with no bad channels at tag=%s and time=%s", folderTag,(0,0))
36mgr.initialize(db, folder, folderTag, (0,0))
37
38#=== Define TileBchStatus.isBad()
39#=== Currently all channels with any problem are considered as bad and masked
40
41#=== ADC problems
42mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.GeneralMaskAdc)
43mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.AdcDead)
44mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.StuckBit)
45mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.DataCorruption)
46mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.VeryLargeHfNoise)
47mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.NoData)
48mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.WrongDspConfig)
49#--- impact on data quality
50mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.LargeHfNoise)
51mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.CorrelatedNoise)
52mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.LargeLfNoise)
53mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.NoCis)
54mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.BadCis)
55
56#=== Channel problems
57#--- serious problems
58mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.GeneralMaskChannel)
59mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.NoPmt)
60mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.NoHV)
61mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.WrongHV)
62#--- impact on data quality
63mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.NoLaser)
64mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.BadLaser)
65mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.NoCesium)
66mgr.addAdcProblem(0, 1, 0, 0, TileBchPrbs.BadCesium)
67
68#=== Define TileBchStatus.isNoisy()
69# mgr.addAdcProblem(0, 1, 1, 0, TileBchPrbs.LargeHfNoise)
70# mgr.addAdcProblem(0, 1, 1, 0, TileBchPrbs.CorrelatedNoise)
71# mgr.addAdcProblem(0, 1, 1, 0, TileBchPrbs.LargeLfNoise)
72
73#=== Tuples of empty channels
74emptyChannelLongBarrel = (30, 31, 43)
75emptyChannelExtendedBarrel = (18, 19, 24, 25, 26, 27, 28, 29, 33, 34, 42, 43, 44, 45, 46, 47)
76
77#=== Add problems with mgr.addAdcProblem(ros, drawer, channel, adc, problem)
78# LBA
79mgr.addAdcProblem(1, 1, 42, 1, TileBchPrbs.CorrelatedNoise)
80mgr.addAdcProblem(1, 1, 47, 1, TileBchPrbs.CorrelatedNoise)
81mgr.addAdcProblem(1, 1, 46, 1, TileBchPrbs.CorrelatedNoise)
82mgr.addAdcProblem(1, 1, 45, 1, TileBchPrbs.CorrelatedNoise)
83mgr.addAdcProblem(1, 6, 32, 0, TileBchPrbs.DataCorruption)
84mgr.addAdcProblem(1, 6, 32, 1, TileBchPrbs.DataCorruption)
85mgr.addAdcProblem(1, 6, 33, 0, TileBchPrbs.DataCorruption)
86mgr.addAdcProblem(1, 6, 33, 1, TileBchPrbs.DataCorruption)
87mgr.addAdcProblem(1, 6, 34, 0, TileBchPrbs.DataCorruption)
88mgr.addAdcProblem(1, 6, 34, 1, TileBchPrbs.DataCorruption)
89mgr.addAdcProblem(1, 6, 35, 0, TileBchPrbs.DataCorruption)
90mgr.addAdcProblem(1, 6, 35, 1, TileBchPrbs.DataCorruption)
91mgr.addAdcProblem(1, 13, 6, 1, TileBchPrbs.StuckBit)
92mgr.addAdcProblem(1, 13, 6, 1, TileBchPrbs.VeryLargeHfNoise)
93mgr.addAdcProblem(1, 18, 23, 0, TileBchPrbs.BadLaser)
94mgr.addAdcProblem(1, 18, 23, 1, TileBchPrbs.BadLaser)
95mgr.addAdcProblem(1, 22, 32, 0, TileBchPrbs.VeryLargeHfNoise)
96mgr.addAdcProblem(1, 25, 0, 0, TileBchPrbs.NoData)
97mgr.addAdcProblem(1, 25, 0, 1, TileBchPrbs.NoData)
98mgr.addAdcProblem(1, 31, 20, 0, TileBchPrbs.BadCis)
99mgr.addAdcProblem(1, 33, 28, 0, TileBchPrbs.LargeHfNoise)
100mgr.addAdcProblem(1, 34, 47, 1, TileBchPrbs.LargeHfNoise)
101mgr.addAdcProblem(1, 34, 45, 1, TileBchPrbs.LargeHfNoise)
102mgr.addAdcProblem(1, 36, 36, 1, TileBchPrbs.VeryLargeHfNoise)
103mgr.addAdcProblem(1, 41, 39, 1, TileBchPrbs.LargeHfNoise)
104mgr.addAdcProblem(1, 41, 42, 1, TileBchPrbs.LargeHfNoise)
105mgr.addAdcProblem(1, 41, 46, 1, TileBchPrbs.LargeHfNoise)
106mgr.addAdcProblem(1, 41, 45, 1, TileBchPrbs.LargeHfNoise)
107mgr.addAdcProblem(1, 44, 29, 0, TileBchPrbs.VeryLargeHfNoise)
108mgr.addAdcProblem(1, 47, 45, 1, TileBchPrbs.LargeHfNoise)
109mgr.addAdcProblem(1, 48, 45, 1, TileBchPrbs.LargeHfNoise)
110mgr.addAdcProblem(1, 49, 45, 0, TileBchPrbs.VeryLargeHfNoise)
111for i in range(0, 48):
112 if i not in emptyChannelLongBarrel:
113 mgr.addAdcProblem(1, 52, i, 0, TileBchPrbs.DataCorruption)
114 mgr.addAdcProblem(1, 52, i, 1, TileBchPrbs.DataCorruption)
115mgr.addAdcProblem(1, 61, 28, 0, TileBchPrbs.LargeHfNoise)
116
117# LBC
118mgr.addAdcProblem(2, 3, 45, 1, TileBchPrbs.LargeHfNoise)
119mgr.addAdcProblem(2, 4, 24, 0, TileBchPrbs.LargeHfNoise)
120mgr.addAdcProblem(2, 5, 45, 1, TileBchPrbs.LargeHfNoise)
121mgr.addAdcProblem(2, 6, 45, 1, TileBchPrbs.VeryLargeHfNoise)
122mgr.addAdcProblem(2, 10, 28, 0, TileBchPrbs.StuckBit)
123mgr.addAdcProblem(2, 14, 19, 0, TileBchPrbs.BadCis)
124mgr.addAdcProblem(2, 14, 19, 1, TileBchPrbs.BadCis)
125mgr.addAdcProblem(2, 14, 45, 1, TileBchPrbs.VeryLargeHfNoise)
126for i in range(0, 48):
127 if i not in emptyChannelLongBarrel:
128 mgr.addAdcProblem(2, 16, i, 0, TileBchPrbs.DataCorruption)
129 mgr.addAdcProblem(2, 16, i, 1, TileBchPrbs.DataCorruption)
130mgr.addAdcProblem(2, 17, 45, 1, TileBchPrbs.LargeHfNoise)
131mgr.addAdcProblem(2, 19, 44, 0, TileBchPrbs.NoData)
132mgr.addAdcProblem(2, 19, 44, 1, TileBchPrbs.NoData)
133mgr.addAdcProblem(2, 19, 42, 0, TileBchPrbs.NoData)
134mgr.addAdcProblem(2, 19, 42, 1, TileBchPrbs.NoData)
135mgr.addAdcProblem(2, 19, 47, 0, TileBchPrbs.NoData)
136mgr.addAdcProblem(2, 19, 47, 1, TileBchPrbs.NoData)
137mgr.addAdcProblem(2, 19, 46, 0, TileBchPrbs.NoData)
138mgr.addAdcProblem(2, 19, 46, 1, TileBchPrbs.NoData)
139mgr.addAdcProblem(2, 19, 45, 0, TileBchPrbs.NoData)
140mgr.addAdcProblem(2, 19, 45, 1, TileBchPrbs.NoData)
141mgr.addAdcProblem(2, 23, 42, 0, TileBchPrbs.NoData)
142mgr.addAdcProblem(2, 23, 42, 1, TileBchPrbs.NoData)
143mgr.addAdcProblem(2, 25, 22, 0, TileBchPrbs.CorrelatedNoise)
144mgr.addAdcProblem(2, 25, 23, 0, TileBchPrbs.CorrelatedNoise)
145mgr.addAdcProblem(2, 25, 27, 0, TileBchPrbs.CorrelatedNoise)
146mgr.addAdcProblem(2, 25, 44, 0, TileBchPrbs.CorrelatedNoise)
147mgr.addAdcProblem(2, 26, 47, 1, TileBchPrbs.CorrelatedNoise)
148mgr.addAdcProblem(2, 26, 46, 1, TileBchPrbs.CorrelatedNoise)
149mgr.addAdcProblem(2, 26, 45, 1, TileBchPrbs.CorrelatedNoise)
150mgr.addAdcProblem(2, 33, 45, 1, TileBchPrbs.LargeHfNoise)
151mgr.addAdcProblem(2, 34, 42, 1, TileBchPrbs.CorrelatedNoise)
152mgr.addAdcProblem(2, 34, 47, 1, TileBchPrbs.CorrelatedNoise)
153mgr.addAdcProblem(2, 34, 46, 1, TileBchPrbs.CorrelatedNoise)
154mgr.addAdcProblem(2, 34, 45, 1, TileBchPrbs.CorrelatedNoise)
155mgr.addAdcProblem(2, 35, 32, 0, TileBchPrbs.VeryLargeHfNoise)
156mgr.addAdcProblem(2, 36, 45, 1, TileBchPrbs.StuckBit)
157mgr.addAdcProblem(2, 37, 47, 1, TileBchPrbs.VeryLargeHfNoise)
158mgr.addAdcProblem(2, 39, 25, 0, TileBchPrbs.CorrelatedNoise)
159mgr.addAdcProblem(2, 39, 24, 0, TileBchPrbs.CorrelatedNoise)
160mgr.addAdcProblem(2, 39, 29, 0, TileBchPrbs.CorrelatedNoise)
161mgr.addAdcProblem(2, 39, 42, 1, TileBchPrbs.CorrelatedNoise)
162mgr.addAdcProblem(2, 39, 47, 1, TileBchPrbs.CorrelatedNoise)
163mgr.addAdcProblem(2, 39, 46, 1, TileBchPrbs.CorrelatedNoise)
164mgr.addAdcProblem(2, 39, 45, 1, TileBchPrbs.CorrelatedNoise)
165mgr.addAdcProblem(2, 40, 47, 1, TileBchPrbs.CorrelatedNoise)
166mgr.addAdcProblem(2, 40, 45, 1, TileBchPrbs.CorrelatedNoise)
167mgr.addAdcProblem(2, 44, 46, 1, TileBchPrbs.LargeHfNoise)
168mgr.addAdcProblem(2, 44, 45, 1, TileBchPrbs.LargeHfNoise)
169mgr.addAdcProblem(2, 45, 3, 0, TileBchPrbs.VeryLargeHfNoise)
170mgr.addAdcProblem(2, 45, 45, 0, TileBchPrbs.LargeHfNoise)
171mgr.addAdcProblem(2, 46, 44, 0, TileBchPrbs.StuckBit)
172mgr.addAdcProblem(2, 52, 34, 1, TileBchPrbs.StuckBit)
173mgr.addAdcProblem(2, 54, 17, 0, TileBchPrbs.StuckBit)
174mgr.addAdcProblem(2, 54, 20, 0, TileBchPrbs.LargeHfNoise)
175mgr.addAdcProblem(2, 58, 45, 1, TileBchPrbs.LargeHfNoise)
176mgr.addAdcProblem(2, 63, 15, 0, TileBchPrbs.DataCorruption)
177mgr.addAdcProblem(2, 63, 15, 1, TileBchPrbs.DataCorruption)
178mgr.addAdcProblem(2, 63, 16, 0, TileBchPrbs.DataCorruption)
179mgr.addAdcProblem(2, 63, 16, 1, TileBchPrbs.DataCorruption)
180mgr.addAdcProblem(2, 63, 17, 0, TileBchPrbs.DataCorruption)
181mgr.addAdcProblem(2, 63, 17, 1, TileBchPrbs.DataCorruption)
182
183# EBA
184mgr.addAdcProblem(3, 6, 31, 0, TileBchPrbs.CorrelatedNoise)
185mgr.addAdcProblem(3, 6, 32, 0, TileBchPrbs.CorrelatedNoise)
186mgr.addAdcProblem(3, 6, 30, 0, TileBchPrbs.CorrelatedNoise)
187mgr.addAdcProblem(3, 8, 32, 0, TileBchPrbs.CorrelatedNoise)
188mgr.addAdcProblem(3, 8, 30, 0, TileBchPrbs.CorrelatedNoise)
189mgr.addAdcProblem(3, 8, 35, 0, TileBchPrbs.CorrelatedNoise)
190mgr.addAdcProblem(3, 11, 31, 1, TileBchPrbs.StuckBit)
191mgr.addAdcProblem(3, 13, 31, 0, TileBchPrbs.LargeHfNoise)
192mgr.addAdcProblem(3, 15, 31, 0, TileBchPrbs.VeryLargeHfNoise)
193mgr.addAdcProblem(3, 17, 20, 1, TileBchPrbs.StuckBit)
194mgr.addAdcProblem(3, 18, 3, 1, TileBchPrbs.BadCis)
195mgr.addAdcProblem(3, 24, 15, 0, TileBchPrbs.NoData)
196mgr.addAdcProblem(3, 24, 15, 1, TileBchPrbs.NoData)
197mgr.addAdcProblem(3, 32, 36, 1, TileBchPrbs.VeryLargeHfNoise)
198mgr.addAdcProblem(3, 38, 31, 1, TileBchPrbs.LargeLfNoise)
199mgr.addAdcProblem(3, 43, 21, 0, TileBchPrbs.DataCorruption)
200mgr.addAdcProblem(3, 43, 21, 1, TileBchPrbs.DataCorruption)
201mgr.addAdcProblem(3, 43, 22, 0, TileBchPrbs.DataCorruption)
202mgr.addAdcProblem(3, 43, 22, 1, TileBchPrbs.DataCorruption)
203mgr.addAdcProblem(3, 43, 23, 0, TileBchPrbs.DataCorruption)
204mgr.addAdcProblem(3, 43, 23, 1, TileBchPrbs.DataCorruption)
205mgr.addAdcProblem(3, 45, 31, 0, TileBchPrbs.CorrelatedNoise)
206mgr.addAdcProblem(3, 45, 32, 0, TileBchPrbs.CorrelatedNoise)
207mgr.addAdcProblem(3, 45, 30, 0, TileBchPrbs.CorrelatedNoise)
208mgr.addAdcProblem(3, 54, 14, 0, TileBchPrbs.NoData)
209mgr.addAdcProblem(3, 54, 14, 1, TileBchPrbs.NoData)
210
211# EBC
212mgr.addAdcProblem(4, 7, 32, 0, TileBchPrbs.LargeHfNoise)
213mgr.addAdcProblem(4, 8, 0, 0, TileBchPrbs.NoCis)
214mgr.addAdcProblem(4, 8, 0, 1, TileBchPrbs.NoCis)
215mgr.addAdcProblem(4, 12, 6, 0, TileBchPrbs.NoCis)
216mgr.addAdcProblem(4, 12, 6, 1, TileBchPrbs.NoCis)
217mgr.addAdcProblem(4, 12, 7, 0, TileBchPrbs.NoCis)
218mgr.addAdcProblem(4, 12, 7, 1, TileBchPrbs.NoCis)
219mgr.addAdcProblem(4, 12, 8, 0, TileBchPrbs.NoCis)
220mgr.addAdcProblem(4, 12, 8, 1, TileBchPrbs.NoCis)
221mgr.addAdcProblem(4, 17, 4, 0, TileBchPrbs.LargeHfNoise)
222mgr.addAdcProblem(4, 21, 35, 0, TileBchPrbs.NoCis)
223mgr.addAdcProblem(4, 21, 35, 1, TileBchPrbs.NoCis)
224mgr.addAdcProblem(4, 21, 38, 0, TileBchPrbs.NoCis)
225mgr.addAdcProblem(4, 21, 38, 1, TileBchPrbs.NoCis)
226mgr.addAdcProblem(4, 21, 37, 0, TileBchPrbs.NoCis)
227mgr.addAdcProblem(4, 21, 37, 1, TileBchPrbs.NoCis)
228mgr.addAdcProblem(4, 21, 41, 0, TileBchPrbs.NoCis)
229mgr.addAdcProblem(4, 21, 41, 1, TileBchPrbs.NoCis)
230mgr.addAdcProblem(4, 21, 40, 0, TileBchPrbs.NoCis)
231mgr.addAdcProblem(4, 21, 40, 1, TileBchPrbs.NoCis)
232mgr.addAdcProblem(4, 21, 39, 0, TileBchPrbs.NoCis)
233mgr.addAdcProblem(4, 21, 39, 1, TileBchPrbs.NoCis)
234mgr.addAdcProblem(4, 21, 36, 0, TileBchPrbs.NoCis)
235mgr.addAdcProblem(4, 21, 36, 1, TileBchPrbs.NoCis)
236mgr.addAdcProblem(4, 25, 41, 0, TileBchPrbs.LargeHfNoise)
237mgr.addAdcProblem(4, 31, 32, 0, TileBchPrbs.CorrelatedNoise)
238mgr.addAdcProblem(4, 31, 30, 0, TileBchPrbs.CorrelatedNoise)
239mgr.addAdcProblem(4, 33, 0, 1, TileBchPrbs.NoCis)
240mgr.addAdcProblem(4, 35, 36, 1, TileBchPrbs.BadCis)
241mgr.addAdcProblem(4, 36, 40, 0, TileBchPrbs.NoCis)
242mgr.addAdcProblem(4, 36, 40, 1, TileBchPrbs.NoCis)
243mgr.addAdcProblem(4, 39, 36, 1, TileBchPrbs.BadCis)
244for i in range(0, 48):
245 if i not in emptyChannelExtendedBarrel:
246 mgr.addAdcProblem(4, 41, i, 0, TileBchPrbs.DataCorruption)
247 mgr.addAdcProblem(4, 41, i, 1, TileBchPrbs.DataCorruption)
248mgr.addAdcProblem(4, 45, 1, 0, TileBchPrbs.BadCis)
249mgr.addAdcProblem(4, 47, 35, 0, TileBchPrbs.BadCis)
250mgr.addAdcProblem(4, 47, 35, 1, TileBchPrbs.BadCis)
251mgr.addAdcProblem(4, 54, 36, 1, TileBchPrbs.BadCis)
252mgr.addAdcProblem(4, 62, 13, 1, TileBchPrbs.VeryLargeHfNoise)
253mgr.addAdcProblem(4, 63, 32, 0, TileBchPrbs.CorrelatedNoise)
254mgr.addAdcProblem(4, 63, 30, 0, TileBchPrbs.CorrelatedNoise)
255mgr.addAdcProblem(4, 63, 35, 0, TileBchPrbs.CorrelatedNoise)
256
257
258#=== print bad channels
259log.info("bad channels after update")
260mgr.listBadAdcs()
261
262#=== commit changes
263mgr.commitToDb(db, folder, folderTag, TileBchDecoder.BitPat_ofl01, "lpribyl", "translated from Brian's badChM7.xls", (68340,0))
264
265#=== close DB
266db.closeDatabase()
static std::string getFullTag(const std::string &folder, const std::string &tag)
Returns the full tag string, composed of camelized folder name and tag part.