AlcapDAQ  1
MMuPC1AnalysisMQL.cpp
Go to the documentation of this file.
1 /*
2  * This file is automatically generated by MqlCompiler - DO NOT EDIT
3  * Your changes will be lost when the original source is recompiled
4  */
5 
6 #include <midas.h>
7 #include "MqlArray.h"
8 #include "MqlNtupleColumn.h"
9 #include "Mql.h"
10 
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <TH1.h>
14 #include <TH2.h>
15 #include <TH3.h>
16 #include <TNtuple.h>
17 
19 INT MMuPC1AnalysisMQL(EVENT_HEADER *, void *);
20 
21 
23 {
24  "MMuPC1AnalysisMQL", /* module name */
25  "MqlCompiler", /* author */
26  MMuPC1AnalysisMQL, /* event routine */
27  NULL, /* BOR routine */
28  NULL, /* EOR routine */
29  MMuPC1AnalysisMQL_init, /* init routine */
30  NULL, /* exit routine */
31  NULL, /* parameter structure */
32  0, /* structure size */
33  NULL, /* initial parameters */
34 };
35 
36 #include <common.h>
37 #include <ucb_common.h>
38 #define Tier1 ON
39 #define Tier2 OFF
40 #define Tier3 OFF
42 {
43  #include "HITS.h"
44 };
47 {
48  double time;
49  int parameter;
50 };
52 
53 static TH1D *_h_parameters_muPC1;
55 {
56  double time;
57  int Xwire;
58 };
60 
62 {
63  double time_1;
64  int Xwire_1;
65  double time_2;
66  int Xwire_2;
67 };
69 
70 // Comparison for muPC1X_raw on variable time
71 static int _u_MMuPC1AnalysisMQL_39(const void *_v1, const void *_v2)
72 {
73  struct _u_MMuPC1AnalysisMQL_3 *_o1 = (struct _u_MMuPC1AnalysisMQL_3 *) _v1;
74  struct _u_MMuPC1AnalysisMQL_3 *_o2 = (struct _u_MMuPC1AnalysisMQL_3 *) _v2;
75  double _sv1, _sv2;
76  {
77  double time = _o1->time;
78  int Xwire = _o1->Xwire;
79  _sv1 = time;
80  }
81  {
82  double time = _o2->time;
83  int Xwire = _o2->Xwire;
84  _sv2 = time;
85  }
86  double _diff = _sv1 - _sv2;
87  if(_diff < 0) return -1;
88  if(_diff == 0) return 0;
89  if(_diff > 0) return 1;
90 }
91 // Comparison for muPC1X_raw on variable time
92 static int _u_MMuPC1AnalysisMQL_40(const void *_v1, const void *_v2)
93 {
94  struct _u_MMuPC1AnalysisMQL_3 *_o1 = (struct _u_MMuPC1AnalysisMQL_3 *) _v1;
95  struct _u_MMuPC1AnalysisMQL_3 *_o2 = (struct _u_MMuPC1AnalysisMQL_3 *) _v2;
96  double _sv1, _sv2;
97  {
98  double time = _o1->time;
99  int Xwire = _o1->Xwire;
100  _sv1 = time;
101  }
102  {
103  double time = _o2->time;
104  int Xwire = _o2->Xwire;
105  _sv2 = time;
106  }
107  double _diff = _sv1 - _sv2;
108  if(_diff < 0) return -1;
109  if(_diff == 0) return 0;
110  if(_diff > 0) return 1;
111 }
116 {
117  double time;
119 };
121 
122 // Comparison for muPC1X_raw on variable time
123 static int _u_MMuPC1AnalysisMQL_41(const void *_v1, const void *_v2)
124 {
125  struct _u_MMuPC1AnalysisMQL_3 *_o1 = (struct _u_MMuPC1AnalysisMQL_3 *) _v1;
126  struct _u_MMuPC1AnalysisMQL_3 *_o2 = (struct _u_MMuPC1AnalysisMQL_3 *) _v2;
127  double _sv1, _sv2;
128  {
129  double time = _o1->time;
130  int Xwire = _o1->Xwire;
131  _sv1 = time;
132  }
133  {
134  double time = _o2->time;
135  int Xwire = _o2->Xwire;
136  _sv2 = time;
137  }
138  double _diff = _sv1 - _sv2;
139  if(_diff < 0) return -1;
140  if(_diff == 0) return 0;
141  if(_diff > 0) return 1;
142 }
143 // Comparison for muPC1X_spark_search on variable time
144 static int _u_MMuPC1AnalysisMQL_42(const void *_v1, const void *_v2)
145 {
146  struct _u_MMuPC1AnalysisMQL_5 *_o1 = (struct _u_MMuPC1AnalysisMQL_5 *) _v1;
147  struct _u_MMuPC1AnalysisMQL_5 *_o2 = (struct _u_MMuPC1AnalysisMQL_5 *) _v2;
148  double _sv1, _sv2;
149  {
150  double time = _o1->time;
151  int cluster_size = _o1->cluster_size;
152  _sv1 = time;
153  }
154  {
155  double time = _o2->time;
156  int cluster_size = _o2->cluster_size;
157  _sv2 = time;
158  }
159  double _diff = _sv1 - _sv2;
160  if(_diff < 0) return -1;
161  if(_diff == 0) return 0;
162  if(_diff > 0) return 1;
163 }
166 {
167  double time;
168 };
170 
173 {
174  double time;
175  int Xwire;
176 };
178 
179 // Comparison for muPC1X_raw on variable time
180 static int _u_MMuPC1AnalysisMQL_43(const void *_v1, const void *_v2)
181 {
182  struct _u_MMuPC1AnalysisMQL_3 *_o1 = (struct _u_MMuPC1AnalysisMQL_3 *) _v1;
183  struct _u_MMuPC1AnalysisMQL_3 *_o2 = (struct _u_MMuPC1AnalysisMQL_3 *) _v2;
184  double _sv1, _sv2;
185  {
186  double time = _o1->time;
187  int Xwire = _o1->Xwire;
188  _sv1 = time;
189  }
190  {
191  double time = _o2->time;
192  int Xwire = _o2->Xwire;
193  _sv2 = time;
194  }
195  double _diff = _sv1 - _sv2;
196  if(_diff < 0) return -1;
197  if(_diff == 0) return 0;
198  if(_diff > 0) return 1;
199 }
200 // Comparison for muPC1X_sparks on variable time
201 static int _u_MMuPC1AnalysisMQL_44(const void *_v1, const void *_v2)
202 {
203  struct _u_MMuPC1AnalysisMQL_6 *_o1 = (struct _u_MMuPC1AnalysisMQL_6 *) _v1;
204  struct _u_MMuPC1AnalysisMQL_6 *_o2 = (struct _u_MMuPC1AnalysisMQL_6 *) _v2;
205  double _sv1, _sv2;
206  {
207  double time = _o1->time;
208  _sv1 = time;
209  }
210  {
211  double time = _o2->time;
212  _sv2 = time;
213  }
214  double _diff = _sv1 - _sv2;
215  if(_diff < 0) return -1;
216  if(_diff == 0) return 0;
217  if(_diff > 0) return 1;
218 }
220 {
221  double time_1;
222  int Xwire_1;
223  double time_2;
224  int Xwire_2;
225 };
227 
228 // Comparison for muPC1X_SC on variable time
229 static int _u_MMuPC1AnalysisMQL_45(const void *_v1, const void *_v2)
230 {
231  struct _u_MMuPC1AnalysisMQL_7 *_o1 = (struct _u_MMuPC1AnalysisMQL_7 *) _v1;
232  struct _u_MMuPC1AnalysisMQL_7 *_o2 = (struct _u_MMuPC1AnalysisMQL_7 *) _v2;
233  double _sv1, _sv2;
234  {
235  double time = _o1->time;
236  int Xwire = _o1->Xwire;
237  _sv1 = time;
238  }
239  {
240  double time = _o2->time;
241  int Xwire = _o2->Xwire;
242  _sv2 = time;
243  }
244  double _diff = _sv1 - _sv2;
245  if(_diff < 0) return -1;
246  if(_diff == 0) return 0;
247  if(_diff > 0) return 1;
248 }
249 // Comparison for muPC1X_SC on variable time
250 static int _u_MMuPC1AnalysisMQL_46(const void *_v1, const void *_v2)
251 {
252  struct _u_MMuPC1AnalysisMQL_7 *_o1 = (struct _u_MMuPC1AnalysisMQL_7 *) _v1;
253  struct _u_MMuPC1AnalysisMQL_7 *_o2 = (struct _u_MMuPC1AnalysisMQL_7 *) _v2;
254  double _sv1, _sv2;
255  {
256  double time = _o1->time;
257  int Xwire = _o1->Xwire;
258  _sv1 = time;
259  }
260  {
261  double time = _o2->time;
262  int Xwire = _o2->Xwire;
263  _sv2 = time;
264  }
265  double _diff = _sv1 - _sv2;
266  if(_diff < 0) return -1;
267  if(_diff == 0) return 0;
268  if(_diff > 0) return 1;
269 }
273 {
274  double time;
275  int Xwire;
276 };
278 
279 // Comparison for muPC1X_SC on variable time
280 static int _u_MMuPC1AnalysisMQL_47(const void *_v1, const void *_v2)
281 {
282  struct _u_MMuPC1AnalysisMQL_7 *_o1 = (struct _u_MMuPC1AnalysisMQL_7 *) _v1;
283  struct _u_MMuPC1AnalysisMQL_7 *_o2 = (struct _u_MMuPC1AnalysisMQL_7 *) _v2;
284  double _sv1, _sv2;
285  {
286  double time = _o1->time;
287  int Xwire = _o1->Xwire;
288  _sv1 = time;
289  }
290  {
291  double time = _o2->time;
292  int Xwire = _o2->Xwire;
293  _sv2 = time;
294  }
295  double _diff = _sv1 - _sv2;
296  if(_diff < 0) return -1;
297  if(_diff == 0) return 0;
298  if(_diff > 0) return 1;
299 }
300 // Comparison for muPC1X_AD on variable time
301 static int _u_MMuPC1AnalysisMQL_48(const void *_v1, const void *_v2)
302 {
303  struct _u_MMuPC1AnalysisMQL_9 *_o1 = (struct _u_MMuPC1AnalysisMQL_9 *) _v1;
304  struct _u_MMuPC1AnalysisMQL_9 *_o2 = (struct _u_MMuPC1AnalysisMQL_9 *) _v2;
305  double _sv1, _sv2;
306  {
307  double time = _o1->time;
308  int Xwire = _o1->Xwire;
309  _sv1 = time;
310  }
311  {
312  double time = _o2->time;
313  int Xwire = _o2->Xwire;
314  _sv2 = time;
315  }
316  double _diff = _sv1 - _sv2;
317  if(_diff < 0) return -1;
318  if(_diff == 0) return 0;
319  if(_diff > 0) return 1;
320 }
322 {
323  double time_1;
324  int Xwire_1;
325  double time_2;
326  int Xwire_2;
327 };
329 
330 // Comparison for muPC1X_AD on variable time
331 static int _u_MMuPC1AnalysisMQL_49(const void *_v1, const void *_v2)
332 {
333  struct _u_MMuPC1AnalysisMQL_9 *_o1 = (struct _u_MMuPC1AnalysisMQL_9 *) _v1;
334  struct _u_MMuPC1AnalysisMQL_9 *_o2 = (struct _u_MMuPC1AnalysisMQL_9 *) _v2;
335  double _sv1, _sv2;
336  {
337  double time = _o1->time;
338  int Xwire = _o1->Xwire;
339  _sv1 = time;
340  }
341  {
342  double time = _o2->time;
343  int Xwire = _o2->Xwire;
344  _sv2 = time;
345  }
346  double _diff = _sv1 - _sv2;
347  if(_diff < 0) return -1;
348  if(_diff == 0) return 0;
349  if(_diff > 0) return 1;
350 }
351 // Comparison for muPC1X_AD on variable time
352 static int _u_MMuPC1AnalysisMQL_50(const void *_v1, const void *_v2)
353 {
354  struct _u_MMuPC1AnalysisMQL_9 *_o1 = (struct _u_MMuPC1AnalysisMQL_9 *) _v1;
355  struct _u_MMuPC1AnalysisMQL_9 *_o2 = (struct _u_MMuPC1AnalysisMQL_9 *) _v2;
356  double _sv1, _sv2;
357  {
358  double time = _o1->time;
359  int Xwire = _o1->Xwire;
360  _sv1 = time;
361  }
362  {
363  double time = _o2->time;
364  int Xwire = _o2->Xwire;
365  _sv2 = time;
366  }
367  double _diff = _sv1 - _sv2;
368  if(_diff < 0) return -1;
369  if(_diff == 0) return 0;
370  if(_diff > 0) return 1;
371 }
375 {
376  double time;
379 };
381 
382 // Comparison for muPC1X_AD on variable time
383 static int _u_MMuPC1AnalysisMQL_51(const void *_v1, const void *_v2)
384 {
385  struct _u_MMuPC1AnalysisMQL_9 *_o1 = (struct _u_MMuPC1AnalysisMQL_9 *) _v1;
386  struct _u_MMuPC1AnalysisMQL_9 *_o2 = (struct _u_MMuPC1AnalysisMQL_9 *) _v2;
387  double _sv1, _sv2;
388  {
389  double time = _o1->time;
390  int Xwire = _o1->Xwire;
391  _sv1 = time;
392  }
393  {
394  double time = _o2->time;
395  int Xwire = _o2->Xwire;
396  _sv2 = time;
397  }
398  double _diff = _sv1 - _sv2;
399  if(_diff < 0) return -1;
400  if(_diff == 0) return 0;
401  if(_diff > 0) return 1;
402 }
403 // Comparison for muPC1X_cluster_contiguous on variable time
404 static int _u_MMuPC1AnalysisMQL_52(const void *_v1, const void *_v2)
405 {
406  struct _u_MMuPC1AnalysisMQL_11 *_o1 = (struct _u_MMuPC1AnalysisMQL_11 *) _v1;
407  struct _u_MMuPC1AnalysisMQL_11 *_o2 = (struct _u_MMuPC1AnalysisMQL_11 *) _v2;
408  double _sv1, _sv2;
409  {
410  double time = _o1->time;
411  int Xwire_min = _o1->Xwire_min;
412  int Xwire_max = _o1->Xwire_max;
413  _sv1 = time;
414  }
415  {
416  double time = _o2->time;
417  int Xwire_min = _o2->Xwire_min;
418  int Xwire_max = _o2->Xwire_max;
419  _sv2 = time;
420  }
421  double _diff = _sv1 - _sv2;
422  if(_diff < 0) return -1;
423  if(_diff == 0) return 0;
424  if(_diff > 0) return 1;
425 }
427 {
429 };
431 
432 // Comparison for muPC1X_cluster_contiguous on variable time
433 static int _u_MMuPC1AnalysisMQL_53(const void *_v1, const void *_v2)
434 {
435  struct _u_MMuPC1AnalysisMQL_11 *_o1 = (struct _u_MMuPC1AnalysisMQL_11 *) _v1;
436  struct _u_MMuPC1AnalysisMQL_11 *_o2 = (struct _u_MMuPC1AnalysisMQL_11 *) _v2;
437  double _sv1, _sv2;
438  {
439  double time = _o1->time;
440  int Xwire_min = _o1->Xwire_min;
441  int Xwire_max = _o1->Xwire_max;
442  _sv1 = time;
443  }
444  {
445  double time = _o2->time;
446  int Xwire_min = _o2->Xwire_min;
447  int Xwire_max = _o2->Xwire_max;
448  _sv2 = time;
449  }
450  double _diff = _sv1 - _sv2;
451  if(_diff < 0) return -1;
452  if(_diff == 0) return 0;
453  if(_diff > 0) return 1;
454 }
455 // Comparison for muPC1X_cluster_contiguous on variable time
456 static int _u_MMuPC1AnalysisMQL_54(const void *_v1, const void *_v2)
457 {
458  struct _u_MMuPC1AnalysisMQL_11 *_o1 = (struct _u_MMuPC1AnalysisMQL_11 *) _v1;
459  struct _u_MMuPC1AnalysisMQL_11 *_o2 = (struct _u_MMuPC1AnalysisMQL_11 *) _v2;
460  double _sv1, _sv2;
461  {
462  double time = _o1->time;
463  int Xwire_min = _o1->Xwire_min;
464  int Xwire_max = _o1->Xwire_max;
465  _sv1 = time;
466  }
467  {
468  double time = _o2->time;
469  int Xwire_min = _o2->Xwire_min;
470  int Xwire_max = _o2->Xwire_max;
471  _sv2 = time;
472  }
473  double _diff = _sv1 - _sv2;
474  if(_diff < 0) return -1;
475  if(_diff == 0) return 0;
476  if(_diff > 0) return 1;
477 }
480 {
481  double time;
482  double Xwire;
485 };
487 
488 // Comparison for muPC1X_AD on variable time
489 static int _u_MMuPC1AnalysisMQL_55(const void *_v1, const void *_v2)
490 {
491  struct _u_MMuPC1AnalysisMQL_9 *_o1 = (struct _u_MMuPC1AnalysisMQL_9 *) _v1;
492  struct _u_MMuPC1AnalysisMQL_9 *_o2 = (struct _u_MMuPC1AnalysisMQL_9 *) _v2;
493  double _sv1, _sv2;
494  {
495  double time = _o1->time;
496  int Xwire = _o1->Xwire;
497  _sv1 = time;
498  }
499  {
500  double time = _o2->time;
501  int Xwire = _o2->Xwire;
502  _sv2 = time;
503  }
504  double _diff = _sv1 - _sv2;
505  if(_diff < 0) return -1;
506  if(_diff == 0) return 0;
507  if(_diff > 0) return 1;
508 }
509 // Comparison for muPC1X on variable time
510 static int _u_MMuPC1AnalysisMQL_56(const void *_v1, const void *_v2)
511 {
512  struct _u_MMuPC1AnalysisMQL_13 *_o1 = (struct _u_MMuPC1AnalysisMQL_13 *) _v1;
513  struct _u_MMuPC1AnalysisMQL_13 *_o2 = (struct _u_MMuPC1AnalysisMQL_13 *) _v2;
514  double _sv1, _sv2;
515  {
516  double time = _o1->time;
517  double Xwire = _o1->Xwire;
518  int cluster_size = _o1->cluster_size;
519  int cluster_width = _o1->cluster_width;
520  _sv1 = time;
521  }
522  {
523  double time = _o2->time;
524  double Xwire = _o2->Xwire;
525  int cluster_size = _o2->cluster_size;
526  int cluster_width = _o2->cluster_width;
527  _sv2 = time;
528  }
529  double _diff = _sv1 - _sv2;
530  if(_diff < 0) return -1;
531  if(_diff == 0) return 0;
532  if(_diff > 0) return 1;
533 }
538 {
539  double Xwire;
540  double muPC1Time;
541 };
543 
545 {
546  double time_1;
547  double time_2;
548 };
550 
551 // Comparison for muPC1X on variable time
552 static int _u_MMuPC1AnalysisMQL_57(const void *_v1, const void *_v2)
553 {
554  struct _u_MMuPC1AnalysisMQL_13 *_o1 = (struct _u_MMuPC1AnalysisMQL_13 *) _v1;
555  struct _u_MMuPC1AnalysisMQL_13 *_o2 = (struct _u_MMuPC1AnalysisMQL_13 *) _v2;
556  double _sv1, _sv2;
557  {
558  double time = _o1->time;
559  double Xwire = _o1->Xwire;
560  int cluster_size = _o1->cluster_size;
561  int cluster_width = _o1->cluster_width;
562  _sv1 = time;
563  }
564  {
565  double time = _o2->time;
566  double Xwire = _o2->Xwire;
567  int cluster_size = _o2->cluster_size;
568  int cluster_width = _o2->cluster_width;
569  _sv2 = time;
570  }
571  double _diff = _sv1 - _sv2;
572  if(_diff < 0) return -1;
573  if(_diff == 0) return 0;
574  if(_diff > 0) return 1;
575 }
576 // Comparison for muPC1X on variable time
577 static int _u_MMuPC1AnalysisMQL_58(const void *_v1, const void *_v2)
578 {
579  struct _u_MMuPC1AnalysisMQL_13 *_o1 = (struct _u_MMuPC1AnalysisMQL_13 *) _v1;
580  struct _u_MMuPC1AnalysisMQL_13 *_o2 = (struct _u_MMuPC1AnalysisMQL_13 *) _v2;
581  double _sv1, _sv2;
582  {
583  double time = _o1->time;
584  double Xwire = _o1->Xwire;
585  int cluster_size = _o1->cluster_size;
586  int cluster_width = _o1->cluster_width;
587  _sv1 = time;
588  }
589  {
590  double time = _o2->time;
591  double Xwire = _o2->Xwire;
592  int cluster_size = _o2->cluster_size;
593  int cluster_width = _o2->cluster_width;
594  _sv2 = time;
595  }
596  double _diff = _sv1 - _sv2;
597  if(_diff < 0) return -1;
598  if(_diff == 0) return 0;
599  if(_diff > 0) return 1;
600 }
603 {
604  double time1;
605  double time2;
606  double wire_diff;
607 };
609 
610 // Comparison for muPC1X on variable time
611 static int _u_MMuPC1AnalysisMQL_59(const void *_v1, const void *_v2)
612 {
613  struct _u_MMuPC1AnalysisMQL_13 *_o1 = (struct _u_MMuPC1AnalysisMQL_13 *) _v1;
614  struct _u_MMuPC1AnalysisMQL_13 *_o2 = (struct _u_MMuPC1AnalysisMQL_13 *) _v2;
615  double _sv1, _sv2;
616  {
617  double time = _o1->time;
618  double Xwire = _o1->Xwire;
619  int cluster_size = _o1->cluster_size;
620  int cluster_width = _o1->cluster_width;
621  _sv1 = time;
622  }
623  {
624  double time = _o2->time;
625  double Xwire = _o2->Xwire;
626  int cluster_size = _o2->cluster_size;
627  int cluster_width = _o2->cluster_width;
628  _sv2 = time;
629  }
630  double _diff = _sv1 - _sv2;
631  if(_diff < 0) return -1;
632  if(_diff == 0) return 0;
633  if(_diff > 0) return 1;
634 }
635 // Comparison for muPC1X on variable time
636 static int _u_MMuPC1AnalysisMQL_60(const void *_v1, const void *_v2)
637 {
638  struct _u_MMuPC1AnalysisMQL_13 *_o1 = (struct _u_MMuPC1AnalysisMQL_13 *) _v1;
639  struct _u_MMuPC1AnalysisMQL_13 *_o2 = (struct _u_MMuPC1AnalysisMQL_13 *) _v2;
640  double _sv1, _sv2;
641  {
642  double time = _o1->time;
643  double Xwire = _o1->Xwire;
644  int cluster_size = _o1->cluster_size;
645  int cluster_width = _o1->cluster_width;
646  _sv1 = time;
647  }
648  {
649  double time = _o2->time;
650  double Xwire = _o2->Xwire;
651  int cluster_size = _o2->cluster_size;
652  int cluster_width = _o2->cluster_width;
653  _sv2 = time;
654  }
655  double _diff = _sv1 - _sv2;
656  if(_diff < 0) return -1;
657  if(_diff == 0) return 0;
658  if(_diff > 0) return 1;
659 }
662 {
663  double time;
664  int Ywire;
665 };
667 
669 {
670  double time_1;
671  int Ywire_1;
672  double time_2;
673  int Ywire_2;
674 };
676 
677 // Comparison for muPC1Y_raw on variable time
678 static int _u_MMuPC1AnalysisMQL_61(const void *_v1, const void *_v2)
679 {
680  struct _u_MMuPC1AnalysisMQL_17 *_o1 = (struct _u_MMuPC1AnalysisMQL_17 *) _v1;
681  struct _u_MMuPC1AnalysisMQL_17 *_o2 = (struct _u_MMuPC1AnalysisMQL_17 *) _v2;
682  double _sv1, _sv2;
683  {
684  double time = _o1->time;
685  int Ywire = _o1->Ywire;
686  _sv1 = time;
687  }
688  {
689  double time = _o2->time;
690  int Ywire = _o2->Ywire;
691  _sv2 = time;
692  }
693  double _diff = _sv1 - _sv2;
694  if(_diff < 0) return -1;
695  if(_diff == 0) return 0;
696  if(_diff > 0) return 1;
697 }
698 // Comparison for muPC1Y_raw on variable time
699 static int _u_MMuPC1AnalysisMQL_62(const void *_v1, const void *_v2)
700 {
701  struct _u_MMuPC1AnalysisMQL_17 *_o1 = (struct _u_MMuPC1AnalysisMQL_17 *) _v1;
702  struct _u_MMuPC1AnalysisMQL_17 *_o2 = (struct _u_MMuPC1AnalysisMQL_17 *) _v2;
703  double _sv1, _sv2;
704  {
705  double time = _o1->time;
706  int Ywire = _o1->Ywire;
707  _sv1 = time;
708  }
709  {
710  double time = _o2->time;
711  int Ywire = _o2->Ywire;
712  _sv2 = time;
713  }
714  double _diff = _sv1 - _sv2;
715  if(_diff < 0) return -1;
716  if(_diff == 0) return 0;
717  if(_diff > 0) return 1;
718 }
723 {
724  double time;
726 };
728 
729 // Comparison for muPC1Y_raw on variable time
730 static int _u_MMuPC1AnalysisMQL_63(const void *_v1, const void *_v2)
731 {
732  struct _u_MMuPC1AnalysisMQL_17 *_o1 = (struct _u_MMuPC1AnalysisMQL_17 *) _v1;
733  struct _u_MMuPC1AnalysisMQL_17 *_o2 = (struct _u_MMuPC1AnalysisMQL_17 *) _v2;
734  double _sv1, _sv2;
735  {
736  double time = _o1->time;
737  int Ywire = _o1->Ywire;
738  _sv1 = time;
739  }
740  {
741  double time = _o2->time;
742  int Ywire = _o2->Ywire;
743  _sv2 = time;
744  }
745  double _diff = _sv1 - _sv2;
746  if(_diff < 0) return -1;
747  if(_diff == 0) return 0;
748  if(_diff > 0) return 1;
749 }
750 // Comparison for muPC1Y_spark_search on variable time
751 static int _u_MMuPC1AnalysisMQL_64(const void *_v1, const void *_v2)
752 {
753  struct _u_MMuPC1AnalysisMQL_19 *_o1 = (struct _u_MMuPC1AnalysisMQL_19 *) _v1;
754  struct _u_MMuPC1AnalysisMQL_19 *_o2 = (struct _u_MMuPC1AnalysisMQL_19 *) _v2;
755  double _sv1, _sv2;
756  {
757  double time = _o1->time;
758  int cluster_size = _o1->cluster_size;
759  _sv1 = time;
760  }
761  {
762  double time = _o2->time;
763  int cluster_size = _o2->cluster_size;
764  _sv2 = time;
765  }
766  double _diff = _sv1 - _sv2;
767  if(_diff < 0) return -1;
768  if(_diff == 0) return 0;
769  if(_diff > 0) return 1;
770 }
773 {
774  double time;
775 };
777 
780 {
781  double time;
782  int Ywire;
783 };
785 
786 // Comparison for muPC1Y_raw on variable time
787 static int _u_MMuPC1AnalysisMQL_65(const void *_v1, const void *_v2)
788 {
789  struct _u_MMuPC1AnalysisMQL_17 *_o1 = (struct _u_MMuPC1AnalysisMQL_17 *) _v1;
790  struct _u_MMuPC1AnalysisMQL_17 *_o2 = (struct _u_MMuPC1AnalysisMQL_17 *) _v2;
791  double _sv1, _sv2;
792  {
793  double time = _o1->time;
794  int Ywire = _o1->Ywire;
795  _sv1 = time;
796  }
797  {
798  double time = _o2->time;
799  int Ywire = _o2->Ywire;
800  _sv2 = time;
801  }
802  double _diff = _sv1 - _sv2;
803  if(_diff < 0) return -1;
804  if(_diff == 0) return 0;
805  if(_diff > 0) return 1;
806 }
807 // Comparison for muPC1Y_sparks on variable time
808 static int _u_MMuPC1AnalysisMQL_66(const void *_v1, const void *_v2)
809 {
810  struct _u_MMuPC1AnalysisMQL_20 *_o1 = (struct _u_MMuPC1AnalysisMQL_20 *) _v1;
811  struct _u_MMuPC1AnalysisMQL_20 *_o2 = (struct _u_MMuPC1AnalysisMQL_20 *) _v2;
812  double _sv1, _sv2;
813  {
814  double time = _o1->time;
815  _sv1 = time;
816  }
817  {
818  double time = _o2->time;
819  _sv2 = time;
820  }
821  double _diff = _sv1 - _sv2;
822  if(_diff < 0) return -1;
823  if(_diff == 0) return 0;
824  if(_diff > 0) return 1;
825 }
827 {
828  double time_1;
829  int Ywire_1;
830  double time_2;
831  int Ywire_2;
832 };
834 
835 // Comparison for muPC1Y_SC on variable time
836 static int _u_MMuPC1AnalysisMQL_67(const void *_v1, const void *_v2)
837 {
838  struct _u_MMuPC1AnalysisMQL_21 *_o1 = (struct _u_MMuPC1AnalysisMQL_21 *) _v1;
839  struct _u_MMuPC1AnalysisMQL_21 *_o2 = (struct _u_MMuPC1AnalysisMQL_21 *) _v2;
840  double _sv1, _sv2;
841  {
842  double time = _o1->time;
843  int Ywire = _o1->Ywire;
844  _sv1 = time;
845  }
846  {
847  double time = _o2->time;
848  int Ywire = _o2->Ywire;
849  _sv2 = time;
850  }
851  double _diff = _sv1 - _sv2;
852  if(_diff < 0) return -1;
853  if(_diff == 0) return 0;
854  if(_diff > 0) return 1;
855 }
856 // Comparison for muPC1Y_SC on variable time
857 static int _u_MMuPC1AnalysisMQL_68(const void *_v1, const void *_v2)
858 {
859  struct _u_MMuPC1AnalysisMQL_21 *_o1 = (struct _u_MMuPC1AnalysisMQL_21 *) _v1;
860  struct _u_MMuPC1AnalysisMQL_21 *_o2 = (struct _u_MMuPC1AnalysisMQL_21 *) _v2;
861  double _sv1, _sv2;
862  {
863  double time = _o1->time;
864  int Ywire = _o1->Ywire;
865  _sv1 = time;
866  }
867  {
868  double time = _o2->time;
869  int Ywire = _o2->Ywire;
870  _sv2 = time;
871  }
872  double _diff = _sv1 - _sv2;
873  if(_diff < 0) return -1;
874  if(_diff == 0) return 0;
875  if(_diff > 0) return 1;
876 }
880 {
881  double time;
882  int Ywire;
883 };
885 
886 // Comparison for muPC1Y_SC on variable time
887 static int _u_MMuPC1AnalysisMQL_69(const void *_v1, const void *_v2)
888 {
889  struct _u_MMuPC1AnalysisMQL_21 *_o1 = (struct _u_MMuPC1AnalysisMQL_21 *) _v1;
890  struct _u_MMuPC1AnalysisMQL_21 *_o2 = (struct _u_MMuPC1AnalysisMQL_21 *) _v2;
891  double _sv1, _sv2;
892  {
893  double time = _o1->time;
894  int Ywire = _o1->Ywire;
895  _sv1 = time;
896  }
897  {
898  double time = _o2->time;
899  int Ywire = _o2->Ywire;
900  _sv2 = time;
901  }
902  double _diff = _sv1 - _sv2;
903  if(_diff < 0) return -1;
904  if(_diff == 0) return 0;
905  if(_diff > 0) return 1;
906 }
907 // Comparison for muPC1Y_AD on variable time
908 static int _u_MMuPC1AnalysisMQL_70(const void *_v1, const void *_v2)
909 {
910  struct _u_MMuPC1AnalysisMQL_23 *_o1 = (struct _u_MMuPC1AnalysisMQL_23 *) _v1;
911  struct _u_MMuPC1AnalysisMQL_23 *_o2 = (struct _u_MMuPC1AnalysisMQL_23 *) _v2;
912  double _sv1, _sv2;
913  {
914  double time = _o1->time;
915  int Ywire = _o1->Ywire;
916  _sv1 = time;
917  }
918  {
919  double time = _o2->time;
920  int Ywire = _o2->Ywire;
921  _sv2 = time;
922  }
923  double _diff = _sv1 - _sv2;
924  if(_diff < 0) return -1;
925  if(_diff == 0) return 0;
926  if(_diff > 0) return 1;
927 }
929 {
930  double time_1;
931  int Ywire_1;
932  double time_2;
933  int Ywire_2;
934 };
936 
937 // Comparison for muPC1Y_AD on variable time
938 static int _u_MMuPC1AnalysisMQL_71(const void *_v1, const void *_v2)
939 {
940  struct _u_MMuPC1AnalysisMQL_23 *_o1 = (struct _u_MMuPC1AnalysisMQL_23 *) _v1;
941  struct _u_MMuPC1AnalysisMQL_23 *_o2 = (struct _u_MMuPC1AnalysisMQL_23 *) _v2;
942  double _sv1, _sv2;
943  {
944  double time = _o1->time;
945  int Ywire = _o1->Ywire;
946  _sv1 = time;
947  }
948  {
949  double time = _o2->time;
950  int Ywire = _o2->Ywire;
951  _sv2 = time;
952  }
953  double _diff = _sv1 - _sv2;
954  if(_diff < 0) return -1;
955  if(_diff == 0) return 0;
956  if(_diff > 0) return 1;
957 }
958 // Comparison for muPC1Y_AD on variable time
959 static int _u_MMuPC1AnalysisMQL_72(const void *_v1, const void *_v2)
960 {
961  struct _u_MMuPC1AnalysisMQL_23 *_o1 = (struct _u_MMuPC1AnalysisMQL_23 *) _v1;
962  struct _u_MMuPC1AnalysisMQL_23 *_o2 = (struct _u_MMuPC1AnalysisMQL_23 *) _v2;
963  double _sv1, _sv2;
964  {
965  double time = _o1->time;
966  int Ywire = _o1->Ywire;
967  _sv1 = time;
968  }
969  {
970  double time = _o2->time;
971  int Ywire = _o2->Ywire;
972  _sv2 = time;
973  }
974  double _diff = _sv1 - _sv2;
975  if(_diff < 0) return -1;
976  if(_diff == 0) return 0;
977  if(_diff > 0) return 1;
978 }
982 {
983  double time;
986 };
988 
989 // Comparison for muPC1Y_AD on variable time
990 static int _u_MMuPC1AnalysisMQL_73(const void *_v1, const void *_v2)
991 {
992  struct _u_MMuPC1AnalysisMQL_23 *_o1 = (struct _u_MMuPC1AnalysisMQL_23 *) _v1;
993  struct _u_MMuPC1AnalysisMQL_23 *_o2 = (struct _u_MMuPC1AnalysisMQL_23 *) _v2;
994  double _sv1, _sv2;
995  {
996  double time = _o1->time;
997  int Ywire = _o1->Ywire;
998  _sv1 = time;
999  }
1000  {
1001  double time = _o2->time;
1002  int Ywire = _o2->Ywire;
1003  _sv2 = time;
1004  }
1005  double _diff = _sv1 - _sv2;
1006  if(_diff < 0) return -1;
1007  if(_diff == 0) return 0;
1008  if(_diff > 0) return 1;
1009 }
1010 // Comparison for muPC1Y_cluster_contiguous on variable time
1011 static int _u_MMuPC1AnalysisMQL_74(const void *_v1, const void *_v2)
1012 {
1013  struct _u_MMuPC1AnalysisMQL_25 *_o1 = (struct _u_MMuPC1AnalysisMQL_25 *) _v1;
1014  struct _u_MMuPC1AnalysisMQL_25 *_o2 = (struct _u_MMuPC1AnalysisMQL_25 *) _v2;
1015  double _sv1, _sv2;
1016  {
1017  double time = _o1->time;
1018  int Ywire_min = _o1->Ywire_min;
1019  int Ywire_max = _o1->Ywire_max;
1020  _sv1 = time;
1021  }
1022  {
1023  double time = _o2->time;
1024  int Ywire_min = _o2->Ywire_min;
1025  int Ywire_max = _o2->Ywire_max;
1026  _sv2 = time;
1027  }
1028  double _diff = _sv1 - _sv2;
1029  if(_diff < 0) return -1;
1030  if(_diff == 0) return 0;
1031  if(_diff > 0) return 1;
1032 }
1034 {
1036 };
1038 
1039 // Comparison for muPC1Y_cluster_contiguous on variable time
1040 static int _u_MMuPC1AnalysisMQL_75(const void *_v1, const void *_v2)
1041 {
1042  struct _u_MMuPC1AnalysisMQL_25 *_o1 = (struct _u_MMuPC1AnalysisMQL_25 *) _v1;
1043  struct _u_MMuPC1AnalysisMQL_25 *_o2 = (struct _u_MMuPC1AnalysisMQL_25 *) _v2;
1044  double _sv1, _sv2;
1045  {
1046  double time = _o1->time;
1047  int Ywire_min = _o1->Ywire_min;
1048  int Ywire_max = _o1->Ywire_max;
1049  _sv1 = time;
1050  }
1051  {
1052  double time = _o2->time;
1053  int Ywire_min = _o2->Ywire_min;
1054  int Ywire_max = _o2->Ywire_max;
1055  _sv2 = time;
1056  }
1057  double _diff = _sv1 - _sv2;
1058  if(_diff < 0) return -1;
1059  if(_diff == 0) return 0;
1060  if(_diff > 0) return 1;
1061 }
1062 // Comparison for muPC1Y_cluster_contiguous on variable time
1063 static int _u_MMuPC1AnalysisMQL_76(const void *_v1, const void *_v2)
1064 {
1065  struct _u_MMuPC1AnalysisMQL_25 *_o1 = (struct _u_MMuPC1AnalysisMQL_25 *) _v1;
1066  struct _u_MMuPC1AnalysisMQL_25 *_o2 = (struct _u_MMuPC1AnalysisMQL_25 *) _v2;
1067  double _sv1, _sv2;
1068  {
1069  double time = _o1->time;
1070  int Ywire_min = _o1->Ywire_min;
1071  int Ywire_max = _o1->Ywire_max;
1072  _sv1 = time;
1073  }
1074  {
1075  double time = _o2->time;
1076  int Ywire_min = _o2->Ywire_min;
1077  int Ywire_max = _o2->Ywire_max;
1078  _sv2 = time;
1079  }
1080  double _diff = _sv1 - _sv2;
1081  if(_diff < 0) return -1;
1082  if(_diff == 0) return 0;
1083  if(_diff > 0) return 1;
1084 }
1087 {
1088  double time;
1089  double Ywire;
1092 };
1094 
1095 // Comparison for muPC1Y_AD on variable time
1096 static int _u_MMuPC1AnalysisMQL_77(const void *_v1, const void *_v2)
1097 {
1098  struct _u_MMuPC1AnalysisMQL_23 *_o1 = (struct _u_MMuPC1AnalysisMQL_23 *) _v1;
1099  struct _u_MMuPC1AnalysisMQL_23 *_o2 = (struct _u_MMuPC1AnalysisMQL_23 *) _v2;
1100  double _sv1, _sv2;
1101  {
1102  double time = _o1->time;
1103  int Ywire = _o1->Ywire;
1104  _sv1 = time;
1105  }
1106  {
1107  double time = _o2->time;
1108  int Ywire = _o2->Ywire;
1109  _sv2 = time;
1110  }
1111  double _diff = _sv1 - _sv2;
1112  if(_diff < 0) return -1;
1113  if(_diff == 0) return 0;
1114  if(_diff > 0) return 1;
1115 }
1116 // Comparison for muPC1Y on variable time
1117 static int _u_MMuPC1AnalysisMQL_78(const void *_v1, const void *_v2)
1118 {
1119  struct _u_MMuPC1AnalysisMQL_27 *_o1 = (struct _u_MMuPC1AnalysisMQL_27 *) _v1;
1120  struct _u_MMuPC1AnalysisMQL_27 *_o2 = (struct _u_MMuPC1AnalysisMQL_27 *) _v2;
1121  double _sv1, _sv2;
1122  {
1123  double time = _o1->time;
1124  double Ywire = _o1->Ywire;
1125  int cluster_size = _o1->cluster_size;
1126  int cluster_width = _o1->cluster_width;
1127  _sv1 = time;
1128  }
1129  {
1130  double time = _o2->time;
1131  double Ywire = _o2->Ywire;
1132  int cluster_size = _o2->cluster_size;
1133  int cluster_width = _o2->cluster_width;
1134  _sv2 = time;
1135  }
1136  double _diff = _sv1 - _sv2;
1137  if(_diff < 0) return -1;
1138  if(_diff == 0) return 0;
1139  if(_diff > 0) return 1;
1140 }
1145 {
1146  double Ywire;
1147  double muPC1Time;
1148 };
1150 
1152 {
1153  double time_1;
1154  double time_2;
1155 };
1157 
1158 // Comparison for muPC1Y on variable time
1159 static int _u_MMuPC1AnalysisMQL_79(const void *_v1, const void *_v2)
1160 {
1161  struct _u_MMuPC1AnalysisMQL_27 *_o1 = (struct _u_MMuPC1AnalysisMQL_27 *) _v1;
1162  struct _u_MMuPC1AnalysisMQL_27 *_o2 = (struct _u_MMuPC1AnalysisMQL_27 *) _v2;
1163  double _sv1, _sv2;
1164  {
1165  double time = _o1->time;
1166  double Ywire = _o1->Ywire;
1167  int cluster_size = _o1->cluster_size;
1168  int cluster_width = _o1->cluster_width;
1169  _sv1 = time;
1170  }
1171  {
1172  double time = _o2->time;
1173  double Ywire = _o2->Ywire;
1174  int cluster_size = _o2->cluster_size;
1175  int cluster_width = _o2->cluster_width;
1176  _sv2 = time;
1177  }
1178  double _diff = _sv1 - _sv2;
1179  if(_diff < 0) return -1;
1180  if(_diff == 0) return 0;
1181  if(_diff > 0) return 1;
1182 }
1183 // Comparison for muPC1Y on variable time
1184 static int _u_MMuPC1AnalysisMQL_80(const void *_v1, const void *_v2)
1185 {
1186  struct _u_MMuPC1AnalysisMQL_27 *_o1 = (struct _u_MMuPC1AnalysisMQL_27 *) _v1;
1187  struct _u_MMuPC1AnalysisMQL_27 *_o2 = (struct _u_MMuPC1AnalysisMQL_27 *) _v2;
1188  double _sv1, _sv2;
1189  {
1190  double time = _o1->time;
1191  double Ywire = _o1->Ywire;
1192  int cluster_size = _o1->cluster_size;
1193  int cluster_width = _o1->cluster_width;
1194  _sv1 = time;
1195  }
1196  {
1197  double time = _o2->time;
1198  double Ywire = _o2->Ywire;
1199  int cluster_size = _o2->cluster_size;
1200  int cluster_width = _o2->cluster_width;
1201  _sv2 = time;
1202  }
1203  double _diff = _sv1 - _sv2;
1204  if(_diff < 0) return -1;
1205  if(_diff == 0) return 0;
1206  if(_diff > 0) return 1;
1207 }
1210 {
1211  double time1;
1212  double time2;
1213  double wire_diff;
1214 };
1216 
1217 // Comparison for muPC1Y on variable time
1218 static int _u_MMuPC1AnalysisMQL_81(const void *_v1, const void *_v2)
1219 {
1220  struct _u_MMuPC1AnalysisMQL_27 *_o1 = (struct _u_MMuPC1AnalysisMQL_27 *) _v1;
1221  struct _u_MMuPC1AnalysisMQL_27 *_o2 = (struct _u_MMuPC1AnalysisMQL_27 *) _v2;
1222  double _sv1, _sv2;
1223  {
1224  double time = _o1->time;
1225  double Ywire = _o1->Ywire;
1226  int cluster_size = _o1->cluster_size;
1227  int cluster_width = _o1->cluster_width;
1228  _sv1 = time;
1229  }
1230  {
1231  double time = _o2->time;
1232  double Ywire = _o2->Ywire;
1233  int cluster_size = _o2->cluster_size;
1234  int cluster_width = _o2->cluster_width;
1235  _sv2 = time;
1236  }
1237  double _diff = _sv1 - _sv2;
1238  if(_diff < 0) return -1;
1239  if(_diff == 0) return 0;
1240  if(_diff > 0) return 1;
1241 }
1242 // Comparison for muPC1Y on variable time
1243 static int _u_MMuPC1AnalysisMQL_82(const void *_v1, const void *_v2)
1244 {
1245  struct _u_MMuPC1AnalysisMQL_27 *_o1 = (struct _u_MMuPC1AnalysisMQL_27 *) _v1;
1246  struct _u_MMuPC1AnalysisMQL_27 *_o2 = (struct _u_MMuPC1AnalysisMQL_27 *) _v2;
1247  double _sv1, _sv2;
1248  {
1249  double time = _o1->time;
1250  double Ywire = _o1->Ywire;
1251  int cluster_size = _o1->cluster_size;
1252  int cluster_width = _o1->cluster_width;
1253  _sv1 = time;
1254  }
1255  {
1256  double time = _o2->time;
1257  double Ywire = _o2->Ywire;
1258  int cluster_size = _o2->cluster_size;
1259  int cluster_width = _o2->cluster_width;
1260  _sv2 = time;
1261  }
1262  double _diff = _sv1 - _sv2;
1263  if(_diff < 0) return -1;
1264  if(_diff == 0) return 0;
1265  if(_diff > 0) return 1;
1266 }
1269 {
1270  double Xwire;
1271  double Ywire;
1272  double muPC1Time;
1273  double XYtdiff;
1274 };
1276 
1277 // Comparison for muPC1X on variable time
1278 static int _u_MMuPC1AnalysisMQL_83(const void *_v1, const void *_v2)
1279 {
1280  struct _u_MMuPC1AnalysisMQL_13 *_o1 = (struct _u_MMuPC1AnalysisMQL_13 *) _v1;
1281  struct _u_MMuPC1AnalysisMQL_13 *_o2 = (struct _u_MMuPC1AnalysisMQL_13 *) _v2;
1282  double _sv1, _sv2;
1283  {
1284  double time = _o1->time;
1285  double Xwire = _o1->Xwire;
1286  int cluster_size = _o1->cluster_size;
1287  int cluster_width = _o1->cluster_width;
1288  _sv1 = time;
1289  }
1290  {
1291  double time = _o2->time;
1292  double Xwire = _o2->Xwire;
1293  int cluster_size = _o2->cluster_size;
1294  int cluster_width = _o2->cluster_width;
1295  _sv2 = time;
1296  }
1297  double _diff = _sv1 - _sv2;
1298  if(_diff < 0) return -1;
1299  if(_diff == 0) return 0;
1300  if(_diff > 0) return 1;
1301 }
1302 // Comparison for muPC1Y on variable time
1303 static int _u_MMuPC1AnalysisMQL_84(const void *_v1, const void *_v2)
1304 {
1305  struct _u_MMuPC1AnalysisMQL_27 *_o1 = (struct _u_MMuPC1AnalysisMQL_27 *) _v1;
1306  struct _u_MMuPC1AnalysisMQL_27 *_o2 = (struct _u_MMuPC1AnalysisMQL_27 *) _v2;
1307  double _sv1, _sv2;
1308  {
1309  double time = _o1->time;
1310  double Ywire = _o1->Ywire;
1311  int cluster_size = _o1->cluster_size;
1312  int cluster_width = _o1->cluster_width;
1313  _sv1 = time;
1314  }
1315  {
1316  double time = _o2->time;
1317  double Ywire = _o2->Ywire;
1318  int cluster_size = _o2->cluster_size;
1319  int cluster_width = _o2->cluster_width;
1320  _sv2 = time;
1321  }
1322  double _diff = _sv1 - _sv2;
1323  if(_diff < 0) return -1;
1324  if(_diff == 0) return 0;
1325  if(_diff > 0) return 1;
1326 }
1327 // Comparison for muPC1XY on variable muPC1Time
1328 static int _u_MMuPC1AnalysisMQL_85(const void *_v1, const void *_v2)
1329 {
1330  struct _u_MMuPC1AnalysisMQL_31 *_o1 = (struct _u_MMuPC1AnalysisMQL_31 *) _v1;
1331  struct _u_MMuPC1AnalysisMQL_31 *_o2 = (struct _u_MMuPC1AnalysisMQL_31 *) _v2;
1332  double _sv1, _sv2;
1333  {
1334  double Xwire = _o1->Xwire;
1335  double Ywire = _o1->Ywire;
1336  double muPC1Time = _o1->muPC1Time;
1337  double XYtdiff = _o1->XYtdiff;
1338  _sv1 = muPC1Time;
1339  }
1340  {
1341  double Xwire = _o2->Xwire;
1342  double Ywire = _o2->Ywire;
1343  double muPC1Time = _o2->muPC1Time;
1344  double XYtdiff = _o2->XYtdiff;
1345  _sv2 = muPC1Time;
1346  }
1347  double _diff = _sv1 - _sv2;
1348  if(_diff < 0) return -1;
1349  if(_diff == 0) return 0;
1350  if(_diff > 0) return 1;
1351 }
1354 {
1355  double Xwire;
1356  double Ywire;
1357  double muPC1Time;
1358 };
1360 
1363 {
1364  double muPC1Time_1;
1365  double muPC1Time_2;
1366 };
1368 
1369 // Comparison for muPC1 on variable muPC1Time
1370 static int _u_MMuPC1AnalysisMQL_86(const void *_v1, const void *_v2)
1371 {
1372  struct _u_MMuPC1AnalysisMQL_32 *_o1 = (struct _u_MMuPC1AnalysisMQL_32 *) _v1;
1373  struct _u_MMuPC1AnalysisMQL_32 *_o2 = (struct _u_MMuPC1AnalysisMQL_32 *) _v2;
1374  double _sv1, _sv2;
1375  {
1376  double Xwire = _o1->Xwire;
1377  double Ywire = _o1->Ywire;
1378  double muPC1Time = _o1->muPC1Time;
1379  _sv1 = muPC1Time;
1380  }
1381  {
1382  double Xwire = _o2->Xwire;
1383  double Ywire = _o2->Ywire;
1384  double muPC1Time = _o2->muPC1Time;
1385  _sv2 = muPC1Time;
1386  }
1387  double _diff = _sv1 - _sv2;
1388  if(_diff < 0) return -1;
1389  if(_diff == 0) return 0;
1390  if(_diff > 0) return 1;
1391 }
1392 // Comparison for muPC1 on variable muPC1Time
1393 static int _u_MMuPC1AnalysisMQL_87(const void *_v1, const void *_v2)
1394 {
1395  struct _u_MMuPC1AnalysisMQL_32 *_o1 = (struct _u_MMuPC1AnalysisMQL_32 *) _v1;
1396  struct _u_MMuPC1AnalysisMQL_32 *_o2 = (struct _u_MMuPC1AnalysisMQL_32 *) _v2;
1397  double _sv1, _sv2;
1398  {
1399  double Xwire = _o1->Xwire;
1400  double Ywire = _o1->Ywire;
1401  double muPC1Time = _o1->muPC1Time;
1402  _sv1 = muPC1Time;
1403  }
1404  {
1405  double Xwire = _o2->Xwire;
1406  double Ywire = _o2->Ywire;
1407  double muPC1Time = _o2->muPC1Time;
1408  _sv2 = muPC1Time;
1409  }
1410  double _diff = _sv1 - _sv2;
1411  if(_diff < 0) return -1;
1412  if(_diff == 0) return 0;
1413  if(_diff > 0) return 1;
1414 }
1417 {
1418  double time;
1419 };
1421 
1423 {
1424  double Xwire;
1425  double Ywire;
1426  double time;
1427  double muPC1Time;
1428 };
1430 
1431 // Comparison for muSC on variable time
1432 static int _u_MMuPC1AnalysisMQL_88(const void *_v1, const void *_v2)
1433 {
1434  struct _u_MMuPC1AnalysisMQL_34 *_o1 = (struct _u_MMuPC1AnalysisMQL_34 *) _v1;
1435  struct _u_MMuPC1AnalysisMQL_34 *_o2 = (struct _u_MMuPC1AnalysisMQL_34 *) _v2;
1436  double _sv1, _sv2;
1437  {
1438  double time = _o1->time;
1439  _sv1 = time;
1440  }
1441  {
1442  double time = _o2->time;
1443  _sv2 = time;
1444  }
1445  double _diff = _sv1 - _sv2;
1446  if(_diff < 0) return -1;
1447  if(_diff == 0) return 0;
1448  if(_diff > 0) return 1;
1449 }
1450 // Comparison for muPC1 on variable muPC1Time
1451 static int _u_MMuPC1AnalysisMQL_89(const void *_v1, const void *_v2)
1452 {
1453  struct _u_MMuPC1AnalysisMQL_32 *_o1 = (struct _u_MMuPC1AnalysisMQL_32 *) _v1;
1454  struct _u_MMuPC1AnalysisMQL_32 *_o2 = (struct _u_MMuPC1AnalysisMQL_32 *) _v2;
1455  double _sv1, _sv2;
1456  {
1457  double Xwire = _o1->Xwire;
1458  double Ywire = _o1->Ywire;
1459  double muPC1Time = _o1->muPC1Time;
1460  _sv1 = muPC1Time;
1461  }
1462  {
1463  double Xwire = _o2->Xwire;
1464  double Ywire = _o2->Ywire;
1465  double muPC1Time = _o2->muPC1Time;
1466  _sv2 = muPC1Time;
1467  }
1468  double _diff = _sv1 - _sv2;
1469  if(_diff < 0) return -1;
1470  if(_diff == 0) return 0;
1471  if(_diff > 0) return 1;
1472 }
1476 {
1477  double time;
1478 };
1480 
1481 // Comparison for muPC1_sparks_union on variable time
1482 static int _u_MMuPC1AnalysisMQL_90(const void *_v1, const void *_v2)
1483 {
1484  struct _u_MMuPC1AnalysisMQL_36 *_o1 = (struct _u_MMuPC1AnalysisMQL_36 *) _v1;
1485  struct _u_MMuPC1AnalysisMQL_36 *_o2 = (struct _u_MMuPC1AnalysisMQL_36 *) _v2;
1486  double _sv1, _sv2;
1487  {
1488  double time = _o1->time;
1489  _sv1 = time;
1490  }
1491  {
1492  double time = _o2->time;
1493  _sv2 = time;
1494  }
1495  double _diff = _sv1 - _sv2;
1496  if(_diff < 0) return -1;
1497  if(_diff == 0) return 0;
1498  if(_diff > 0) return 1;
1499 }
1501 {
1502  double time;
1504 };
1506 
1507 // Comparison for muPC1_sparks_union on variable time
1508 static int _u_MMuPC1AnalysisMQL_91(const void *_v1, const void *_v2)
1509 {
1510  struct _u_MMuPC1AnalysisMQL_36 *_o1 = (struct _u_MMuPC1AnalysisMQL_36 *) _v1;
1511  struct _u_MMuPC1AnalysisMQL_36 *_o2 = (struct _u_MMuPC1AnalysisMQL_36 *) _v2;
1512  double _sv1, _sv2;
1513  {
1514  double time = _o1->time;
1515  _sv1 = time;
1516  }
1517  {
1518  double time = _o2->time;
1519  _sv2 = time;
1520  }
1521  double _diff = _sv1 - _sv2;
1522  if(_diff < 0) return -1;
1523  if(_diff == 0) return 0;
1524  if(_diff > 0) return 1;
1525 }
1528 {
1529  double time;
1530 };
1532 
1535 
1537 {
1538  if(Tier1)
1539  {
1540  _h_parameters_muPC1 = new TH1D("parameters_muPC1", "#muPC1 hits",
1541  101, 3999.5, 4100.5);
1542  _h_parameters_muPC1->GetXaxis()->SetTitle("parameter");
1543  }
1544  if(Tier3)
1545  {
1546  _h_muPC1_X_raw_autosingles_2D = new TH2D("muPC1_X_raw_autosingles_2D", "#muPC1 raw Xwire singles autocorr 2D",
1547  kMuPC1NumXWires, 0.5, kMuPC1NumXWires+0.5,
1548  kMuPC1NumXWires, 0.5, kMuPC1NumXWires+0.5);
1549  _h_muPC1_X_raw_autosingles_2D->GetXaxis()->SetTitle("Xwire_1");
1550  _h_muPC1_X_raw_autosingles_2D->GetYaxis()->SetTitle("Xwire_2");
1551  }
1552  if(Tier3)
1553  {
1554  _h_muPC1_X_raw_autocorr_all_1D = new TH1D("muPC1_X_raw_autocorr_all_1D", "#muPC1 raw Xwire autocorr neighbors 1D",
1555  11001, -5002.5, 50002.5);
1556  _h_muPC1_X_raw_autocorr_all_1D->GetXaxis()->SetTitle("time_2 - time_1");
1557  }
1558  if(Tier3)
1559  {
1560  _h_muPC1_X_raw_autocorr_2D = new TH2D("muPC1_X_raw_autocorr_2D", "#muPC1 raw Xwire autocorr 2D",
1561  11001, -5002.5, 50002.5,
1562  kMuPC1NumXWires, 0.5, kMuPC1NumXWires+0.5);
1563  _h_muPC1_X_raw_autocorr_2D->GetXaxis()->SetTitle("time_2 - time_1");
1564  _h_muPC1_X_raw_autocorr_2D->GetYaxis()->SetTitle("Xwire_1");
1565  }
1566  if(Tier1)
1567  {
1568  _h_muPC1_spark_search_Xwires = new TH1D("muPC1_spark_search_Xwires", "#muPC1 spark search Xwire cluster_size",
1569  (3*kMuPC1NumXWires), 0.5, (3*kMuPC1NumXWires)+0.5);
1570  _h_muPC1_spark_search_Xwires->GetXaxis()->SetTitle("cluster_size");
1571  }
1572  if(Tier1)
1573  {
1574  _h_muPC1_spark_count_Xwires = new TH1D("muPC1_spark_count_Xwires", "Number of #muPC1 Xwire sparks",
1575  3, -0.5, 2.5);
1576  _h_muPC1_spark_count_Xwires->GetXaxis()->SetTitle("1");
1577  }
1578  if(Tier3)
1579  {
1580  _h_muPC1_X_SC_autocorr_all_1D = new TH1D("muPC1_X_SC_autocorr_all_1D", "#muPC1 SC Xwire autocorr neighbors 1D",
1581  11001, -5002.5, 50002.5);
1582  _h_muPC1_X_SC_autocorr_all_1D->GetXaxis()->SetTitle("time_2 - time_1");
1583  }
1584  if(Tier3)
1585  {
1586  _h_muPC1_X_SC_autocorr_2D = new TH2D("muPC1_X_SC_autocorr_2D", "#muPC1 SC Xwire autocorr 2D",
1587  11001, -5002.5, 50002.5,
1588  kMuPC1NumXWires, 0.5, kMuPC1NumXWires+0.5);
1589  _h_muPC1_X_SC_autocorr_2D->GetXaxis()->SetTitle("time_2 - time_1");
1590  _h_muPC1_X_SC_autocorr_2D->GetYaxis()->SetTitle("Xwire_1");
1591  }
1592  if(Tier3)
1593  {
1594  _h_muPC1_X_AD_autocorr_all_1D = new TH1D("muPC1_X_AD_autocorr_all_1D", "#muPC1 AD Xwire autocorr neighbors 1D",
1595  11001, -5002.5, 50002.5);
1596  _h_muPC1_X_AD_autocorr_all_1D->GetXaxis()->SetTitle("time_2 - time_1");
1597  }
1598  if(Tier3)
1599  {
1600  _h_muPC1_X_AD_autocorr_2D = new TH2D("muPC1_X_AD_autocorr_2D", "#muPC1 AD Xwire autocorr 2D",
1601  11001, -5002.5, 50002.5,
1602  kMuPC1NumXWires, 0.5, kMuPC1NumXWires+0.5);
1603  _h_muPC1_X_AD_autocorr_2D->GetXaxis()->SetTitle("time_2 - time_1");
1604  _h_muPC1_X_AD_autocorr_2D->GetYaxis()->SetTitle("Xwire_1");
1605  }
1606  if(Tier3)
1607  {
1608  _h_muPC1_X_cluster_contiguous_separation = new TH1D("muPC1_X_cluster_contiguous_separation", "#muPC1 Xwire contiguous cluster wire separation",
1609  31, -0.5, 30.5);
1610  _h_muPC1_X_cluster_contiguous_separation->GetXaxis()->SetTitle("cluster_sep");
1611  }
1612  if(Tier1)
1613  {
1614  _h_muPC1_X_final_cluster_size = new TH1D("muPC1_X_final_cluster_size", "#muPC1 Xwire cluster size",
1615  kMuPC1NumXWires+1, 0.5, kMuPC1NumXWires+1.5);
1616  _h_muPC1_X_final_cluster_size->GetXaxis()->SetTitle("cluster_size");
1617  }
1618  if(Tier1)
1619  {
1620  _h_muPC1_X_final_cluster_width = new TH1D("muPC1_X_final_cluster_width", "#muPC1 Xwire cluster width",
1621  kMuPC1NumXWires+1, 0.5, kMuPC1NumXWires+1.5);
1622  _h_muPC1_X_final_cluster_width->GetXaxis()->SetTitle("cluster_width");
1623  }
1624  if(Tier1)
1625  {
1626  _h_muPC1_X_final_cluster_avg = new TH1D("muPC1_X_final_cluster_avg", "#muPC1 Xwire cluster average",
1627  kMuPC1NumXWires, 0.5, kMuPC1NumXWires+0.5);
1628  _h_muPC1_X_final_cluster_avg->GetXaxis()->SetTitle("Xwire");
1629  }
1630  if(Tier3)
1631  {
1632  _h_muPC1_X_final_cluster_autocorr_all_1D = new TH1D("muPC1_X_final_cluster_autocorr_all_1D", "#muPC1 clustered Xwire autocorr neighbors 1D",
1633  11001, -5002.5, 50002.5);
1634  _h_muPC1_X_final_cluster_autocorr_all_1D->GetXaxis()->SetTitle("time_2 - time_1");
1635  }
1636  if(Tier3)
1637  {
1638  _h_muPC1_X_final_cluster_autocorr_spatial_all_1D = new TH1D("muPC1_X_final_cluster_autocorr_spatial_all_1D", "#muPC1X clustered autocorr neighbors spatial, 0-150 ns",
1639  kMuPC1NumXWires+1, -0.5, kMuPC1NumXWires+0.5);
1640  _h_muPC1_X_final_cluster_autocorr_spatial_all_1D->GetXaxis()->SetTitle("wire_diff");
1641  }
1642  if(Tier3)
1643  {
1644  _h_muPC1_Y_raw_autosingles_2D = new TH2D("muPC1_Y_raw_autosingles_2D", "#muPC1 raw Ywire singles autocorr 2D",
1645  kMuPC1NumYWires, 0.5, kMuPC1NumYWires+0.5,
1646  kMuPC1NumYWires, 0.5, kMuPC1NumYWires+0.5);
1647  _h_muPC1_Y_raw_autosingles_2D->GetXaxis()->SetTitle("Ywire_1");
1648  _h_muPC1_Y_raw_autosingles_2D->GetYaxis()->SetTitle("Ywire_2");
1649  }
1650  if(Tier3)
1651  {
1652  _h_muPC1_Y_raw_autocorr_all_1D = new TH1D("muPC1_Y_raw_autocorr_all_1D", "#muPC1 raw Ywire autocorr neighbors 1D",
1653  11001, -5002.5, 50002.5);
1654  _h_muPC1_Y_raw_autocorr_all_1D->GetXaxis()->SetTitle("time_2 - time_1");
1655  }
1656  if(Tier3)
1657  {
1658  _h_muPC1_Y_raw_autocorr_2D = new TH2D("muPC1_Y_raw_autocorr_2D", "#muPC1 raw Ywire autocorr 2D",
1659  11001, -5002.5, 50002.5,
1660  kMuPC1NumYWires, 0.5, kMuPC1NumYWires+0.5);
1661  _h_muPC1_Y_raw_autocorr_2D->GetXaxis()->SetTitle("time_2 - time_1");
1662  _h_muPC1_Y_raw_autocorr_2D->GetYaxis()->SetTitle("Ywire_1");
1663  }
1664  if(Tier1)
1665  {
1666  _h_muPC1_spark_search_Ywires = new TH1D("muPC1_spark_search_Ywires", "#muPC1 spark search Ywire cluster_size",
1667  (3*kMuPC1NumYWires), 0.5, (3*kMuPC1NumYWires)+0.5);
1668  _h_muPC1_spark_search_Ywires->GetXaxis()->SetTitle("cluster_size");
1669  }
1670  if(Tier1)
1671  {
1672  _h_muPC1_spark_count_Ywires = new TH1D("muPC1_spark_count_Ywires", "Number of #muPC1 Ywire sparks",
1673  3, -0.5, 2.5);
1674  _h_muPC1_spark_count_Ywires->GetXaxis()->SetTitle("1");
1675  }
1676  if(Tier3)
1677  {
1678  _h_muPC1_Y_SC_autocorr_all_1D = new TH1D("muPC1_Y_SC_autocorr_all_1D", "#muPC1 SC Ywire autocorr neighbors 1D",
1679  11001, -5002.5, 50002.5);
1680  _h_muPC1_Y_SC_autocorr_all_1D->GetXaxis()->SetTitle("time_2 - time_1");
1681  }
1682  if(Tier3)
1683  {
1684  _h_muPC1_Y_SC_autocorr_2D = new TH2D("muPC1_Y_SC_autocorr_2D", "#muPC1 SC Ywire autocorr 2D",
1685  11001, -5002.5, 50002.5,
1686  kMuPC1NumYWires, 0.5, kMuPC1NumYWires+0.5);
1687  _h_muPC1_Y_SC_autocorr_2D->GetXaxis()->SetTitle("time_2 - time_1");
1688  _h_muPC1_Y_SC_autocorr_2D->GetYaxis()->SetTitle("Ywire_1");
1689  }
1690  if(Tier3)
1691  {
1692  _h_muPC1_Y_AD_autocorr_all_1D = new TH1D("muPC1_Y_AD_autocorr_all_1D", "#muPC1 AD Ywire autocorr neighbors 1D",
1693  11001, -5002.5, 50002.5);
1694  _h_muPC1_Y_AD_autocorr_all_1D->GetXaxis()->SetTitle("time_2 - time_1");
1695  }
1696  if(Tier3)
1697  {
1698  _h_muPC1_Y_AD_autocorr_2D = new TH2D("muPC1_Y_AD_autocorr_2D", "#muPC1 AD Ywire autocorr 2D",
1699  11001, -5002.5, 50002.5,
1700  kMuPC1NumYWires, 0.5, kMuPC1NumYWires+0.5);
1701  _h_muPC1_Y_AD_autocorr_2D->GetXaxis()->SetTitle("time_2 - time_1");
1702  _h_muPC1_Y_AD_autocorr_2D->GetYaxis()->SetTitle("Ywire_1");
1703  }
1704  if(Tier3)
1705  {
1706  _h_muPC1_Y_cluster_contiguous_separation = new TH1D("muPC1_Y_cluster_contiguous_separation", "#muPC1 Ywire contiguous cluster wire separation",
1707  31, -0.5, 30.5);
1708  _h_muPC1_Y_cluster_contiguous_separation->GetXaxis()->SetTitle("cluster_sep");
1709  }
1710  if(Tier1)
1711  {
1712  _h_muPC1_Y_final_cluster_size = new TH1D("muPC1_Y_final_cluster_size", "#muPC1 Ywire cluster size",
1713  kMuPC1NumYWires+1, 0.5, kMuPC1NumYWires+1.5);
1714  _h_muPC1_Y_final_cluster_size->GetXaxis()->SetTitle("cluster_size");
1715  }
1716  if(Tier1)
1717  {
1718  _h_muPC1_Y_final_cluster_width = new TH1D("muPC1_Y_final_cluster_width", "#muPC1 Ywire cluster width",
1719  kMuPC1NumYWires+1, 0.5, kMuPC1NumYWires+1.5);
1720  _h_muPC1_Y_final_cluster_width->GetXaxis()->SetTitle("cluster_width");
1721  }
1722  if(Tier1)
1723  {
1724  _h_muPC1_Y_final_cluster_avg = new TH1D("muPC1_Y_final_cluster_avg", "#muPC1 Ywire cluster average",
1725  kMuPC1NumYWires, 0.5, kMuPC1NumYWires+0.5);
1726  _h_muPC1_Y_final_cluster_avg->GetXaxis()->SetTitle("Ywire");
1727  }
1728  if(Tier3)
1729  {
1730  _h_muPC1_Y_final_cluster_autocorr_all_1D = new TH1D("muPC1_Y_final_cluster_autocorr_all_1D", "#muPC1 clustered Ywire autocorr neighbors 1D",
1731  11001, -5002.5, 50002.5);
1732  _h_muPC1_Y_final_cluster_autocorr_all_1D->GetXaxis()->SetTitle("time_2 - time_1");
1733  }
1734  if(Tier3)
1735  {
1736  _h_muPC1_Y_final_cluster_autocorr_spatial_all_1D = new TH1D("muPC1_Y_final_cluster_autocorr_spatial_all_1D", "#muPC1Y clustered autocorr neighbors spatial, 0-150 ns",
1737  kMuPC1NumYWires+1, -0.5, kMuPC1NumYWires+0.5);
1738  _h_muPC1_Y_final_cluster_autocorr_spatial_all_1D->GetXaxis()->SetTitle("wire_diff");
1739  }
1740  if(Tier1)
1741  {
1742  _h_muPC1_coinc_XY_tdiff = new TH1D("muPC1_coinc_XY_tdiff", "#muPC1 wires: T_{Y} - T_{X}",
1743  961, -600.625, 600.625);
1744  _h_muPC1_coinc_XY_tdiff->GetXaxis()->SetTitle("XYtdiff");
1745  }
1746  if(Tier1)
1747  {
1748  _h_muPC1_coinc_XY_2D = new TH2D("muPC1_coinc_XY_2D", "#muPC1 2D XY-coincidences",
1749  kMuPC1NumXWires, 0.5, kMuPC1NumXWires+0.5,
1750  kMuPC1NumYWires, 0.5, kMuPC1NumYWires+0.5);
1751  _h_muPC1_coinc_XY_2D->GetXaxis()->SetTitle("Xwire");
1752  _h_muPC1_coinc_XY_2D->GetYaxis()->SetTitle("Ywire");
1753  }
1754  if(Tier3)
1755  {
1756  _h_muPC1_coinc_XY_autocorr_all_1D = new TH1D("muPC1_coinc_XY_autocorr_all_1D", "#muPC1 XY-coinc autocorr neighbors 1D",
1757  11001, -5002.5, 50002.5);
1758  _h_muPC1_coinc_XY_autocorr_all_1D->GetXaxis()->SetTitle("muPC1Time_2 - muPC1Time_1");
1759  }
1760  _h_muSC_muPC1_time_difference = new TH1D("muSC_muPC1_time_difference", "Time difference of hits between muSC - muPC",
1761  501, -10020, 10020);
1762  _h_muSC_muPC1_time_difference->GetXaxis()->SetTitle("time-muPC1Time");
1763  if(Tier1)
1764  {
1765  _h_muPC1_coinc_XY_2D_with_muSC = new TH2D("muPC1_coinc_XY_2D_with_muSC", "#muPC1 2D XY-coincidences with muSC coincidence",
1766  kMuPC1NumXWires, 0.5, kMuPC1NumXWires+0.5,
1767  kMuPC1NumYWires, 0.5, kMuPC1NumYWires+0.5);
1768  _h_muPC1_coinc_XY_2D_with_muSC->GetXaxis()->SetTitle("Xwire");
1769  _h_muPC1_coinc_XY_2D_with_muSC->GetYaxis()->SetTitle("Ywire");
1770  }
1771  if(Tier1)
1772  {
1773  _h_muPC1_spark_clustered_blocktime = new TH1D("muPC1_spark_clustered_blocktime", "Time of muPC1 sparks, after clustering (500ms window)",
1774  500, 0, 500000000);
1775  _h_muPC1_spark_clustered_blocktime->GetXaxis()->SetTitle("time");
1776  }
1777  if(Tier1)
1778  {
1779  _h_muPC1_spark_chamberwide_count = new TH1D("muPC1_spark_chamberwide_count", "Number of 2-plane muPC1 sparks",
1780  3, -0.5, 2.5);
1781  _h_muPC1_spark_chamberwide_count->GetXaxis()->SetTitle("1");
1782  }
1783  if(Tier1)
1784  {
1785  _h_muPC1_spark_chamberwide_blocktime = new TH1D("muPC1_spark_chamberwide_blocktime", "Time of 2-plane muPC1 sparks (500ms window)",
1786  500, 0, 500000000);
1787  _h_muPC1_spark_chamberwide_blocktime->GetXaxis()->SetTitle("time");
1788  }
1789  return SUCCESS;
1790 }
1791 
1792 INT MMuPC1AnalysisMQL(EVENT_HEADER *pheader, void *pevent)
1793 {
1794  _t_muPC1X_auto.reset();
1795  _t_muPC1_sparks_union.reset();
1796  _t_muPC1X_cluster_contiguous.reset();
1797  _t_muPC1Y_temporal_auto.reset();
1798  _t_muPC1X_raw_auto.reset();
1799  _t_muPC1X_AD.reset();
1800  _t_muPC1Y_spark_search.reset();
1801  _t_muPC1X_cluster_contiguous_sep.reset();
1802  _t_muPC1X_spatial_auto.reset();
1803  _t_muPC1X_export.reset();
1804  _t_muPC1X_SC.reset();
1805  _t_muPC1Y_export.reset();
1806  _t_muPC1Y_raw_auto.reset();
1807  _t_muPC1Y.reset();
1808  _t_muPC1X.reset();
1809  _t_muSC.reset();
1810  _t_muPC1Y_cluster_contiguous_sep.reset();
1811  _t_muPC1_auto.reset();
1812  _t_muPC1Y_SC_auto.reset();
1813  _t_hits.reset();
1814  _t_muPC1X_spark_search.reset();
1815  _t_muPC1X_AD_auto.reset();
1816  _t_muPC1X_sparks.reset();
1817  _t_muPC1Y_sparks.reset();
1818  _t_muPC1.reset();
1819  _t_muPC1Y_AD.reset();
1820  _t_muPC1_sparks_clustered.reset();
1821  _t_muPC1_hits.reset();
1822  _t_muPC1Y_raw.reset();
1823  _t_muPC1Y_SC.reset();
1824  _t_muSC_muPC1.reset();
1825  _t_muPC1_sparks_chamberwide.reset();
1826  _t_muPC1Y_AD_auto.reset();
1827  _t_muPC1Y_cluster_contiguous.reset();
1828  _t_muPC1XY.reset();
1829  _t_muPC1Y_spatial_auto.reset();
1830  _t_muPC1X_raw.reset();
1831  _t_muPC1X_SC_auto.reset();
1832  int _u_MMuPC1AnalysisMQL_92 = 0;
1833  double _u_MMuPC1AnalysisMQL_93 = 0;
1834  bool _u_MMuPC1AnalysisMQL_94 = false;
1835  bool _u_MMuPC1AnalysisMQL_95 = false;
1836  int _u_MMuPC1AnalysisMQL_96 = 0;
1837  int _u_MMuPC1AnalysisMQL_97 = 0;
1838  double _u_MMuPC1AnalysisMQL_98 = 0;
1839  bool _u_MMuPC1AnalysisMQL_99 = false;
1840  bool _u_MMuPC1AnalysisMQL_100 = false;
1841  int _u_MMuPC1AnalysisMQL_101 = 0;
1842  int _u_MMuPC1AnalysisMQL_102 = 0;
1843  double _u_MMuPC1AnalysisMQL_103 = 0;
1844  bool _u_MMuPC1AnalysisMQL_104 = false;
1845  bool _u_MMuPC1AnalysisMQL_105 = false;
1846  int _u_MMuPC1AnalysisMQL_106 = 0;
1847  int _u_MMuPC1AnalysisMQL_107 = 0;
1848  double _u_MMuPC1AnalysisMQL_108 = 0;
1849  bool _u_MMuPC1AnalysisMQL_109 = false;
1850  bool _u_MMuPC1AnalysisMQL_110 = false;
1851  int _u_MMuPC1AnalysisMQL_111 = 0;
1852  int _u_MMuPC1AnalysisMQL_112 = 0;
1853  double _u_MMuPC1AnalysisMQL_113 = 0;
1854  bool _u_MMuPC1AnalysisMQL_114 = false;
1855  bool _u_MMuPC1AnalysisMQL_115 = false;
1856  int _u_MMuPC1AnalysisMQL_116 = 0;
1857  int _u_MMuPC1AnalysisMQL_117 = 0;
1858  double _u_MMuPC1AnalysisMQL_118 = 0;
1859  bool _u_MMuPC1AnalysisMQL_119 = false;
1860  bool _u_MMuPC1AnalysisMQL_120 = false;
1861  int _u_MMuPC1AnalysisMQL_121 = 0;
1862  double _u_MMuPC1AnalysisMQL_122 = 0;
1863  bool _u_MMuPC1AnalysisMQL_123 = false;
1864  bool _u_MMuPC1AnalysisMQL_124 = false;
1865  int _u_MMuPC1AnalysisMQL_125 = 0;
1866  double _u_MMuPC1AnalysisMQL_126 = 0;
1867  bool _u_MMuPC1AnalysisMQL_127 = false;
1868  bool _u_MMuPC1AnalysisMQL_128 = false;
1869  int _u_MMuPC1AnalysisMQL_129 = 0;
1870  int _u_MMuPC1AnalysisMQL_130 = 0;
1871  double _u_MMuPC1AnalysisMQL_131 = 0;
1872  bool _u_MMuPC1AnalysisMQL_132 = false;
1873  bool _u_MMuPC1AnalysisMQL_133 = false;
1874  int _u_MMuPC1AnalysisMQL_134 = 0;
1875  int _u_MMuPC1AnalysisMQL_135 = 0;
1876  double _u_MMuPC1AnalysisMQL_136 = 0;
1877  bool _u_MMuPC1AnalysisMQL_137 = false;
1878  bool _u_MMuPC1AnalysisMQL_138 = false;
1879  int _u_MMuPC1AnalysisMQL_139 = 0;
1880  int _u_MMuPC1AnalysisMQL_140 = 0;
1881  double _u_MMuPC1AnalysisMQL_141 = 0;
1882  bool _u_MMuPC1AnalysisMQL_142 = false;
1883  bool _u_MMuPC1AnalysisMQL_143 = false;
1884  int _u_MMuPC1AnalysisMQL_144 = 0;
1885  int _u_MMuPC1AnalysisMQL_145 = 0;
1886  double _u_MMuPC1AnalysisMQL_146 = 0;
1887  bool _u_MMuPC1AnalysisMQL_147 = false;
1888  bool _u_MMuPC1AnalysisMQL_148 = false;
1889  int _u_MMuPC1AnalysisMQL_149 = 0;
1890  int _u_MMuPC1AnalysisMQL_150 = 0;
1891  double _u_MMuPC1AnalysisMQL_151 = 0;
1892  bool _u_MMuPC1AnalysisMQL_152 = false;
1893  bool _u_MMuPC1AnalysisMQL_153 = false;
1894  int _u_MMuPC1AnalysisMQL_154 = 0;
1895  double _u_MMuPC1AnalysisMQL_155 = 0;
1896  bool _u_MMuPC1AnalysisMQL_156 = false;
1897  bool _u_MMuPC1AnalysisMQL_157 = false;
1898  int _u_MMuPC1AnalysisMQL_158 = 0;
1899  double _u_MMuPC1AnalysisMQL_159 = 0;
1900  bool _u_MMuPC1AnalysisMQL_160 = false;
1901  bool _u_MMuPC1AnalysisMQL_161 = false;
1902  int _u_MMuPC1AnalysisMQL_162 = 0;
1903  double _u_MMuPC1AnalysisMQL_163 = 0;
1904  bool _u_MMuPC1AnalysisMQL_164 = false;
1905  bool _u_MMuPC1AnalysisMQL_165 = false;
1906  int _u_MMuPC1AnalysisMQL_166 = 0;
1907  double _u_MMuPC1AnalysisMQL_167 = 0;
1908  bool _u_MMuPC1AnalysisMQL_168 = false;
1909  bool _u_MMuPC1AnalysisMQL_169 = false;
1910  int _u_MMuPC1AnalysisMQL_170 = 0;
1911  _t_hits.fromBank(pevent, "HITS");
1912 
1913  for(int _u_MMuPC1AnalysisMQL_171 = 0; _u_MMuPC1AnalysisMQL_171 < _t_hits.size(); _u_MMuPC1AnalysisMQL_171++)
1914  {
1915  double time = _t_hits[_u_MMuPC1AnalysisMQL_171].time;
1916  int parameter = _t_hits[_u_MMuPC1AnalysisMQL_171].parameter;
1917  if((parameter >= 4001) && (parameter <= 4074))
1918  {
1919  {
1920  double time_0 = time;
1921  int parameter_0 = parameter;
1922  double time = time_0;
1923  int parameter = parameter_0;
1924  if((parameter >= 4001) && (parameter <= (4000+kMuPC1NumXWires)))
1925  {
1926  {
1927  double time_0 = time;
1928  int Xwire = parameter - 4000;
1929  double time = time_0;
1930  int _u_MMuPC1AnalysisMQL_172 = _t_muPC1X_raw.next();
1931  _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_172].time = time_0;
1932  _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_172].Xwire = Xwire;
1933  }
1934  }
1935  if((parameter >= 4051) && (parameter <= (4050+kMuPC1NumYWires)))
1936  {
1937  {
1938  double time_0 = time;
1939  int Ywire = parameter - 4050;
1940  double time = time_0;
1941  int _u_MMuPC1AnalysisMQL_173 = _t_muPC1Y_raw.next();
1942  _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_173].time = time_0;
1943  _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_173].Ywire = Ywire;
1944  }
1945  }
1946  if(Tier1)
1947  {
1948  _h_parameters_muPC1->Fill(parameter);
1949  }
1950  }
1951  }
1952  if((parameter == 6011))
1953  {
1954  {
1955  double time_0 = time;
1956  double time = time_0;
1957  int _u_MMuPC1AnalysisMQL_174 = _t_muSC.next();
1958  _t_muSC[_u_MMuPC1AnalysisMQL_174].time = time_0;
1959  }
1960  }
1961  }
1962  if(Tier3)
1963  {
1964  for(int _u_MMuPC1AnalysisMQL_175 = 0; _u_MMuPC1AnalysisMQL_175 < _t_muPC1X_raw.size(); _u_MMuPC1AnalysisMQL_175++)
1965  {
1966  double time = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_175].time;
1967  int Xwire = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_175].Xwire;
1968  {
1969 
1970  double time_1 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_175].time;
1971  int Xwire_1 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_175].Xwire;
1972 
1973  if(!_u_MMuPC1AnalysisMQL_94)
1974  {
1975  if(!_t_muPC1X_raw.checkSort(_u_MMuPC1AnalysisMQL_40))
1976  {
1977  printf("Warning: table muPC1X_raw is not sorted on time_2 as required for join with muPC1X_raw (_u_MMuPC1AnalysisMQL_40)\n");
1978  }
1979  _u_MMuPC1AnalysisMQL_94 = true;
1980  }
1981  else if(!_u_MMuPC1AnalysisMQL_95)
1982  {
1983  if(!(time_1 >= _u_MMuPC1AnalysisMQL_93))
1984  {
1985  printf("Warning: table muPC1X_raw is not sorted on time_1 as required for join with muPC1X_raw\n");
1986  _u_MMuPC1AnalysisMQL_95 = true;
1987  }
1988  }
1989  _u_MMuPC1AnalysisMQL_93 = time_1;
1990  for( ; _u_MMuPC1AnalysisMQL_92 < _t_muPC1X_raw.size(); _u_MMuPC1AnalysisMQL_92++)
1991  {
1992  double time_2 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_92].time;
1993  int Xwire_2 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_92].Xwire;
1994 
1995  double _u_MMuPC1AnalysisMQL_176 = time_1 - time_2;
1996  if(_u_MMuPC1AnalysisMQL_176 < 1)
1997  {
1998  break;
1999  }
2000  }
2001  for(int _u_MMuPC1AnalysisMQL_178 = _u_MMuPC1AnalysisMQL_92; _u_MMuPC1AnalysisMQL_178 < _t_muPC1X_raw.size(); _u_MMuPC1AnalysisMQL_178++)
2002  {
2003  double time_2 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_178].time;
2004  int Xwire_2 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_178].Xwire;
2005 
2006  double _u_MMuPC1AnalysisMQL_176 = time_1 - time_2;
2007  if(_u_MMuPC1AnalysisMQL_176 < -50005)
2008  {
2009  break;
2010  }
2011  {
2012  double time_1_0 = time_1;
2013  int Xwire_1_0 = Xwire_1;
2014  double time_2_0 = time_2;
2015  int Xwire_2_0 = Xwire_2;
2016  double time_1 = time_1_0;
2017  int Xwire_1 = Xwire_1_0;
2018  double time_2 = time_2_0;
2019  int Xwire_2 = Xwire_2_0;
2020  if(Tier3)
2021  {
2022  _h_muPC1_X_raw_autosingles_2D->Fill(Xwire_1, Xwire_2);
2023  }
2024  if(Tier3)
2025  {
2026  if((time_2 - time_1) >= 0)
2027  {
2028  _h_muPC1_X_raw_autocorr_all_1D->Fill(time_2 - time_1);
2029  }
2030  }
2031  if(Tier3)
2032  {
2033  if(((time_2 - time_1) >= 0) && (Xwire_1==Xwire_2))
2034  {
2035  _h_muPC1_X_raw_autocorr_2D->Fill(time_2 - time_1, Xwire_1);
2036  }
2037  }
2038  }
2039  }
2040  }
2041  }
2042  }
2043  bool _u_MMuPC1AnalysisMQL_179[_t_muPC1X_raw.size()];
2044  memset(_u_MMuPC1AnalysisMQL_179, 0, sizeof(_u_MMuPC1AnalysisMQL_179));
2045  if(!_t_muPC1X_raw.checkSort(_u_MMuPC1AnalysisMQL_41))
2046  {
2047  printf("Warning: table muPC1X_raw is not sorted on time_1 as required for cluster.\n");
2048  }
2049  for(int _u_MMuPC1AnalysisMQL_180 = 0; _u_MMuPC1AnalysisMQL_180 < _t_muPC1X_raw.size(); _u_MMuPC1AnalysisMQL_180++)
2050  {
2051  double time = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_180].time;
2052  int Xwire = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_180].Xwire;
2053  if(_u_MMuPC1AnalysisMQL_179[_u_MMuPC1AnalysisMQL_180])
2054  {
2055  continue;
2056  }
2057  _u_MMuPC1AnalysisMQL_179[_u_MMuPC1AnalysisMQL_180] = true;
2058  int cluster_size = 1;
2059  int cluster_members[_t_muPC1X_raw.size()];
2060  cluster_members[0] = _u_MMuPC1AnalysisMQL_180;
2061 
2062  for(int _u_MMuPC1AnalysisMQL_181 = _u_MMuPC1AnalysisMQL_180 + 1; _u_MMuPC1AnalysisMQL_181 < _t_muPC1X_raw.size(); _u_MMuPC1AnalysisMQL_181++)
2063  {
2064  if(_u_MMuPC1AnalysisMQL_179[_u_MMuPC1AnalysisMQL_181])
2065  {
2066  continue;
2067  }
2068  bool coincidence_seen = false;
2069  for(int _u_MMuPC1AnalysisMQL_182 = 0; _u_MMuPC1AnalysisMQL_182 < cluster_size; _u_MMuPC1AnalysisMQL_182++)
2070  {
2071  int _u_MMuPC1AnalysisMQL_183 = cluster_members[_u_MMuPC1AnalysisMQL_182];
2072  double time_1 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_183].time;
2073  double time_2 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_181].time;
2074  int Xwire_1 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_183].Xwire;
2075  int Xwire_2 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_181].Xwire;
2076 
2077  double _u_MMuPC1AnalysisMQL_184 = time_1 - time_2;
2078  if(_u_MMuPC1AnalysisMQL_184 < -1000)
2079  {
2080  continue;
2081  }
2082  coincidence_seen = true;
2083  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_181;
2084  _u_MMuPC1AnalysisMQL_179[_u_MMuPC1AnalysisMQL_181] = true;
2085  _u_MMuPC1AnalysisMQL_181 = _u_MMuPC1AnalysisMQL_180;
2086  break;
2087  }
2088  if(!coincidence_seen)
2089  {
2090  break;
2091  }
2092  }
2093  double time_min = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_180].time;
2094  double time_max = time_min;
2095  double time_sum = 0;
2096  int Xwire_min = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_180].Xwire;
2097  int Xwire_max = Xwire_min;
2098  int Xwire_sum = 0;
2099  for(int _u_MMuPC1AnalysisMQL_182 = 0; _u_MMuPC1AnalysisMQL_182 < cluster_size; _u_MMuPC1AnalysisMQL_182++)
2100  {
2101  int _u_MMuPC1AnalysisMQL_183 = cluster_members[_u_MMuPC1AnalysisMQL_182];
2102  time = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_183].time;
2103  time_min = MIN(time_min, time);
2104  time_max = MAX(time_max, time);
2105  time_sum = time_sum + time;
2106  Xwire = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_183].Xwire;
2107  Xwire_min = MIN(Xwire_min, Xwire);
2108  Xwire_max = MAX(Xwire_max, Xwire);
2109  Xwire_sum = Xwire_sum + Xwire;
2110  }
2111  double time_1 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_180].time;
2112  double time_avg = time_sum/((double)cluster_size);
2113  double time_width = time_max - time_min + 1;
2114  int Xwire_1 = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_180].Xwire;
2115  double Xwire_avg = Xwire_sum/((double)cluster_size);
2116  int Xwire_width = Xwire_max - Xwire_min + 1;
2117  {
2118  double time = time_min;
2119  int cluster_size_0 = cluster_size;
2120  int cluster_size = cluster_size_0;
2121  if((cluster_size >= kMuPC1XSparkSizeCutoff))
2122  {
2123  {
2124  double time_0 = time;
2125  double time = time_0;
2126  if(Tier1)
2127  {
2128  _h_muPC1_spark_count_Xwires->Fill(1);
2129  }
2130  int _u_MMuPC1AnalysisMQL_185 = _t_muPC1X_sparks.next();
2131  _t_muPC1X_sparks[_u_MMuPC1AnalysisMQL_185].time = time_0;
2132  }
2133  }
2134  if(Tier1)
2135  {
2136  _h_muPC1_spark_search_Xwires->Fill(cluster_size);
2137  }
2138  }
2139  }
2140  _t_muPC1X_spark_search.sort(_u_MMuPC1AnalysisMQL_42);
2141  for(int _u_MMuPC1AnalysisMQL_186 = 0; _u_MMuPC1AnalysisMQL_186 < _t_muPC1X_raw.size(); _u_MMuPC1AnalysisMQL_186++)
2142  {
2143  double time = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_186].time;
2144  int Xwire = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_186].Xwire;
2145  {
2146 
2147  double muPC1X_raw_time = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_186].time;
2148  int Xwire = _t_muPC1X_raw[_u_MMuPC1AnalysisMQL_186].Xwire;
2149 
2150  if(!_u_MMuPC1AnalysisMQL_99)
2151  {
2152  if(!_t_muPC1X_sparks.checkSort(_u_MMuPC1AnalysisMQL_44))
2153  {
2154  printf("Warning: table muPC1X_sparks is not sorted on muPC1X_sparks_time as required for join with muPC1X_raw (_u_MMuPC1AnalysisMQL_44)\n");
2155  }
2156  _u_MMuPC1AnalysisMQL_99 = true;
2157  }
2158  else if(!_u_MMuPC1AnalysisMQL_100)
2159  {
2160  if(!(muPC1X_raw_time >= _u_MMuPC1AnalysisMQL_98))
2161  {
2162  printf("Warning: table muPC1X_raw is not sorted on muPC1X_raw_time as required for join with muPC1X_sparks\n");
2163  _u_MMuPC1AnalysisMQL_100 = true;
2164  }
2165  }
2166  _u_MMuPC1AnalysisMQL_98 = muPC1X_raw_time;
2167  for( ; _u_MMuPC1AnalysisMQL_97 < _t_muPC1X_sparks.size(); _u_MMuPC1AnalysisMQL_97++)
2168  {
2169  double muPC1X_sparks_time = _t_muPC1X_sparks[_u_MMuPC1AnalysisMQL_97].time;
2170 
2171  double _u_MMuPC1AnalysisMQL_187 = muPC1X_raw_time - muPC1X_sparks_time;
2172  if(_u_MMuPC1AnalysisMQL_187 < kSparkCutDeadtime)
2173  {
2174  break;
2175  }
2176  }
2177  _u_MMuPC1AnalysisMQL_101 = 0;
2178  for(int _u_MMuPC1AnalysisMQL_189 = _u_MMuPC1AnalysisMQL_97; _u_MMuPC1AnalysisMQL_189 < _t_muPC1X_sparks.size(); _u_MMuPC1AnalysisMQL_189++)
2179  {
2180  double muPC1X_sparks_time = _t_muPC1X_sparks[_u_MMuPC1AnalysisMQL_189].time;
2181 
2182  double _u_MMuPC1AnalysisMQL_187 = muPC1X_raw_time - muPC1X_sparks_time;
2183  if(_u_MMuPC1AnalysisMQL_187 < -100)
2184  {
2185  break;
2186  }
2187  _u_MMuPC1AnalysisMQL_101++;
2188  }
2189 
2190  if(_u_MMuPC1AnalysisMQL_101 == 0)
2191  {
2192  {
2193  double time = muPC1X_raw_time;
2194  int Xwire_0 = Xwire;
2195  int Xwire = Xwire_0;
2196  int _u_MMuPC1AnalysisMQL_190 = _t_muPC1X_SC.next();
2197  _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_190].time = time;
2198  _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_190].Xwire = Xwire_0;
2199  }
2200  }
2201  }
2202  }
2203  if(Tier3)
2204  {
2205  for(int _u_MMuPC1AnalysisMQL_191 = 0; _u_MMuPC1AnalysisMQL_191 < _t_muPC1X_SC.size(); _u_MMuPC1AnalysisMQL_191++)
2206  {
2207  double time = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_191].time;
2208  int Xwire = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_191].Xwire;
2209  {
2210 
2211  double time_1 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_191].time;
2212  int Xwire_1 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_191].Xwire;
2213 
2214  if(!_u_MMuPC1AnalysisMQL_104)
2215  {
2216  if(!_t_muPC1X_SC.checkSort(_u_MMuPC1AnalysisMQL_46))
2217  {
2218  printf("Warning: table muPC1X_SC is not sorted on time_2 as required for join with muPC1X_SC (_u_MMuPC1AnalysisMQL_46)\n");
2219  }
2220  _u_MMuPC1AnalysisMQL_104 = true;
2221  }
2222  else if(!_u_MMuPC1AnalysisMQL_105)
2223  {
2224  if(!(time_1 >= _u_MMuPC1AnalysisMQL_103))
2225  {
2226  printf("Warning: table muPC1X_SC is not sorted on time_1 as required for join with muPC1X_SC\n");
2227  _u_MMuPC1AnalysisMQL_105 = true;
2228  }
2229  }
2230  _u_MMuPC1AnalysisMQL_103 = time_1;
2231  for( ; _u_MMuPC1AnalysisMQL_102 < _t_muPC1X_SC.size(); _u_MMuPC1AnalysisMQL_102++)
2232  {
2233  double time_2 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_102].time;
2234  int Xwire_2 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_102].Xwire;
2235 
2236  double _u_MMuPC1AnalysisMQL_192 = time_1 - time_2;
2237  if(_u_MMuPC1AnalysisMQL_192 < 1)
2238  {
2239  break;
2240  }
2241  }
2242  for(int _u_MMuPC1AnalysisMQL_194 = _u_MMuPC1AnalysisMQL_102; _u_MMuPC1AnalysisMQL_194 < _t_muPC1X_SC.size(); _u_MMuPC1AnalysisMQL_194++)
2243  {
2244  double time_2 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_194].time;
2245  int Xwire_2 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_194].Xwire;
2246 
2247  double _u_MMuPC1AnalysisMQL_192 = time_1 - time_2;
2248  if(_u_MMuPC1AnalysisMQL_192 < -50005)
2249  {
2250  break;
2251  }
2252  {
2253  double time_1_0 = time_1;
2254  int Xwire_1_0 = Xwire_1;
2255  double time_2_0 = time_2;
2256  int Xwire_2_0 = Xwire_2;
2257  double time_1 = time_1_0;
2258  int Xwire_1 = Xwire_1_0;
2259  double time_2 = time_2_0;
2260  int Xwire_2 = Xwire_2_0;
2261  if(Tier3)
2262  {
2263  if((time_2 - time_1) >= 0)
2264  {
2265  _h_muPC1_X_SC_autocorr_all_1D->Fill(time_2 - time_1);
2266  }
2267  }
2268  if(Tier3)
2269  {
2270  if(((time_2 - time_1) >= 0) && (Xwire_1==Xwire_2))
2271  {
2272  _h_muPC1_X_SC_autocorr_2D->Fill(time_2 - time_1, Xwire_1);
2273  }
2274  }
2275  }
2276  }
2277  }
2278  }
2279  }
2280  bool _u_MMuPC1AnalysisMQL_195[_t_muPC1X_SC.size()];
2281  memset(_u_MMuPC1AnalysisMQL_195, 0, sizeof(_u_MMuPC1AnalysisMQL_195));
2282  if(!_t_muPC1X_SC.checkSort(_u_MMuPC1AnalysisMQL_47))
2283  {
2284  printf("Warning: table muPC1X_SC is not sorted on time_1 as required for cluster.\n");
2285  }
2286  for(int _u_MMuPC1AnalysisMQL_196 = 0; _u_MMuPC1AnalysisMQL_196 < _t_muPC1X_SC.size(); _u_MMuPC1AnalysisMQL_196++)
2287  {
2288  double time = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_196].time;
2289  int Xwire = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_196].Xwire;
2290  if(_u_MMuPC1AnalysisMQL_195[_u_MMuPC1AnalysisMQL_196])
2291  {
2292  continue;
2293  }
2294  _u_MMuPC1AnalysisMQL_195[_u_MMuPC1AnalysisMQL_196] = true;
2295  int cluster_size = 1;
2296  int cluster_members[_t_muPC1X_SC.size()];
2297  cluster_members[0] = _u_MMuPC1AnalysisMQL_196;
2298 
2299  for(int _u_MMuPC1AnalysisMQL_197 = _u_MMuPC1AnalysisMQL_196 + 1; _u_MMuPC1AnalysisMQL_197 < _t_muPC1X_SC.size(); _u_MMuPC1AnalysisMQL_197++)
2300  {
2301  if(_u_MMuPC1AnalysisMQL_195[_u_MMuPC1AnalysisMQL_197])
2302  {
2303  continue;
2304  }
2305  bool coincidence_seen = false;
2306  for(int _u_MMuPC1AnalysisMQL_198 = 0; _u_MMuPC1AnalysisMQL_198 < cluster_size; _u_MMuPC1AnalysisMQL_198++)
2307  {
2308  if(_u_MMuPC1AnalysisMQL_198 > 0) break;
2309  int _u_MMuPC1AnalysisMQL_199 = cluster_members[_u_MMuPC1AnalysisMQL_198];
2310  double time_1 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_199].time;
2311  double time_2 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_197].time;
2312  int Xwire_1 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_199].Xwire;
2313  int Xwire_2 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_197].Xwire;
2314 
2315  double _u_MMuPC1AnalysisMQL_200 = time_1 - time_2;
2316  if(_u_MMuPC1AnalysisMQL_200 < -kMuPC1XClusterInterval)
2317  {
2318  continue;
2319  }
2320  coincidence_seen = true;
2321  if(!(Xwire_1 == Xwire_2))
2322  {
2323  continue;
2324  }
2325  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_197;
2326  _u_MMuPC1AnalysisMQL_195[_u_MMuPC1AnalysisMQL_197] = true;
2327  break;
2328  }
2329  if(!coincidence_seen)
2330  {
2331  break;
2332  }
2333  }
2334  double time_min = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_196].time;
2335  double time_max = time_min;
2336  double time_sum = 0;
2337  int Xwire_min = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_196].Xwire;
2338  int Xwire_max = Xwire_min;
2339  int Xwire_sum = 0;
2340  for(int _u_MMuPC1AnalysisMQL_198 = 0; _u_MMuPC1AnalysisMQL_198 < cluster_size; _u_MMuPC1AnalysisMQL_198++)
2341  {
2342  int _u_MMuPC1AnalysisMQL_199 = cluster_members[_u_MMuPC1AnalysisMQL_198];
2343  time = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_199].time;
2344  time_min = MIN(time_min, time);
2345  time_max = MAX(time_max, time);
2346  time_sum = time_sum + time;
2347  Xwire = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_199].Xwire;
2348  Xwire_min = MIN(Xwire_min, Xwire);
2349  Xwire_max = MAX(Xwire_max, Xwire);
2350  Xwire_sum = Xwire_sum + Xwire;
2351  }
2352  double time_1 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_196].time;
2353  double time_avg = time_sum/((double)cluster_size);
2354  double time_width = time_max - time_min + 1;
2355  int Xwire_1 = _t_muPC1X_SC[_u_MMuPC1AnalysisMQL_196].Xwire;
2356  double Xwire_avg = Xwire_sum/((double)cluster_size);
2357  int Xwire_width = Xwire_max - Xwire_min + 1;
2358  {
2359  double time = time_min;
2360  int Xwire = Xwire_1;
2361  int _u_MMuPC1AnalysisMQL_201 = _t_muPC1X_AD.next();
2362  _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_201].time = time;
2363  _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_201].Xwire = Xwire;
2364  }
2365  }
2366  _t_muPC1X_AD.sort(_u_MMuPC1AnalysisMQL_48);
2367  if(Tier3)
2368  {
2369  for(int _u_MMuPC1AnalysisMQL_202 = 0; _u_MMuPC1AnalysisMQL_202 < _t_muPC1X_AD.size(); _u_MMuPC1AnalysisMQL_202++)
2370  {
2371  double time = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_202].time;
2372  int Xwire = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_202].Xwire;
2373  {
2374 
2375  double time_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_202].time;
2376  int Xwire_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_202].Xwire;
2377 
2378  if(!_u_MMuPC1AnalysisMQL_109)
2379  {
2380  if(!_t_muPC1X_AD.checkSort(_u_MMuPC1AnalysisMQL_50))
2381  {
2382  printf("Warning: table muPC1X_AD is not sorted on time_2 as required for join with muPC1X_AD (_u_MMuPC1AnalysisMQL_50)\n");
2383  }
2384  _u_MMuPC1AnalysisMQL_109 = true;
2385  }
2386  else if(!_u_MMuPC1AnalysisMQL_110)
2387  {
2388  if(!(time_1 >= _u_MMuPC1AnalysisMQL_108))
2389  {
2390  printf("Warning: table muPC1X_AD is not sorted on time_1 as required for join with muPC1X_AD\n");
2391  _u_MMuPC1AnalysisMQL_110 = true;
2392  }
2393  }
2394  _u_MMuPC1AnalysisMQL_108 = time_1;
2395  for( ; _u_MMuPC1AnalysisMQL_107 < _t_muPC1X_AD.size(); _u_MMuPC1AnalysisMQL_107++)
2396  {
2397  double time_2 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_107].time;
2398  int Xwire_2 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_107].Xwire;
2399 
2400  double _u_MMuPC1AnalysisMQL_203 = time_1 - time_2;
2401  if(_u_MMuPC1AnalysisMQL_203 < 1)
2402  {
2403  break;
2404  }
2405  }
2406  for(int _u_MMuPC1AnalysisMQL_205 = _u_MMuPC1AnalysisMQL_107; _u_MMuPC1AnalysisMQL_205 < _t_muPC1X_AD.size(); _u_MMuPC1AnalysisMQL_205++)
2407  {
2408  double time_2 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_205].time;
2409  int Xwire_2 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_205].Xwire;
2410 
2411  double _u_MMuPC1AnalysisMQL_203 = time_1 - time_2;
2412  if(_u_MMuPC1AnalysisMQL_203 < -50005)
2413  {
2414  break;
2415  }
2416  {
2417  double time_1_0 = time_1;
2418  int Xwire_1_0 = Xwire_1;
2419  double time_2_0 = time_2;
2420  int Xwire_2_0 = Xwire_2;
2421  double time_1 = time_1_0;
2422  int Xwire_1 = Xwire_1_0;
2423  double time_2 = time_2_0;
2424  int Xwire_2 = Xwire_2_0;
2425  if(Tier3)
2426  {
2427  if((time_2 - time_1) >= 0)
2428  {
2429  _h_muPC1_X_AD_autocorr_all_1D->Fill(time_2 - time_1);
2430  }
2431  }
2432  if(Tier3)
2433  {
2434  if(((time_2 - time_1) >= 0) && (Xwire_1==Xwire_2))
2435  {
2436  _h_muPC1_X_AD_autocorr_2D->Fill(time_2 - time_1, Xwire_1);
2437  }
2438  }
2439  }
2440  }
2441  }
2442  }
2443  }
2444  bool _u_MMuPC1AnalysisMQL_206[_t_muPC1X_AD.size()];
2445  memset(_u_MMuPC1AnalysisMQL_206, 0, sizeof(_u_MMuPC1AnalysisMQL_206));
2446  if(!_t_muPC1X_AD.checkSort(_u_MMuPC1AnalysisMQL_51))
2447  {
2448  printf("Warning: table muPC1X_AD is not sorted on time_1 as required for cluster.\n");
2449  }
2450  for(int _u_MMuPC1AnalysisMQL_207 = 0; _u_MMuPC1AnalysisMQL_207 < _t_muPC1X_AD.size(); _u_MMuPC1AnalysisMQL_207++)
2451  {
2452  double time = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_207].time;
2453  int Xwire = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_207].Xwire;
2454  if(_u_MMuPC1AnalysisMQL_206[_u_MMuPC1AnalysisMQL_207])
2455  {
2456  continue;
2457  }
2458  _u_MMuPC1AnalysisMQL_206[_u_MMuPC1AnalysisMQL_207] = true;
2459  int cluster_size = 1;
2460  int cluster_members[_t_muPC1X_AD.size()];
2461  cluster_members[0] = _u_MMuPC1AnalysisMQL_207;
2462 
2463  for(int _u_MMuPC1AnalysisMQL_208 = _u_MMuPC1AnalysisMQL_207 + 1; _u_MMuPC1AnalysisMQL_208 < _t_muPC1X_AD.size(); _u_MMuPC1AnalysisMQL_208++)
2464  {
2465  if(_u_MMuPC1AnalysisMQL_206[_u_MMuPC1AnalysisMQL_208])
2466  {
2467  continue;
2468  }
2469  bool coincidence_seen = false;
2470  for(int _u_MMuPC1AnalysisMQL_209 = 0; _u_MMuPC1AnalysisMQL_209 < cluster_size; _u_MMuPC1AnalysisMQL_209++)
2471  {
2472  int _u_MMuPC1AnalysisMQL_210 = cluster_members[_u_MMuPC1AnalysisMQL_209];
2473  double time_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_210].time;
2474  double time_2 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_208].time;
2475  int Xwire_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_210].Xwire;
2476  int Xwire_2 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_208].Xwire;
2477 
2478  double _u_MMuPC1AnalysisMQL_211 = time_1 - time_2;
2479  if(_u_MMuPC1AnalysisMQL_211 < -kMuPC1XClusterInterval)
2480  {
2481  continue;
2482  }
2483  coincidence_seen = true;
2484  if(!(((abs(Xwire_1-Xwire_2)-1) == 0)))
2485  {
2486  continue;
2487  }
2488  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_208;
2489  _u_MMuPC1AnalysisMQL_206[_u_MMuPC1AnalysisMQL_208] = true;
2490  _u_MMuPC1AnalysisMQL_208 = _u_MMuPC1AnalysisMQL_207;
2491  break;
2492  }
2493  if(!coincidence_seen)
2494  {
2495  break;
2496  }
2497  }
2498  double time_min = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_207].time;
2499  double time_max = time_min;
2500  double time_sum = 0;
2501  int Xwire_min = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_207].Xwire;
2502  int Xwire_max = Xwire_min;
2503  int Xwire_sum = 0;
2504  for(int _u_MMuPC1AnalysisMQL_209 = 0; _u_MMuPC1AnalysisMQL_209 < cluster_size; _u_MMuPC1AnalysisMQL_209++)
2505  {
2506  int _u_MMuPC1AnalysisMQL_210 = cluster_members[_u_MMuPC1AnalysisMQL_209];
2507  time = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_210].time;
2508  time_min = MIN(time_min, time);
2509  time_max = MAX(time_max, time);
2510  time_sum = time_sum + time;
2511  Xwire = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_210].Xwire;
2512  Xwire_min = MIN(Xwire_min, Xwire);
2513  Xwire_max = MAX(Xwire_max, Xwire);
2514  Xwire_sum = Xwire_sum + Xwire;
2515  }
2516  double time_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_207].time;
2517  double time_avg = time_sum/((double)cluster_size);
2518  double time_width = time_max - time_min + 1;
2519  int Xwire_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_207].Xwire;
2520  double Xwire_avg = Xwire_sum/((double)cluster_size);
2521  int Xwire_width = Xwire_max - Xwire_min + 1;
2522  {
2523  double time = time_min;
2524  int Xwire_min_0 = Xwire_min;
2525  int Xwire_max_0 = Xwire_max;
2526  int Xwire_min = Xwire_min_0;
2527  int Xwire_max = Xwire_max_0;
2528  int _u_MMuPC1AnalysisMQL_212 = _t_muPC1X_cluster_contiguous.next();
2529  _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_212].time = time;
2530  _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_212].Xwire_min = Xwire_min_0;
2531  _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_212].Xwire_max = Xwire_max_0;
2532  }
2533  }
2534  _t_muPC1X_cluster_contiguous.sort(_u_MMuPC1AnalysisMQL_52);
2535  if(Tier3)
2536  {
2537  for(int _u_MMuPC1AnalysisMQL_213 = 0; _u_MMuPC1AnalysisMQL_213 < _t_muPC1X_cluster_contiguous.size(); _u_MMuPC1AnalysisMQL_213++)
2538  {
2539  double time = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_213].time;
2540  int Xwire_min = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_213].Xwire_min;
2541  int Xwire_max = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_213].Xwire_max;
2542  {
2543 
2544  double time_1 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_213].time;
2545  int Xwire_min_1 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_213].Xwire_min;
2546  int Xwire_max_1 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_213].Xwire_max;
2547 
2548  if(!_u_MMuPC1AnalysisMQL_114)
2549  {
2550  if(!_t_muPC1X_cluster_contiguous.checkSort(_u_MMuPC1AnalysisMQL_54))
2551  {
2552  printf("Warning: table muPC1X_cluster_contiguous is not sorted on time_2 as required for join with muPC1X_cluster_contiguous (_u_MMuPC1AnalysisMQL_54)\n");
2553  }
2554  _u_MMuPC1AnalysisMQL_114 = true;
2555  }
2556  else if(!_u_MMuPC1AnalysisMQL_115)
2557  {
2558  if(!(time_1 >= _u_MMuPC1AnalysisMQL_113))
2559  {
2560  printf("Warning: table muPC1X_cluster_contiguous is not sorted on time_1 as required for join with muPC1X_cluster_contiguous\n");
2561  _u_MMuPC1AnalysisMQL_115 = true;
2562  }
2563  }
2564  _u_MMuPC1AnalysisMQL_113 = time_1;
2565  for( ; _u_MMuPC1AnalysisMQL_112 < _t_muPC1X_cluster_contiguous.size(); _u_MMuPC1AnalysisMQL_112++)
2566  {
2567  double time_2 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_112].time;
2568  int Xwire_min_2 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_112].Xwire_min;
2569  int Xwire_max_2 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_112].Xwire_max;
2570 
2571  double _u_MMuPC1AnalysisMQL_214 = time_1 - time_2;
2572  if(_u_MMuPC1AnalysisMQL_214 < 5)
2573  {
2574  break;
2575  }
2576  }
2577  for(int _u_MMuPC1AnalysisMQL_216 = _u_MMuPC1AnalysisMQL_112; _u_MMuPC1AnalysisMQL_216 < _t_muPC1X_cluster_contiguous.size(); _u_MMuPC1AnalysisMQL_216++)
2578  {
2579  double time_2 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_216].time;
2580  int Xwire_min_2 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_216].Xwire_min;
2581  int Xwire_max_2 = _t_muPC1X_cluster_contiguous[_u_MMuPC1AnalysisMQL_216].Xwire_max;
2582 
2583  double _u_MMuPC1AnalysisMQL_214 = time_1 - time_2;
2584  if(_u_MMuPC1AnalysisMQL_214 < -kMuPC1XClusterInterval)
2585  {
2586  break;
2587  }
2588  if(!((time_1==time_2) && (Xwire_min_1==Xwire_min_2) && (Xwire_max_1==Xwire_max_2)) &&
2589  ((Xwire_min_1 > Xwire_max_2) || (Xwire_min_2 > Xwire_max_1)))
2590  {
2591  {
2592  int cluster_sep = MIN(abs(Xwire_min_1-Xwire_max_2),abs(Xwire_min_2-Xwire_max_1));
2593  if(Tier3)
2594  {
2595  _h_muPC1_X_cluster_contiguous_separation->Fill(cluster_sep);
2596  }
2597  }
2598  }
2599  }
2600  }
2601  }
2602  }
2603  bool _u_MMuPC1AnalysisMQL_217[_t_muPC1X_AD.size()];
2604  memset(_u_MMuPC1AnalysisMQL_217, 0, sizeof(_u_MMuPC1AnalysisMQL_217));
2605  if(!_t_muPC1X_AD.checkSort(_u_MMuPC1AnalysisMQL_55))
2606  {
2607  printf("Warning: table muPC1X_AD is not sorted on time_1 as required for cluster.\n");
2608  }
2609  for(int _u_MMuPC1AnalysisMQL_218 = 0; _u_MMuPC1AnalysisMQL_218 < _t_muPC1X_AD.size(); _u_MMuPC1AnalysisMQL_218++)
2610  {
2611  double time = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_218].time;
2612  int Xwire = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_218].Xwire;
2613  if(_u_MMuPC1AnalysisMQL_217[_u_MMuPC1AnalysisMQL_218])
2614  {
2615  continue;
2616  }
2617  _u_MMuPC1AnalysisMQL_217[_u_MMuPC1AnalysisMQL_218] = true;
2618  int cluster_size = 1;
2619  int cluster_members[_t_muPC1X_AD.size()];
2620  cluster_members[0] = _u_MMuPC1AnalysisMQL_218;
2621 
2622  for(int _u_MMuPC1AnalysisMQL_219 = _u_MMuPC1AnalysisMQL_218 + 1; _u_MMuPC1AnalysisMQL_219 < _t_muPC1X_AD.size(); _u_MMuPC1AnalysisMQL_219++)
2623  {
2624  if(_u_MMuPC1AnalysisMQL_217[_u_MMuPC1AnalysisMQL_219])
2625  {
2626  continue;
2627  }
2628  bool coincidence_seen = false;
2629  for(int _u_MMuPC1AnalysisMQL_220 = 0; _u_MMuPC1AnalysisMQL_220 < cluster_size; _u_MMuPC1AnalysisMQL_220++)
2630  {
2631  int _u_MMuPC1AnalysisMQL_221 = cluster_members[_u_MMuPC1AnalysisMQL_220];
2632  double time_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_221].time;
2633  double time_2 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_219].time;
2634  int Xwire_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_221].Xwire;
2635  int Xwire_2 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_219].Xwire;
2636 
2637  double _u_MMuPC1AnalysisMQL_222 = time_1 - time_2;
2638  if(_u_MMuPC1AnalysisMQL_222 < -kMuPC1XClusterInterval)
2639  {
2640  continue;
2641  }
2642  coincidence_seen = true;
2643  if(!((abs(Xwire_1-Xwire_2)-1) <= kMuPC1XClusterMaxGap))
2644  {
2645  continue;
2646  }
2647  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_219;
2648  _u_MMuPC1AnalysisMQL_217[_u_MMuPC1AnalysisMQL_219] = true;
2649  _u_MMuPC1AnalysisMQL_219 = _u_MMuPC1AnalysisMQL_218;
2650  break;
2651  }
2652  if(!coincidence_seen)
2653  {
2654  break;
2655  }
2656  }
2657  double time_min = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_218].time;
2658  double time_max = time_min;
2659  double time_sum = 0;
2660  int Xwire_min = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_218].Xwire;
2661  int Xwire_max = Xwire_min;
2662  int Xwire_sum = 0;
2663  for(int _u_MMuPC1AnalysisMQL_220 = 0; _u_MMuPC1AnalysisMQL_220 < cluster_size; _u_MMuPC1AnalysisMQL_220++)
2664  {
2665  int _u_MMuPC1AnalysisMQL_221 = cluster_members[_u_MMuPC1AnalysisMQL_220];
2666  time = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_221].time;
2667  time_min = MIN(time_min, time);
2668  time_max = MAX(time_max, time);
2669  time_sum = time_sum + time;
2670  Xwire = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_221].Xwire;
2671  Xwire_min = MIN(Xwire_min, Xwire);
2672  Xwire_max = MAX(Xwire_max, Xwire);
2673  Xwire_sum = Xwire_sum + Xwire;
2674  }
2675  double time_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_218].time;
2676  double time_avg = time_sum/((double)cluster_size);
2677  double time_width = time_max - time_min + 1;
2678  int Xwire_1 = _t_muPC1X_AD[_u_MMuPC1AnalysisMQL_218].Xwire;
2679  double Xwire_avg = Xwire_sum/((double)cluster_size);
2680  int Xwire_width = Xwire_max - Xwire_min + 1;
2681  {
2682  double time = time_min;
2683  double Xwire = Xwire_avg;
2684  int cluster_size_0 = cluster_size;
2685  int cluster_width = Xwire_width;
2686  int cluster_size = cluster_size_0;
2687  if(Tier1)
2688  {
2689  _h_muPC1_X_final_cluster_size->Fill(cluster_size);
2690  }
2691  if(Tier1)
2692  {
2693  _h_muPC1_X_final_cluster_width->Fill(cluster_width);
2694  }
2695  if(Tier1)
2696  {
2697  _h_muPC1_X_final_cluster_avg->Fill(Xwire);
2698  }
2699  {
2700  double Xwire_0 = Xwire;
2701  double muPC1Time = time;
2702  double Xwire = Xwire_0;
2703  int _u_MMuPC1AnalysisMQL_223 = _t_muPC1X_export.next();
2704  _t_muPC1X_export[_u_MMuPC1AnalysisMQL_223].Xwire = Xwire_0;
2705  _t_muPC1X_export[_u_MMuPC1AnalysisMQL_223].muPC1Time = muPC1Time;
2706  }
2707  int _u_MMuPC1AnalysisMQL_224 = _t_muPC1X.next();
2708  _t_muPC1X[_u_MMuPC1AnalysisMQL_224].time = time;
2709  _t_muPC1X[_u_MMuPC1AnalysisMQL_224].Xwire = Xwire;
2710  _t_muPC1X[_u_MMuPC1AnalysisMQL_224].cluster_size = cluster_size_0;
2711  _t_muPC1X[_u_MMuPC1AnalysisMQL_224].cluster_width = cluster_width;
2712  }
2713  }
2714  _t_muPC1X.sort(_u_MMuPC1AnalysisMQL_56);
2715  if(Tier3)
2716  {
2717  for(int _u_MMuPC1AnalysisMQL_225 = 0; _u_MMuPC1AnalysisMQL_225 < _t_muPC1X.size(); _u_MMuPC1AnalysisMQL_225++)
2718  {
2719  double time = _t_muPC1X[_u_MMuPC1AnalysisMQL_225].time;
2720  double Xwire = _t_muPC1X[_u_MMuPC1AnalysisMQL_225].Xwire;
2721  int cluster_size = _t_muPC1X[_u_MMuPC1AnalysisMQL_225].cluster_size;
2722  int cluster_width = _t_muPC1X[_u_MMuPC1AnalysisMQL_225].cluster_width;
2723  {
2724 
2725  double time_1 = _t_muPC1X[_u_MMuPC1AnalysisMQL_225].time;
2726  double Xwire_1 = _t_muPC1X[_u_MMuPC1AnalysisMQL_225].Xwire;
2727  int cluster_size_1 = _t_muPC1X[_u_MMuPC1AnalysisMQL_225].cluster_size;
2728  int cluster_width_1 = _t_muPC1X[_u_MMuPC1AnalysisMQL_225].cluster_width;
2729 
2730  if(!_u_MMuPC1AnalysisMQL_119)
2731  {
2732  if(!_t_muPC1X.checkSort(_u_MMuPC1AnalysisMQL_58))
2733  {
2734  printf("Warning: table muPC1X is not sorted on time_2 as required for join with muPC1X (_u_MMuPC1AnalysisMQL_58)\n");
2735  }
2736  _u_MMuPC1AnalysisMQL_119 = true;
2737  }
2738  else if(!_u_MMuPC1AnalysisMQL_120)
2739  {
2740  if(!(time_1 >= _u_MMuPC1AnalysisMQL_118))
2741  {
2742  printf("Warning: table muPC1X is not sorted on time_1 as required for join with muPC1X\n");
2743  _u_MMuPC1AnalysisMQL_120 = true;
2744  }
2745  }
2746  _u_MMuPC1AnalysisMQL_118 = time_1;
2747  for( ; _u_MMuPC1AnalysisMQL_117 < _t_muPC1X.size(); _u_MMuPC1AnalysisMQL_117++)
2748  {
2749  double time_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_117].time;
2750  double Xwire_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_117].Xwire;
2751  int cluster_size_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_117].cluster_size;
2752  int cluster_width_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_117].cluster_width;
2753 
2754  double _u_MMuPC1AnalysisMQL_226 = time_1 - time_2;
2755  if(_u_MMuPC1AnalysisMQL_226 < 1)
2756  {
2757  break;
2758  }
2759  }
2760  for(int _u_MMuPC1AnalysisMQL_228 = _u_MMuPC1AnalysisMQL_117; _u_MMuPC1AnalysisMQL_228 < _t_muPC1X.size(); _u_MMuPC1AnalysisMQL_228++)
2761  {
2762  double time_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_228].time;
2763  double Xwire_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_228].Xwire;
2764  int cluster_size_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_228].cluster_size;
2765  int cluster_width_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_228].cluster_width;
2766 
2767  double _u_MMuPC1AnalysisMQL_226 = time_1 - time_2;
2768  if(_u_MMuPC1AnalysisMQL_226 < -50005)
2769  {
2770  break;
2771  }
2772  {
2773  double time_1_0 = time_1;
2774  double time_2_0 = time_2;
2775  double time_1 = time_1_0;
2776  double time_2 = time_2_0;
2777  if(Tier3)
2778  {
2779  if((time_2 - time_1) >= 0)
2780  {
2781  _h_muPC1_X_final_cluster_autocorr_all_1D->Fill(time_2 - time_1);
2782  }
2783  }
2784  }
2785  }
2786  }
2787  }
2788  }
2789  if(Tier3)
2790  {
2791  for(int _u_MMuPC1AnalysisMQL_229 = 0; _u_MMuPC1AnalysisMQL_229 < _t_muPC1X.size(); _u_MMuPC1AnalysisMQL_229++)
2792  {
2793  double time = _t_muPC1X[_u_MMuPC1AnalysisMQL_229].time;
2794  double Xwire = _t_muPC1X[_u_MMuPC1AnalysisMQL_229].Xwire;
2795  int cluster_size = _t_muPC1X[_u_MMuPC1AnalysisMQL_229].cluster_size;
2796  int cluster_width = _t_muPC1X[_u_MMuPC1AnalysisMQL_229].cluster_width;
2797  {
2798 
2799  double time_1 = _t_muPC1X[_u_MMuPC1AnalysisMQL_229].time;
2800  double Xwire_1 = _t_muPC1X[_u_MMuPC1AnalysisMQL_229].Xwire;
2801  int cluster_size_1 = _t_muPC1X[_u_MMuPC1AnalysisMQL_229].cluster_size;
2802  int cluster_width_1 = _t_muPC1X[_u_MMuPC1AnalysisMQL_229].cluster_width;
2803 
2804  if(!_u_MMuPC1AnalysisMQL_123)
2805  {
2806  if(!_t_muPC1X.checkSort(_u_MMuPC1AnalysisMQL_60))
2807  {
2808  printf("Warning: table muPC1X is not sorted on time_2 as required for join with muPC1X (_u_MMuPC1AnalysisMQL_60)\n");
2809  }
2810  _u_MMuPC1AnalysisMQL_123 = true;
2811  }
2812  else if(!_u_MMuPC1AnalysisMQL_124)
2813  {
2814  if(!(time_1 >= _u_MMuPC1AnalysisMQL_122))
2815  {
2816  printf("Warning: table muPC1X is not sorted on time_1 as required for join with muPC1X\n");
2817  _u_MMuPC1AnalysisMQL_124 = true;
2818  }
2819  }
2820  _u_MMuPC1AnalysisMQL_122 = time_1;
2821  for( ; _u_MMuPC1AnalysisMQL_121 < _t_muPC1X.size(); _u_MMuPC1AnalysisMQL_121++)
2822  {
2823  double time_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_121].time;
2824  double Xwire_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_121].Xwire;
2825  int cluster_size_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_121].cluster_size;
2826  int cluster_width_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_121].cluster_width;
2827 
2828  double _u_MMuPC1AnalysisMQL_230 = time_1 - time_2;
2829  if(_u_MMuPC1AnalysisMQL_230 < 1)
2830  {
2831  break;
2832  }
2833  }
2834  for(int _u_MMuPC1AnalysisMQL_232 = _u_MMuPC1AnalysisMQL_121; _u_MMuPC1AnalysisMQL_232 < _t_muPC1X.size(); _u_MMuPC1AnalysisMQL_232++)
2835  {
2836  double time_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_232].time;
2837  double Xwire_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_232].Xwire;
2838  int cluster_size_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_232].cluster_size;
2839  int cluster_width_2 = _t_muPC1X[_u_MMuPC1AnalysisMQL_232].cluster_width;
2840 
2841  double _u_MMuPC1AnalysisMQL_230 = time_1 - time_2;
2842  if(_u_MMuPC1AnalysisMQL_230 < -150)
2843  {
2844  break;
2845  }
2846  {
2847  double time1 = time_1;
2848  double time2 = time_2;
2849  double wire_diff = fabs(Xwire_1-Xwire_2);
2850  if(Tier3)
2851  {
2852  if(fabs(time_2-time_1)>=0)
2853  {
2855  }
2856  }
2857  }
2858  }
2859  }
2860  }
2861  }
2862  if(Tier3)
2863  {
2864  for(int _u_MMuPC1AnalysisMQL_233 = 0; _u_MMuPC1AnalysisMQL_233 < _t_muPC1Y_raw.size(); _u_MMuPC1AnalysisMQL_233++)
2865  {
2866  double time = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_233].time;
2867  int Ywire = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_233].Ywire;
2868  {
2869 
2870  double time_1 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_233].time;
2871  int Ywire_1 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_233].Ywire;
2872 
2873  if(!_u_MMuPC1AnalysisMQL_127)
2874  {
2875  if(!_t_muPC1Y_raw.checkSort(_u_MMuPC1AnalysisMQL_62))
2876  {
2877  printf("Warning: table muPC1Y_raw is not sorted on time_2 as required for join with muPC1Y_raw (_u_MMuPC1AnalysisMQL_62)\n");
2878  }
2879  _u_MMuPC1AnalysisMQL_127 = true;
2880  }
2881  else if(!_u_MMuPC1AnalysisMQL_128)
2882  {
2883  if(!(time_1 >= _u_MMuPC1AnalysisMQL_126))
2884  {
2885  printf("Warning: table muPC1Y_raw is not sorted on time_1 as required for join with muPC1Y_raw\n");
2886  _u_MMuPC1AnalysisMQL_128 = true;
2887  }
2888  }
2889  _u_MMuPC1AnalysisMQL_126 = time_1;
2890  for( ; _u_MMuPC1AnalysisMQL_125 < _t_muPC1Y_raw.size(); _u_MMuPC1AnalysisMQL_125++)
2891  {
2892  double time_2 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_125].time;
2893  int Ywire_2 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_125].Ywire;
2894 
2895  double _u_MMuPC1AnalysisMQL_234 = time_1 - time_2;
2896  if(_u_MMuPC1AnalysisMQL_234 < 1)
2897  {
2898  break;
2899  }
2900  }
2901  for(int _u_MMuPC1AnalysisMQL_236 = _u_MMuPC1AnalysisMQL_125; _u_MMuPC1AnalysisMQL_236 < _t_muPC1Y_raw.size(); _u_MMuPC1AnalysisMQL_236++)
2902  {
2903  double time_2 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_236].time;
2904  int Ywire_2 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_236].Ywire;
2905 
2906  double _u_MMuPC1AnalysisMQL_234 = time_1 - time_2;
2907  if(_u_MMuPC1AnalysisMQL_234 < -50005)
2908  {
2909  break;
2910  }
2911  {
2912  double time_1_0 = time_1;
2913  int Ywire_1_0 = Ywire_1;
2914  double time_2_0 = time_2;
2915  int Ywire_2_0 = Ywire_2;
2916  double time_1 = time_1_0;
2917  int Ywire_1 = Ywire_1_0;
2918  double time_2 = time_2_0;
2919  int Ywire_2 = Ywire_2_0;
2920  if(Tier3)
2921  {
2922  _h_muPC1_Y_raw_autosingles_2D->Fill(Ywire_1, Ywire_2);
2923  }
2924  if(Tier3)
2925  {
2926  if((time_2 - time_1) >= 0)
2927  {
2928  _h_muPC1_Y_raw_autocorr_all_1D->Fill(time_2 - time_1);
2929  }
2930  }
2931  if(Tier3)
2932  {
2933  if(((time_2 - time_1) >= 0) && (Ywire_1==Ywire_2))
2934  {
2935  _h_muPC1_Y_raw_autocorr_2D->Fill(time_2 - time_1, Ywire_1);
2936  }
2937  }
2938  }
2939  }
2940  }
2941  }
2942  }
2943  bool _u_MMuPC1AnalysisMQL_237[_t_muPC1Y_raw.size()];
2944  memset(_u_MMuPC1AnalysisMQL_237, 0, sizeof(_u_MMuPC1AnalysisMQL_237));
2945  if(!_t_muPC1Y_raw.checkSort(_u_MMuPC1AnalysisMQL_63))
2946  {
2947  printf("Warning: table muPC1Y_raw is not sorted on time_1 as required for cluster.\n");
2948  }
2949  for(int _u_MMuPC1AnalysisMQL_238 = 0; _u_MMuPC1AnalysisMQL_238 < _t_muPC1Y_raw.size(); _u_MMuPC1AnalysisMQL_238++)
2950  {
2951  double time = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_238].time;
2952  int Ywire = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_238].Ywire;
2953  if(_u_MMuPC1AnalysisMQL_237[_u_MMuPC1AnalysisMQL_238])
2954  {
2955  continue;
2956  }
2957  _u_MMuPC1AnalysisMQL_237[_u_MMuPC1AnalysisMQL_238] = true;
2958  int cluster_size = 1;
2959  int cluster_members[_t_muPC1Y_raw.size()];
2960  cluster_members[0] = _u_MMuPC1AnalysisMQL_238;
2961 
2962  for(int _u_MMuPC1AnalysisMQL_239 = _u_MMuPC1AnalysisMQL_238 + 1; _u_MMuPC1AnalysisMQL_239 < _t_muPC1Y_raw.size(); _u_MMuPC1AnalysisMQL_239++)
2963  {
2964  if(_u_MMuPC1AnalysisMQL_237[_u_MMuPC1AnalysisMQL_239])
2965  {
2966  continue;
2967  }
2968  bool coincidence_seen = false;
2969  for(int _u_MMuPC1AnalysisMQL_240 = 0; _u_MMuPC1AnalysisMQL_240 < cluster_size; _u_MMuPC1AnalysisMQL_240++)
2970  {
2971  int _u_MMuPC1AnalysisMQL_241 = cluster_members[_u_MMuPC1AnalysisMQL_240];
2972  double time_1 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_241].time;
2973  double time_2 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_239].time;
2974  int Ywire_1 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_241].Ywire;
2975  int Ywire_2 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_239].Ywire;
2976 
2977  double _u_MMuPC1AnalysisMQL_242 = time_1 - time_2;
2978  if(_u_MMuPC1AnalysisMQL_242 < -1000)
2979  {
2980  continue;
2981  }
2982  coincidence_seen = true;
2983  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_239;
2984  _u_MMuPC1AnalysisMQL_237[_u_MMuPC1AnalysisMQL_239] = true;
2985  _u_MMuPC1AnalysisMQL_239 = _u_MMuPC1AnalysisMQL_238;
2986  break;
2987  }
2988  if(!coincidence_seen)
2989  {
2990  break;
2991  }
2992  }
2993  double time_min = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_238].time;
2994  double time_max = time_min;
2995  double time_sum = 0;
2996  int Ywire_min = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_238].Ywire;
2997  int Ywire_max = Ywire_min;
2998  int Ywire_sum = 0;
2999  for(int _u_MMuPC1AnalysisMQL_240 = 0; _u_MMuPC1AnalysisMQL_240 < cluster_size; _u_MMuPC1AnalysisMQL_240++)
3000  {
3001  int _u_MMuPC1AnalysisMQL_241 = cluster_members[_u_MMuPC1AnalysisMQL_240];
3002  time = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_241].time;
3003  time_min = MIN(time_min, time);
3004  time_max = MAX(time_max, time);
3005  time_sum = time_sum + time;
3006  Ywire = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_241].Ywire;
3007  Ywire_min = MIN(Ywire_min, Ywire);
3008  Ywire_max = MAX(Ywire_max, Ywire);
3009  Ywire_sum = Ywire_sum + Ywire;
3010  }
3011  double time_1 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_238].time;
3012  double time_avg = time_sum/((double)cluster_size);
3013  double time_width = time_max - time_min + 1;
3014  int Ywire_1 = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_238].Ywire;
3015  double Ywire_avg = Ywire_sum/((double)cluster_size);
3016  int Ywire_width = Ywire_max - Ywire_min + 1;
3017  {
3018  double time = time_min;
3019  int cluster_size_0 = cluster_size;
3020  int cluster_size = cluster_size_0;
3021  if((cluster_size >= kMuPC1YSparkSizeCutoff))
3022  {
3023  {
3024  double time_0 = time;
3025  double time = time_0;
3026  if(Tier1)
3027  {
3028  _h_muPC1_spark_count_Ywires->Fill(1);
3029  }
3030  int _u_MMuPC1AnalysisMQL_243 = _t_muPC1Y_sparks.next();
3031  _t_muPC1Y_sparks[_u_MMuPC1AnalysisMQL_243].time = time_0;
3032  }
3033  }
3034  if(Tier1)
3035  {
3036  _h_muPC1_spark_search_Ywires->Fill(cluster_size);
3037  }
3038  }
3039  }
3040  _t_muPC1Y_spark_search.sort(_u_MMuPC1AnalysisMQL_64);
3041  for(int _u_MMuPC1AnalysisMQL_244 = 0; _u_MMuPC1AnalysisMQL_244 < _t_muPC1Y_raw.size(); _u_MMuPC1AnalysisMQL_244++)
3042  {
3043  double time = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_244].time;
3044  int Ywire = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_244].Ywire;
3045  {
3046 
3047  double muPC1Y_raw_time = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_244].time;
3048  int Ywire = _t_muPC1Y_raw[_u_MMuPC1AnalysisMQL_244].Ywire;
3049 
3050  if(!_u_MMuPC1AnalysisMQL_132)
3051  {
3052  if(!_t_muPC1Y_sparks.checkSort(_u_MMuPC1AnalysisMQL_66))
3053  {
3054  printf("Warning: table muPC1Y_sparks is not sorted on muPC1Y_sparks_time as required for join with muPC1Y_raw (_u_MMuPC1AnalysisMQL_66)\n");
3055  }
3056  _u_MMuPC1AnalysisMQL_132 = true;
3057  }
3058  else if(!_u_MMuPC1AnalysisMQL_133)
3059  {
3060  if(!(muPC1Y_raw_time >= _u_MMuPC1AnalysisMQL_131))
3061  {
3062  printf("Warning: table muPC1Y_raw is not sorted on muPC1Y_raw_time as required for join with muPC1Y_sparks\n");
3063  _u_MMuPC1AnalysisMQL_133 = true;
3064  }
3065  }
3066  _u_MMuPC1AnalysisMQL_131 = muPC1Y_raw_time;
3067  for( ; _u_MMuPC1AnalysisMQL_130 < _t_muPC1Y_sparks.size(); _u_MMuPC1AnalysisMQL_130++)
3068  {
3069  double muPC1Y_sparks_time = _t_muPC1Y_sparks[_u_MMuPC1AnalysisMQL_130].time;
3070 
3071  double _u_MMuPC1AnalysisMQL_245 = muPC1Y_raw_time - muPC1Y_sparks_time;
3072  if(_u_MMuPC1AnalysisMQL_245 < kSparkCutDeadtime)
3073  {
3074  break;
3075  }
3076  }
3077  _u_MMuPC1AnalysisMQL_134 = 0;
3078  for(int _u_MMuPC1AnalysisMQL_247 = _u_MMuPC1AnalysisMQL_130; _u_MMuPC1AnalysisMQL_247 < _t_muPC1Y_sparks.size(); _u_MMuPC1AnalysisMQL_247++)
3079  {
3080  double muPC1Y_sparks_time = _t_muPC1Y_sparks[_u_MMuPC1AnalysisMQL_247].time;
3081 
3082  double _u_MMuPC1AnalysisMQL_245 = muPC1Y_raw_time - muPC1Y_sparks_time;
3083  if(_u_MMuPC1AnalysisMQL_245 < -100)
3084  {
3085  break;
3086  }
3087  _u_MMuPC1AnalysisMQL_134++;
3088  }
3089 
3090  if(_u_MMuPC1AnalysisMQL_134 == 0)
3091  {
3092  {
3093  double time = muPC1Y_raw_time;
3094  int Ywire_0 = Ywire;
3095  int Ywire = Ywire_0;
3096  int _u_MMuPC1AnalysisMQL_248 = _t_muPC1Y_SC.next();
3097  _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_248].time = time;
3098  _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_248].Ywire = Ywire_0;
3099  }
3100  }
3101  }
3102  }
3103  if(Tier3)
3104  {
3105  for(int _u_MMuPC1AnalysisMQL_249 = 0; _u_MMuPC1AnalysisMQL_249 < _t_muPC1Y_SC.size(); _u_MMuPC1AnalysisMQL_249++)
3106  {
3107  double time = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_249].time;
3108  int Ywire = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_249].Ywire;
3109  {
3110 
3111  double time_1 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_249].time;
3112  int Ywire_1 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_249].Ywire;
3113 
3114  if(!_u_MMuPC1AnalysisMQL_137)
3115  {
3116  if(!_t_muPC1Y_SC.checkSort(_u_MMuPC1AnalysisMQL_68))
3117  {
3118  printf("Warning: table muPC1Y_SC is not sorted on time_2 as required for join with muPC1Y_SC (_u_MMuPC1AnalysisMQL_68)\n");
3119  }
3120  _u_MMuPC1AnalysisMQL_137 = true;
3121  }
3122  else if(!_u_MMuPC1AnalysisMQL_138)
3123  {
3124  if(!(time_1 >= _u_MMuPC1AnalysisMQL_136))
3125  {
3126  printf("Warning: table muPC1Y_SC is not sorted on time_1 as required for join with muPC1Y_SC\n");
3127  _u_MMuPC1AnalysisMQL_138 = true;
3128  }
3129  }
3130  _u_MMuPC1AnalysisMQL_136 = time_1;
3131  for( ; _u_MMuPC1AnalysisMQL_135 < _t_muPC1Y_SC.size(); _u_MMuPC1AnalysisMQL_135++)
3132  {
3133  double time_2 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_135].time;
3134  int Ywire_2 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_135].Ywire;
3135 
3136  double _u_MMuPC1AnalysisMQL_250 = time_1 - time_2;
3137  if(_u_MMuPC1AnalysisMQL_250 < 1)
3138  {
3139  break;
3140  }
3141  }
3142  for(int _u_MMuPC1AnalysisMQL_252 = _u_MMuPC1AnalysisMQL_135; _u_MMuPC1AnalysisMQL_252 < _t_muPC1Y_SC.size(); _u_MMuPC1AnalysisMQL_252++)
3143  {
3144  double time_2 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_252].time;
3145  int Ywire_2 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_252].Ywire;
3146 
3147  double _u_MMuPC1AnalysisMQL_250 = time_1 - time_2;
3148  if(_u_MMuPC1AnalysisMQL_250 < -50005)
3149  {
3150  break;
3151  }
3152  {
3153  double time_1_0 = time_1;
3154  int Ywire_1_0 = Ywire_1;
3155  double time_2_0 = time_2;
3156  int Ywire_2_0 = Ywire_2;
3157  double time_1 = time_1_0;
3158  int Ywire_1 = Ywire_1_0;
3159  double time_2 = time_2_0;
3160  int Ywire_2 = Ywire_2_0;
3161  if(Tier3)
3162  {
3163  if((time_2 - time_1) >= 0)
3164  {
3165  _h_muPC1_Y_SC_autocorr_all_1D->Fill(time_2 - time_1);
3166  }
3167  }
3168  if(Tier3)
3169  {
3170  if(((time_2 - time_1) >= 0) && (Ywire_1==Ywire_2))
3171  {
3172  _h_muPC1_Y_SC_autocorr_2D->Fill(time_2 - time_1, Ywire_1);
3173  }
3174  }
3175  }
3176  }
3177  }
3178  }
3179  }
3180  bool _u_MMuPC1AnalysisMQL_253[_t_muPC1Y_SC.size()];
3181  memset(_u_MMuPC1AnalysisMQL_253, 0, sizeof(_u_MMuPC1AnalysisMQL_253));
3182  if(!_t_muPC1Y_SC.checkSort(_u_MMuPC1AnalysisMQL_69))
3183  {
3184  printf("Warning: table muPC1Y_SC is not sorted on time_1 as required for cluster.\n");
3185  }
3186  for(int _u_MMuPC1AnalysisMQL_254 = 0; _u_MMuPC1AnalysisMQL_254 < _t_muPC1Y_SC.size(); _u_MMuPC1AnalysisMQL_254++)
3187  {
3188  double time = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_254].time;
3189  int Ywire = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_254].Ywire;
3190  if(_u_MMuPC1AnalysisMQL_253[_u_MMuPC1AnalysisMQL_254])
3191  {
3192  continue;
3193  }
3194  _u_MMuPC1AnalysisMQL_253[_u_MMuPC1AnalysisMQL_254] = true;
3195  int cluster_size = 1;
3196  int cluster_members[_t_muPC1Y_SC.size()];
3197  cluster_members[0] = _u_MMuPC1AnalysisMQL_254;
3198 
3199  for(int _u_MMuPC1AnalysisMQL_255 = _u_MMuPC1AnalysisMQL_254 + 1; _u_MMuPC1AnalysisMQL_255 < _t_muPC1Y_SC.size(); _u_MMuPC1AnalysisMQL_255++)
3200  {
3201  if(_u_MMuPC1AnalysisMQL_253[_u_MMuPC1AnalysisMQL_255])
3202  {
3203  continue;
3204  }
3205  bool coincidence_seen = false;
3206  for(int _u_MMuPC1AnalysisMQL_256 = 0; _u_MMuPC1AnalysisMQL_256 < cluster_size; _u_MMuPC1AnalysisMQL_256++)
3207  {
3208  if(_u_MMuPC1AnalysisMQL_256 > 0) break;
3209  int _u_MMuPC1AnalysisMQL_257 = cluster_members[_u_MMuPC1AnalysisMQL_256];
3210  double time_1 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_257].time;
3211  double time_2 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_255].time;
3212  int Ywire_1 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_257].Ywire;
3213  int Ywire_2 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_255].Ywire;
3214 
3215  double _u_MMuPC1AnalysisMQL_258 = time_1 - time_2;
3216  if(_u_MMuPC1AnalysisMQL_258 < -kMuPC1YClusterInterval)
3217  {
3218  continue;
3219  }
3220  coincidence_seen = true;
3221  if(!(Ywire_1 == Ywire_2))
3222  {
3223  continue;
3224  }
3225  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_255;
3226  _u_MMuPC1AnalysisMQL_253[_u_MMuPC1AnalysisMQL_255] = true;
3227  break;
3228  }
3229  if(!coincidence_seen)
3230  {
3231  break;
3232  }
3233  }
3234  double time_min = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_254].time;
3235  double time_max = time_min;
3236  double time_sum = 0;
3237  int Ywire_min = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_254].Ywire;
3238  int Ywire_max = Ywire_min;
3239  int Ywire_sum = 0;
3240  for(int _u_MMuPC1AnalysisMQL_256 = 0; _u_MMuPC1AnalysisMQL_256 < cluster_size; _u_MMuPC1AnalysisMQL_256++)
3241  {
3242  int _u_MMuPC1AnalysisMQL_257 = cluster_members[_u_MMuPC1AnalysisMQL_256];
3243  time = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_257].time;
3244  time_min = MIN(time_min, time);
3245  time_max = MAX(time_max, time);
3246  time_sum = time_sum + time;
3247  Ywire = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_257].Ywire;
3248  Ywire_min = MIN(Ywire_min, Ywire);
3249  Ywire_max = MAX(Ywire_max, Ywire);
3250  Ywire_sum = Ywire_sum + Ywire;
3251  }
3252  double time_1 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_254].time;
3253  double time_avg = time_sum/((double)cluster_size);
3254  double time_width = time_max - time_min + 1;
3255  int Ywire_1 = _t_muPC1Y_SC[_u_MMuPC1AnalysisMQL_254].Ywire;
3256  double Ywire_avg = Ywire_sum/((double)cluster_size);
3257  int Ywire_width = Ywire_max - Ywire_min + 1;
3258  {
3259  double time = time_min;
3260  int Ywire = Ywire_1;
3261  int _u_MMuPC1AnalysisMQL_259 = _t_muPC1Y_AD.next();
3262  _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_259].time = time;
3263  _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_259].Ywire = Ywire;
3264  }
3265  }
3266  _t_muPC1Y_AD.sort(_u_MMuPC1AnalysisMQL_70);
3267  if(Tier3)
3268  {
3269  for(int _u_MMuPC1AnalysisMQL_260 = 0; _u_MMuPC1AnalysisMQL_260 < _t_muPC1Y_AD.size(); _u_MMuPC1AnalysisMQL_260++)
3270  {
3271  double time = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_260].time;
3272  int Ywire = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_260].Ywire;
3273  {
3274 
3275  double time_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_260].time;
3276  int Ywire_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_260].Ywire;
3277 
3278  if(!_u_MMuPC1AnalysisMQL_142)
3279  {
3280  if(!_t_muPC1Y_AD.checkSort(_u_MMuPC1AnalysisMQL_72))
3281  {
3282  printf("Warning: table muPC1Y_AD is not sorted on time_2 as required for join with muPC1Y_AD (_u_MMuPC1AnalysisMQL_72)\n");
3283  }
3284  _u_MMuPC1AnalysisMQL_142 = true;
3285  }
3286  else if(!_u_MMuPC1AnalysisMQL_143)
3287  {
3288  if(!(time_1 >= _u_MMuPC1AnalysisMQL_141))
3289  {
3290  printf("Warning: table muPC1Y_AD is not sorted on time_1 as required for join with muPC1Y_AD\n");
3291  _u_MMuPC1AnalysisMQL_143 = true;
3292  }
3293  }
3294  _u_MMuPC1AnalysisMQL_141 = time_1;
3295  for( ; _u_MMuPC1AnalysisMQL_140 < _t_muPC1Y_AD.size(); _u_MMuPC1AnalysisMQL_140++)
3296  {
3297  double time_2 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_140].time;
3298  int Ywire_2 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_140].Ywire;
3299 
3300  double _u_MMuPC1AnalysisMQL_261 = time_1 - time_2;
3301  if(_u_MMuPC1AnalysisMQL_261 < 1)
3302  {
3303  break;
3304  }
3305  }
3306  for(int _u_MMuPC1AnalysisMQL_263 = _u_MMuPC1AnalysisMQL_140; _u_MMuPC1AnalysisMQL_263 < _t_muPC1Y_AD.size(); _u_MMuPC1AnalysisMQL_263++)
3307  {
3308  double time_2 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_263].time;
3309  int Ywire_2 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_263].Ywire;
3310 
3311  double _u_MMuPC1AnalysisMQL_261 = time_1 - time_2;
3312  if(_u_MMuPC1AnalysisMQL_261 < -50005)
3313  {
3314  break;
3315  }
3316  {
3317  double time_1_0 = time_1;
3318  int Ywire_1_0 = Ywire_1;
3319  double time_2_0 = time_2;
3320  int Ywire_2_0 = Ywire_2;
3321  double time_1 = time_1_0;
3322  int Ywire_1 = Ywire_1_0;
3323  double time_2 = time_2_0;
3324  int Ywire_2 = Ywire_2_0;
3325  if(Tier3)
3326  {
3327  if((time_2 - time_1) >= 0)
3328  {
3329  _h_muPC1_Y_AD_autocorr_all_1D->Fill(time_2 - time_1);
3330  }
3331  }
3332  if(Tier3)
3333  {
3334  if(((time_2 - time_1) >= 0) && (Ywire_1==Ywire_2))
3335  {
3336  _h_muPC1_Y_AD_autocorr_2D->Fill(time_2 - time_1, Ywire_1);
3337  }
3338  }
3339  }
3340  }
3341  }
3342  }
3343  }
3344  bool _u_MMuPC1AnalysisMQL_264[_t_muPC1Y_AD.size()];
3345  memset(_u_MMuPC1AnalysisMQL_264, 0, sizeof(_u_MMuPC1AnalysisMQL_264));
3346  if(!_t_muPC1Y_AD.checkSort(_u_MMuPC1AnalysisMQL_73))
3347  {
3348  printf("Warning: table muPC1Y_AD is not sorted on time_1 as required for cluster.\n");
3349  }
3350  for(int _u_MMuPC1AnalysisMQL_265 = 0; _u_MMuPC1AnalysisMQL_265 < _t_muPC1Y_AD.size(); _u_MMuPC1AnalysisMQL_265++)
3351  {
3352  double time = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_265].time;
3353  int Ywire = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_265].Ywire;
3354  if(_u_MMuPC1AnalysisMQL_264[_u_MMuPC1AnalysisMQL_265])
3355  {
3356  continue;
3357  }
3358  _u_MMuPC1AnalysisMQL_264[_u_MMuPC1AnalysisMQL_265] = true;
3359  int cluster_size = 1;
3360  int cluster_members[_t_muPC1Y_AD.size()];
3361  cluster_members[0] = _u_MMuPC1AnalysisMQL_265;
3362 
3363  for(int _u_MMuPC1AnalysisMQL_266 = _u_MMuPC1AnalysisMQL_265 + 1; _u_MMuPC1AnalysisMQL_266 < _t_muPC1Y_AD.size(); _u_MMuPC1AnalysisMQL_266++)
3364  {
3365  if(_u_MMuPC1AnalysisMQL_264[_u_MMuPC1AnalysisMQL_266])
3366  {
3367  continue;
3368  }
3369  bool coincidence_seen = false;
3370  for(int _u_MMuPC1AnalysisMQL_267 = 0; _u_MMuPC1AnalysisMQL_267 < cluster_size; _u_MMuPC1AnalysisMQL_267++)
3371  {
3372  int _u_MMuPC1AnalysisMQL_268 = cluster_members[_u_MMuPC1AnalysisMQL_267];
3373  double time_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_268].time;
3374  double time_2 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_266].time;
3375  int Ywire_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_268].Ywire;
3376  int Ywire_2 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_266].Ywire;
3377 
3378  double _u_MMuPC1AnalysisMQL_269 = time_1 - time_2;
3379  if(_u_MMuPC1AnalysisMQL_269 < -kMuPC1YClusterInterval)
3380  {
3381  continue;
3382  }
3383  coincidence_seen = true;
3384  if(!(((abs(Ywire_1-Ywire_2)-1) == 0)))
3385  {
3386  continue;
3387  }
3388  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_266;
3389  _u_MMuPC1AnalysisMQL_264[_u_MMuPC1AnalysisMQL_266] = true;
3390  _u_MMuPC1AnalysisMQL_266 = _u_MMuPC1AnalysisMQL_265;
3391  break;
3392  }
3393  if(!coincidence_seen)
3394  {
3395  break;
3396  }
3397  }
3398  double time_min = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_265].time;
3399  double time_max = time_min;
3400  double time_sum = 0;
3401  int Ywire_min = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_265].Ywire;
3402  int Ywire_max = Ywire_min;
3403  int Ywire_sum = 0;
3404  for(int _u_MMuPC1AnalysisMQL_267 = 0; _u_MMuPC1AnalysisMQL_267 < cluster_size; _u_MMuPC1AnalysisMQL_267++)
3405  {
3406  int _u_MMuPC1AnalysisMQL_268 = cluster_members[_u_MMuPC1AnalysisMQL_267];
3407  time = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_268].time;
3408  time_min = MIN(time_min, time);
3409  time_max = MAX(time_max, time);
3410  time_sum = time_sum + time;
3411  Ywire = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_268].Ywire;
3412  Ywire_min = MIN(Ywire_min, Ywire);
3413  Ywire_max = MAX(Ywire_max, Ywire);
3414  Ywire_sum = Ywire_sum + Ywire;
3415  }
3416  double time_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_265].time;
3417  double time_avg = time_sum/((double)cluster_size);
3418  double time_width = time_max - time_min + 1;
3419  int Ywire_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_265].Ywire;
3420  double Ywire_avg = Ywire_sum/((double)cluster_size);
3421  int Ywire_width = Ywire_max - Ywire_min + 1;
3422  {
3423  double time = time_min;
3424  int Ywire_min_0 = Ywire_min;
3425  int Ywire_max_0 = Ywire_max;
3426  int Ywire_min = Ywire_min_0;
3427  int Ywire_max = Ywire_max_0;
3428  int _u_MMuPC1AnalysisMQL_270 = _t_muPC1Y_cluster_contiguous.next();
3429  _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_270].time = time;
3430  _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_270].Ywire_min = Ywire_min_0;
3431  _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_270].Ywire_max = Ywire_max_0;
3432  }
3433  }
3434  _t_muPC1Y_cluster_contiguous.sort(_u_MMuPC1AnalysisMQL_74);
3435  if(Tier3)
3436  {
3437  for(int _u_MMuPC1AnalysisMQL_271 = 0; _u_MMuPC1AnalysisMQL_271 < _t_muPC1Y_cluster_contiguous.size(); _u_MMuPC1AnalysisMQL_271++)
3438  {
3439  double time = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_271].time;
3440  int Ywire_min = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_271].Ywire_min;
3441  int Ywire_max = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_271].Ywire_max;
3442  {
3443 
3444  double time_1 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_271].time;
3445  int Ywire_min_1 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_271].Ywire_min;
3446  int Ywire_max_1 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_271].Ywire_max;
3447 
3448  if(!_u_MMuPC1AnalysisMQL_147)
3449  {
3450  if(!_t_muPC1Y_cluster_contiguous.checkSort(_u_MMuPC1AnalysisMQL_76))
3451  {
3452  printf("Warning: table muPC1Y_cluster_contiguous is not sorted on time_2 as required for join with muPC1Y_cluster_contiguous (_u_MMuPC1AnalysisMQL_76)\n");
3453  }
3454  _u_MMuPC1AnalysisMQL_147 = true;
3455  }
3456  else if(!_u_MMuPC1AnalysisMQL_148)
3457  {
3458  if(!(time_1 >= _u_MMuPC1AnalysisMQL_146))
3459  {
3460  printf("Warning: table muPC1Y_cluster_contiguous is not sorted on time_1 as required for join with muPC1Y_cluster_contiguous\n");
3461  _u_MMuPC1AnalysisMQL_148 = true;
3462  }
3463  }
3464  _u_MMuPC1AnalysisMQL_146 = time_1;
3465  for( ; _u_MMuPC1AnalysisMQL_145 < _t_muPC1Y_cluster_contiguous.size(); _u_MMuPC1AnalysisMQL_145++)
3466  {
3467  double time_2 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_145].time;
3468  int Ywire_min_2 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_145].Ywire_min;
3469  int Ywire_max_2 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_145].Ywire_max;
3470 
3471  double _u_MMuPC1AnalysisMQL_272 = time_1 - time_2;
3472  if(_u_MMuPC1AnalysisMQL_272 < 5)
3473  {
3474  break;
3475  }
3476  }
3477  for(int _u_MMuPC1AnalysisMQL_274 = _u_MMuPC1AnalysisMQL_145; _u_MMuPC1AnalysisMQL_274 < _t_muPC1Y_cluster_contiguous.size(); _u_MMuPC1AnalysisMQL_274++)
3478  {
3479  double time_2 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_274].time;
3480  int Ywire_min_2 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_274].Ywire_min;
3481  int Ywire_max_2 = _t_muPC1Y_cluster_contiguous[_u_MMuPC1AnalysisMQL_274].Ywire_max;
3482 
3483  double _u_MMuPC1AnalysisMQL_272 = time_1 - time_2;
3484  if(_u_MMuPC1AnalysisMQL_272 < -kMuPC1YClusterInterval)
3485  {
3486  break;
3487  }
3488  if(!((time_1==time_2) && (Ywire_min_1==Ywire_min_2) && (Ywire_max_1==Ywire_max_2)) &&
3489  ((Ywire_min_1 > Ywire_max_2) || (Ywire_min_2 > Ywire_max_1)))
3490  {
3491  {
3492  int cluster_sep = MIN(abs(Ywire_min_1-Ywire_max_2),abs(Ywire_min_2-Ywire_max_1));
3493  if(Tier3)
3494  {
3495  _h_muPC1_Y_cluster_contiguous_separation->Fill(cluster_sep);
3496  }
3497  }
3498  }
3499  }
3500  }
3501  }
3502  }
3503  bool _u_MMuPC1AnalysisMQL_275[_t_muPC1Y_AD.size()];
3504  memset(_u_MMuPC1AnalysisMQL_275, 0, sizeof(_u_MMuPC1AnalysisMQL_275));
3505  if(!_t_muPC1Y_AD.checkSort(_u_MMuPC1AnalysisMQL_77))
3506  {
3507  printf("Warning: table muPC1Y_AD is not sorted on time_1 as required for cluster.\n");
3508  }
3509  for(int _u_MMuPC1AnalysisMQL_276 = 0; _u_MMuPC1AnalysisMQL_276 < _t_muPC1Y_AD.size(); _u_MMuPC1AnalysisMQL_276++)
3510  {
3511  double time = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_276].time;
3512  int Ywire = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_276].Ywire;
3513  if(_u_MMuPC1AnalysisMQL_275[_u_MMuPC1AnalysisMQL_276])
3514  {
3515  continue;
3516  }
3517  _u_MMuPC1AnalysisMQL_275[_u_MMuPC1AnalysisMQL_276] = true;
3518  int cluster_size = 1;
3519  int cluster_members[_t_muPC1Y_AD.size()];
3520  cluster_members[0] = _u_MMuPC1AnalysisMQL_276;
3521 
3522  for(int _u_MMuPC1AnalysisMQL_277 = _u_MMuPC1AnalysisMQL_276 + 1; _u_MMuPC1AnalysisMQL_277 < _t_muPC1Y_AD.size(); _u_MMuPC1AnalysisMQL_277++)
3523  {
3524  if(_u_MMuPC1AnalysisMQL_275[_u_MMuPC1AnalysisMQL_277])
3525  {
3526  continue;
3527  }
3528  bool coincidence_seen = false;
3529  for(int _u_MMuPC1AnalysisMQL_278 = 0; _u_MMuPC1AnalysisMQL_278 < cluster_size; _u_MMuPC1AnalysisMQL_278++)
3530  {
3531  int _u_MMuPC1AnalysisMQL_279 = cluster_members[_u_MMuPC1AnalysisMQL_278];
3532  double time_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_279].time;
3533  double time_2 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_277].time;
3534  int Ywire_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_279].Ywire;
3535  int Ywire_2 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_277].Ywire;
3536 
3537  double _u_MMuPC1AnalysisMQL_280 = time_1 - time_2;
3538  if(_u_MMuPC1AnalysisMQL_280 < -kMuPC1YClusterInterval)
3539  {
3540  continue;
3541  }
3542  coincidence_seen = true;
3543  if(!((abs(Ywire_1-Ywire_2)-1) <= kMuPC1YClusterMaxGap))
3544  {
3545  continue;
3546  }
3547  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_277;
3548  _u_MMuPC1AnalysisMQL_275[_u_MMuPC1AnalysisMQL_277] = true;
3549  _u_MMuPC1AnalysisMQL_277 = _u_MMuPC1AnalysisMQL_276;
3550  break;
3551  }
3552  if(!coincidence_seen)
3553  {
3554  break;
3555  }
3556  }
3557  double time_min = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_276].time;
3558  double time_max = time_min;
3559  double time_sum = 0;
3560  int Ywire_min = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_276].Ywire;
3561  int Ywire_max = Ywire_min;
3562  int Ywire_sum = 0;
3563  for(int _u_MMuPC1AnalysisMQL_278 = 0; _u_MMuPC1AnalysisMQL_278 < cluster_size; _u_MMuPC1AnalysisMQL_278++)
3564  {
3565  int _u_MMuPC1AnalysisMQL_279 = cluster_members[_u_MMuPC1AnalysisMQL_278];
3566  time = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_279].time;
3567  time_min = MIN(time_min, time);
3568  time_max = MAX(time_max, time);
3569  time_sum = time_sum + time;
3570  Ywire = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_279].Ywire;
3571  Ywire_min = MIN(Ywire_min, Ywire);
3572  Ywire_max = MAX(Ywire_max, Ywire);
3573  Ywire_sum = Ywire_sum + Ywire;
3574  }
3575  double time_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_276].time;
3576  double time_avg = time_sum/((double)cluster_size);
3577  double time_width = time_max - time_min + 1;
3578  int Ywire_1 = _t_muPC1Y_AD[_u_MMuPC1AnalysisMQL_276].Ywire;
3579  double Ywire_avg = Ywire_sum/((double)cluster_size);
3580  int Ywire_width = Ywire_max - Ywire_min + 1;
3581  {
3582  double time = time_min;
3583  double Ywire = Ywire_avg;
3584  int cluster_size_0 = cluster_size;
3585  int cluster_width = Ywire_width;
3586  int cluster_size = cluster_size_0;
3587  if(Tier1)
3588  {
3589  _h_muPC1_Y_final_cluster_size->Fill(cluster_size);
3590  }
3591  if(Tier1)
3592  {
3593  _h_muPC1_Y_final_cluster_width->Fill(cluster_width);
3594  }
3595  if(Tier1)
3596  {
3597  _h_muPC1_Y_final_cluster_avg->Fill(Ywire);
3598  }
3599  {
3600  double Ywire_0 = Ywire;
3601  double muPC1Time = time;
3602  double Ywire = Ywire_0;
3603  int _u_MMuPC1AnalysisMQL_281 = _t_muPC1Y_export.next();
3604  _t_muPC1Y_export[_u_MMuPC1AnalysisMQL_281].Ywire = Ywire_0;
3605  _t_muPC1Y_export[_u_MMuPC1AnalysisMQL_281].muPC1Time = muPC1Time;
3606  }
3607  int _u_MMuPC1AnalysisMQL_282 = _t_muPC1Y.next();
3608  _t_muPC1Y[_u_MMuPC1AnalysisMQL_282].time = time;
3609  _t_muPC1Y[_u_MMuPC1AnalysisMQL_282].Ywire = Ywire;
3610  _t_muPC1Y[_u_MMuPC1AnalysisMQL_282].cluster_size = cluster_size_0;
3611  _t_muPC1Y[_u_MMuPC1AnalysisMQL_282].cluster_width = cluster_width;
3612  }
3613  }
3614  _t_muPC1Y.sort(_u_MMuPC1AnalysisMQL_78);
3615  if(Tier3)
3616  {
3617  for(int _u_MMuPC1AnalysisMQL_283 = 0; _u_MMuPC1AnalysisMQL_283 < _t_muPC1Y.size(); _u_MMuPC1AnalysisMQL_283++)
3618  {
3619  double time = _t_muPC1Y[_u_MMuPC1AnalysisMQL_283].time;
3620  double Ywire = _t_muPC1Y[_u_MMuPC1AnalysisMQL_283].Ywire;
3621  int cluster_size = _t_muPC1Y[_u_MMuPC1AnalysisMQL_283].cluster_size;
3622  int cluster_width = _t_muPC1Y[_u_MMuPC1AnalysisMQL_283].cluster_width;
3623  {
3624 
3625  double time_1 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_283].time;
3626  double Ywire_1 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_283].Ywire;
3627  int cluster_size_1 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_283].cluster_size;
3628  int cluster_width_1 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_283].cluster_width;
3629 
3630  if(!_u_MMuPC1AnalysisMQL_152)
3631  {
3632  if(!_t_muPC1Y.checkSort(_u_MMuPC1AnalysisMQL_80))
3633  {
3634  printf("Warning: table muPC1Y is not sorted on time_2 as required for join with muPC1Y (_u_MMuPC1AnalysisMQL_80)\n");
3635  }
3636  _u_MMuPC1AnalysisMQL_152 = true;
3637  }
3638  else if(!_u_MMuPC1AnalysisMQL_153)
3639  {
3640  if(!(time_1 >= _u_MMuPC1AnalysisMQL_151))
3641  {
3642  printf("Warning: table muPC1Y is not sorted on time_1 as required for join with muPC1Y\n");
3643  _u_MMuPC1AnalysisMQL_153 = true;
3644  }
3645  }
3646  _u_MMuPC1AnalysisMQL_151 = time_1;
3647  for( ; _u_MMuPC1AnalysisMQL_150 < _t_muPC1Y.size(); _u_MMuPC1AnalysisMQL_150++)
3648  {
3649  double time_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_150].time;
3650  double Ywire_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_150].Ywire;
3651  int cluster_size_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_150].cluster_size;
3652  int cluster_width_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_150].cluster_width;
3653 
3654  double _u_MMuPC1AnalysisMQL_284 = time_1 - time_2;
3655  if(_u_MMuPC1AnalysisMQL_284 < 1)
3656  {
3657  break;
3658  }
3659  }
3660  for(int _u_MMuPC1AnalysisMQL_286 = _u_MMuPC1AnalysisMQL_150; _u_MMuPC1AnalysisMQL_286 < _t_muPC1Y.size(); _u_MMuPC1AnalysisMQL_286++)
3661  {
3662  double time_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_286].time;
3663  double Ywire_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_286].Ywire;
3664  int cluster_size_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_286].cluster_size;
3665  int cluster_width_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_286].cluster_width;
3666 
3667  double _u_MMuPC1AnalysisMQL_284 = time_1 - time_2;
3668  if(_u_MMuPC1AnalysisMQL_284 < -50005)
3669  {
3670  break;
3671  }
3672  {
3673  double time_1_0 = time_1;
3674  double time_2_0 = time_2;
3675  double time_1 = time_1_0;
3676  double time_2 = time_2_0;
3677  if(Tier3)
3678  {
3679  if((time_2 - time_1) >= 0)
3680  {
3681  _h_muPC1_Y_final_cluster_autocorr_all_1D->Fill(time_2 - time_1);
3682  }
3683  }
3684  }
3685  }
3686  }
3687  }
3688  }
3689  if(Tier3)
3690  {
3691  for(int _u_MMuPC1AnalysisMQL_287 = 0; _u_MMuPC1AnalysisMQL_287 < _t_muPC1Y.size(); _u_MMuPC1AnalysisMQL_287++)
3692  {
3693  double time = _t_muPC1Y[_u_MMuPC1AnalysisMQL_287].time;
3694  double Ywire = _t_muPC1Y[_u_MMuPC1AnalysisMQL_287].Ywire;
3695  int cluster_size = _t_muPC1Y[_u_MMuPC1AnalysisMQL_287].cluster_size;
3696  int cluster_width = _t_muPC1Y[_u_MMuPC1AnalysisMQL_287].cluster_width;
3697  {
3698 
3699  double time_1 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_287].time;
3700  double Ywire_1 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_287].Ywire;
3701  int cluster_size_1 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_287].cluster_size;
3702  int cluster_width_1 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_287].cluster_width;
3703 
3704  if(!_u_MMuPC1AnalysisMQL_156)
3705  {
3706  if(!_t_muPC1Y.checkSort(_u_MMuPC1AnalysisMQL_82))
3707  {
3708  printf("Warning: table muPC1Y is not sorted on time_2 as required for join with muPC1Y (_u_MMuPC1AnalysisMQL_82)\n");
3709  }
3710  _u_MMuPC1AnalysisMQL_156 = true;
3711  }
3712  else if(!_u_MMuPC1AnalysisMQL_157)
3713  {
3714  if(!(time_1 >= _u_MMuPC1AnalysisMQL_155))
3715  {
3716  printf("Warning: table muPC1Y is not sorted on time_1 as required for join with muPC1Y\n");
3717  _u_MMuPC1AnalysisMQL_157 = true;
3718  }
3719  }
3720  _u_MMuPC1AnalysisMQL_155 = time_1;
3721  for( ; _u_MMuPC1AnalysisMQL_154 < _t_muPC1Y.size(); _u_MMuPC1AnalysisMQL_154++)
3722  {
3723  double time_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_154].time;
3724  double Ywire_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_154].Ywire;
3725  int cluster_size_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_154].cluster_size;
3726  int cluster_width_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_154].cluster_width;
3727 
3728  double _u_MMuPC1AnalysisMQL_288 = time_1 - time_2;
3729  if(_u_MMuPC1AnalysisMQL_288 < 1)
3730  {
3731  break;
3732  }
3733  }
3734  for(int _u_MMuPC1AnalysisMQL_290 = _u_MMuPC1AnalysisMQL_154; _u_MMuPC1AnalysisMQL_290 < _t_muPC1Y.size(); _u_MMuPC1AnalysisMQL_290++)
3735  {
3736  double time_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_290].time;
3737  double Ywire_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_290].Ywire;
3738  int cluster_size_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_290].cluster_size;
3739  int cluster_width_2 = _t_muPC1Y[_u_MMuPC1AnalysisMQL_290].cluster_width;
3740 
3741  double _u_MMuPC1AnalysisMQL_288 = time_1 - time_2;
3742  if(_u_MMuPC1AnalysisMQL_288 < -150)
3743  {
3744  break;
3745  }
3746  {
3747  double time1 = time_1;
3748  double time2 = time_2;
3749  double wire_diff = fabs(Ywire_1-Ywire_2);
3750  if(Tier3)
3751  {
3752  if(fabs(time_2-time_1)>=0)
3753  {
3755  }
3756  }
3757  }
3758  }
3759  }
3760  }
3761  }
3762  for(int _u_MMuPC1AnalysisMQL_291 = 0; _u_MMuPC1AnalysisMQL_291 < _t_muPC1X.size(); _u_MMuPC1AnalysisMQL_291++)
3763  {
3764  double time = _t_muPC1X[_u_MMuPC1AnalysisMQL_291].time;
3765  double Xwire = _t_muPC1X[_u_MMuPC1AnalysisMQL_291].Xwire;
3766  int cluster_size = _t_muPC1X[_u_MMuPC1AnalysisMQL_291].cluster_size;
3767  int cluster_width = _t_muPC1X[_u_MMuPC1AnalysisMQL_291].cluster_width;
3768  {
3769 
3770  double muPC1X_time = _t_muPC1X[_u_MMuPC1AnalysisMQL_291].time;
3771  double Xwire = _t_muPC1X[_u_MMuPC1AnalysisMQL_291].Xwire;
3772  int muPC1X_cluster_size = _t_muPC1X[_u_MMuPC1AnalysisMQL_291].cluster_size;
3773  int muPC1X_cluster_width = _t_muPC1X[_u_MMuPC1AnalysisMQL_291].cluster_width;
3774 
3775  if(!_u_MMuPC1AnalysisMQL_160)
3776  {
3777  if(!_t_muPC1Y.checkSort(_u_MMuPC1AnalysisMQL_84))
3778  {
3779  printf("Warning: table muPC1Y is not sorted on muPC1Y_time as required for join with muPC1X (_u_MMuPC1AnalysisMQL_84)\n");
3780  }
3781  _u_MMuPC1AnalysisMQL_160 = true;
3782  }
3783  else if(!_u_MMuPC1AnalysisMQL_161)
3784  {
3785  if(!(muPC1X_time >= _u_MMuPC1AnalysisMQL_159))
3786  {
3787  printf("Warning: table muPC1X is not sorted on muPC1X_time as required for join with muPC1Y\n");
3788  _u_MMuPC1AnalysisMQL_161 = true;
3789  }
3790  }
3791  _u_MMuPC1AnalysisMQL_159 = muPC1X_time;
3792  for( ; _u_MMuPC1AnalysisMQL_158 < _t_muPC1Y.size(); _u_MMuPC1AnalysisMQL_158++)
3793  {
3794  double muPC1Y_time = _t_muPC1Y[_u_MMuPC1AnalysisMQL_158].time;
3795  double Ywire = _t_muPC1Y[_u_MMuPC1AnalysisMQL_158].Ywire;
3796  int muPC1Y_cluster_size = _t_muPC1Y[_u_MMuPC1AnalysisMQL_158].cluster_size;
3797  int muPC1Y_cluster_width = _t_muPC1Y[_u_MMuPC1AnalysisMQL_158].cluster_width;
3798 
3799  double _u_MMuPC1AnalysisMQL_292 = muPC1X_time - muPC1Y_time;
3800  if(_u_MMuPC1AnalysisMQL_292 < 601)
3801  {
3802  break;
3803  }
3804  }
3805  for(int _u_MMuPC1AnalysisMQL_294 = _u_MMuPC1AnalysisMQL_158; _u_MMuPC1AnalysisMQL_294 < _t_muPC1Y.size(); _u_MMuPC1AnalysisMQL_294++)
3806  {
3807  double muPC1Y_time = _t_muPC1Y[_u_MMuPC1AnalysisMQL_294].time;
3808  double Ywire = _t_muPC1Y[_u_MMuPC1AnalysisMQL_294].Ywire;
3809  int muPC1Y_cluster_size = _t_muPC1Y[_u_MMuPC1AnalysisMQL_294].cluster_size;
3810  int muPC1Y_cluster_width = _t_muPC1Y[_u_MMuPC1AnalysisMQL_294].cluster_width;
3811 
3812  double _u_MMuPC1AnalysisMQL_292 = muPC1X_time - muPC1Y_time;
3813  if(_u_MMuPC1AnalysisMQL_292 < -601)
3814  {
3815  break;
3816  }
3817  {
3818  double Xwire_0 = Xwire;
3819  double Ywire_0 = Ywire;
3820  double muPC1Time = MIN(muPC1X_time, muPC1Y_time);
3821  double XYtdiff = muPC1Y_time - muPC1X_time;
3822  double Xwire = Xwire_0;
3823  double Ywire = Ywire_0;
3824  int _u_MMuPC1AnalysisMQL_295 = _t_muPC1XY.next();
3825  _t_muPC1XY[_u_MMuPC1AnalysisMQL_295].Xwire = Xwire_0;
3826  _t_muPC1XY[_u_MMuPC1AnalysisMQL_295].Ywire = Ywire_0;
3827  _t_muPC1XY[_u_MMuPC1AnalysisMQL_295].muPC1Time = muPC1Time;
3828  _t_muPC1XY[_u_MMuPC1AnalysisMQL_295].XYtdiff = XYtdiff;
3829  }
3830  }
3831  }
3832  }
3833  _t_muPC1XY.sort(_u_MMuPC1AnalysisMQL_85);
3834  for(int _u_MMuPC1AnalysisMQL_296 = 0; _u_MMuPC1AnalysisMQL_296 < _t_muPC1XY.size(); _u_MMuPC1AnalysisMQL_296++)
3835  {
3836  double Xwire = _t_muPC1XY[_u_MMuPC1AnalysisMQL_296].Xwire;
3837  double Ywire = _t_muPC1XY[_u_MMuPC1AnalysisMQL_296].Ywire;
3838  double muPC1Time = _t_muPC1XY[_u_MMuPC1AnalysisMQL_296].muPC1Time;
3839  double XYtdiff = _t_muPC1XY[_u_MMuPC1AnalysisMQL_296].XYtdiff;
3840  if(Tier1)
3841  {
3842  _h_muPC1_coinc_XY_tdiff->Fill(XYtdiff);
3843  }
3844  if((XYtdiff >= -95) && (XYtdiff <= 95))
3845  {
3846  {
3847  double Xwire_0 = Xwire;
3848  double Ywire_0 = Ywire;
3849  double muPC1Time_0 = muPC1Time;
3850  double Xwire = Xwire_0;
3851  double Ywire = Ywire_0;
3852  double muPC1Time = muPC1Time_0;
3853  if(Tier1)
3854  {
3855  _h_muPC1_coinc_XY_2D->Fill(Xwire, Ywire);
3856  }
3857  int _u_MMuPC1AnalysisMQL_297 = _t_muPC1.next();
3858  _t_muPC1[_u_MMuPC1AnalysisMQL_297].Xwire = Xwire_0;
3859  _t_muPC1[_u_MMuPC1AnalysisMQL_297].Ywire = Ywire_0;
3860  _t_muPC1[_u_MMuPC1AnalysisMQL_297].muPC1Time = muPC1Time_0;
3861  }
3862  }
3863  }
3864  if(Tier3)
3865  {
3866  for(int _u_MMuPC1AnalysisMQL_298 = 0; _u_MMuPC1AnalysisMQL_298 < _t_muPC1.size(); _u_MMuPC1AnalysisMQL_298++)
3867  {
3868  double Xwire = _t_muPC1[_u_MMuPC1AnalysisMQL_298].Xwire;
3869  double Ywire = _t_muPC1[_u_MMuPC1AnalysisMQL_298].Ywire;
3870  double muPC1Time = _t_muPC1[_u_MMuPC1AnalysisMQL_298].muPC1Time;
3871  {
3872 
3873  double Xwire_1 = _t_muPC1[_u_MMuPC1AnalysisMQL_298].Xwire;
3874  double Ywire_1 = _t_muPC1[_u_MMuPC1AnalysisMQL_298].Ywire;
3875  double muPC1Time_1 = _t_muPC1[_u_MMuPC1AnalysisMQL_298].muPC1Time;
3876 
3877  if(!_u_MMuPC1AnalysisMQL_164)
3878  {
3879  if(!_t_muPC1.checkSort(_u_MMuPC1AnalysisMQL_87))
3880  {
3881  printf("Warning: table muPC1 is not sorted on muPC1Time_2 as required for join with muPC1 (_u_MMuPC1AnalysisMQL_87)\n");
3882  }
3883  _u_MMuPC1AnalysisMQL_164 = true;
3884  }
3885  else if(!_u_MMuPC1AnalysisMQL_165)
3886  {
3887  if(!(muPC1Time_1 >= _u_MMuPC1AnalysisMQL_163))
3888  {
3889  printf("Warning: table muPC1 is not sorted on muPC1Time_1 as required for join with muPC1\n");
3890  _u_MMuPC1AnalysisMQL_165 = true;
3891  }
3892  }
3893  _u_MMuPC1AnalysisMQL_163 = muPC1Time_1;
3894  for( ; _u_MMuPC1AnalysisMQL_162 < _t_muPC1.size(); _u_MMuPC1AnalysisMQL_162++)
3895  {
3896  double Xwire_2 = _t_muPC1[_u_MMuPC1AnalysisMQL_162].Xwire;
3897  double Ywire_2 = _t_muPC1[_u_MMuPC1AnalysisMQL_162].Ywire;
3898  double muPC1Time_2 = _t_muPC1[_u_MMuPC1AnalysisMQL_162].muPC1Time;
3899 
3900  double _u_MMuPC1AnalysisMQL_299 = muPC1Time_1 - muPC1Time_2;
3901  if(_u_MMuPC1AnalysisMQL_299 < 1)
3902  {
3903  break;
3904  }
3905  }
3906  for(int _u_MMuPC1AnalysisMQL_301 = _u_MMuPC1AnalysisMQL_162; _u_MMuPC1AnalysisMQL_301 < _t_muPC1.size(); _u_MMuPC1AnalysisMQL_301++)
3907  {
3908  double Xwire_2 = _t_muPC1[_u_MMuPC1AnalysisMQL_301].Xwire;
3909  double Ywire_2 = _t_muPC1[_u_MMuPC1AnalysisMQL_301].Ywire;
3910  double muPC1Time_2 = _t_muPC1[_u_MMuPC1AnalysisMQL_301].muPC1Time;
3911 
3912  double _u_MMuPC1AnalysisMQL_299 = muPC1Time_1 - muPC1Time_2;
3913  if(_u_MMuPC1AnalysisMQL_299 < -50005)
3914  {
3915  break;
3916  }
3917  {
3918  double muPC1Time_1_0 = muPC1Time_1;
3919  double muPC1Time_2_0 = muPC1Time_2;
3920  double muPC1Time_1 = muPC1Time_1_0;
3921  double muPC1Time_2 = muPC1Time_2_0;
3922  if(Tier3)
3923  {
3924  if((muPC1Time_2 - muPC1Time_1) >= 0)
3925  {
3926  _h_muPC1_coinc_XY_autocorr_all_1D->Fill(muPC1Time_2 - muPC1Time_1);
3927  }
3928  }
3929  }
3930  }
3931  }
3932  }
3933  }
3934  for(int _u_MMuPC1AnalysisMQL_302 = 0; _u_MMuPC1AnalysisMQL_302 < _t_muSC.size(); _u_MMuPC1AnalysisMQL_302++)
3935  {
3936  double time = _t_muSC[_u_MMuPC1AnalysisMQL_302].time;
3937  {
3938 
3939  double time = _t_muSC[_u_MMuPC1AnalysisMQL_302].time;
3940 
3941  if(!_u_MMuPC1AnalysisMQL_168)
3942  {
3943  if(!_t_muPC1.checkSort(_u_MMuPC1AnalysisMQL_89))
3944  {
3945  printf("Warning: table muPC1 is not sorted on muPC1Time as required for join with muSC (_u_MMuPC1AnalysisMQL_89)\n");
3946  }
3947  _u_MMuPC1AnalysisMQL_168 = true;
3948  }
3949  else if(!_u_MMuPC1AnalysisMQL_169)
3950  {
3951  if(!(time >= _u_MMuPC1AnalysisMQL_167))
3952  {
3953  printf("Warning: table muSC is not sorted on time as required for join with muPC1\n");
3954  _u_MMuPC1AnalysisMQL_169 = true;
3955  }
3956  }
3957  _u_MMuPC1AnalysisMQL_167 = time;
3958  for( ; _u_MMuPC1AnalysisMQL_166 < _t_muPC1.size(); _u_MMuPC1AnalysisMQL_166++)
3959  {
3960  double Xwire = _t_muPC1[_u_MMuPC1AnalysisMQL_166].Xwire;
3961  double Ywire = _t_muPC1[_u_MMuPC1AnalysisMQL_166].Ywire;
3962  double muPC1Time = _t_muPC1[_u_MMuPC1AnalysisMQL_166].muPC1Time;
3963 
3964  double _u_MMuPC1AnalysisMQL_303 = time - muPC1Time;
3965  if(_u_MMuPC1AnalysisMQL_303 < 10000)
3966  {
3967  break;
3968  }
3969  }
3970  for(int _u_MMuPC1AnalysisMQL_305 = _u_MMuPC1AnalysisMQL_166; _u_MMuPC1AnalysisMQL_305 < _t_muPC1.size(); _u_MMuPC1AnalysisMQL_305++)
3971  {
3972  double Xwire = _t_muPC1[_u_MMuPC1AnalysisMQL_305].Xwire;
3973  double Ywire = _t_muPC1[_u_MMuPC1AnalysisMQL_305].Ywire;
3974  double muPC1Time = _t_muPC1[_u_MMuPC1AnalysisMQL_305].muPC1Time;
3975 
3976  double _u_MMuPC1AnalysisMQL_303 = time - muPC1Time;
3977  if(_u_MMuPC1AnalysisMQL_303 < -10000)
3978  {
3979  break;
3980  }
3981  {
3982  double Xwire_0 = Xwire;
3983  double Ywire_0 = Ywire;
3984  double time_0 = time;
3985  double muPC1Time_0 = muPC1Time;
3986  double Xwire = Xwire_0;
3987  double Ywire = Ywire_0;
3988  double time = time_0;
3989  double muPC1Time = muPC1Time_0;
3990  _h_muSC_muPC1_time_difference->Fill(time-muPC1Time);
3991  if(Tier1)
3992  {
3993  if(((time-muPC1Time) >= -160) && ((time-muPC1Time) <= 20))
3994  {
3995  _h_muPC1_coinc_XY_2D_with_muSC->Fill(Xwire, Ywire);
3996  }
3997  }
3998  }
3999  }
4000  }
4001  }
4002  for(int _u_MMuPC1AnalysisMQL_306 = 0; _u_MMuPC1AnalysisMQL_306 < _t_muPC1X_sparks.size(); _u_MMuPC1AnalysisMQL_306++)
4003  {
4004  double time = _t_muPC1X_sparks[_u_MMuPC1AnalysisMQL_306].time;
4005  {
4006  double time_0 = time;
4007  double time = time_0;
4008  int _u_MMuPC1AnalysisMQL_307 = _t_muPC1_sparks_union.next();
4009  _t_muPC1_sparks_union[_u_MMuPC1AnalysisMQL_307].time = time_0;
4010  }
4011  }
4012  for(int _u_MMuPC1AnalysisMQL_308 = 0; _u_MMuPC1AnalysisMQL_308 < _t_muPC1Y_sparks.size(); _u_MMuPC1AnalysisMQL_308++)
4013  {
4014  double time = _t_muPC1Y_sparks[_u_MMuPC1AnalysisMQL_308].time;
4015  {
4016  double time_0 = time;
4017  double time = time_0;
4018  int _u_MMuPC1AnalysisMQL_309 = _t_muPC1_sparks_union.next();
4019  _t_muPC1_sparks_union[_u_MMuPC1AnalysisMQL_309].time = time_0;
4020  }
4021  }
4022  _t_muPC1_sparks_union.sort(_u_MMuPC1AnalysisMQL_90);
4023  bool _u_MMuPC1AnalysisMQL_310[_t_muPC1_sparks_union.size()];
4024  memset(_u_MMuPC1AnalysisMQL_310, 0, sizeof(_u_MMuPC1AnalysisMQL_310));
4025  if(!_t_muPC1_sparks_union.checkSort(_u_MMuPC1AnalysisMQL_91))
4026  {
4027  printf("Warning: table muPC1_sparks_union is not sorted on time_1 as required for cluster.\n");
4028  }
4029  for(int _u_MMuPC1AnalysisMQL_311 = 0; _u_MMuPC1AnalysisMQL_311 < _t_muPC1_sparks_union.size(); _u_MMuPC1AnalysisMQL_311++)
4030  {
4031  double time = _t_muPC1_sparks_union[_u_MMuPC1AnalysisMQL_311].time;
4032  if(_u_MMuPC1AnalysisMQL_310[_u_MMuPC1AnalysisMQL_311])
4033  {
4034  continue;
4035  }
4036  _u_MMuPC1AnalysisMQL_310[_u_MMuPC1AnalysisMQL_311] = true;
4037  int cluster_size = 1;
4038  int cluster_members[_t_muPC1_sparks_union.size()];
4039  cluster_members[0] = _u_MMuPC1AnalysisMQL_311;
4040 
4041  for(int _u_MMuPC1AnalysisMQL_312 = _u_MMuPC1AnalysisMQL_311 + 1; _u_MMuPC1AnalysisMQL_312 < _t_muPC1_sparks_union.size(); _u_MMuPC1AnalysisMQL_312++)
4042  {
4043  if(_u_MMuPC1AnalysisMQL_310[_u_MMuPC1AnalysisMQL_312])
4044  {
4045  continue;
4046  }
4047  bool coincidence_seen = false;
4048  for(int _u_MMuPC1AnalysisMQL_313 = 0; _u_MMuPC1AnalysisMQL_313 < cluster_size; _u_MMuPC1AnalysisMQL_313++)
4049  {
4050  int _u_MMuPC1AnalysisMQL_314 = cluster_members[_u_MMuPC1AnalysisMQL_313];
4051  double time_1 = _t_muPC1_sparks_union[_u_MMuPC1AnalysisMQL_314].time;
4052  double time_2 = _t_muPC1_sparks_union[_u_MMuPC1AnalysisMQL_312].time;
4053 
4054  double _u_MMuPC1AnalysisMQL_315 = time_1 - time_2;
4055  if(_u_MMuPC1AnalysisMQL_315 < -200)
4056  {
4057  continue;
4058  }
4059  coincidence_seen = true;
4060  cluster_members[cluster_size++] = _u_MMuPC1AnalysisMQL_312;
4061  _u_MMuPC1AnalysisMQL_310[_u_MMuPC1AnalysisMQL_312] = true;
4062  _u_MMuPC1AnalysisMQL_312 = _u_MMuPC1AnalysisMQL_311;
4063  break;
4064  }
4065  if(!coincidence_seen)
4066  {
4067  break;
4068  }
4069  }
4070  double time_min = _t_muPC1_sparks_union[_u_MMuPC1AnalysisMQL_311].time;
4071  double time_max = time_min;
4072  double time_sum = 0;
4073  for(int _u_MMuPC1AnalysisMQL_313 = 0; _u_MMuPC1AnalysisMQL_313 < cluster_size; _u_MMuPC1AnalysisMQL_313++)
4074  {
4075  int _u_MMuPC1AnalysisMQL_314 = cluster_members[_u_MMuPC1AnalysisMQL_313];
4076  time = _t_muPC1_sparks_union[_u_MMuPC1AnalysisMQL_314].time;
4077  time_min = MIN(time_min, time);
4078  time_max = MAX(time_max, time);
4079  time_sum = time_sum + time;
4080  }
4081  double time_1 = _t_muPC1_sparks_union[_u_MMuPC1AnalysisMQL_311].time;
4082  double time_avg = time_sum/((double)cluster_size);
4083  double time_width = time_max - time_min + 1;
4084  {
4085  double time = time_min;
4086  int cluster_size_0 = cluster_size;
4087  int cluster_size = cluster_size_0;
4088  if(Tier1)
4089  {
4091  }
4092  if(cluster_size == 2)
4093  {
4094  {
4095  double time_0 = time;
4096  double time = time_0;
4097  if(Tier1)
4098  {
4100  }
4101  if(Tier1)
4102  {
4104  }
4105  }
4106  }
4107  }
4108  }
4109  _t_muPC1X_auto.finish();
4110  _t_muPC1_sparks_union.toBank(pevent, "M1SP");
4111  _t_muPC1_sparks_union.finish();
4112  _t_muPC1X_cluster_contiguous.finish();
4113  _t_muPC1Y_temporal_auto.finish();
4114  _t_muPC1X_raw_auto.finish();
4115  _t_muPC1X_AD.finish();
4116  _t_muPC1Y_spark_search.finish();
4117  _t_muPC1X_cluster_contiguous_sep.finish();
4118  _t_muPC1X_spatial_auto.finish();
4119  _t_muPC1X_export.toBank(pevent, "MP1X");
4120  _t_muPC1X_export.finish();
4121  _t_muPC1X_SC.finish();
4122  _t_muPC1Y_export.toBank(pevent, "MP1Y");
4123  _t_muPC1Y_export.finish();
4124  _t_muPC1Y_raw_auto.finish();
4125  _t_muPC1Y.finish();
4126  _t_muPC1X.finish();
4127  _t_muSC.finish();
4128  _t_muPC1Y_cluster_contiguous_sep.finish();
4129  _t_muPC1_auto.finish();
4130  _t_muPC1Y_SC_auto.finish();
4131  _t_hits.finish();
4132  _t_muPC1X_spark_search.finish();
4133  _t_muPC1X_AD_auto.finish();
4134  _t_muPC1X_sparks.finish();
4135  _t_muPC1Y_sparks.finish();
4136  _t_muPC1.toBank(pevent, "MPC1");
4137  _t_muPC1.finish();
4138  _t_muPC1Y_AD.finish();
4139  _t_muPC1_sparks_clustered.finish();
4140  _t_muPC1_hits.finish();
4141  _t_muPC1Y_raw.finish();
4142  _t_muPC1Y_SC.finish();
4143  _t_muSC_muPC1.finish();
4144  _t_muPC1_sparks_chamberwide.finish();
4145  _t_muPC1Y_AD_auto.finish();
4146  _t_muPC1Y_cluster_contiguous.finish();
4147  _t_muPC1XY.finish();
4148  _t_muPC1Y_spatial_auto.finish();
4149  _t_muPC1X_raw.finish();
4150  _t_muPC1X_SC_auto.finish();
4151  return SUCCESS;
4152 }