9 __version__ =
"$Id: LArHVMapDbFiller.py"
13 from PyCool
import cool
25 A simple class used to fill SQLite db file with parameters for simulation
41 print (
" setBegin run,lumi ",run)
47 print (
"setEnd runmlumi ",run)
65 self.
Params[
'LArHVMap'] = value
70 dbFileName =
'HVmap.db'
72 folderPath =
'/LAR/IdentifierOfl/HVLineToElectrodeMap'
75 raise LArHVMapDbFillerError (
'Must set begin run number before generating db')
77 self.
endTime = cool.ValidityKeyMax
79 raise LArHVMapDbFillerError (
'Must give an input file for LArHVToElectrode.data')
81 raise LArHVMapDbFillerError (
'Must give a folder tag')
86 raise LArHVMapDbFillerError (
'No parameters for db ' + dbName)
91 print (
"LArHVMapDbFiller.genDb: Removed db", dbFileName)
96 dbSvc=cool.DatabaseSvcFactory.databaseService()
99 dbstring=
"sqlite://;schema=" + dbFileName +
";dbname=" + dbName
101 db=dbSvc.createDatabase(dbstring)
102 except Exception
as e:
103 print (
'LArHVMapDbFiller.genDb: Problem creating database',e)
105 print (
"LArHVMapDbFiller.genDb: Created database",dbstring)
108 spec=cool.RecordSpecification()
110 spec.extend(key, cool.StorageType.String16M)
113 desc=
'<timeStamp>run-lumi</timeStamp><addrHeader><address_header service_type="71" clid="40774348" /></addrHeader><typeName>AthenaAttributeList</typeName>'
118 myfolder=db.createFolder(folderPath, spec, desc, cool.FolderVersioning.MULTI_VERSION,
True)
120 data=cool.Record(spec)
124 print (
"LArHVMapDbFiller.genDb: Recording parameters", data)
128 print (
"LArHVMapDbFiller.genDb: Stored object")
138 print (
"LArHVMapDbFiller.dumpDb: Dumping database:", dbstring)
140 dbSvc = cool.DatabaseSvcFactory.databaseService()
143 db = dbSvc.openDatabase(dbstring,
False)
144 except Exception
as e:
145 print (
'LArHVMapDbFiller.dumpDb: Problem opening database',e)
149 folders = db.listAllNodes()
154 print (
"LArHVMapDbFiller.dumpDb: Dumping folder " +
str(ff))
166 nobjs = f.countObjects( cool.ValidityKeyMin,
168 cool.ChannelSelection.all())
170 print (
"LArHVMapDbFiller.dumpDb: number of IOV payloads", nobjs)
172 objs = f.browseObjects( cool.ValidityKeyMin,
174 cool.ChannelSelection.all())
176 while objs.goToNext():
177 obj = objs.currentRef()
178 print (
"LArHVMapDbFiller.dumpDb: Payload", i,)
179 print (
"since [r,l]: [", obj.since() ,
']',)
180 print (
"until [r,l]: [", obj.until() ,
']',)
181 print (
"payload", obj.payload(),)
182 print (
"chan",obj.channelId() )