ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
python.ParameterDbFiller.ParameterDbFiller Class Reference
Inheritance diagram for python.ParameterDbFiller.ParameterDbFiller:
Collaboration diagram for python.ParameterDbFiller.ParameterDbFiller:

Public Member Functions

def __init__ (self)
 
def setBeginRun (self, beginRun)
 
def setEndRun (self, endRun)
 
def addSimParam (self, name, value)
 
def addDigitParam (self, name, value)
 
def addDigitParam64 (self, name, value)
 
def genSimDb (self, dbFileName=None)
 
def genDigitDb (self, dbFileName=None)
 
def genDb (self, dbFileName, dbName, params, folderPath, params64={})
 
def dumpDb (self, dbstring)
 

Public Attributes

 beginRun
 
 endRun
 
 simParams
 
 digitParams
 
 digitParams64
 

Detailed Description

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

Definition at line 25 of file ParameterDbFiller.py.

Constructor & Destructor Documentation

◆ __init__()

def python.ParameterDbFiller.ParameterDbFiller.__init__ (   self)

Definition at line 31 of file ParameterDbFiller.py.

31  def __init__(self):
32  object.__init__(self)
33 
34  self.beginRun = None
35  self.endRun = None
36  self.simParams = collections.OrderedDict()
37  self.digitParams = collections.OrderedDict()
38  self.digitParams64 = collections.OrderedDict()
39  return
40 

Member Function Documentation

◆ addDigitParam()

def python.ParameterDbFiller.ParameterDbFiller.addDigitParam (   self,
  name,
  value 
)

Definition at line 54 of file ParameterDbFiller.py.

54  def addDigitParam(self, name, value):
55  self.digitParams[name] = value
56  return
57 

◆ addDigitParam64()

def python.ParameterDbFiller.ParameterDbFiller.addDigitParam64 (   self,
  name,
  value 
)

Definition at line 58 of file ParameterDbFiller.py.

58  def addDigitParam64(self, name, value):
59  self.digitParams64[name] = value
60  return
61 

◆ addSimParam()

def python.ParameterDbFiller.ParameterDbFiller.addSimParam (   self,
  name,
  value 
)

Definition at line 50 of file ParameterDbFiller.py.

50  def addSimParam(self, name, value):
51  self.simParams[name] = value
52  return
53 

◆ dumpDb()

def python.ParameterDbFiller.ParameterDbFiller.dumpDb (   self,
  dbstring 
)

Definition at line 149 of file ParameterDbFiller.py.

149  def dumpDb(self, dbstring):
150 
151  print ("ParameterDbFiller.dumpDb: Dumping database:", dbstring)
152  # get database service and open database
153  dbSvc = cool.DatabaseSvcFactory.databaseService()
154  # database accessed via physical name
155  try:
156  db = dbSvc.openDatabase(dbstring,False)
157  except Exception as e:
158  print ('ParameterDbFiller.dumpDb: Problem opening database',e)
159  sys.exit(-1)
160 
161  # Loop over folders
162  folders = db.listAllNodes()
163  for ff in folders:
164  # Get Folder
165  if (not db.existsFolder(ff)):
166  continue
167  try:
168  f = db.getFolder(ff)
169  print ("ParameterDbFiller.dumpDb: Dumping folder " + str(ff))
170  except Exception:
171  #print ("Skipping " + str(ff))
172  continue
173 
174  # get tags
175  # tags = f.listTags()
176  # print ("for tags ", end='')
177  # for tag in tags: print (tag)
178 
179  # for tag in tags:
180 
181  nobjs = f.countObjects( cool.ValidityKeyMin,
182  cool.ValidityKeyMax,
183  cool.ChannelSelection.all())
184 
185  print ("ParameterDbFiller.dumpDb: number of IOV payloads", nobjs)
186 
187  objs = f.browseObjects( cool.ValidityKeyMin,
188  cool.ValidityKeyMax,
189  cool.ChannelSelection.all())
190  i = 0
191  while objs.goToNext():
192  obj = objs.currentRef()
193  print ("ParameterDbFiller.dumpDb: Payload", i, end='')
194  print ("since [r,l]: [", obj.since() >> 32,',',obj.since()%0x100000000,']', end='')
195  print ("until [r,l]: [", obj.until() >> 32,',',obj.until()%0x100000000,']', end='')
196  print ("payload", obj.payload(), end='')
197  print ("chan",obj.channelId() )
198  i += 1
199 
200  objs.close()
201 
202  # finish
203  db.closeDatabase()

◆ genDb()

def python.ParameterDbFiller.ParameterDbFiller.genDb (   self,
  dbFileName,
  dbName,
  params,
  folderPath,
  params64 = {} 
)

Definition at line 82 of file ParameterDbFiller.py.

82  def genDb(self, dbFileName, dbName, params, folderPath, params64 = {}):
83 
84  # Do checks
85  if self.beginRun is None:
86  raise ParameterDbFillerError ('Must set begin run number before generating db')
87  if self.endRun is None:
88  raise ParameterDbFillerError ('Must set end run number before generating db')
89  if len(params) == 0:
90  raise ParameterDbFillerError ('No parameters for db ' + dbName)
91 
92  # remove existing db, if any
93  try:
94  os.remove(dbFileName)
95  print ("ParameterDbFiller.genDb: Removed db", dbFileName)
96  except Exception:
97  pass
98 
99  # get database service and open database
100  dbSvc=cool.DatabaseSvcFactory.databaseService()
101 
102  # build dbstring - database accessed via physical name
103  dbstring="sqlite://;schema=" + dbFileName + ";dbname=" + dbName
104  try:
105  db=dbSvc.createDatabase(dbstring)
106  except Exception as e:
107  print ('ParameterDbFiller.genDb: Problem creating database',e)
108  sys.exit(-1)
109  print ("ParameterDbFiller.genDb: Created database",dbstring)
110 
111  # setup a folder payload specification
112  spec=cool.RecordSpecification()
113  for key in params:
114  spec.extend(key, cool.StorageType.String4k)
115  pass
116  # add in spec for long strings
117  for key in params64:
118  spec.extend(key, cool.StorageType.String64k)
119 
120  # folder meta-data - note for Athena this has a special meaning
121  desc = '<timeStamp>run-event</timeStamp><addrHeader><address_header service_type="71" clid="40774348" /></addrHeader><typeName>AthenaAttributeList</typeName>'
122  # create the folder - single version
123  # last argument is createParents - if true, automatically creates parent
124  # folders if needed
125  # note this will not work if the database already exists - delete mycool.db first
126  # myfolder=db.createFolder(folderPath, spec, desc, cool.FolderVersioning.SINGLE_VERSION,True)
127  folderSpec = cool.FolderSpecification(cool.FolderVersioning.SINGLE_VERSION, spec)
128  myfolder = db.createFolder(folderPath, folderSpec, desc, True)
129 
130  # now fill in parameters
131  data = cool.Record(spec)
132  for k, v in params.items():
133  data[k] = v
134  for k, v in params64.items():
135  data[k] = v
136 
137  print ("ParameterDbFiller.genDb: Recording parameters", data)
138 
139  # store object with IOV valid from 0-10, channel 3
140  myfolder.storeObject(self.beginRun, self.endRun, data, 0)
141  print ("ParameterDbFiller.genDb: Stored object")
142 
143  # finalize
144  db.closeDatabase()
145 
146  # Try to dump out db as test
147  self.dumpDb(dbstring)
148 

◆ genDigitDb()

def python.ParameterDbFiller.ParameterDbFiller.genDigitDb (   self,
  dbFileName = None 
)

Definition at line 72 of file ParameterDbFiller.py.

72  def genDigitDb(self, dbFileName = None):
73  # Allow to define specific file name, otherwise use
74  if dbFileName is None:
75  # Set to default value
76  dbFileName = "DigitParams.db"
77 
78  # Generate db: args - file name, dbname, params, folder path
79  self.genDb(dbFileName, 'DIGPARAM', self.digitParams, '/Digitization/Parameters', self.digitParams64)
80 
81 

◆ genSimDb()

def python.ParameterDbFiller.ParameterDbFiller.genSimDb (   self,
  dbFileName = None 
)

Definition at line 62 of file ParameterDbFiller.py.

62  def genSimDb(self, dbFileName = None):
63  # Allow to define specific file name, otherwise use
64  if dbFileName is None:
65  # Set to default value
66  dbFileName = "SimParams.db"
67 
68  # Generate db: args - file name, dbname, params, folder path
69  self.genDb(dbFileName, 'SIMPARAM', self.simParams, '/Simulation/Parameters')
70 
71 

◆ setBeginRun()

def python.ParameterDbFiller.ParameterDbFiller.setBeginRun (   self,
  beginRun 
)

Definition at line 42 of file ParameterDbFiller.py.

42  def setBeginRun(self, beginRun):
43  self.beginRun = beginRun << 32
44  return
45 

◆ setEndRun()

def python.ParameterDbFiller.ParameterDbFiller.setEndRun (   self,
  endRun 
)

Definition at line 46 of file ParameterDbFiller.py.

46  def setEndRun(self, endRun):
47  self.endRun = endRun << 32
48  return
49 

Member Data Documentation

◆ beginRun

python.ParameterDbFiller.ParameterDbFiller.beginRun

Definition at line 34 of file ParameterDbFiller.py.

◆ digitParams

python.ParameterDbFiller.ParameterDbFiller.digitParams

Definition at line 37 of file ParameterDbFiller.py.

◆ digitParams64

python.ParameterDbFiller.ParameterDbFiller.digitParams64

Definition at line 38 of file ParameterDbFiller.py.

◆ endRun

python.ParameterDbFiller.ParameterDbFiller.endRun

Definition at line 35 of file ParameterDbFiller.py.

◆ simParams

python.ParameterDbFiller.ParameterDbFiller.simParams

Definition at line 36 of file ParameterDbFiller.py.


The documentation for this class was generated from the following file:
python.processes.powheg.ZZj_MiNNLO.ZZj_MiNNLO.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZj_MiNNLO.py:18
str
Definition: BTagTrackIpAccessor.cxx:11