ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/RateMonShiftTool_dev/StreamMonitor.py
Revision: 1.2
Committed: Thu Aug 9 11:29:20 2012 UTC (12 years, 8 months ago) by awoodard
Content type: text/x-python
Branch: MAIN
Changes since 1.1: +12 -14 lines
Log Message:
Fixed bug which where compareStreamARate would crash if the fit was missing

File Contents

# User Rev Content
1 awoodard 1.1 from DatabaseParser import *
2    
3     class StreamMonitor:
4     def getStreamACoreRatesByLS(self,parser,ls_list,config,isCol=True):
5     a_rates = parser.GetTrigRatesInLSRange('AOutput',ls_list) # AOutput = Parking trigs + core trig
6     prompt_a_rates = parser.GetTrigRatesInLSRange('DQMOutput',ls_list)
7     b_rates = parser.GetTrigRatesInLSRange('BOutput',ls_list) # BOutput = Parking trigs ps'd by 20
8     ps_columns = parser.GetPSColumnsInLSRange(ls_list)
9    
10     HLT_Stream_A = {}
11     for ls in ls_list:
12     a_rate = a_rates.get(ls,0)
13     prompt_a_rate = prompt_a_rates.get(ls,0)*10
14     b_rate = b_rates.get(ls,0)*20
15     if isCol and (ps_columns.get(ls) != config.CircBeamCol):
16     HLT_Stream_A[ls] = prompt_a_rate
17     else:
18     HLT_Stream_A[ls] = a_rate - b_rate
19    
20     return HLT_Stream_A
21    
22    
23     def getStreamARatesByLS(self,parser,ls_list):
24     a_rates = parser.GetTrigRatesInLSRange('AOutput',ls_list) # AOutput = Parking trigs + core trig
25    
26     return a_rates
27    
28     def compareStreamARate(self, config, curr_stream_a, ls_list,av_inst_lumi,in_coll):
29 awoodard 1.2 if curr_stream_a > config.MaxStreamARate:
30     bad_stream_a = True
31     else:
32     bad_stream_a = False
33    
34 awoodard 1.1 if in_coll:
35     pkl_file = open(config.FitFileName, 'rb')
36     fit_input = pickle.load(pkl_file)
37    
38 awoodard 1.2 try:
39     pred_stream_a = fit_input['HLT_Stream_A'][1]+fit_input['HLT_Stream_A'][2]*av_inst_lumi+fit_input['HLT_Stream_A'][3]*av_inst_lumi*av_inst_lumi
40     sigma = fit_input['HLT_Stream_A'][5]
41    
42     except:#No fit for stream a; if one is desired, run DatabaseRatePredictor.py with a trigger list including 'HLT_Stream_A'
43     break
44    
45 awoodard 1.1 per_diff = (curr_stream_a - pred_stream_a)/pred_stream_a * 100
46     sigma_diff = (curr_stream_a - pred_stream_a)/sigma
47    
48     if abs(sigma_diff) > config.DefAllowRateSigmaDiff*2 and config.DefWarnOnSigmaDiff:
49     bad_stream_a = True
50     elif abs(per_diff) > config.DefAllowRatePercDiff and not config.DefWarnOnSigmaDiff:
51     bad_stream_a = True
52     else:
53     bad_stream_a = False
54    
55     return bad_stream_a