@@ -9,41 +9,23 @@ class alert_atof_time {
99
1010def data = new ConcurrentHashMap ()
1111def has_data = new AtomicBoolean (false )
12- int sector;
13- int min_index;
14- int max_index;
15-
16- alert_atof_time(int atof_sector){ // atof_sector runs from 0 to 14.
17- this . sector = atof_sector;
18- this . min_index = 44 * (atof_sector);
19- this . max_index = 44 * (atof_sector+1 );
20- }
2112
22- def getName () {
23- return " ${ this.class.simpleName} _${ String.format('%02d', sector)} "
24- }
2513
2614 def processRun (dir , run ) {
2715
2816 data[run] = [run :run]
2917 def trigger = dir. getObject(' /TRIGGER/bits' )
3018 def reference_trigger_bit = 0
3119 // data[run].put('bits', trigger)
32- (min_index.. < max_index). collect{index ->
33- int atof_sector = index / (11 * 4 );
34- assert sector == atof_sector // sanity-check. this should be the same.
35- int layer = (index % (11 * 4 )) / 11 ;
36- int component = index % 11 ;
37- def file_index = String . format(' sector%02d_layer%d_component%02d' , sector, layer, component)
38- def h1 = dir. getObject(String . format(' /ALERT/ATOF_Time_%s' , file_index))
20+ (0 .. < 11 ). collect{component ->
21+ def h1 = dir. getObject(String . format(' /ALERT/ATOF_Time_component%02d' , component))
3922 if (h1!= null ) {
4023 if (h1. getBinContent(h1. getMaximumBin()) > 30 && h1. getEntries()> 300 ){
41- data[run]. put(String . format(' atof_time_%s ' , file_index ), h1)
24+ data[run]. put(String . format(' atof_time_%02d ' , component ), h1)
4225 def f1 = ALERTFitter . atof_time_fitter(h1,component)
43- data[run]. put(String . format(' fit_atof_time_%s' , file_index), f1)
44- data[run]. put(String . format(' peak_location_atof_time_%s' , file_index), f1. getParameter(1 ). abs())
45- data[run]. put(String . format(' sigma_atof_time_%s' , file_index), f1. getParameter(2 ). abs())
46- data[run]. put(String . format(' integral_normalized_to_trigger_atof_time_%s' , file_index), Math . sqrt(2 * 3.141597f ) * f1. getParameter(0 ). abs() * f1. getParameter(2 ). abs()/ trigger. getBinContent(reference_trigger_bit) )
26+ data[run]. put(String . format(' fit_atof_time_%02d' , component), f1)
27+ data[run]. put(String . format(' peak_location_atof_time_%02d' , component), f1. getParameter(1 ). abs())
28+ data[run]. put(String . format(' sigma_atof_time_%02d' , component), f1. getParameter(2 ). abs())
4729 has_data. set(true )
4830 }
4931 }
@@ -59,36 +41,31 @@ int max_index;
5941 return
6042 }
6143
62- [' peak_location' , ' sigma' , ' integral_normalized_to_trigger' ]. each{variable ->
63- (0 .. < 4 ). collect{layer ->
64- def names = []
65- TDirectory out = new TDirectory ()
66- out. mkdir(' /timelines' )
67- (0 .. < 11 ). collect{component ->
68- def file_index = ' '
69- file_index = String . format(' sector%02d_layer%d_component%02d' , sector, layer, component)
70- names << String . format(' atof_time_%s' , file_index)
71- }
72- names. each{ name ->
73- def gr = new GraphErrors (name)
74- gr. setTitle( String . format(" ATOF Time %s sector %02d layer %d" , variable. replace(' _' , ' ' ), sector, layer))
75- gr. setTitleY( String . format(" ATOF Time %s sector %02d layer %d (ns)" , variable. replace(' _' , ' ' ), sector, layer))
76- gr. setTitleX(" run number" )
77- data. sort{it. key}. each{run ,it ->
78- out. mkdir(' /' + it. run)
79- out. cd(' /' + it. run)
80- if (it. containsKey(name)){
81- out. addDataSet(it[name])
82- out. addDataSet(it[' fit_' + name])
83- gr. addPoint(it. run, it[variable + ' _' + name], 0 , 0 )
84- }
85- else if (variable== " peak_location" ) println (String . format(" run %d: %s either does not exist or does not have enough statistics." , it. run, name))
44+ [' peak_location' , ' sigma' ]. each{variable ->
45+ TDirectory out = new TDirectory ()
46+ out. mkdir(' /timelines' )
47+ (0 .. < 11 ). collect{component ->
48+ def name = String . format(' atof_time_%02d' , component)
49+
50+ def gr = new GraphErrors (name)
51+
52+ gr. setTitle( String . format(" ATOF Time %s " , variable. replace(' _' , ' ' )))
53+ gr. setTitleY( String . format(" ATOF Time %s (ns)" , variable. replace(' _' , ' ' )))
54+ gr. setTitleX(" run number" )
55+ data. sort{it. key}. each{run ,it ->
56+ out. mkdir(' /' + it. run)
57+ out. cd(' /' + it. run)
58+ if (it. containsKey(name)){
59+ out. addDataSet(it[name])
60+ out. addDataSet(it[' fit_' + name])
61+ gr. addPoint(it. run, it[variable + ' _' + name], 0 , 0 )
8662 }
87- out. cd(' /timelines' )
88- out. addDataSet(gr)
63+ else if (variable== " peak_location" ) println (String . format(" run %d: %s either does not exist or does not have enough statistics." , it. run, name))
8964 }
90- out. writeFile(String . format(' alert_atof_time_%s_sector%02d_layer%d.hipo' , variable, sector, layer))
65+ out. cd(' /timelines' )
66+ out. addDataSet(gr)
9167 }
68+ out. writeFile(String . format(' alert_atof_time_%s.hipo' , variable))
9269 }
9370 }
9471}
0 commit comments