Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 std::string itoa(int current);
00009 double ResetCount_unfolded_comp =0;
00010 double ResetCount_unfolded_comp2 =0;
00011 double ResetCount_unfolded_comp3 =0;
00012 double ResetCount_unfolded_comp4 =0;
00013 double ResetCount_unfolded_comp5 =0;
00014 double ResetCount_unfolded_comp6 =0;
00015 double ResetCount_unfolded_comp7 =0;
00016 double ResetCount_unfolded_comp8 =0;
00017 double ResetCount_unfolded_comp9 =0;
00018 double ResetCount_unfolded_comp10 =0;
00019 double ResetCount_unfolded_comp11 =0;
00020 double ResetCount_unfolded_comp12 =0;
00021 double ResetCount_unfolded=0;
00022 int cont=0,cont2=0,cont3=0,cont4=0,cont5=0,cont6=0;
00023 int cont7=0,cont8=0,cont9=0,cont10=0,cont11=0,cont12=0,cycle = 1495;
00024 float trigger_counter1=0,trigger_counter2=0,trigger_counter3=0,trigger_counter4=0,trigger_counter5=0,trigger_counter6=0;
00025 float trigger_counter7=0,trigger_counter8=0,trigger_counter9=0,trigger_counter10=0,trigger_counter11=0,trigger_counter12=0;
00026 int freq1,freq2,freq3,freq4,freq5,freq6,freq7,freq8,freq9,freq10,freq11,freq12;
00027 long double first_evt=0;
00028 long double first_evt2=0;
00029 long double first_evt3=0;
00030 long double first_evt4=0;
00031 long double first_evt5=0;
00032 long double first_evt6=0;
00033 long double first_evt7=0;
00034 long double first_evt8=0;
00035 long double first_evt9=0;
00036 long double first_evt10=0;
00037 long double first_evt11=0;
00038 long double first_evt12=0;
00039 float peso=1;
00040
00041 inline void ROSWords_t(double& ResetCount_unfolded,int ROS_number,int ROSDebug_BcntResCnt,int nevents)
00042 {
00043
00044
00045
00046
00047
00048 if (ROS_number == 1){
00049 double ResetCount = ROSDebug_BcntResCnt*0.0000891;
00050
00051 if (ResetCount_unfolded_comp <= (ResetCount)) {
00052 cont = cont;
00053 ResetCount_unfolded = ResetCount + cycle*cont;
00054 }
00055 else { cont = cont + 1;
00056 ResetCount_unfolded = ResetCount + cycle*cont;
00057 }
00058 ResetCount_unfolded_comp = ResetCount;
00059 }
00060
00061
00062 else if (ROS_number == 2){
00063 double ResetCount2 = ROSDebug_BcntResCnt*0.0000891;
00064 if (ResetCount_unfolded_comp2 <= (ResetCount2)) {
00065 cont2 = cont2;
00066 ResetCount_unfolded = ResetCount2 + cycle*cont2;
00067 }
00068 else { cont2 = cont2 + 1;
00069 ResetCount_unfolded = ResetCount2 + cycle*cont2;
00070 }
00071 ResetCount_unfolded_comp2 = ResetCount2;
00072 }
00073
00074
00075 else if (ROS_number == 3){
00076 double ResetCount3 = ROSDebug_BcntResCnt*0.0000891;
00077 if (ResetCount_unfolded_comp3 <= (ResetCount3)) {
00078 cont3 = cont3;
00079 ResetCount_unfolded = ResetCount3 + cycle*cont3;
00080 }
00081 else { cont3 = cont3 + 1;
00082 ResetCount_unfolded = ResetCount3 + cycle*cont3;
00083 }
00084 ResetCount_unfolded_comp3 = ResetCount3;
00085 }
00086
00087
00088
00089 else if (ROS_number == 4){
00090 double ResetCount4 = ROSDebug_BcntResCnt*0.0000891;
00091 if (ResetCount_unfolded_comp4 <= (ResetCount4)) {
00092 cont4 = cont4;
00093 ResetCount_unfolded = ResetCount4 + cycle*cont4;
00094 }
00095 else { cont4 = cont4 + 1;
00096 ResetCount_unfolded = ResetCount4 + cycle*cont4;
00097 }
00098 ResetCount_unfolded_comp = ResetCount4;
00099 }
00100
00101
00102 else if (ROS_number == 5){
00103 double ResetCount5 = ROSDebug_BcntResCnt*0.0000891;
00104 if (ResetCount_unfolded_comp5 <= (ResetCount5)) {
00105 cont5 = cont5;
00106 ResetCount_unfolded = ResetCount5 + cycle*cont5;
00107 }
00108 else { cont5 = cont5 + 1;
00109 ResetCount_unfolded = ResetCount5 + cycle*cont5;
00110 }
00111 ResetCount_unfolded_comp5 = ResetCount5;
00112 }
00113
00114
00115 else if (ROS_number == 6){
00116 double ResetCount6 = ROSDebug_BcntResCnt*0.0000891;
00117 if (ResetCount_unfolded_comp6 <= (ResetCount6)) {
00118 cont6 = cont6;
00119 ResetCount_unfolded = ResetCount6 + cycle*cont6;
00120 }
00121 else { cont6 = cont6 + 1;
00122 ResetCount_unfolded = ResetCount6 + cycle*cont6;
00123 }
00124 ResetCount_unfolded_comp6 = ResetCount6;
00125 }
00126
00127
00128 else if (ROS_number == 7){
00129 double ResetCount7 = ROSDebug_BcntResCnt*0.0000891;
00130 if (ResetCount_unfolded_comp7 <= (ResetCount7)) {
00131 cont7 = cont7;
00132 ResetCount_unfolded = ResetCount7 + cycle*cont7;
00133 }
00134 else { cont7 = cont7 + 1;
00135 ResetCount_unfolded = ResetCount7 + cycle*cont7;
00136 }
00137 ResetCount_unfolded_comp7 = ResetCount7;
00138 }
00139
00140
00141 else if (ROS_number == 8){
00142 double ResetCount8 = ROSDebug_BcntResCnt*0.0000891;
00143 if (ResetCount_unfolded_comp8 <= (ResetCount8)) {
00144 cont8 = cont8;
00145 ResetCount_unfolded = ResetCount8 + cycle*cont8;
00146 }
00147 else { cont8 = cont8 + 1;
00148 ResetCount_unfolded = ResetCount8 + cycle*cont8;
00149 }
00150 ResetCount_unfolded_comp8 = ResetCount8;
00151 }
00152
00153
00154 else if (ROS_number == 9){
00155 double ResetCount9 = ROSDebug_BcntResCnt*0.0000891;
00156 if (ResetCount_unfolded_comp9 <= (ResetCount9)) {
00157 cont9 = cont9;
00158 ResetCount_unfolded = ResetCount9 + cycle*cont9;
00159 }
00160 else { cont9 = cont9 + 1;
00161 ResetCount_unfolded = ResetCount9 + cycle*cont9;
00162 }
00163 ResetCount_unfolded_comp9 = ResetCount9;
00164 }
00165
00166
00167 else if (ROS_number == 10){
00168 double ResetCount10 = ROSDebug_BcntResCnt*0.0000891;
00169 if (ResetCount_unfolded_comp10 <= (ResetCount10)) {
00170 cont10 = cont10;
00171 ResetCount_unfolded = ResetCount10 + cycle*cont10;
00172 }
00173 else { cont10 = cont10 + 1;
00174 ResetCount_unfolded = ResetCount10 + cycle*cont10;
00175 }
00176 ResetCount_unfolded_comp10 = ResetCount10;
00177 }
00178
00179
00180 else if (ROS_number == 11){
00181 double ResetCount11 = ROSDebug_BcntResCnt*0.0000891;
00182 if (ResetCount_unfolded_comp11 <= (ResetCount11)) {
00183 cont11 = cont11;
00184 ResetCount_unfolded = ResetCount11 + cycle*cont11;
00185 }
00186 else { cont11 = cont11 + 1;
00187 ResetCount_unfolded = ResetCount11 + cycle*cont11;
00188 }
00189 ResetCount_unfolded_comp11 = ResetCount11;
00190 }
00191
00192
00193 else if (ROS_number == 12){
00194 double ResetCount12 = ROSDebug_BcntResCnt*0.0000891;
00195 if (ResetCount_unfolded_comp12 <= (ResetCount12)) {
00196 cont12 = cont12;
00197 ResetCount_unfolded = ResetCount12 + cycle*cont12;
00198 }
00199 else { cont12 = cont12 + 1;
00200 ResetCount_unfolded = ResetCount12 + cycle*cont12;
00201 }
00202 ResetCount_unfolded_comp12 = ResetCount12;
00203 }
00204 }
00205
00208
00209
00210
00211 void ROS_L1A_Frequency(int ROS_number,int ROSDebug_BcntResCnt,
00212 int neventsROS25,double& frequency,float& trigger_counter)
00213 {
00214
00215 trigger_counter = 0.;
00216
00217
00218 if (ROS_number == 1)
00219 {
00220 long double second_evt = ROSDebug_BcntResCnt;
00221 if (neventsROS25==1) first_evt = ROSDebug_BcntResCnt;
00222
00223 if (ROSDebug_BcntResCnt<16777215) {
00224
00225 if ((second_evt - first_evt)<(1/(0.0000891*peso))){
00226 trigger_counter1 += 1;
00227 trigger_counter = trigger_counter1;
00228 }
00229 else{
00230 frequency = trigger_counter1;
00231 first_evt = second_evt;
00232 trigger_counter1 = 0;}
00233 }
00234 else{
00235 long double second_evt_neg = second_evt + max_bx;
00236
00237 if ((second_evt_neg - first_evt)<(1/(0.0000891*peso))){
00238 trigger_counter1 +=1;
00239 trigger_counter = trigger_counter1;
00240 frequency = first_evt*0.0000891;
00241 }
00242 else {
00243 first_evt = second_evt;
00244 trigger_counter1 = 0;}
00245 }
00246 return;
00247 }
00248
00249
00250
00251
00252 else if (ROS_number == 2){
00253 long double second_evt2 = ROSDebug_BcntResCnt;
00254
00255 if (neventsROS25==1) first_evt2 = ROSDebug_BcntResCnt;
00256
00257 if (ROSDebug_BcntResCnt<16777215) {
00258
00259 if ((second_evt2 - first_evt2)<(1/(0.0000891*peso))){
00260 trigger_counter2 += 1;
00261 trigger_counter = trigger_counter2;
00262 }
00263 else{
00264 frequency = trigger_counter2;
00265 first_evt2 = second_evt2;
00266 trigger_counter2 = 0;}
00267 }
00268 else{
00269 long double second_evt_neg2 = second_evt2 + max_bx;
00270
00271 if ((second_evt_neg2 - first_evt2)<(1/(0.0000891*peso))){
00272 trigger_counter2 +=1;
00273 trigger_counter = trigger_counter2;
00274 frequency = first_evt2*0.0000891;
00275 }
00276 else {
00277 first_evt2 = second_evt2;
00278 trigger_counter2 = 0;}
00279 }
00280 }
00281
00282
00283 else if (ROS_number == 3){
00284
00285 long double second_evt3 = ROSDebug_BcntResCnt;
00286 if (neventsROS25==1) first_evt3 = ROSDebug_BcntResCnt;
00287
00288 if (ROSDebug_BcntResCnt<16777215) {
00289
00290 if ((second_evt3 - first_evt3)<(1/(0.0000891*peso))){
00291 trigger_counter3 += 1;
00292 trigger_counter = trigger_counter3;
00293 }
00294 else{
00295 frequency = trigger_counter3;
00296 first_evt3 = second_evt3;
00297 trigger_counter3 = 0;}
00298 }
00299 else{
00300 long double second_evt_neg3 = second_evt3 + max_bx;
00301
00302 if ((second_evt_neg3 - first_evt3)<(1/(0.0000891*peso))){
00303 trigger_counter3 +=1;
00304 trigger_counter = trigger_counter3;
00305 frequency = first_evt3*0.0000891;
00306 }
00307 else {
00308 first_evt3 = second_evt3;
00309 trigger_counter3 = 0;}
00310 }
00311 }
00312
00313
00314
00315 else if (ROS_number == 4){
00316
00317 long double second_evt4 = ROSDebug_BcntResCnt;
00318 if (neventsROS25==1) first_evt4 = ROSDebug_BcntResCnt;
00319
00320 if (ROSDebug_BcntResCnt<16777215) {
00321
00322 if ((second_evt4 - first_evt4)<(1/(0.0000891*peso))){
00323 trigger_counter4 += 1;
00324 trigger_counter = trigger_counter4;
00325 }
00326 else{
00327 frequency = trigger_counter4;
00328 first_evt4 = second_evt4;
00329 trigger_counter4 = 0;}
00330 }
00331 else{
00332 long double second_evt_neg4 = second_evt4 + max_bx;
00333
00334 if ((second_evt_neg4 - first_evt4)<(1/(0.0000891*peso))){
00335 trigger_counter4 +=1;
00336 trigger_counter = trigger_counter4;
00337 frequency = first_evt4*0.0000891;
00338 }
00339 else {
00340 first_evt4 = second_evt4;
00341 trigger_counter4 = 0;}
00342 }
00343 }
00344
00345
00346 else if (ROS_number == 5){
00347
00348 long double second_evt5 = ROSDebug_BcntResCnt;
00349 if (neventsROS25==1) first_evt5 = ROSDebug_BcntResCnt;
00350
00351 if (ROSDebug_BcntResCnt<16777215) {
00352
00353 if ((second_evt5 - first_evt5)<(1/(0.0000891*peso))){
00354 trigger_counter5 += 1;
00355 trigger_counter = trigger_counter5;
00356 }
00357 else{
00358 frequency = trigger_counter5;
00359 first_evt5 = second_evt5;
00360 trigger_counter5 = 0;}
00361 }
00362 else{
00363 long double second_evt_neg5 = second_evt5 + max_bx;
00364
00365 if ((second_evt_neg5 - first_evt5)<(1/(0.0000891*peso))){
00366 trigger_counter5 +=1;
00367 trigger_counter = trigger_counter5;
00368 frequency = first_evt5*0.0000891;
00369 }
00370 else {
00371 first_evt5 = second_evt5;
00372 trigger_counter5 = 0;}
00373 }
00374 }
00375
00376
00377 else if (ROS_number == 6){
00378
00379 long double second_evt6 = ROSDebug_BcntResCnt;
00380 if (neventsROS25==1) first_evt6 = ROSDebug_BcntResCnt;
00381
00382 if (ROSDebug_BcntResCnt<16777215) {
00383
00384 if ((second_evt6 - first_evt6)<(1/(0.0000891*peso))){
00385 trigger_counter6 += 1;
00386 trigger_counter = trigger_counter6;
00387 }
00388 else{
00389 frequency = trigger_counter6;
00390 first_evt6 = second_evt6;
00391 trigger_counter6 = 0;}
00392 }
00393 else{
00394 long double second_evt_neg6 = second_evt6 + max_bx;
00395
00396 if ((second_evt_neg6 - first_evt6)<(1/(0.0000891*peso))){
00397 trigger_counter6 +=1;
00398 trigger_counter = trigger_counter6;
00399 frequency = first_evt6*0.0000891;
00400 }
00401 else {
00402 first_evt6 = second_evt6;
00403 trigger_counter6 = 0;}
00404 }
00405 }
00406
00407
00408
00409 else if (ROS_number == 7){
00410
00411 long double second_evt7 = ROSDebug_BcntResCnt;
00412 if (neventsROS25==1) first_evt7 = ROSDebug_BcntResCnt;
00413
00414 if (ROSDebug_BcntResCnt<16777215) {
00415
00416 if ((second_evt7 - first_evt7)<(1/(0.0000891*peso))){
00417 trigger_counter7 += 1;
00418 trigger_counter = trigger_counter7;
00419 }
00420 else{
00421 frequency = trigger_counter7;
00422 first_evt7 = second_evt7;
00423 trigger_counter7 = 0;}
00424 }
00425 else{
00426 long double second_evt_neg7 = second_evt7 + max_bx;
00427
00428 if ((second_evt_neg7 - first_evt7)<(1/(0.0000891*peso))){
00429 trigger_counter7 +=1;
00430 trigger_counter = trigger_counter7;
00431 frequency = first_evt7*0.0000891;
00432 }
00433 else {
00434 first_evt7 = second_evt7;
00435 trigger_counter7 = 0;}
00436 }
00437 }
00438
00439
00440 else if (ROS_number == 8){
00441
00442 long double second_evt8 = ROSDebug_BcntResCnt;
00443 if (neventsROS25==1) first_evt8 = ROSDebug_BcntResCnt;
00444
00445 if (ROSDebug_BcntResCnt<16777215) {
00446
00447 if ((second_evt8 - first_evt8)<(1/(0.0000891*peso))){
00448 trigger_counter8 += 1;
00449 trigger_counter = trigger_counter8;
00450 }
00451 else{
00452 frequency = trigger_counter8;
00453 first_evt8 = second_evt8;
00454 trigger_counter8 = 0;}
00455 }
00456 else{
00457 long double second_evt_neg8 = second_evt8 + max_bx;
00458
00459 if ((second_evt_neg8 - first_evt8)<(1/(0.0000891*peso))){
00460 trigger_counter8 +=1;
00461 trigger_counter = trigger_counter8;
00462 frequency = first_evt8*0.0000891;
00463 }
00464 else {
00465 first_evt8 = second_evt8;
00466 trigger_counter8 = 0;}
00467 }
00468 }
00469
00470
00471 else if (ROS_number == 9){
00472
00473 long double second_evt9 = ROSDebug_BcntResCnt;
00474 if (neventsROS25==1) first_evt9 = ROSDebug_BcntResCnt;
00475
00476 if (ROSDebug_BcntResCnt<16777215) {
00477
00478 if ((second_evt9 - first_evt9)<(1/(0.0000891*peso))){
00479 trigger_counter9 += 1;
00480 trigger_counter = trigger_counter9;
00481 }
00482 else{
00483 frequency = trigger_counter9;
00484 first_evt9 = second_evt9;
00485 trigger_counter9 = 0;}
00486 }
00487 else{
00488 long double second_evt_neg9 = second_evt9 + max_bx;
00489
00490 if ((second_evt_neg9 - first_evt9)<(1/(0.0000891*peso))){
00491 trigger_counter9 +=1;
00492 trigger_counter = trigger_counter9;
00493 frequency = first_evt9*0.0000891;
00494 }
00495 else {
00496 first_evt9 = second_evt9;
00497 trigger_counter9 = 0;}
00498 }
00499 }
00500
00501
00502
00503 else if (ROS_number == 10){
00504
00505 long double second_evt10 = ROSDebug_BcntResCnt;
00506 if (neventsROS25==1) first_evt10 = ROSDebug_BcntResCnt;
00507
00508 if (ROSDebug_BcntResCnt<16777215) {
00509
00510 if ((second_evt10 - first_evt10)<(1/(0.0000891*peso))){
00511 trigger_counter10 += 1;
00512 trigger_counter = trigger_counter10;
00513 }
00514 else{
00515 frequency = trigger_counter10;
00516 first_evt10 = second_evt10;
00517 trigger_counter10 = 0;}
00518 }
00519 else{
00520 long double second_evt_neg10 = second_evt10 + max_bx;
00521
00522 if ((second_evt_neg10 - first_evt10)<(1/(0.0000891*peso))){
00523 trigger_counter10 +=1;
00524 trigger_counter = trigger_counter10;
00525 frequency = first_evt10*0.0000891;
00526 }
00527 else {
00528 first_evt10 = second_evt10;
00529 trigger_counter10 = 0;}
00530 }
00531 }
00532
00533
00534
00535 else if (ROS_number == 11){
00536
00537 long double second_evt11 = ROSDebug_BcntResCnt;
00538 if (neventsROS25==1) first_evt11 = ROSDebug_BcntResCnt;
00539
00540 if (ROSDebug_BcntResCnt<16777215) {
00541
00542 if ((second_evt11 - first_evt11)<(1/(0.0000891*peso))){
00543 trigger_counter11 += 1;
00544 trigger_counter = trigger_counter11;
00545 }
00546 else{
00547 frequency = trigger_counter11;
00548 first_evt11 = second_evt11;
00549 trigger_counter11 = 0;}
00550 }
00551 else{
00552 long double second_evt_neg11 = second_evt11 + max_bx;
00553
00554 if ((second_evt_neg11 - first_evt11)<(1/(0.0000891*peso))){
00555 trigger_counter11 +=1;
00556 trigger_counter = trigger_counter11;
00557 frequency = first_evt11*0.0000891;
00558 }
00559 else {
00560 first_evt11 = second_evt11;
00561 trigger_counter11 = 0;}
00562 }
00563 }
00564
00565
00566
00567 else if (ROS_number == 12){
00568
00569 long double second_evt12 = ROSDebug_BcntResCnt;
00570 if (neventsROS25==1) first_evt12 = ROSDebug_BcntResCnt;
00571
00572 if (ROSDebug_BcntResCnt<16777215) {
00573
00574 if ((second_evt12 - first_evt12)<(1/(0.0000891*peso))){
00575 trigger_counter12 += 1;
00576 trigger_counter = trigger_counter12;
00577 }
00578 else{
00579 frequency = trigger_counter12;
00580 first_evt12 = second_evt12;
00581 trigger_counter12 = 0;}
00582 }
00583 else{
00584 long double second_evt_neg12 = second_evt12 + max_bx;
00585
00586 if ((second_evt_neg12 - first_evt12)<(1/(0.0000891*peso))){
00587 trigger_counter12 +=1;
00588 trigger_counter = trigger_counter12;
00589 frequency = first_evt12*0.0000891;
00590 }
00591 else {
00592 first_evt12 = second_evt12;
00593 trigger_counter12 = 0;}
00594 }
00595 }
00596 }