2 from PyCool
import cool
10 def createSqlite(sqliteName,folderName="/TDAQ/OLC/LHC/FILLPARAMS"):
12 dbSvc = cool.DatabaseSvcFactory.databaseService()
14 if os.access(sqliteName,os.R_OK):
15 print (
"UPDATING existing sqlite file %s" % sqliteName)
16 db=dbSvc.openDatabase(
"sqlite://;schema="+sqliteName+
";dbname=CONDBR2",
False)
18 print(
"Creating new sqlite file %s" % sqliteName)
19 db=dbSvc.createDatabase(
"sqlite://;schema="+sqliteName+
";dbname=CONDBR2")
22 spec = cool.RecordSpecification()
23 spec.extend(
"Beam1Bunches",cool.StorageType.UInt32)
24 spec.extend(
"Beam2Bunches",cool.StorageType.UInt32)
25 spec.extend(
"LuminousBunches",cool.StorageType.UInt32)
26 spec.extend(
"BCIDmasks",cool.StorageType.Blob64k)
27 descr=
'<timeStamp>time</timeStamp><addrHeader><address_header service_type="71" clid="40774348" /></addrHeader><typeName>AthenaAttributeList</typeName>'
29 if db.existsFolder(folderName):
30 folder=db.getFolder(folderName)
32 print(
"Creating COOL folder/tag %s" % (folderName))
34 folderSpec = cool.FolderSpecification(cool.FolderVersioning.SINGLE_VERSION, spec)
35 folder = db.createFolder(folderName, folderSpec, descr,
True)
40 def fillFolder(folder,data=[],iovMin=cool.ValidityKeyMin,iovMax=cool.ValidityKeyMax):
47 if (bcid & 0x1): nB1+=1
48 if (bcid & 0x2): nB2+=1
49 if (bcid & 0x3 == 0x3): nColl+=1
53 payload=cool.Record(folder.payloadSpecification())
55 payload[
'Beam1Bunches']=nB1
56 payload[
'Beam2Bunches']=nB2
57 payload[
'LuminousBunches']=nColl
59 btype=getattr(ROOT,
"coral::Blob")
64 for i,d
in enumerate(data):
68 payload[
'BCIDmasks']=bcmask
71 print(
"Storing CaloCondBlob object")
72 folder.storeObject(iovMin, iovMax, payload, cool.ChannelId(0))
81 for i
in range(0,3564):
85 for i
in range (0,25):
88 for i
in range (3550,3564):
92 for i
in range (1000,1030):
101 for i
in range(0,3564):
104 t8b4e=[0x3,0x3,0x3,0x3, 0x3,0x3,0x3,0x3, 0x0,0x0,0x0,0x0]
106 for i
in range(0,20):
108 mask[100+i*12:100+(i+1)*12]=t8b4e
115 if __name__==
"__main__":
123 fillFolder(folder,d1,iovMin=cool.ValidityKey(1e6),iovMax=cool.ValidityKey(2e6))
124 fillFolder(folder,d2,iovMin=cool.ValidityKey(2e6),iovMax=cool.ValidityKey(3e6))