CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ROSDebugUtility.h
Go to the documentation of this file.
1 /*
2  * \file ROSDebugUtility.h
3  * File to generate the plots used in the debug of ROS parameters
4  * $Date: 2007/10/9
5  * \author Jorge Molina (CIEMAT)
6  */
7 
8 std::string itoa(int current);
22 int cont=0,cont2=0,cont3=0,cont4=0,cont5=0,cont6=0;
23 int cont7=0,cont8=0,cont9=0,cont10=0,cont11=0,cont12=0,cycle = 1495;
27 long double first_evt=0;
28 long double first_evt2=0;
29 long double first_evt3=0;
30 long double first_evt4=0;
31 long double first_evt5=0;
32 long double first_evt6=0;
33 long double first_evt7=0;
34 long double first_evt8=0;
35 long double first_evt9=0;
36 long double first_evt10=0;
37 long double first_evt11=0;
38 long double first_evt12=0;
39 float peso=1;
40 
41 inline void ROSWords_t(double& ResetCount_unfolded,int ROS_number,int ROSDebug_BcntResCnt,int nevents)
42 {
43 
44 // synchronize with evt #
45 // if (neventsROS25 ==1) ResetCount_unfolded_comp.first=ROS_number;
46 
47 // Processing first ROS
48  if (ROS_number == 1){
49  double ResetCount = ROSDebug_BcntResCnt*0.0000891;
50 
51  if (ResetCount_unfolded_comp <= (ResetCount)) {
52  cont = cont;
53  ResetCount_unfolded = ResetCount + cycle*cont;
54  }
55  else { cont = cont + 1;
56  ResetCount_unfolded = ResetCount + cycle*cont;
57  }
58  ResetCount_unfolded_comp = ResetCount;
59  }
60 
61 // second ROS
62  else if (ROS_number == 2){
63  double ResetCount2 = ROSDebug_BcntResCnt*0.0000891;
64  if (ResetCount_unfolded_comp2 <= (ResetCount2)) {
65  cont2 = cont2;
66  ResetCount_unfolded = ResetCount2 + cycle*cont2;
67  }
68  else { cont2 = cont2 + 1;
69  ResetCount_unfolded = ResetCount2 + cycle*cont2;
70  }
71  ResetCount_unfolded_comp2 = ResetCount2;
72  }
73 
74 // third ROS
75  else if (ROS_number == 3){
76  double ResetCount3 = ROSDebug_BcntResCnt*0.0000891;
77  if (ResetCount_unfolded_comp3 <= (ResetCount3)) {
78  cont3 = cont3;
79  ResetCount_unfolded = ResetCount3 + cycle*cont3;
80  }
81  else { cont3 = cont3 + 1;
82  ResetCount_unfolded = ResetCount3 + cycle*cont3;
83  }
84  ResetCount_unfolded_comp3 = ResetCount3;
85  }
86 
87 
88 // 4th ROS
89  else if (ROS_number == 4){
90  double ResetCount4 = ROSDebug_BcntResCnt*0.0000891;
91  if (ResetCount_unfolded_comp4 <= (ResetCount4)) {
92  cont4 = cont4;
93  ResetCount_unfolded = ResetCount4 + cycle*cont4;
94  }
95  else { cont4 = cont4 + 1;
96  ResetCount_unfolded = ResetCount4 + cycle*cont4;
97  }
98  ResetCount_unfolded_comp = ResetCount4;
99  }
100 
101 // 5th ROS
102  else if (ROS_number == 5){
103  double ResetCount5 = ROSDebug_BcntResCnt*0.0000891;
104  if (ResetCount_unfolded_comp5 <= (ResetCount5)) {
105  cont5 = cont5;
106  ResetCount_unfolded = ResetCount5 + cycle*cont5;
107  }
108  else { cont5 = cont5 + 1;
109  ResetCount_unfolded = ResetCount5 + cycle*cont5;
110  }
111  ResetCount_unfolded_comp5 = ResetCount5;
112  }
113 
114 // 6th ROS
115  else if (ROS_number == 6){
116  double ResetCount6 = ROSDebug_BcntResCnt*0.0000891;
117  if (ResetCount_unfolded_comp6 <= (ResetCount6)) {
118  cont6 = cont6;
119  ResetCount_unfolded = ResetCount6 + cycle*cont6;
120  }
121  else { cont6 = cont6 + 1;
122  ResetCount_unfolded = ResetCount6 + cycle*cont6;
123  }
124  ResetCount_unfolded_comp6 = ResetCount6;
125  }
126 
127 // 7th ROS
128  else if (ROS_number == 7){
129  double ResetCount7 = ROSDebug_BcntResCnt*0.0000891;
130  if (ResetCount_unfolded_comp7 <= (ResetCount7)) {
131  cont7 = cont7;
132  ResetCount_unfolded = ResetCount7 + cycle*cont7;
133  }
134  else { cont7 = cont7 + 1;
135  ResetCount_unfolded = ResetCount7 + cycle*cont7;
136  }
137  ResetCount_unfolded_comp7 = ResetCount7;
138  }
139 
140 // 8th ROS
141  else if (ROS_number == 8){
142  double ResetCount8 = ROSDebug_BcntResCnt*0.0000891;
143  if (ResetCount_unfolded_comp8 <= (ResetCount8)) {
144  cont8 = cont8;
145  ResetCount_unfolded = ResetCount8 + cycle*cont8;
146  }
147  else { cont8 = cont8 + 1;
148  ResetCount_unfolded = ResetCount8 + cycle*cont8;
149  }
150  ResetCount_unfolded_comp8 = ResetCount8;
151  }
152 
153 // 9th ROS
154  else if (ROS_number == 9){
155  double ResetCount9 = ROSDebug_BcntResCnt*0.0000891;
156  if (ResetCount_unfolded_comp9 <= (ResetCount9)) {
157  cont9 = cont9;
158  ResetCount_unfolded = ResetCount9 + cycle*cont9;
159  }
160  else { cont9 = cont9 + 1;
161  ResetCount_unfolded = ResetCount9 + cycle*cont9;
162  }
163  ResetCount_unfolded_comp9 = ResetCount9;
164  }
165 
166 // 10th ROS
167  else if (ROS_number == 10){
168  double ResetCount10 = ROSDebug_BcntResCnt*0.0000891;
169  if (ResetCount_unfolded_comp10 <= (ResetCount10)) {
170  cont10 = cont10;
171  ResetCount_unfolded = ResetCount10 + cycle*cont10;
172  }
173  else { cont10 = cont10 + 1;
174  ResetCount_unfolded = ResetCount10 + cycle*cont10;
175  }
176  ResetCount_unfolded_comp10 = ResetCount10;
177  }
178 
179 // 11th ROS
180  else if (ROS_number == 11){
181  double ResetCount11 = ROSDebug_BcntResCnt*0.0000891;
182  if (ResetCount_unfolded_comp11 <= (ResetCount11)) {
183  cont11 = cont11;
184  ResetCount_unfolded = ResetCount11 + cycle*cont11;
185  }
186  else { cont11 = cont11 + 1;
187  ResetCount_unfolded = ResetCount11 + cycle*cont11;
188  }
189  ResetCount_unfolded_comp11 = ResetCount11;
190  }
191 
192  // 12th ROS
193  else if (ROS_number == 12){
194  double ResetCount12 = ROSDebug_BcntResCnt*0.0000891;
195  if (ResetCount_unfolded_comp12 <= (ResetCount12)) {
196  cont12 = cont12;
197  ResetCount_unfolded = ResetCount12 + cycle*cont12;
198  }
199  else { cont12 = cont12 + 1;
200  ResetCount_unfolded = ResetCount12 + cycle*cont12;
201  }
202  ResetCount_unfolded_comp12 = ResetCount12;
203  }
204 }
205 
208 
209 
210 
211 void ROS_L1A_Frequency(int ROS_number,int ROSDebug_BcntResCnt,
212  int neventsROS25,double& frequency,float& trigger_counter)
213 {
214 
215  trigger_counter = 0.;
216 
217 // first ROS
218  if (ROS_number == 1)
219  {
220  long double second_evt = ROSDebug_BcntResCnt;
221  if (neventsROS25==1) first_evt = ROSDebug_BcntResCnt;
222 
223  if (ROSDebug_BcntResCnt<16777215) {
224 
225  if ((second_evt - first_evt)<(1/(0.0000891*peso))){
226  trigger_counter1 += 1;
227  trigger_counter = trigger_counter1;
228  }
229  else{ //window change
230  frequency = trigger_counter1;
231  first_evt = second_evt;
232  trigger_counter1 = 0;}
233  }
234  else{
235  long double second_evt_neg = second_evt + max_bx;
236 
237  if ((second_evt_neg - first_evt)<(1/(0.0000891*peso))){
238  trigger_counter1 +=1;
239  trigger_counter = trigger_counter1;
240  frequency = first_evt*0.0000891;
241  }
242  else {
243  first_evt = second_evt;
244  trigger_counter1 = 0;}
245  }
246  return;
247  }
248 
249 
250 
251 // second ROS
252  else if (ROS_number == 2){
253  long double second_evt2 = ROSDebug_BcntResCnt;
254 
255  if (neventsROS25==1) first_evt2 = ROSDebug_BcntResCnt;
256 
257  if (ROSDebug_BcntResCnt<16777215) {
258 
259  if ((second_evt2 - first_evt2)<(1/(0.0000891*peso))){
260  trigger_counter2 += 1;
261  trigger_counter = trigger_counter2;
262  }
263  else{ //window change
264  frequency = trigger_counter2;
265  first_evt2 = second_evt2;
266  trigger_counter2 = 0;}
267  }
268  else{
269  long double second_evt_neg2 = second_evt2 + max_bx;
270 
271  if ((second_evt_neg2 - first_evt2)<(1/(0.0000891*peso))){
272  trigger_counter2 +=1;
273  trigger_counter = trigger_counter2;
274  frequency = first_evt2*0.0000891;
275  }
276  else {
277  first_evt2 = second_evt2;
278  trigger_counter2 = 0;}
279  }
280  }
281 
282 // third ROS
283  else if (ROS_number == 3){
284 
285  long double second_evt3 = ROSDebug_BcntResCnt;
286  if (neventsROS25==1) first_evt3 = ROSDebug_BcntResCnt;
287 
288  if (ROSDebug_BcntResCnt<16777215) {
289 
290  if ((second_evt3 - first_evt3)<(1/(0.0000891*peso))){
291  trigger_counter3 += 1;
292  trigger_counter = trigger_counter3;
293  }
294  else{ //window change
295  frequency = trigger_counter3;
296  first_evt3 = second_evt3;
297  trigger_counter3 = 0;}
298  }
299  else{
300  long double second_evt_neg3 = second_evt3 + max_bx;
301 
302  if ((second_evt_neg3 - first_evt3)<(1/(0.0000891*peso))){
303  trigger_counter3 +=1;
304  trigger_counter = trigger_counter3;
305  frequency = first_evt3*0.0000891;
306  }
307  else {
308  first_evt3 = second_evt3;
309  trigger_counter3 = 0;}
310  }
311  }
312 
313 
314 // 4th ROS
315  else if (ROS_number == 4){
316 
317  long double second_evt4 = ROSDebug_BcntResCnt;
318  if (neventsROS25==1) first_evt4 = ROSDebug_BcntResCnt;
319 
320  if (ROSDebug_BcntResCnt<16777215) {
321 
322  if ((second_evt4 - first_evt4)<(1/(0.0000891*peso))){
323  trigger_counter4 += 1;
324  trigger_counter = trigger_counter4;
325  }
326  else{ //window change
327  frequency = trigger_counter4;
328  first_evt4 = second_evt4;
329  trigger_counter4 = 0;}
330  }
331  else{
332  long double second_evt_neg4 = second_evt4 + max_bx;
333 
334  if ((second_evt_neg4 - first_evt4)<(1/(0.0000891*peso))){
335  trigger_counter4 +=1;
336  trigger_counter = trigger_counter4;
337  frequency = first_evt4*0.0000891;
338  }
339  else {
340  first_evt4 = second_evt4;
341  trigger_counter4 = 0;}
342  }
343  }
344 
345 // 5th ROS
346  else if (ROS_number == 5){
347 
348  long double second_evt5 = ROSDebug_BcntResCnt;
349  if (neventsROS25==1) first_evt5 = ROSDebug_BcntResCnt;
350 
351  if (ROSDebug_BcntResCnt<16777215) {
352 
353  if ((second_evt5 - first_evt5)<(1/(0.0000891*peso))){
354  trigger_counter5 += 1;
355  trigger_counter = trigger_counter5;
356  }
357  else{ //window change
358  frequency = trigger_counter5;
359  first_evt5 = second_evt5;
360  trigger_counter5 = 0;}
361  }
362  else{
363  long double second_evt_neg5 = second_evt5 + max_bx;
364 
365  if ((second_evt_neg5 - first_evt5)<(1/(0.0000891*peso))){
366  trigger_counter5 +=1;
367  trigger_counter = trigger_counter5;
368  frequency = first_evt5*0.0000891;
369  }
370  else {
371  first_evt5 = second_evt5;
372  trigger_counter5 = 0;}
373  }
374  }
375 
376 // 6th ROS
377  else if (ROS_number == 6){
378 
379  long double second_evt6 = ROSDebug_BcntResCnt;
380  if (neventsROS25==1) first_evt6 = ROSDebug_BcntResCnt;
381 
382  if (ROSDebug_BcntResCnt<16777215) {
383 
384  if ((second_evt6 - first_evt6)<(1/(0.0000891*peso))){
385  trigger_counter6 += 1;
386  trigger_counter = trigger_counter6;
387  }
388  else{ //window change
389  frequency = trigger_counter6;
390  first_evt6 = second_evt6;
391  trigger_counter6 = 0;}
392  }
393  else{
394  long double second_evt_neg6 = second_evt6 + max_bx;
395 
396  if ((second_evt_neg6 - first_evt6)<(1/(0.0000891*peso))){
397  trigger_counter6 +=1;
398  trigger_counter = trigger_counter6;
399  frequency = first_evt6*0.0000891;
400  }
401  else {
402  first_evt6 = second_evt6;
403  trigger_counter6 = 0;}
404  }
405  }
406 
407 
408 // 7th ROS
409  else if (ROS_number == 7){
410 
411  long double second_evt7 = ROSDebug_BcntResCnt;
412  if (neventsROS25==1) first_evt7 = ROSDebug_BcntResCnt;
413 
414  if (ROSDebug_BcntResCnt<16777215) {
415 
416  if ((second_evt7 - first_evt7)<(1/(0.0000891*peso))){
417  trigger_counter7 += 1;
418  trigger_counter = trigger_counter7;
419  }
420  else{ //window change
421  frequency = trigger_counter7;
422  first_evt7 = second_evt7;
423  trigger_counter7 = 0;}
424  }
425  else{
426  long double second_evt_neg7 = second_evt7 + max_bx;
427 
428  if ((second_evt_neg7 - first_evt7)<(1/(0.0000891*peso))){
429  trigger_counter7 +=1;
430  trigger_counter = trigger_counter7;
431  frequency = first_evt7*0.0000891;
432  }
433  else {
434  first_evt7 = second_evt7;
435  trigger_counter7 = 0;}
436  }
437  }
438 
439 // 8th ROS
440  else if (ROS_number == 8){
441 
442  long double second_evt8 = ROSDebug_BcntResCnt;
443  if (neventsROS25==1) first_evt8 = ROSDebug_BcntResCnt;
444 
445  if (ROSDebug_BcntResCnt<16777215) {
446 
447  if ((second_evt8 - first_evt8)<(1/(0.0000891*peso))){
448  trigger_counter8 += 1;
449  trigger_counter = trigger_counter8;
450  }
451  else{ //window change
452  frequency = trigger_counter8;
453  first_evt8 = second_evt8;
454  trigger_counter8 = 0;}
455  }
456  else{
457  long double second_evt_neg8 = second_evt8 + max_bx;
458 
459  if ((second_evt_neg8 - first_evt8)<(1/(0.0000891*peso))){
460  trigger_counter8 +=1;
461  trigger_counter = trigger_counter8;
462  frequency = first_evt8*0.0000891;
463  }
464  else {
465  first_evt8 = second_evt8;
466  trigger_counter8 = 0;}
467  }
468  }
469 
470 // 9th ROS
471  else if (ROS_number == 9){
472 
473  long double second_evt9 = ROSDebug_BcntResCnt;
474  if (neventsROS25==1) first_evt9 = ROSDebug_BcntResCnt;
475 
476  if (ROSDebug_BcntResCnt<16777215) {
477 
478  if ((second_evt9 - first_evt9)<(1/(0.0000891*peso))){
479  trigger_counter9 += 1;
480  trigger_counter = trigger_counter9;
481  }
482  else{ //window change
483  frequency = trigger_counter9;
484  first_evt9 = second_evt9;
485  trigger_counter9 = 0;}
486  }
487  else{
488  long double second_evt_neg9 = second_evt9 + max_bx;
489 
490  if ((second_evt_neg9 - first_evt9)<(1/(0.0000891*peso))){
491  trigger_counter9 +=1;
492  trigger_counter = trigger_counter9;
493  frequency = first_evt9*0.0000891;
494  }
495  else {
496  first_evt9 = second_evt9;
497  trigger_counter9 = 0;}
498  }
499  }
500 
501 
502 // 10th ROS
503  else if (ROS_number == 10){
504 
505  long double second_evt10 = ROSDebug_BcntResCnt;
506  if (neventsROS25==1) first_evt10 = ROSDebug_BcntResCnt;
507 
508  if (ROSDebug_BcntResCnt<16777215) {
509 
510  if ((second_evt10 - first_evt10)<(1/(0.0000891*peso))){
511  trigger_counter10 += 1;
512  trigger_counter = trigger_counter10;
513  }
514  else{ //window change
515  frequency = trigger_counter10;
516  first_evt10 = second_evt10;
517  trigger_counter10 = 0;}
518  }
519  else{
520  long double second_evt_neg10 = second_evt10 + max_bx;
521 
522  if ((second_evt_neg10 - first_evt10)<(1/(0.0000891*peso))){
523  trigger_counter10 +=1;
524  trigger_counter = trigger_counter10;
525  frequency = first_evt10*0.0000891;
526  }
527  else {
528  first_evt10 = second_evt10;
529  trigger_counter10 = 0;}
530  }
531  }
532 
533 
534 // 11th ROS
535  else if (ROS_number == 11){
536 
537  long double second_evt11 = ROSDebug_BcntResCnt;
538  if (neventsROS25==1) first_evt11 = ROSDebug_BcntResCnt;
539 
540  if (ROSDebug_BcntResCnt<16777215) {
541 
542  if ((second_evt11 - first_evt11)<(1/(0.0000891*peso))){
543  trigger_counter11 += 1;
544  trigger_counter = trigger_counter11;
545  }
546  else{ //window change
547  frequency = trigger_counter11;
548  first_evt11 = second_evt11;
549  trigger_counter11 = 0;}
550  }
551  else{
552  long double second_evt_neg11 = second_evt11 + max_bx;
553 
554  if ((second_evt_neg11 - first_evt11)<(1/(0.0000891*peso))){
555  trigger_counter11 +=1;
556  trigger_counter = trigger_counter11;
557  frequency = first_evt11*0.0000891;
558  }
559  else {
560  first_evt11 = second_evt11;
561  trigger_counter11 = 0;}
562  }
563  }
564 
565 
566 // 12th ROS
567  else if (ROS_number == 12){
568 
569  long double second_evt12 = ROSDebug_BcntResCnt;
570  if (neventsROS25==1) first_evt12 = ROSDebug_BcntResCnt;
571 
572  if (ROSDebug_BcntResCnt<16777215) {
573 
574  if ((second_evt12 - first_evt12)<(1/(0.0000891*peso))){
575  trigger_counter12 += 1;
576  trigger_counter = trigger_counter12;
577  }
578  else{ //window change
579  frequency = trigger_counter12;
580  first_evt12 = second_evt12;
581  trigger_counter12 = 0;}
582  }
583  else{
584  long double second_evt_neg12 = second_evt12 + max_bx;
585 
586  if ((second_evt_neg12 - first_evt12)<(1/(0.0000891*peso))){
587  trigger_counter12 +=1;
588  trigger_counter = trigger_counter12;
589  frequency = first_evt12*0.0000891;
590  }
591  else {
592  first_evt12 = second_evt12;
593  trigger_counter12 = 0;}
594  }
595  }
596 }
int freq3
double ResetCount_unfolded_comp7
float peso
int cont4
int freq8
int freq5
long double first_evt9
float trigger_counter1
int cont5
int freq1
int cont6
double ResetCount_unfolded_comp4
float trigger_counter3
void ROSWords_t(double &ResetCount_unfolded, int ROS_number, int ROSDebug_BcntResCnt, int nevents)
void ROS_L1A_Frequency(int ROS_number, int ROSDebug_BcntResCnt, int neventsROS25, double &frequency, float &trigger_counter)
float trigger_counter10
int cont12
std::string itoa(int current)
double ResetCount_unfolded
int cont10
long double first_evt7
long double first_evt6
double ResetCount_unfolded_comp5
long double first_evt12
double ResetCount_unfolded_comp9
float trigger_counter6
int cont9
int cont11
int cycle
long double first_evt
double ResetCount_unfolded_comp3
long double first_evt11
int freq2
int cont2
int nevents
float trigger_counter11
double ResetCount_unfolded_comp2
float trigger_counter4
long double first_evt3
long double first_evt8
float trigger_counter9
float trigger_counter7
const unsigned long long max_bx
int freq12
float trigger_counter5
double ResetCount_unfolded_comp
float trigger_counter2
int freq6
long double first_evt4
long double first_evt2
float trigger_counter12
long double first_evt10
int cont
int cont3
double ResetCount_unfolded_comp11
int freq4
double ResetCount_unfolded_comp12
int cont7
int cont8
int freq7
float trigger_counter8
int freq9
double ResetCount_unfolded_comp10
int freq11
long double first_evt5
int freq10
double ResetCount_unfolded_comp8
double ResetCount_unfolded_comp6