ATLAS Offline Software
Loading...
Searching...
No Matches
LArHVMapDbFiller.LArHVMapDbFiller Class Reference
Inheritance diagram for LArHVMapDbFiller.LArHVMapDbFiller:
Collaboration diagram for LArHVMapDbFiller.LArHVMapDbFiller:

Public Types

typedef HLT::TypeInformation::for_each_type_c< typenameEDMLIST::map, my_functor, my_result<>, my_arg< HLT::TypeInformation::get_cont, CONTAINER > >::type result

Public Member Functions

 __init__ (self)
 setBegin (self, run, lumi)
 setEnd (self, run, lumi)
 setFileName (self, fileName)
 setFolderTag (self, folderTag)
 readFile (self)
 genDb (self)
 dumpDb (self, dbstring)

Public Attributes

tuple beginTime = None
tuple endTime = None
 FileName = None
 FolderTag = None
dict Params = {}

Detailed Description

A simple class used to fill SQLite db file with parameters for simulation
and/or digitization.

Definition at line 23 of file LArHVMapDbFiller.py.

Member Typedef Documentation

◆ result

Definition at line 90 of file EDM_MasterSearch.h.

Constructor & Destructor Documentation

◆ __init__()

LArHVMapDbFiller.LArHVMapDbFiller.__init__ ( self)

Definition at line 29 of file LArHVMapDbFiller.py.

29 def __init__(self):
30 object.__init__(self)
31
32 self.beginTime = None
33 self.endTime = None
34 self.FileName = None
35 self.FolderTag = None
36 self.Params = {}
37 return
38

Member Function Documentation

◆ dumpDb()

LArHVMapDbFiller.LArHVMapDbFiller.dumpDb ( self,
dbstring )

Definition at line 136 of file LArHVMapDbFiller.py.

136 def dumpDb(self, dbstring):
137
138 print ("LArHVMapDbFiller.dumpDb: Dumping database:", dbstring)
139 # get database service and open database
140 dbSvc = cool.DatabaseSvcFactory.databaseService()
141 # database accessed via physical name
142 try:
143 db = dbSvc.openDatabase(dbstring,False)
144 except Exception as e:
145 print ('LArHVMapDbFiller.dumpDb: Problem opening database',e)
146 sys.exit(-1)
147
148 # Loop over folders
149 folders = db.listAllNodes()
150 for ff in folders:
151 # Get Folder
152 try:
153 f = db.getFolder(ff)
154 print ("LArHVMapDbFiller.dumpDb: Dumping folder " + str(ff))
155 except Exception:
156 #print ("Skipping " + str(ff))
157 continue
158
159 # get tags
160 # tags = f.listTags()
161 # print ("for tags ",)
162 # for tag in tags: print (tag)
163
164 # for tag in tags:
165
166 nobjs = f.countObjects( cool.ValidityKeyMin,
167 cool.ValidityKeyMax,
168 cool.ChannelSelection.all())
169
170 print ("LArHVMapDbFiller.dumpDb: number of IOV payloads", nobjs)
171
172 objs = f.browseObjects( cool.ValidityKeyMin,
173 cool.ValidityKeyMax,
174 cool.ChannelSelection.all())
175 i = 0
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() )
183 i += 1
184
185 objs.close()
186
187 # finish
188 db.closeDatabase()

◆ genDb()

LArHVMapDbFiller.LArHVMapDbFiller.genDb ( self)

Definition at line 68 of file LArHVMapDbFiller.py.

68 def genDb(self):
69
70 dbFileName = 'HVmap.db'
71 dbName = 'COMP200'
72 folderPath = '/LAR/IdentifierOfl/HVLineToElectrodeMap'
73 # Do checks
74 if self.beginTime is None:
75 raise LArHVMapDbFillerError ('Must set begin run number before generating db')
76 if self.endTime is None:
77 self.endTime = cool.ValidityKeyMax
78 if self.FileName is None:
79 raise LArHVMapDbFillerError ('Must give an input file for LArHVToElectrode.data')
80 if self.FolderTag is None:
81 raise LArHVMapDbFillerError ('Must give a folder tag')
82
83 self.readFile()
84
85 if len(self.Params) == 0:
86 raise LArHVMapDbFillerError ('No parameters for db ' + dbName)
87
88 # remove existing db, if any
89 try:
90 os.remove(dbFileName)
91 print ("LArHVMapDbFiller.genDb: Removed db", dbFileName)
92 except OSError:
93 pass
94
95 # get database service and open database
96 dbSvc=cool.DatabaseSvcFactory.databaseService()
97
98 # build dbstring - database accessed via physical name
99 dbstring="sqlite://;schema=" + dbFileName + ";dbname=" + dbName
100 try:
101 db=dbSvc.createDatabase(dbstring)
102 except Exception as e:
103 print ('LArHVMapDbFiller.genDb: Problem creating database',e)
104 sys.exit(-1)
105 print ("LArHVMapDbFiller.genDb: Created database",dbstring)
106
107 # setup a folder payload specification
108 spec=cool.RecordSpecification()
109 for key in self.Params:
110 spec.extend(key, cool.StorageType.String16M)
111
112 # folder meta-data - note for Athena this has a special meaning
113 desc='<timeStamp>run-lumi</timeStamp><addrHeader><address_header service_type="71" clid="40774348" /></addrHeader><typeName>AthenaAttributeList</typeName>'
114 # create the folder - single version
115 # last argument is createParents - if true, automatically creates parent
116 # folders if needed
117 # note this will not work if the database already exists - delete mycool.db first
118 myfolder=db.createFolder(folderPath, spec, desc, cool.FolderVersioning.MULTI_VERSION,True)
119 # now fill in simlation parameters
120 data=cool.Record(spec)
121 for k, v in self.Params.items():
122 data[k] = v
123
124 print ("LArHVMapDbFiller.genDb: Recording parameters", data)
125
126 # store object with IOV valid from 0-10, channel 3
127 myfolder.storeObject(self.beginTime, self.endTime, data, 0, self.FolderTag)
128 print ("LArHVMapDbFiller.genDb: Stored object")
129
130 # finalize
131 db.closeDatabase()
132
133 # Try to dump out db as test
134 self.dumpDb(dbstring)
135

◆ readFile()

LArHVMapDbFiller.LArHVMapDbFiller.readFile ( self)

Definition at line 60 of file LArHVMapDbFiller.py.

60 def readFile(self):
61 value = ''
62 f = open(self.FileName,'r')
63 for lines in f:
64 value += lines
65 self.Params['LArHVMap'] = value
66 return
67

◆ setBegin()

LArHVMapDbFiller.LArHVMapDbFiller.setBegin ( self,
run,
lumi )

Definition at line 40 of file LArHVMapDbFiller.py.

40 def setBegin(self,run,lumi):
41 print (" setBegin run,lumi ",run)
42 self.beginTime = (int(run) << 32) + int(lumi)
43 print (" time ",self.beginTime)
44 return
45

◆ setEnd()

LArHVMapDbFiller.LArHVMapDbFiller.setEnd ( self,
run,
lumi )

Definition at line 46 of file LArHVMapDbFiller.py.

46 def setEnd(self,run,lumi):
47 print ("setEnd runmlumi ",run)
48 self.endTime = (int(run) << 32) + int(lumi)
49 print (" time ",self.endTime)
50 return
51

◆ setFileName()

LArHVMapDbFiller.LArHVMapDbFiller.setFileName ( self,
fileName )

Definition at line 52 of file LArHVMapDbFiller.py.

52 def setFileName(self, fileName):
53 self.FileName = fileName
54 return
55

◆ setFolderTag()

LArHVMapDbFiller.LArHVMapDbFiller.setFolderTag ( self,
folderTag )

Definition at line 56 of file LArHVMapDbFiller.py.

56 def setFolderTag(self,folderTag):
57 self.FolderTag = folderTag
58 return
59

Member Data Documentation

◆ beginTime

LArHVMapDbFiller.LArHVMapDbFiller.beginTime = None

Definition at line 32 of file LArHVMapDbFiller.py.

◆ endTime

LArHVMapDbFiller.LArHVMapDbFiller.endTime = None

Definition at line 33 of file LArHVMapDbFiller.py.

◆ FileName

LArHVMapDbFiller.LArHVMapDbFiller.FileName = None

Definition at line 34 of file LArHVMapDbFiller.py.

◆ FolderTag

LArHVMapDbFiller.LArHVMapDbFiller.FolderTag = None

Definition at line 35 of file LArHVMapDbFiller.py.

◆ Params

LArHVMapDbFiller.LArHVMapDbFiller.Params = {}

Definition at line 36 of file LArHVMapDbFiller.py.


The documentation for this class was generated from the following file: