9 from datetime
import date, datetime, timedelta
11 from array
import array
17 if (sys.argv[1] ==
'day'):
18 print 'Using data for one DAY' 21 elif (sys.argv[1] ==
'week'):
22 print 'Using data for one WEEK' 25 elif (sys.argv[1] ==
'month'):
26 print 'Using data for one MONTH' 30 sys.exit(
"You need to run with 'day', 'week', or 'month' as the first argument, you had '" + sys.argv[1] +
"'")
33 if (sys.argv[2] !=
'ND' and sys.argv[2] !=
'FD'):
34 sys.exit(
"You need to run with 'ND' or 'FD' as the second argument, you had '" + sys.argv[2] +
"'")
40 DB_HOST =
'novadcs-far-logger.fnal.gov' 42 DB_USER =
'nova_reader' 44 DB_PASS =
open(os.environ[
'NOVADBPWDFILE'],
'r').readlines()[0].strip() 45 DB_DATABASE = 'nova_prod' 47 if (sys.argv[2] ==
'ND'):
48 DB_HOST =
'ifdbrep.fnal.gov' 58 """ Initiate connection to psql database 63 db = psycopg2.connect(\
64 "dbname=%s host=%s user=%s password=%s port=%s" % \
65 (DB_DATABASE, DB_HOST, DB_USER, DB_PASS, DB_PORT))
68 print "Unable to connect to the database" 75 db_cursor = db.cursor(cursor_factory = psycopg2.extras.DictCursor)
93 utchrdiff = time.altzone/3600
96 utchrdiff = time.timezone/3600
99 t1 = datetime.utcnow()
101 t0 = t1 - timedelta(days = period)
103 print " Getting info from DB from UTC t0 = " +
str(t0) +
"to t1 = " +
str(t1)
109 f = TFile(
"trees/dcs_db_readout_multichan_"+periodname+
"_"+sys.argv[2]+
".root",
"recreate")
110 tree = TTree(
"dcs_db_tree",
"DCS DB readout")
112 if (sys.argv[2] ==
'ND') :
113 report_table =
"neardet.dcs_analog_report" 114 channel_table =
"neardet.dcs_channelid" 116 report_table =
"fardet.dcs_analog_report" 117 channel_table =
"fardet.dcs_channelid" 119 query = (
"SELECT * FROM %s as report_tbl, %s as chan_tbl " 120 "WHERE chan_tbl.id=report_tbl.chanid and substring(name,2,1)=':' " 122 " and tread>='%s' and tread<='%s' " 123 " order by chanid,tread " % (report_table,channel_table,
str(t0),
str(t1)) )
126 db_cursor.execute(query)
127 reports = db_cursor.fetchall()
128 branchname =
'dummy_name' 130 for report
in reports:
134 if (branchname != report[
'name'].replace(
':',
'')) :
137 vals =
array(
'f', [0])
138 branchname = report[
'name'].replace(
':',
'')
139 tree.Branch(branchname, vals,
'Variable/F')
141 chantime =
'Time_' + branchname
142 tree.Branch(chantime, times)
144 tread = report[
'tread']
145 times.Set(tread.year, tread.month, tread.day, tread.hour, tread.minute, tread.second)
146 vals[0] = report[
'readval']
147 tree.GetBranch(branchname).
Fill()
148 tree.GetBranch(chantime).
Fill()
150 tree.GetBranch(branchname).SetEntries(branchcounter)
151 tree.GetBranch(chantime).SetEntries(branchcounter)
163 if __name__ ==
"__main__":
correl_yv Fill(-(dy[iP-1][iC-1]), hyv->GetBinContent(iP, iC))
procfile open("FD_BRL_v0.txt")