Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/usr/bin/env python
# coding: utf-8
# import matplotlib.pyplot as plt # our plotting module
import matplotlib as mpl
import pandas as pd # the main HDF5 reader
import numpy as np # must have
import km3pipe as kp # some KM3NeT related helper functions
import seaborn as sns # beautiful statistical plots!
import sys, itertools, aa, collections
from ROOT import EventFile, Det, Timer
import matplotlib.pylab as pylab
pylab.rcParams['figure.figsize'] = 10, 6
import glob
import os, sys, glob, numpy, matplotlib, ROOT
from matplotlib import pyplot
import pylab as P
import csv, math
import matplotlib as plt
get_ipython().magic(u'pylab inline')
import matplotlib.pylab as pylab
pylab.rcParams['figure.figsize'] = 14, 10
import numpy as np
import pylab as P
from numpy import sin, cos, pi, linspace
from numpy.random import randn
from scipy.signal import lfilter, lfilter_zi, filtfilt, butter
from matplotlib.pyplot import plot, legend, show, grid, figure, savefig
pylab.rcParams['figure.figsize'] = 14, 10
from datetime import datetime, timedelta, time
from ROOT import EventFile, Det
import aa
EventFile.read_timeslices = True
EventFile.timeslice_treename = "KM3NET_TIMESLICE_SN"
det = Det("/pbs/throng/km3net/detectors/KM3NeT_00000029_20170920.detx")
f = EventFile("/sps/km3net/users/gdewasse/L0-files/KM3NeT_00000029_00002984.root") #3094 - 2984 #Feel free to add more runs!
R = []
R2 = []
R3 = []
Rsum = []
TIME = []
RR = []
RR2 = []
RR3 = []
RSUM = []
T = []
DATE = []
i = 0
for evt in f:
if i == 0 :
#print('time', evt.t.AsString())
time_first_event = evt.t.GetSec() + 1e-9 * evt.t.GetNanoSec()
i+=1
if f.index > 50000: break
f.get_rates( det )
event_time = evt.t.GetSec() + 1e-9 * evt.t.GetNanoSec()
# now, det knows the rate on each PMT
for dom_id, dom in det.doms :
rates = [ pmt.rate for pmt in dom.pmts ]
#print( dom_id , rates[:5] )
if dom_id == 808982077 : #808432835:809544061:808982077:808997793 #some DOM IDs
R.append(rates[0])
R2.append(rates[3])
R3.append(rates[6])
#print(event_time)
TIME.append(event_time - time_first_event)
Rsum.append(sum(rates))
#print(max(TIME) - min(TIME))
if max(TIME) - min(TIME) > 120:
DATE.append(evt.t.AsString())
T.append(TIME)
RSUM.append(Rsum)
RR.append(R)
RR2.append(R2)
RR3.append(R3)
R = []
R2 = []
R3 = []
Rsum = []
TIME = []
time_first_event = evt.t.GetSec() + 1e-9 * evt.t.GetNanoSec()
#print("\n\n\n")
i = 0
while i < len(RR):
fig = pylab.figure()
plt.plot(T[i], RSUM[i], linestyle = 'None', marker = 'o')
v = [min(TIME), max(TIME), 190e3, 350e3]#220000, 310000]
axis(v)
pylab.xlabel(r'Time [s]', size = 20)
pylab.ylabel(r'Rate [kHZ]', size = 20)
pylab.xticks([0,10,20,30, 40,50,60, 70,80, 90,100,110, 120], size=20)
pylab.yticks([190e3,200e3,210e3, 220e3,230e3,240e3,250e3,260e3,270e3,280e3,290e3,300e3,310e3,320e3,330e3,340e3,350e3],['190', '200', '210','220','230','240','250','260','270','280','290','300','310', '320', '330', '340','350'],size=20)
plt.grid()
plt.savefig((str(DATE[i])))
#fig.save()
plt.show()
i+=1
#plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
# ncol=2,fontsize = 15, mode="expand", borderaxespad=0.)
INFO_T = []
i = 0
while i < len(T):
j = 0
info_T = []
while j < len(T[i]):
info_T.append([T[i][j], RSUM[i][j], DATE[i]])
j+=1
INFO_T.append(info_T)
i+=1
i = 0
info_sorted = []
while i < len(INFO_T):
info_sorted.append(sorted(INFO_T[i], key=lambda u: u[0], reverse=False))
i+=1
i = 0
f = open('REINFORCE_DATA.txt', 'w')
while i < 2:#len(info_sorted):
j = 0
f.write('New event \n')
f.write(info_sorted[i][0][2])
while j < len(info_sorted[i]):
print(info_sorted[i][j][0],info_sorted[i][j][1])
L = [str(info_sorted[i][j][0]), ' ', str(info_sorted[i][j][1]), '\n']
f.writelines(L)
j+=1
i+=1
f.close()