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

Public Member Functions

def __init__ (self, db, folder='', tag='', run=None, lumi=0, modmin=0, modmax=275, copyBlob=False)
 
def getFolderTag (self, folder, prefix, globalTag)
 
def getIovs (self, since, until)
 
def getDrawer (self, ros, mod, runlumi=None, dbg=False, useDefault=True)
 
def getComment (self, runlumi=None)
 
def getDefault (self, ros, drawer)
 

Public Attributes

 payload
 

Private Member Functions

def __getIov (self, runlumi, dbg=False)
 
def __runlumi2iov (self, runlumi)
 
def __checkIov (self, runlumi)
 
def __make_blob (self, string)
 
def __create_comment (self, b64string)
 
def __create_drawer (self, b64string, chan)
 

Private Attributes

 __db
 
 __folder
 
 __tag
 
 __copyBlob
 
 __iovList
 
 __iov
 
 __commentBlob
 
 __drawerBlob
 
 __comment
 
 __drawer
 
 __modmin
 
 __modmax
 
 __remote
 
 __api_instance
 

Detailed Description

TileCalibBlobReader is a helper class, managing the details of CREST interactions for
the user of TileCalibBlobs.

Definition at line 48 of file TileCalibCrest.py.

Constructor & Destructor Documentation

◆ __init__()

def python.TileCalibCrest.TileBlobReaderCrest.__init__ (   self,
  db,
  folder = '',
  tag = '',
  run = None,
  lumi = 0,
  modmin = 0,
  modmax = 275,
  copyBlob = False 
)
Input:
- db    : server connection string or file name
- folder: full folder path
- tag   : The folder tag, e.g. \"UPD4-24\" or full tag
- run   : Run number (if known)
- lumi  : Lumi block number
- modmin: Minimal module (COOL channel number)
- modmax: Maximal module (COOL channel number)
- copyBlob: save payload from CREST (Default:False, True to copy payload to json file)

Definition at line 55 of file TileCalibCrest.py.

55  def __init__(self, db, folder='', tag='', run=None, lumi=0, modmin=0, modmax=275, copyBlob=False):
56  """
57  Input:
58  - db : server connection string or file name
59  - folder: full folder path
60  - tag : The folder tag, e.g. \"UPD4-24\" or full tag
61  - run : Run number (if known)
62  - lumi : Lumi block number
63  - modmin: Minimal module (COOL channel number)
64  - modmax: Maximal module (COOL channel number)
65  - copyBlob: save payload from CREST (Default:False, True to copy payload to json file)
66  """
67  #=== initialize base class
68  TileCalibLogger.__init__(self,"TileBlobReader")
69  self.payload = {}
70  self.__db = db
71  self.__folder = folder
72  self.__tag = tag
73  self.__copyBlob = copyBlob
74 
75  self.__iovList = []
76  self.__iov = (-1,0)
77  self.__commentBlob = None
78  self.__drawerBlob = [None]*276
79  self.__comment = None
80  self.__drawer = [None]*276
81  self.__modmin = modmin
82  self.__modmax = modmax+1
83 
84  #=== try to open db
85  self.__remote = (("http://" in db) or ("https://" in db) or ("CREST" in db))
86  if self.__remote:
87  if 'http' not in self.__db:
88  self.__db = os.getenv(db,os.getenv('CREST_HOST',os.getenv('CREST_SERVER_PATH','http://crest-j23.cern.ch:8080/api-v5.0')))
89  self.log().info('Host %s' , (self.__db))
90  self.__api_instance = CrestApi(host=self.__db)
91  socks = os.getenv('CREST_SOCKS', 'False')
92  if socks == 'True': self.__api_instance.socks()
93  self.__tag = self.getFolderTag(folder,None,tag)
94  if run is not None and lumi is not None:
95  log.info("Initializing for run %d, lumiblock %d", run,lumi)
96  self.__getIov((run,lumi),True)
97  else:
98  self.log().info('File %s' , (self.__db))
99  self.__iovList.append(((MINRUN,MINLBK),(MAXRUN, MAXLBK)))
100  self.__iov = self.__runlumi2iov(self.__iovList[-1])
101  try:
102  with open(self.__db, 'r') as the_file:
103  jdata = json.load(the_file)
104  for chan in range(self.__modmin,self.__modmax):
105  self.__create_drawer(jdata[str(chan)][0],chan)
106  self.__create_comment(jdata['1000'][0])
107  except Exception as e:
108  self.log().critical( e )
109  raise
110 

Member Function Documentation

◆ __checkIov()

def python.TileCalibCrest.TileBlobReaderCrest.__checkIov (   self,
  runlumi 
)
private

Definition at line 236 of file TileCalibCrest.py.

236  def __checkIov(self,runlumi):
237  point = (runlumi[0]<<32) + runlumi[1]
238  inrange = point>=self.__iov[0] and point<self.__iov[1]
239  return inrange
240 

◆ __create_comment()

def python.TileCalibCrest.TileBlobReaderCrest.__create_comment (   self,
  b64string 
)
private

Definition at line 249 of file TileCalibCrest.py.

249  def __create_comment(self,b64string):
250  if b64string is None or len(b64string)==0:
251  self.__commentBlob = None
252  self.__comment = None
253  else:
254  blob1 = base64.decodebytes(bytes(b64string,'ascii'))
255  self.__commentBlob = self.__make_blob(blob1)
256  self.__comment = TileCalibDrawerCmt.getInstance(self.__commentBlob)
257  return
258 

◆ __create_drawer()

def python.TileCalibCrest.TileBlobReaderCrest.__create_drawer (   self,
  b64string,
  chan 
)
private

Definition at line 260 of file TileCalibCrest.py.

260  def __create_drawer(self,b64string,chan):
261  if b64string is None or len(b64string)==0:
262  self.__drawerBlob[chan] = None
263  self.__drawer[chan] = None
264  return
265  blob1 = base64.decodebytes(bytes(b64string,'ascii'))
266  self.__drawerBlob[chan] = self.__make_blob(blob1)
267  cmt = TileCalibDrawerCmt.getInstance(self.__drawerBlob[chan])
268  typeName = TileCalibType.getClassName(cmt.getObjType())
269  del cmt
270  #=== create calibDrawer depending on type
271  if typeName=='TileCalibDrawerFlt':
272  self.__drawer[chan] = TileCalibDrawerFlt.getInstance(self.__drawerBlob[chan])
273  self.log().debug( "typeName = Flt " )
274  elif typeName=='TileCalibDrawerInt':
275  self.__drawer[chan] = TileCalibDrawerInt.getInstance(self.__drawerBlob[chan])
276  self.log().debug( "typeName = Int " )
277  elif typeName=='TileCalibDrawerBch':
278  self.__drawer[chan] = TileCalibDrawerBch.getInstance(self.__drawerBlob[chan])
279  self.log().debug( "typeName = Bch " )
280  elif typeName=='TileCalibDrawerOfc':
281  self.__drawer[chan] = TileCalibDrawerOfc.getInstance(self.__drawerBlob[chan])
282  self.log().debug( "typeName = Ofc " )
283  else:
284  raise Exception( "Invalid blob type requested: %s" % typeName )
285  return
286 

◆ __getIov()

def python.TileCalibCrest.TileBlobReaderCrest.__getIov (   self,
  runlumi,
  dbg = False 
)
private

Definition at line 185 of file TileCalibCrest.py.

185  def __getIov(self,runlumi,dbg=False):
186  run_lumi1=str((runlumi[0]<<32)+runlumi[1]+1)
187  MAXRUNLUMI1=str(MAXRUNLUMI+1)
188  iovs1=self.__api_instance.select_iovs(self.__tag,"0",run_lumi1,sort='id.since:DESC,id.insertionTime:DESC',size=1,snapshot=0)
189  iovs2=self.__api_instance.select_iovs(self.__tag,run_lumi1,MAXRUNLUMI1,sort='id.since:ASC,id.insertionTime:DESC',size=1,snapshot=0)
190  if iovs1['size']==0:
191  raise Exception( "IOV for tag %s run,lumi (%s,%s) not found" % (self.__tag,runlumi[0],runlumi[1]) )
192  else:
193  iov=iovs1['resources'][0]
194  since=int(iov['since'])
195  runS=since>>32
196  lumiS=since&0xFFFFFFFF
197  until=MAXRUNLUMI if iovs2['size']==0 else iovs2['resources'][0]['since']
198  runU=until>>32
199  lumiU=until&0xFFFFFFFF
200  hash=iov['payload_hash']
201  if dbg:
202  #self.log().info('Run,Lumi (%d,%d)' , runlumi)
203  self.log().info('IOV [%d,%d] - (%d,%d)' , runS,lumiS,runU,lumiU)
204  self.log().info('Insertion time %s' , iov['insertion_time'])
205  self.log().info('Hash %s' , hash)
206  payload = self.__api_instance.get_payload(hash=hash).decode('utf-8')
207  jdata=json.loads(payload)
208  #with open("payload.json", 'w') as the_file:
209  # the_file.write(payload)
210  # the_file.write('\n')
211  if self.__copyBlob:
212  self.payload = jdata
213  return
214  self.__iovList.append(((runS,lumiS),(runU, lumiU)))
215  self.__iov = self.__runlumi2iov(self.__iovList[-1])
216  for chan in range(self.__modmin,self.__modmax):
217  try:
218  blob=jdata[str(chan)][0]
219  except Exception:
220  blob=None
221  self.__create_drawer(blob,chan)
222  try:
223  blob=jdata['1000'][0]
224  except Exception:
225  blob=None
226  self.__create_comment(blob)
227  return
228 

◆ __make_blob()

def python.TileCalibCrest.TileBlobReaderCrest.__make_blob (   self,
  string 
)
private

Definition at line 242 of file TileCalibCrest.py.

242  def __make_blob(self,string):
243  b = Blob()
244  b.write(string)
245  b.seek(0)
246  return b
247 

◆ __runlumi2iov()

def python.TileCalibCrest.TileBlobReaderCrest.__runlumi2iov (   self,
  runlumi 
)
private

Definition at line 230 of file TileCalibCrest.py.

230  def __runlumi2iov(self,runlumi):
231  since = (runlumi[0][0]<<32) + runlumi[0][1]
232  until = (runlumi[1][0]<<32) + runlumi[1][1]
233  return (since,until)
234 

◆ getComment()

def python.TileCalibCrest.TileBlobReaderCrest.getComment (   self,
  runlumi = None 
)

Definition at line 317 of file TileCalibCrest.py.

317  def getComment(self,runlumi=None):
318 
319  if self.__remote and runlumi is not None and not self.__checkIov(runlumi):
320  self.__getIov(runlumi)
321  if self.__comment is not None:
322  return self.__comment.getFullComment()
323  else:
324  return "<no comment found>"
325 

◆ getDefault()

def python.TileCalibCrest.TileBlobReaderCrest.getDefault (   self,
  ros,
  drawer 
)
Returns a default drawer number (among first 20 COOL channels) for any drawer in any partition

Definition at line 327 of file TileCalibCrest.py.

327  def getDefault(self, ros, drawer):
328  """
329  Returns a default drawer number (among first 20 COOL channels) for any drawer in any partition
330  """
331  if ros==0:
332  if drawer<=4 or drawer==12 or drawer>=20:
333  drawer1=0
334  elif drawer<12:
335  drawer1=4
336  else:
337  drawer1=12
338  elif ros==1 or ros==2:
339  drawer1=4
340  elif ros==3:
341  OffsetEBA = [ 0, 0, 0, 0, 0, 0, 3, 2, #// Merged E+1: EBA07; Outer MBTS: EBA08
342  0, 0, 0, 0, 7, 6, 5, 7, #// D+4: EBA13, EBA16; Special D+4: EBA14; Special D+40: EBA15
343  7, 6, 6, 7, 0, 0, 0, 2, #// D+4: EBA17, EBA20; Special D+4: EBA18, EBA19; Outer MBTS: EBA24
344  3, 0, 0, 0, 0, 0, 0, 0, #// Merged E+1: EBA25
345  0, 0, 0, 0, 0, 0, 1, 1, #// Inner MBTS + special C+10: EBA39, EBA40
346  1, 1, 2, 3, 0, 0, 0, 0, #// Inner MBTS + special C+10: EBA41, EBA42; Outer MBTS: EBA43; Merged E+1: EBA44
347  0, 0, 0, 0, 3, 2, 1, 1, #// Merged E+1: EBA53; Outer MBTS: EBA54; Inner MBTS + special C+10: EBA55, EBA56
348  1, 1, 0, 0, 0, 0, 0, 0] #// Inner MBTS + special C+10: EBA57, EBA58
349  drawer1 = 12 + OffsetEBA[drawer]
350  elif ros==4:
351  OffsetEBC = [ 0, 0, 0, 0, 0, 0, 3, 2, #// Merged E-1: EBC07; Outer MBTS: EBC08
352  0, 0, 0, 0, 7, 6, 6, 7, # // D-4: EBC13, EBC16; Special D-4: EBC14, EBC15;
353  7, 5, 6, 7, 0, 0, 0, 2, #// D-4: EBC17, EBC20; Special D-40 EBC18; Special D-4: EBC19; Outer MBTS: EBC24
354  3, 0, 0, 3, 4, 0, 3, 4, #// Merged E-1: EBC25, EBC28, EBC31; E-4': EBC29, EBC32
355  0, 4, 3, 0, 4, 3, 1, 1, #// E-4': EBC34, EBC37; Merged E-1: EBC35, EBC38; Inner MBTS + special C-10: EBC39, EBC40
356  1, 1, 2, 3, 0, 0, 0, 0, #// Inner MBTS + special C-10: EBC41, EBC42; Outer MBTS: EBC43; Merged E-1: EBC44
357  0, 0, 0, 0, 3, 2, 1, 1, #// Merged E-1: EBC53; Outer MBTS: EBC54; Inner MBTS + special C-10: EBC55, EBC56
358  1, 1, 0, 0, 0, 0, 0, 0] #// Inner MBTS + special C-10: EBC57, EBC58
359  drawer1 = 12 + OffsetEBC[drawer]
360  else:
361  drawer1=0
362 
363  return (0,drawer1)
364 

◆ getDrawer()

def python.TileCalibCrest.TileBlobReaderCrest.getDrawer (   self,
  ros,
  mod,
  runlumi = None,
  dbg = False,
  useDefault = True 
)

Definition at line 288 of file TileCalibCrest.py.

288  def getDrawer(self,ros, mod, runlumi=None, dbg=False, useDefault=True):
289 
290  if self.__remote and runlumi is not None and not self.__checkIov(runlumi):
291  self.__getIov(runlumi,dbg)
292 
293  if ros<0:
294  chanNum = mod
295  else:
296  chanNum = TileCalibUtils.getDrawerIdx(ros,mod)
297 
298  if (chanNum>=0 and chanNum<len(self.__drawer)):
299  drawer=self.__drawer[chanNum]
300  if not useDefault and drawer is None:
301  return 0
302  while drawer is None:
303  #=== no default at all?
304  if ros==0 and drawer==0:
305  raise Exception('No default available')
306  #=== follow default policy
307  ros,drawer = self.getDefault(ros,drawer)
308  chanNum = TileCalibUtils.getDrawerIdx(ros,drawer)
309  drawer=self.__drawer[chanNum]
310  return drawer
311  elif (chanNum == 1000):
312  return self.__comment
313  else:
314  raise Exception( "Invalid drawer requested: %s %s" % (ros,mod) )
315 

◆ getFolderTag()

def python.TileCalibCrest.TileBlobReaderCrest.getFolderTag (   self,
  folder,
  prefix,
  globalTag 
)

Definition at line 112 of file TileCalibCrest.py.

112  def getFolderTag(self, folder, prefix, globalTag):
113  if globalTag=='CURRENT' or globalTag=='UPD4' or globalTag=='':
114  globalTag=TileCalibTools.getAliasFromFile('Current')
115  log.info("Resolved CURRENT globalTag to \'%s\'", globalTag)
116  elif globalTag=='CURRENTES' or globalTag=='UPD1':
117  globalTag=TileCalibTools.getAliasFromFile('CurrentES')
118  log.info("Resolved CURRENT ES globalTag to \'%s\'", globalTag)
119  elif globalTag=='NEXT':
120  globalTag=TileCalibTools.getAliasFromFile('Next')
121  log.info("Resolved NEXT globalTag to \'%s\'", globalTag)
122  elif globalTag=='NEXTES':
123  globalTag=TileCalibTools.getAliasFromFile('NextES')
124  log.info("Resolved NEXT ES globalTag to \'%s\'", globalTag)
125  globalTag=globalTag.replace('*','')
126  if prefix is None:
127  prefix = ''
128  for f in folder.split('/'):
129  prefix+=f.capitalize()
130  else:
131  prefix=prefix.strip('-').split('-')[0]
132  if prefix.startswith('Calo'):
133  prefix='CALO'+prefix[4:]
134  if 'UPD1' in globalTag or 'UPD4' in globalTag or 'COND' not in globalTag:
135  if prefix != '':
136  tag=prefix+'-'+globalTag
137  self.log().info("Resolved localTag \'%s\' to folderTag \'%s\'", globalTag,tag)
138  elif folder!='' and not (globalTag.startswith('Tile') or globalTag.startswith('CALO')):
139  tag = TileCalibUtils.getFullTag(folder, globalTag)
140  if tag.startswith('Calo'):
141  tag='CALO'+tag[4:]
142  self.log().info("Resolved localTag \'%s\' to folderTag \'%s\'", globalTag,tag)
143  else:
144  tag=globalTag
145  self.log().info("Use localTag \'%s\' as is", tag)
146  else:
147  tag=None
148  tags=self.__api_instance.find_global_tag_map(globalTag)
149  if tags['size']==0:
150  raise Exception( "globalTag %s not found" % (globalTag) )
151  else:
152  for i in range(tags['size']):
153  t=tags['resources'][i]['tag_name']
154  l=tags['resources'][i]['label']
155  if (prefix!='' and t.startswith(prefix)) or l==folder:
156  tag=t
157  self.log().info("Resolved globalTag \'%s\' to folderTag \'%s\'", globalTag,tag)
158  #taginfo = self.__api_instance.find_tag(name=tag)
159  #print(taginfo)
160  return tag
161 

◆ getIovs()

def python.TileCalibCrest.TileBlobReaderCrest.getIovs (   self,
  since,
  until 
)

Definition at line 163 of file TileCalibCrest.py.

163  def getIovs(self,since,until):
164  run_lumi1=str((since[0]<<32)+since[1]+1)
165  run_lumi2=str((until[0]<<32)+until[1]+1)
166  MAXRUNLUMI1=str(MAXRUNLUMI+1)
167  iovs1=self.__api_instance.select_iovs(self.__tag,"0",run_lumi1,sort='id.since:DESC,id.insertionTime:DESC',size=1,snapshot=0)
168  iovs2=self.__api_instance.select_iovs(self.__tag,run_lumi2,MAXRUNLUMI1,sort='id.since:ASC,id.insertionTime:DESC',size=1,snapshot=0)
169  since1=0 if iovs1['size']==0 else iovs1['resources'][0]['since']
170  until1=MAXRUNLUMI if iovs2['size']==0 else iovs2['resources'][0]['since']
171  iovs=self.__api_instance.select_iovs(self.__tag,str(since1),str(until1),sort='id.since:ASC,id.insertionTime:DESC',size=999999,snapshot=0)
172  iovList=[]
173  if iovs['size']==0:
174  raise Exception( "IOV for tag %s IOV [%s,%s] - (%s,%s) not found" % (self.__tag,since[0],since[1],until[0],until[1]) )
175  else:
176  for i in range(iovs['size']):
177  iov=iovs['resources'][i]
178  since=int(iov['since'])
179  runS=since>>32
180  lumiS=since&0xFFFFFFFF
181  iovList.append((runS,lumiS))
182  return iovList
183 

Member Data Documentation

◆ __api_instance

python.TileCalibCrest.TileBlobReaderCrest.__api_instance
private

Definition at line 90 of file TileCalibCrest.py.

◆ __comment

python.TileCalibCrest.TileBlobReaderCrest.__comment
private

Definition at line 79 of file TileCalibCrest.py.

◆ __commentBlob

python.TileCalibCrest.TileBlobReaderCrest.__commentBlob
private

Definition at line 77 of file TileCalibCrest.py.

◆ __copyBlob

python.TileCalibCrest.TileBlobReaderCrest.__copyBlob
private

Definition at line 73 of file TileCalibCrest.py.

◆ __db

python.TileCalibCrest.TileBlobReaderCrest.__db
private

Definition at line 70 of file TileCalibCrest.py.

◆ __drawer

python.TileCalibCrest.TileBlobReaderCrest.__drawer
private

Definition at line 80 of file TileCalibCrest.py.

◆ __drawerBlob

python.TileCalibCrest.TileBlobReaderCrest.__drawerBlob
private

Definition at line 78 of file TileCalibCrest.py.

◆ __folder

python.TileCalibCrest.TileBlobReaderCrest.__folder
private

Definition at line 71 of file TileCalibCrest.py.

◆ __iov

python.TileCalibCrest.TileBlobReaderCrest.__iov
private

Definition at line 76 of file TileCalibCrest.py.

◆ __iovList

python.TileCalibCrest.TileBlobReaderCrest.__iovList
private

Definition at line 75 of file TileCalibCrest.py.

◆ __modmax

python.TileCalibCrest.TileBlobReaderCrest.__modmax
private

Definition at line 82 of file TileCalibCrest.py.

◆ __modmin

python.TileCalibCrest.TileBlobReaderCrest.__modmin
private

Definition at line 81 of file TileCalibCrest.py.

◆ __remote

python.TileCalibCrest.TileBlobReaderCrest.__remote
private

Definition at line 85 of file TileCalibCrest.py.

◆ __tag

python.TileCalibCrest.TileBlobReaderCrest.__tag
private

Definition at line 72 of file TileCalibCrest.py.

◆ payload

python.TileCalibCrest.TileBlobReaderCrest.payload

Definition at line 69 of file TileCalibCrest.py.


The documentation for this class was generated from the following file:
AtlasMcWeight::decode
double decode(number_type binnedWeight)
Convert weight from unsigned to double.
Definition: AtlasMcWeight.cxx:32
TileCalibDrawerBch::getInstance
static const TileCalibDrawerBch * getInstance(const coral::Blob &blob)
Returns a pointer to a const TileCalibDrawerBch.
Definition: TileCalibDrawerBch.cxx:28
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
TileCalibType::getClassName
static std::string getClassName(TileCalibType::TYPE type)
Returns the class name.
Definition: TileCalibType.cxx:10
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
TileCalibDrawerInt::getInstance
static const TileCalibDrawerInt * getInstance(const coral::Blob &blob)
Returns a pointer to a const TileCalibDrawerBch.
Definition: TileCalibDrawerInt.cxx:27
TileCalibDrawerFlt::getInstance
static const TileCalibDrawerFlt * getInstance(const coral::Blob &blob)
Returns a pointer to a const TileCalibDrawerFlt.
Definition: TileCalibDrawerFlt.cxx:13
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
Trk::open
@ open
Definition: BinningType.h:40
TileCalibDrawerOfc::getInstance
static TileCalibDrawerOfc * getInstance(coral::Blob &blob, uint16_t objVersion, uint32_t nSamples, int32_t nPhases, uint16_t nChans, uint16_t nGains, const std::string &author="", const std::string &comment="", uint64_t timeStamp=0)
Returns a pointer to a non-const TileCalibDrawerOfc.
Definition: TileCalibDrawerOfc.cxx:14
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
TileCalibDrawerCmt::getInstance
static const TileCalibDrawerCmt * getInstance(const coral::Blob &blob)
Returns a pointer to a const TileCalibDrawerCmt.
Definition: TileCalibDrawerCmt.cxx:24
python.TileCalibCrest.Blob
Blob
Definition: TileCalibCrest.py:16
python.TileCalibTools.getFolderTag
def getFolderTag(db, folderPath, globalTag)
Definition: TileCalibTools.py:368
str
Definition: BTagTrackIpAccessor.cxx:11
TileCalibUtils::getDrawerIdx
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
Definition: TileCalibUtils.cxx:60
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
TileCalibUtils::getFullTag
static std::string getFullTag(const std::string &folder, const std::string &tag)
Returns the full tag string, composed of camelized folder name and tag part.
Definition: TileCalibUtils.cxx:33