ATLAS Offline Software
fillPileUpNoiseLumi.py
Go to the documentation of this file.
1 #!/bin/env python
2 
3 from PyCool import cool
4 from time import asctime,gmtime
5 
6 
7 def createFolder(db,name):
8  desc='<timeStamp>run-lumi</timeStamp><addrHeader><address_header service_type="71" clid="1238547719" /></addrHeader><typeName>CondAttrListCollection</typeName>'
9  spec = cool.RecordSpecification()
10  spec.extend('LBAvInstLumi',cool.StorageType.Float)
11  spec.extend('Valid',cool.StorageType.UInt32)
12  folderSpec=cool.FolderSpecification(cool.FolderVersioning.MULTI_VERSION, spec)
13  #return db.createFolder(name,spec,desc,cool.FolderVersioning.MULTI_VERSION, True)
14  return db.createFolder(name,folderSpec,desc, True)
15 
16 
17 
18 def fillPileUpNoiseLumi(db,tag,dataIn, folderName="/CALO/Ofl/Noise/PileUpNoiseLumi"):
19 
20  data=0.
21  data=dataIn
22 
23  if db.existsFolder(folderName):
24  folder = db.getFolder(folderName)
25  else:
26  #create new folder
27  print "Folder", folderName,"does not exit yet. Creating it now."
28  folder=createFolder(db,folderName)
29 
30  since=cool.ValidityKeyMin
31  until=cool.ValidityKeyMax
32 
33  payload = cool.Record(folder.payloadSpecification())
34  payload["LBAvInstLumi"]=data
35  payload["Valid"]=0
36  folder.storeObject(since,until,payload,cool.ChannelId(0),tag)
37  folder.storeObject(since,until,payload,cool.ChannelId(1),tag)
38 
39  return 0
40 
41 
42 if __name__=='__main__':
43  import os,sys,getopt
44 
45  if len(sys.argv)<2 or sys.argv[1]=="-h" or sys.argv[1]=="--help":
46  print "Usage:"
47 
48  print "fillPileUpNoiseLumi.py lumi"
49  sys.exit(-1)
50 
51 
52  from LArConditionsCommon.getCurrentFolderTag import getCurrentFolderTag
53  (current,next)=getCurrentFolderTag("COOLOFL_CALO/CONDBR2","/CALO/Ofl/Noise/PileUpNoiseLumi")
54  if current is None:
55  print "Failed to get CURRENT folder level tag!"
56  sys.exit(-1)
57 
58  try:
59  float(sys.argv[1])
60  except ValueError:
61  print "Argument is not a float"
62 
63  newlumi=float(sys.argv[1])
64 
65  sqlitename="PileUpNoiseLumi.db"
66  if os.access(sqlitename,os.F_OK):
67  print "ERROR: File",sqlitename,"exists already. Please delete!"
68  sys.exit(-1)
69 
70  print "Using folder-level tag:",current
71  connect="sqlite://;schema="+sqlitename+";dbname=CONDBR2"
72  dbSvc = cool.DatabaseSvcFactory.databaseService()
73  try:
74  db = dbSvc.openDatabase(connect,False)
75  except Exception:
76  print "Database does not exist, try to create it ..."
77  try:
78  db=dbSvc.createDatabase(connect)
79  except Exception,e:
80  print e
81  print "Could not create database"
82  sys.exit(-1)
83  pass
84  pass
85 
86  data=fillPileUpNoiseLumi(db,current,newlumi)
87  sys.exit(0)
fillPileUpNoiseLumi
Definition: fillPileUpNoiseLumi.py:1
fillPileUpNoiseLumi.fillPileUpNoiseLumi
def fillPileUpNoiseLumi(db, tag, dataIn, folderName="/CALO/Ofl/Noise/PileUpNoiseLumi")
Definition: fillPileUpNoiseLumi.py:18
python.getCurrentFolderTag.getCurrentFolderTag
def getCurrentFolderTag(dbname, folderName, ES=False)
Definition: getCurrentFolderTag.py:11
fillPileUpNoiseLumi.createFolder
def createFolder(db, name)
Definition: fillPileUpNoiseLumi.py:7
readCCLHist.float
float
Definition: readCCLHist.py:83