ATLAS Offline Software
Classes | Functions
AFPToFDBCreate Namespace Reference

Classes

class  AFPDBDict
 
class  folderBulk
 

Functions

def runLBtoDB (run, lb)
 
def makeFolderAndSpec (db, folderName, tag)
 
def main ()
 

Function Documentation

◆ main()

def AFPToFDBCreate.main ( )

Definition at line 138 of file AFPToFDBCreate.py.

138 def main():
139  dbFile = "Example.db"
140  dbName = "CONDBR2"
141 
142  # remove the old db file so that we can write the new one
143  try:
144  import os
145  os.remove(dbFile)
146  except IOError:
147  pass
148 
149  # get database service and open database
150  dbSvc = cool.DatabaseSvcFactory.databaseService()
151 
152  # database accessed via physical name
153  dbString = "sqlite://;schema=%s;dbname=%s" % (dbFile, dbName)
154  try:
155  db = dbSvc.createDatabase(dbString)
156  except Exception as e:
157  print ('Problem creating database', e)
158  sys.exit(-1)
159  print ("Created database", dbString)
160 
161  # define the folder in the database, its specification and its tag
162  folderBlkLoc_01=makeFolderAndSpec(db,folderName="/FWD/Onl/AFP/ToFParameters/Local", tag="AFPToFLoc-01")
163  folderBlkVtx_01=makeFolderAndSpec(db,folderName="/FWD/Onl/AFP/ToFParameters/Vertex", tag="AFPToFVtx-01")
164 
165 
166  # have the same IOV as alignment
167  fromRun = 203302
168  myDict = AFPDBDict(folderBlkLoc_01)
169  myDict.append(stationID=0, trainID=0, barID=0, barWeight=1.0, barTimeOffset=1494.0)
170  myDict.append(stationID=0, trainID=0, barID=1, barWeight=1.0, barTimeOffset=1500.0)
171  myDict.append(stationID=0, trainID=0, barID=2, barWeight=1.0, barTimeOffset=1500.0)
172  myDict.append(stationID=0, trainID=0, barID=3, barWeight=1.0, barTimeOffset=1500.0)
173  myDict.append(stationID=0, trainID=1, barID=0, barWeight=1.0, barTimeOffset=1500.0)
174  myDict.append(stationID=0, trainID=1, barID=1, barWeight=1.0, barTimeOffset=1500.0)
175  myDict.append(stationID=0, trainID=1, barID=2, barWeight=1.0, barTimeOffset=1500.0)
176  myDict.append(stationID=0, trainID=1, barID=3, barWeight=1.0, barTimeOffset=1500.0)
177  myDict.append(stationID=0, trainID=2, barID=0, barWeight=1.0, barTimeOffset=1500.0)
178  myDict.append(stationID=0, trainID=2, barID=1, barWeight=1.0, barTimeOffset=1500.0)
179  myDict.append(stationID=0, trainID=2, barID=2, barWeight=1.0, barTimeOffset=1500.0)
180  myDict.append(stationID=0, trainID=2, barID=3, barWeight=1.0, barTimeOffset=1500.0)
181  myDict.append(stationID=0, trainID=3, barID=0, barWeight=1.0, barTimeOffset=1500.0)
182  myDict.append(stationID=0, trainID=3, barID=1, barWeight=1.0, barTimeOffset=1500.0)
183  myDict.append(stationID=0, trainID=3, barID=2, barWeight=1.0, barTimeOffset=1500.0)
184  myDict.append(stationID=0, trainID=3, barID=3, barWeight=1.0, barTimeOffset=1500.0)
185  myDict.append(stationID=3, trainID=0, barID=0, barWeight=1.0, barTimeOffset=1500.0)
186  myDict.append(stationID=3, trainID=0, barID=1, barWeight=1.0, barTimeOffset=1500.0)
187  myDict.append(stationID=3, trainID=0, barID=2, barWeight=1.0, barTimeOffset=1500.0)
188  myDict.append(stationID=3, trainID=0, barID=3, barWeight=1.0, barTimeOffset=1500.0)
189  myDict.append(stationID=3, trainID=1, barID=0, barWeight=1.0, barTimeOffset=1500.0)
190  myDict.append(stationID=3, trainID=1, barID=1, barWeight=1.0, barTimeOffset=1500.0)
191  myDict.append(stationID=3, trainID=1, barID=2, barWeight=1.0, barTimeOffset=1500.0)
192  myDict.append(stationID=3, trainID=1, barID=3, barWeight=1.0, barTimeOffset=1500.0)
193  myDict.append(stationID=3, trainID=2, barID=0, barWeight=1.0, barTimeOffset=1500.0)
194  myDict.append(stationID=3, trainID=2, barID=1, barWeight=1.0, barTimeOffset=1500.0)
195  myDict.append(stationID=3, trainID=2, barID=2, barWeight=1.0, barTimeOffset=1500.0)
196  myDict.append(stationID=3, trainID=2, barID=3, barWeight=1.0, barTimeOffset=1500.0)
197  myDict.append(stationID=3, trainID=3, barID=0, barWeight=1.0, barTimeOffset=1500.0)
198  myDict.append(stationID=3, trainID=3, barID=1, barWeight=1.0, barTimeOffset=1500.0)
199  myDict.append(stationID=3, trainID=3, barID=2, barWeight=1.0, barTimeOffset=1500.0)
200  myDict.append(stationID=3, trainID=3, barID=3, barWeight=1.0, barTimeOffset=1500.0)
201  myDict.savePayload(folderBlk=folderBlkLoc_01, fromRun=fromRun)
202 
203 
204  # have the same IOV as alignment
205  fromRun = 203302
206  myDict = AFPDBDict(folderBlk=folderBlkVtx_01)
207  myDict.append(stationID=0, timeGlobalOffset=0.0, timeOffset=(64.,45.,25.,11.), timeSlope=(-7.3,-5.0,-4.0,-4.0), trainEdge=(-18.7,-13.2,-8.1,-4.0,-2.5))
208  myDict.append(stationID=3, timeGlobalOffset=5.0, timeOffset=( 2., 9.,14.,12.), timeSlope=( 4.0, 5.0, 3.0, 6.0), trainEdge=(-18.7,-13.2,-8.1,-4.0,-2.5))
209  myDict.savePayload(folderBlk=folderBlkVtx_01, fromRun=fromRun)
210 
211 
212  print ("\nClose database")
213  db.closeDatabase()
214 
215 

◆ makeFolderAndSpec()

def AFPToFDBCreate.makeFolderAndSpec (   db,
  folderName,
  tag 
)
A function that will ensure a folder is in the database, it creates it if necessary. Also defines content of the folders. It contains only a single entry of a long string

Definition at line 34 of file AFPToFDBCreate.py.

34 def makeFolderAndSpec(db,folderName,tag):
35  """A function that will ensure a folder is in the database, it creates it if necessary. Also defines content of the folders. It contains only a single entry of a long string"""
36 
37  spec=cool.RecordSpecification()
38 
39  # each folder contain just a single entry, this string will be JSON entry
40  spec.extend("data",cool.StorageType.String64k)
41 
42  runLumi=True
43 
44  # if there are more channels, use "CondAttrListCollection"; if there is only one channel, use "AthenaAttributeList"
45  # it's also possible to use "CondAttrListCollection" if there's only one channel
46  folder=AtlCoolLib.ensureFolder(db,folderName,spec,AtlCoolLib.athenaDesc(runLumi,'CondAttrListCollection'),cool.FolderVersioning.MULTI_VERSION)
47 
48  if(folder is None):
49  sys.exit(1)
50 
51  return folderBulk(folder, folderName, spec, tag)
52 

◆ runLBtoDB()

def AFPToFDBCreate.runLBtoDB (   run,
  lb 
)
Turns run number and lumibock into integrer needed by the database

Definition at line 30 of file AFPToFDBCreate.py.

30 def runLBtoDB(run,lb):
31  """Turns run number and lumibock into integrer needed by the database"""
32  return (run<<32) + lb
33 
AFPToFDBCreate.main
def main()
Definition: AFPToFDBCreate.py:138
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:569
AFPToFDBCreate.makeFolderAndSpec
def makeFolderAndSpec(db, folderName, tag)
Definition: AFPToFDBCreate.py:34
AFPToFDBCreate.runLBtoDB
def runLBtoDB(run, lb)
Definition: AFPToFDBCreate.py:30