ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetConditions
SCT_ConditionsTools
share
createLinkMaskingSQLiteFile.py
Go to the documentation of this file.
1
#!/bin/env python
2
3
4
# Taken from InnerDetector/InDetRecTools/TRT_ElectronPidTools/DatabaseTools/WritePyCoolAll.py
5
# https://twiki.cern.ch/twiki/bin/view/Atlas/ConditionsSimpleExample
6
# Usage: python ../athena/InnerDetector/InDetConditions/SCT_ConditionsTools/python/createLinkMaskingSQLiteFile.py
7
8
import
sys
9
from
PyCool
import
cool
10
11
def
main
():
12
dbFile =
"LinkMasking.db"
13
dbName =
"CONDBR2"
14
folderName =
"/purple/pants"
15
16
fieldNames = [
"lastProbedState"
]
17
fieldTypes = [cool.StorageType.Bool]
18
19
# remove the old db file so that we can write the new one
20
try
:
21
import
os
22
os.remove(dbFile)
23
except
:
24
pass
25
26
# get database service and open database
27
dbSvc = cool.DatabaseSvcFactory.databaseService()
28
29
# database accessed via physical name
30
dbString =
"sqlite://;schema=%s;dbname=%s"
% (dbFile, dbName)
31
try
:
32
db = dbSvc.createDatabase(dbString)
33
except
Exception:
34
import
traceback
35
traceback.print_exc()
36
sys.exit(-1)
37
print
(
"Created database"
, dbString)
38
39
# setup folder
40
spec = cool.RecordSpecification()
41
spec.extend(fieldNames[0], fieldTypes[0])
42
43
# folder meta-data - note for Athena this has a special meaning
44
desc =
'<timeStamp>run-lumi</timeStamp><addrHeader><address_header service_type="71" clid="1238547719" /></addrHeader><typeName>CondAttrListCollection</typeName>'
45
46
# create the folder - single version
47
# last argument is createParents - if true, automatically creates parent folders if needed
48
# note this will not work if the database already exists - delete mycool.db first
49
folderSpec = cool.FolderSpecification(cool.FolderVersioning.SINGLE_VERSION, spec)
50
folder = db.createFolder(folderName, folderSpec, desc,
True
)
51
52
# now fill in some data - create a record and fill it
53
data = cool.Record(spec)
54
55
dataDict = {167772160:
False
,
# barrel_ec 0 layer_disk 0 eta_module -6 phi_module 0 side 0
56
167773184:
True
,
# barrel_ec 0 layer_disk 0 eta_module -6 phi_module 0 side 1
57
167774208:
True
,
# barrel_ec 0 layer_disk 0 eta_module -5 phi_module 0 side 0
58
167775232:
True
,
# barrel_ec 0 layer_disk 0 eta_module -5 phi_module 0 side 1
59
167776256:
False
,
# barrel_ec 0 layer_disk 0 eta_module -4 phi_module 0 side 0
60
}
61
62
for
waferID, lastProbedState
in
dataDict.items():
63
print
(
"\nChannel"
, waferID)
64
print
(
"lastProbedState is"
, lastProbedState)
65
data[fieldNames[0]] = lastProbedState
66
print
(
"Will store this object for channel"
, waferID, data)
67
folder.storeObject(0, cool.ValidityKeyMax, data, waferID)
68
69
print
(
"\nClose database"
)
70
db.closeDatabase()
71
72
if
__name__==
"__main__"
:
73
main
()
createLinkMaskingSQLiteFile.main
main()
Definition
createLinkMaskingSQLiteFile.py:11
Generated on
for ATLAS Offline Software by
1.17.0