9 __version__ =
"$Id: LArHVMapDbFiller.py"
13 from PyCool
import cool
24 A simple class used to fill SQLite db file with parameters for simulation
40 print (
" setBegin run,lumi ",run)
46 print (
"setEnd runmlumi ",run)
64 self.
Params[
'LArHVMap'] = value
69 dbFileName =
'HVmap.db'
71 folderPath =
'/LAR/IdentifierOfl/HVLineToElectrodeMap'
74 raise LArHVMapDbFillerError (
'Must set begin run number before generating db')
76 self.
endTime = cool.ValidityKeyMax
78 raise LArHVMapDbFillerError (
'Must give an input file for LArHVToElectrode.data')
80 raise LArHVMapDbFillerError (
'Must give a folder tag')
85 raise LArHVMapDbFillerError (
'No parameters for db ' + dbName)
90 print (
"LArHVMapDbFiller.genDb: Removed db", dbFileName)
95 dbSvc=cool.DatabaseSvcFactory.databaseService()
98 dbstring=
"sqlite://;schema=" + dbFileName +
";dbname=" + dbName
100 db=dbSvc.createDatabase(dbstring)
101 except Exception
as e:
102 print (
'LArHVMapDbFiller.genDb: Problem creating database',e)
104 print (
"LArHVMapDbFiller.genDb: Created database",dbstring)
107 spec=cool.RecordSpecification()
109 spec.extend(key, cool.StorageType.String16M)
112 desc=
'<timeStamp>run-lumi</timeStamp><addrHeader><address_header service_type="71" clid="40774348" /></addrHeader><typeName>AthenaAttributeList</typeName>'
117 myfolder=db.createFolder(folderPath, spec, desc, cool.FolderVersioning.MULTI_VERSION,
True)
119 data=cool.Record(spec)
123 print (
"LArHVMapDbFiller.genDb: Recording parameters", data)
127 print (
"LArHVMapDbFiller.genDb: Stored object")
137 print (
"LArHVMapDbFiller.dumpDb: Dumping database:", dbstring)
139 dbSvc = cool.DatabaseSvcFactory.databaseService()
142 db = dbSvc.openDatabase(dbstring,
False)
143 except Exception
as e:
144 print (
'LArHVMapDbFiller.dumpDb: Problem opening database',e)
148 folders = db.listAllNodes()
153 print (
"LArHVMapDbFiller.dumpDb: Dumping folder " +
str(ff))
165 nobjs = f.countObjects( cool.ValidityKeyMin,
167 cool.ChannelSelection.all())
169 print (
"LArHVMapDbFiller.dumpDb: number of IOV payloads", nobjs)
171 objs = f.browseObjects( cool.ValidityKeyMin,
173 cool.ChannelSelection.all())
175 while objs.goToNext():
176 obj = objs.currentRef()
177 print (
"LArHVMapDbFiller.dumpDb: Payload", i,)
178 print (
"since [r,l]: [", obj.since() ,
']',)
179 print (
"until [r,l]: [", obj.until() ,
']',)
180 print (
"payload", obj.payload(),)
181 print (
"chan",obj.channelId() )