CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
lumiTime.py
Go to the documentation of this file.
1 import os,sys,time,calendar
2 from datetime import datetime,timedelta
3 
4 class lumiTime(object):
5  def __init__(self):
6  self.coraltimefm='MM/DD/YY HH24:MI:SS.FF6'
7  self.pydatetimefm='%m/%d/%y %H:%M:%S.%f'
8  self.nbx=3564
9  self.bunchspace_us=0.025 #in microseconds
10  self.bunchspace_s=25e-09 #in seconds
11 
12  def LSDuration(self,norbits):
13  return timedelta(microseconds=(self.nbx*norbits*self.bunchspace_us))
14 
15  def OrbitDuration(self):
16  return timedelta(microseconds=(self.nbx*self.bunchspace_us))
17 
18  def OrbitToTimeStr(self,begStrTime,orbitnumber,begorbit=0):
19  '''
20  given a orbit number, return its corresponding time. Assuming begin time has orbit=0
21  '''
22  return self.DatetimeToStr(self.StrToDatetime(begStrTime)+(orbitnumber-begorbit)*self.OrbitDuration())
23  def OrbitToTime(self,begStrTime,orbitnumber,begorbit=0):
24  '''
25  given a orbit number, return its corresponding time. Default run begin time counting from orbit=0
26  '''
27  return self.StrToDatetime(begStrTime)+(orbitnumber-begorbit)*self.OrbitDuration()
28  def OrbitToLocalTimestamp(self,begStrTime,orbitnumber,begorbit=0):
29  '''
30  given a orbit number, return its corresponding unixtimestamp. Default run begin time counting from orbit=0
31  '''
32  os.environ['TZ']='CET'
33  time.tzset()
34  orbittime=self.OrbitToTime(begStrTime,orbitnumber,begorbit)
35  return time.mktime(orbittime.timetuple())+orbittime.microsecond/1e6
36 
37  def OrbitToUTCTimestamp(self,begStrTime,orbitnumber,begorbit=0):
38  '''
39  given a orbit number, return its corresponding unixtimestamp. Default run begin time counting from orbit=0
40  '''
41  os.environ['TZ']='UTC'
42  time.tzset()
43  orbittime=self.OrbitToTime(begStrTime,orbitnumber,begorbit)
44  return time.mktime(orbittime.timetuple())+(orbittime.microsecond/1e6)
45  def StrToDatetime(self,strTime,customfm=''):
46  '''convert string timestamp to python datetime
47  '''
48  result=''
49  try:
50  if not customfm:
51  result=datetime.strptime(strTime,self.pydatetimefm)
52  else:
53  result=datetime.strptime(strTime,customfm)
54  except Exception,er:
55  print str(er)
56  return result
57  def DatetimeToStr(self,timeValue,customfm=''):
58  '''convert python datetime to string timestamp
59  '''
60  result=''
61  try:
62  if not customfm:
63  result=timeValue.strftime(self.pydatetimefm)
64  else:
65  result=timeValue.strftime(customfm)
66  except Exception,er:
67  print str(er)
68  return result
69 if __name__=='__main__':
70  begTimeStr='03/30/10 10:10:01.339198'
72  print 'orbit 0 : ',c.OrbitToTime(begTimeStr,0,0)
73  print 'orbit 1 : ',c.OrbitToTime(begTimeStr,1,0)
74  print 'orbit 262144 : ',c.OrbitToTime(begTimeStr,262144,0)
75  print 'orbit 0 : ',c.OrbitToUTCTimestamp(begTimeStr,0,0);
76  print 'orbit 0 : ',c.OrbitToLocalTimestamp(begTimeStr,0,0);
def OrbitToUTCTimestamp
Definition: lumiTime.py:37
list object
Definition: dbtoconf.py:77
def OrbitToLocalTimestamp
Definition: lumiTime.py:28