68 def genDb(self):
69
70 dbFileName = 'HVmap.db'
71 dbName = 'COMP200'
72 folderPath = '/LAR/IdentifierOfl/HVLineToElectrodeMap'
73
74 if self.beginTime is None:
75 raise LArHVMapDbFillerError ('Must set begin run number before generating db')
76 if self.endTime is None:
77 self.endTime = cool.ValidityKeyMax
78 if self.FileName is None:
79 raise LArHVMapDbFillerError ('Must give an input file for LArHVToElectrode.data')
80 if self.FolderTag is None:
81 raise LArHVMapDbFillerError ('Must give a folder tag')
82
83 self.readFile()
84
85 if len(self.Params) == 0:
86 raise LArHVMapDbFillerError ('No parameters for db ' + dbName)
87
88
89 try:
90 os.remove(dbFileName)
91 print ("LArHVMapDbFiller.genDb: Removed db", dbFileName)
92 except OSError:
93 pass
94
95
96 dbSvc=cool.DatabaseSvcFactory.databaseService()
97
98
99 dbstring="sqlite://;schema=" + dbFileName + ";dbname=" + dbName
100 try:
101 db=dbSvc.createDatabase(dbstring)
102 except Exception as e:
103 print ('LArHVMapDbFiller.genDb: Problem creating database',e)
104 sys.exit(-1)
105 print ("LArHVMapDbFiller.genDb: Created database",dbstring)
106
107
108 spec=cool.RecordSpecification()
109 for key in self.Params:
110 spec.extend(key, cool.StorageType.String16M)
111
112
113 desc='<timeStamp>run-lumi</timeStamp><addrHeader><address_header service_type="71" clid="40774348" /></addrHeader><typeName>AthenaAttributeList</typeName>'
114
115
116
117
118 myfolder=db.createFolder(folderPath, spec, desc, cool.FolderVersioning.MULTI_VERSION,True)
119
120 data=cool.Record(spec)
121 for k, v in self.Params.items():
122 data[k] = v
123
124 print ("LArHVMapDbFiller.genDb: Recording parameters", data)
125
126
127 myfolder.storeObject(self.beginTime, self.endTime, data, 0, self.FolderTag)
128 print ("LArHVMapDbFiller.genDb: Stored object")
129
130
131 db.closeDatabase()
132
133
134 self.dumpDb(dbstring)
135