ATLAS Offline Software
Loading...
Searching...
No Matches
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
8import sys
9from PyCool import cool
10
11def 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
72if __name__=="__main__":
73 main()