1
# Author: Christopher Tunnell <tunnell@hep.uchicago.edu>
6
from src.GenericWorker import *
7
from src.oscalls import *
11
class CompareCISCuts(GenericWorker):
12
"Compare CIS cuts of Chi2/RMS versus Likely Calib/Max-response"
14
c1 = src.MakeCanvas.MakeCanvas()
20
def ProcessStart(self):
28
def ProcessStop(self):
30
print 'Total number of calibrations: ', self.n
31
print 'Pass ChiRMS Pass QFlag', self.nPP, 'or', float(self.nPP)/self.n*100, '%'
32
print 'Pass ChiRMS Fail QFlag', self.nPF, 'or', float(self.nPF)/self.n*100, '%'
33
print 'Fail ChiRMS Pass QFlag', self.nFP, 'or', float(self.nFP)/self.n*100, '%'
34
print 'Fail ChiRMS Fail QFlag', self.nFF, 'or', float(self.nFF)/self.n*100, '%'
36
def ProcessRegion(self, region):
37
# Only look at each gain within some channel
38
if 'gain' not in region.GetHash():
42
for event in region.GetEvents():
46
if event.runType == 'CIS':
47
assert(event.data.has_key('problems'))
48
assert(isinstance(event.data['problems'], dict))
50
problems = event.data['problems']
52
if problems['Digital Errors']:
55
if problems['Large Injection RMS']:
58
if problems['Low Chi2']:
61
if problems['Fail Max. Point']:
64
if problems['Fail Likely Calib.']:
69
if pass_chirms and pass_qflag:
71
elif pass_chirms and not pass_qflag:
73
#print 'Pass ChiRms Fail Qflag', region.GetHash(), region.GetHash(1)
74
elif not pass_chirms and pass_qflag:
76
#print 'Fail ChiRms Pass Qflag', region.GetHash(), region.GetHash(1)
77
elif not pass_chirms and not pass_qflag:
80
event.data['comp_chi_rms'] = [pass_chirms, pass_qflag]
83
region.SetEvents(newevents)