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

Public Member Functions

def __init__ (self, dbstring=None)
 
def get_dbstring (self, key, ind=2)
 
def get_channel (self, folder, drawer)
 
def get_drawer (self, folder, channel)
 
def get_folder_and_channel (self, variable, drawer)
 
def get_variable_type (self, variable)
 
def get_all_variables (self)
 
def check_drawer_syntax (self, drawer)
 
def get_variables_by_folder (self, variables, drawer)
 
def find_data_file (self, fname, pathlist=None, access=os.R_OK)
 

Public Attributes

 vars
 
 folderDrawer_to_channel
 
 folderChannel_to_drawer
 
 folderDrawer_to_oracleId
 
 dbstring
 

Static Public Attributes

 LVPS_AI
 
 LVPS_STATES
 
 VARS_HV
 
 VARS_HVSET
 
 VARS_DAQ
 
 type_float
 
 type_int
 
 vars_LVPS_STATES
 
 vars_LVPS_AI
 
 vars_HV
 
 i
 
 vars_HVSET
 
 vars_DAQ
 
 systemID
 
 partitionID
 

Detailed Description

Keeps a list of drawer, variable <---> folder, channel
associations and provides information about the available
variables and their datatypes.

Definition at line 7 of file TileDCSDataInfo.py.

Constructor & Destructor Documentation

◆ __init__()

def python.TileDCSDataInfo.TileDCSDataInfo.__init__ (   self,
  dbstring = None 
)

Definition at line 116 of file TileDCSDataInfo.py.

116  def __init__( self, dbstring=None ):
117 
118  self.vars = {}
119  for var, info in list(self.vars_LVPS_AI.items()):
120  self.vars[var] = info
121  for var, info in list(self.vars_LVPS_STATES.items()):
122  self.vars[var] = info
123  for var, info in list(self.vars_HV.items()):
124  self.vars[var] = info
125  for var, info in list(self.vars_HVSET.items()):
126  self.vars[var] = info
127  for var, info in list(self.vars_DAQ.items()):
128  self.vars[var] = info
129 
130  self.folderDrawer_to_channel = {}
131  self.folderChannel_to_drawer = {}
132  self.folderDrawer_to_oracleId = {}
133 
134  filename=self.find_data_file("cool_channel_id.dat")
135  lines = open(filename,"r").readlines()
136  for line in lines:
137  line = line.strip()
138  folder, drawer, channel, oracleId = line.split()
139 
140  keyFolderDrawer = ( folder , drawer)
141  if keyFolderDrawer in self.folderDrawer_to_channel:
142  raise Exception ("trying to generate key twice: ", keyFolderDrawer)
143  self.folderDrawer_to_channel[ keyFolderDrawer] = int(channel)
144  self.folderDrawer_to_oracleId[keyFolderDrawer] = oracleId
145 
146  keyFolderChannel = ( folder , int(channel))
147  if keyFolderChannel in self.folderChannel_to_drawer:
148  raise Exception ("trying to generate key twice: ", keyFolderChannel)
149  self.folderChannel_to_drawer[keyFolderChannel] = drawer
150 
151  self.dbstring = {"DEFAULT":[],"COOL":[],"ORACLE":[],"TESTBEAM":[]}
152  self.dbstring['DEFAULT'] += [dbstring]*3
153  dbstring = "oracle://ATLAS_COOLPROD;schema=ATLAS_COOLOFL_DCS;dbname=COMP200;"
154  dbstring+= "user=ATLAS_COOL_READER;password=COOLRED4PRO"
155  self.dbstring['COOL'] += [None]
156  self.dbstring['COOL'] += [dbstring]
157  self.dbstring['COOL'] += [dbstring.replace("COMP200","CONDBR2")]
158  self.dbstring['ORACLE'] += [["oracle://localhost/ATONR_PVSSPROD","ATLAS_PVSS_READER","PVSSRED4PRO"]]
159  self.dbstring['ORACLE'] += [["oracle://localhost/ATLAS_PVSSPROD","ATLAS_PVSS_READER","PVSSRED4PRO"]]
160  self.dbstring['ORACLE'] += [["oracle://localhost/ATONR_ADG","ATLAS_PVSS_READER","PVSSRED4PRO"]]
161  self.dbstring['TESTBEAM'] += [["oracle://localhost/INTR","ATLAS_PVSS_READER","PVSSRED4INT"]]*3
162 
163 

Member Function Documentation

◆ check_drawer_syntax()

def python.TileDCSDataInfo.TileDCSDataInfo.check_drawer_syntax (   self,
  drawer 
)

Definition at line 220 of file TileDCSDataInfo.py.

220  def check_drawer_syntax(self, drawer):
221  partition = drawer[0:3]
222  drawerNum = int(drawer[3:5])
223  valid = ("LBA" , "LBC", "EBA", "EBC")
224  if partition not in valid:
225  return False
226  if drawerNum<1 or drawerNum>64:
227  return False
228  return True
229 

◆ find_data_file()

def python.TileDCSDataInfo.TileDCSDataInfo.find_data_file (   self,
  fname,
  pathlist = None,
  access = os.R_OK 
)
the python equivalent to the C++ PathResolver for datafiles.

Definition at line 248 of file TileDCSDataInfo.py.

248  def find_data_file(self, fname, pathlist=None, access=os.R_OK):
249  """the python equivalent to the C++ PathResolver for datafiles.
250  """
251 
252  if pathlist is None:
253  pathlist = os.getenv('DATAPATH').split(os.pathsep)
254 
255  for path in pathlist:
256  f = os.path.join( path, fname )
257  if os.access( f, access ):
258  return f

◆ get_all_variables()

def python.TileDCSDataInfo.TileDCSDataInfo.get_all_variables (   self)

Definition at line 217 of file TileDCSDataInfo.py.

217  def get_all_variables(self):
218  return list(self.vars.keys())
219 

◆ get_channel()

def python.TileDCSDataInfo.TileDCSDataInfo.get_channel (   self,
  folder,
  drawer 
)

Definition at line 167 of file TileDCSDataInfo.py.

167  def get_channel(self, folder, drawer):
168 
169  if not self.check_drawer_syntax(drawer):
170  raise Exception ("ERROR: drawer not valid: ", drawer)
171  key = (folder, drawer )
172  if key not in self.folderDrawer_to_channel:
173  print ("get_channel WARNING, can not resolve key: ", key)
174  return None
175  return self.folderDrawer_to_channel[key]
176 

◆ get_dbstring()

def python.TileDCSDataInfo.TileDCSDataInfo.get_dbstring (   self,
  key,
  ind = 2 
)

Definition at line 164 of file TileDCSDataInfo.py.

164  def get_dbstring(self, key, ind=2):
165  return self.dbstring[key][ind] if key in self.dbstring and len(self.dbstring[key])>ind else None
166 

◆ get_drawer()

def python.TileDCSDataInfo.TileDCSDataInfo.get_drawer (   self,
  folder,
  channel 
)

Definition at line 177 of file TileDCSDataInfo.py.

177  def get_drawer(self, folder, channel):
178 
179  key = (folder, channel)
180  if key not in self.folderChannel_to_drawer:
181  print ("get_drawer WARNING, can not resolve key: ", key)
182  return None
183  return self.folderChannel_to_drawer[key]
184 
185 

◆ get_folder_and_channel()

def python.TileDCSDataInfo.TileDCSDataInfo.get_folder_and_channel (   self,
  variable,
  drawer 
)
For a given DCS variable and drawer, return the complete COOL
folder name and the channel number associated to the drawer

Definition at line 186 of file TileDCSDataInfo.py.

186  def get_folder_and_channel(self, variable, drawer):
187  """
188  For a given DCS variable and drawer, return the complete COOL
189  folder name and the channel number associated to the drawer
190  """
191  if variable not in self.vars:
192  raise Exception ("Variable not known: ", variable)
193  partition = drawer[0:3]
194 
195  folderDef = self.vars[variable][0]
196  #=== for STATE, we have only one "drawer" per partition
197  if variable=="STATE":
198  drawer = partition+"XX"
199  folder = folderDef[0]+partition+folderDef[1]
200  else:
201  folder = folderDef[0]+folderDef[1]
202  key = (folder, drawer)
203  if key not in self.folderDrawer_to_channel:
204  print ("WARNING, can not resolve key: ", key)
205  return None
206  channel = self.folderDrawer_to_channel[key]
207  return (folder, channel)
208 

◆ get_variable_type()

def python.TileDCSDataInfo.TileDCSDataInfo.get_variable_type (   self,
  variable 
)
Returns the type of a variable

Definition at line 209 of file TileDCSDataInfo.py.

209  def get_variable_type(self, variable):
210  """
211  Returns the type of a variable
212  """
213  if variable not in self.vars:
214  raise Exception ("Variable not known: ", variable)
215  return self.vars[variable][1]
216 

◆ get_variables_by_folder()

def python.TileDCSDataInfo.TileDCSDataInfo.get_variables_by_folder (   self,
  variables,
  drawer 
)
Return a dictionary listing all folders that need to be
accessed as keys and all variables associated to the key folder
as values.

Definition at line 230 of file TileDCSDataInfo.py.

230  def get_variables_by_folder(self, variables, drawer):
231  """
232  Return a dictionary listing all folders that need to be
233  accessed as keys and all variables associated to the key folder
234  as values.
235  """
236  folderDict = {}
237  for var in variables:
238  if var not in self.vars:
239  print ("Unknown variable, IGNORING IT: ", var)
240  else:
241  folder, channel = self.get_folder_and_channel(var,drawer)
242  if folder not in folderDict:
243  folderDict[folder] = [var]
244  else:
245  folderDict[folder].extend([var])
246  return folderDict
247 

Member Data Documentation

◆ dbstring

python.TileDCSDataInfo.TileDCSDataInfo.dbstring

Definition at line 151 of file TileDCSDataInfo.py.

◆ folderChannel_to_drawer

python.TileDCSDataInfo.TileDCSDataInfo.folderChannel_to_drawer

Definition at line 131 of file TileDCSDataInfo.py.

◆ folderDrawer_to_channel

python.TileDCSDataInfo.TileDCSDataInfo.folderDrawer_to_channel

Definition at line 130 of file TileDCSDataInfo.py.

◆ folderDrawer_to_oracleId

python.TileDCSDataInfo.TileDCSDataInfo.folderDrawer_to_oracleId

Definition at line 132 of file TileDCSDataInfo.py.

◆ i

python.TileDCSDataInfo.TileDCSDataInfo.i
static

Definition at line 77 of file TileDCSDataInfo.py.

◆ LVPS_AI

python.TileDCSDataInfo.TileDCSDataInfo.LVPS_AI
static

Definition at line 14 of file TileDCSDataInfo.py.

◆ LVPS_STATES

python.TileDCSDataInfo.TileDCSDataInfo.LVPS_STATES
static

Definition at line 15 of file TileDCSDataInfo.py.

◆ partitionID

python.TileDCSDataInfo.TileDCSDataInfo.partitionID
static

Definition at line 111 of file TileDCSDataInfo.py.

◆ systemID

python.TileDCSDataInfo.TileDCSDataInfo.systemID
static

Definition at line 105 of file TileDCSDataInfo.py.

◆ type_float

python.TileDCSDataInfo.TileDCSDataInfo.type_float
static

Definition at line 19 of file TileDCSDataInfo.py.

◆ type_int

python.TileDCSDataInfo.TileDCSDataInfo.type_int
static

Definition at line 20 of file TileDCSDataInfo.py.

◆ vars

python.TileDCSDataInfo.TileDCSDataInfo.vars

Definition at line 118 of file TileDCSDataInfo.py.

◆ VARS_DAQ

python.TileDCSDataInfo.TileDCSDataInfo.VARS_DAQ
static

Definition at line 18 of file TileDCSDataInfo.py.

◆ vars_DAQ

python.TileDCSDataInfo.TileDCSDataInfo.vars_DAQ
static

Definition at line 102 of file TileDCSDataInfo.py.

◆ VARS_HV

python.TileDCSDataInfo.TileDCSDataInfo.VARS_HV
static

Definition at line 16 of file TileDCSDataInfo.py.

◆ vars_HV

python.TileDCSDataInfo.TileDCSDataInfo.vars_HV
static

Definition at line 75 of file TileDCSDataInfo.py.

◆ VARS_HVSET

python.TileDCSDataInfo.TileDCSDataInfo.VARS_HVSET
static

Definition at line 17 of file TileDCSDataInfo.py.

◆ vars_HVSET

python.TileDCSDataInfo.TileDCSDataInfo.vars_HVSET
static

Definition at line 87 of file TileDCSDataInfo.py.

◆ vars_LVPS_AI

python.TileDCSDataInfo.TileDCSDataInfo.vars_LVPS_AI
static

Definition at line 26 of file TileDCSDataInfo.py.

◆ vars_LVPS_STATES

python.TileDCSDataInfo.TileDCSDataInfo.vars_LVPS_STATES
static

Definition at line 22 of file TileDCSDataInfo.py.


The documentation for this class was generated from the following file:
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:71
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
Trk::open
@ open
Definition: BinningType.h:40
ActsTrk::detail::MakeDerivedVariant::extend
constexpr std::variant< Args..., T > extend(const std::variant< Args... > &, const T &)
Definition: MakeDerivedVariant.h:17
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
Trk::split
@ split
Definition: LayerMaterialProperties.h:38