| 30 | 
 // | 
 // | 
| 31 | 
 using namespace std; | 
 using namespace std; | 
| 32 | 
 // | 
 // | 
| 33 | 
  | 
 GL_TABLES *glt = NULL; | 
| 34 | 
 // | 
 // | 
| 35 | 
 // | 
 // | 
| 36 | 
 #include <DarthVaderVerl2.h> | 
 #include <DarthVaderVerl2.h> | 
| 47 | 
   printf(" -s || --silent    print nothing on STDOUT\n"); | 
   printf(" -s || --silent    print nothing on STDOUT\n"); | 
| 48 | 
   printf(" -c || --clean     remove file if exiting with errors\n"); | 
   printf(" -c || --clean     remove file if exiting with errors\n"); | 
| 49 | 
   printf(" -b || --benchmark perform and print a benchmark test\n"); | 
   printf(" -b || --benchmark perform and print a benchmark test\n"); | 
| 50 | 
   printf(" -auto || -AUTO    exclude from processing detector which are NOT in the acquisition [default]\n"); | 
   printf(" -auto || -AUTO    exclude from processing detector which are NOT in the acquisition\n"); | 
| 51 | 
   printf(" -zerofill         if a detector is not in the acquisition the routine is called anyway \n"); | 
   printf(" -zerofill         if a detector is not in the acquisition the routine is called anyway \n"); | 
| 52 | 
   printf("                   but all detector's data will be marked as bad\n"); | 
   printf("                   but all detector's data will be marked as bad [default]\n"); | 
| 53 | 
   printf(" -tedious          exit with error if a detector is not in the acquisition and \n"); | 
   printf(" -tedious          exit with error if a detector is not in the acquisition and \n"); | 
| 54 | 
   printf("                   it has not been excluded from processing\n"); | 
   printf("                   it has not been excluded from processing\n"); | 
| 55 | 
   printf(" -host             name of the DB host [default = $PAM_DBHOST or mysql://localhost/pamelaprod]\n"); | 
   printf(" -host             name of the DB host [default = $PAM_DBHOST or mysql://localhost/pamelaprod]\n"); | 
| 131 | 
   UInt_t NQS4 = 0; | 
   UInt_t NQS4 = 0; | 
| 132 | 
   UInt_t NQTOT = 0; | 
   UInt_t NQTOT = 0; | 
| 133 | 
   // | 
   // | 
| 134 | 
   Bool_t autom = true; | 
   Bool_t autom = false; | 
| 135 | 
   Bool_t zerofill = false; | 
   Bool_t zerofill = true; | 
| 136 | 
   Bool_t tedious = false; | 
   Bool_t tedious = false; | 
| 137 | 
   Bool_t remfile = false; | 
   Bool_t remfile = false; | 
| 138 | 
   Bool_t debug = false; | 
   Bool_t debug = false; | 
| 576 | 
     // | 
     // | 
| 577 | 
     if ( debug ) printf("...connected! \n\n"); | 
     if ( debug ) printf("...connected! \n\n"); | 
| 578 | 
     // | 
     // | 
| 579 | 
     GL_TABLES *glt = new GL_TABLES(host,user,psw); | 
     glt = new GL_TABLES(host,user,psw); | 
| 580 | 
  | 
     //GL_TABLES *glt = new GL_TABLES(host,user,psw); | 
| 581 | 
     // | 
     // | 
| 582 | 
     if ( debug ) printf("\n DB INFORMATIONS:\n SQL: %s Version: %s Host %s Port %i \n\n",dbc->GetDBMS(),dbc->ServerInfo(),dbc->GetHost(),dbc->GetPort()); | 
     if ( debug ) printf("\n DB INFORMATIONS:\n SQL: %s Version: %s Host %s Port %i \n\n",dbc->GetDBMS(),dbc->ServerInfo(),dbc->GetHost(),dbc->GetPort()); | 
| 583 | 
     // | 
     // | 
| 701 | 
     }; | 
     }; | 
| 702 | 
     if ( debug ) printf("\n End pre-processing \n\n"); | 
     if ( debug ) printf("\n End pre-processing \n\n"); | 
| 703 | 
     // | 
     // | 
| 704 | 
  | 
     dbc->Close(); | 
| 705 | 
  | 
     // | 
| 706 | 
     timer.Start(kTRUE); | 
     timer.Start(kTRUE); | 
| 707 | 
     if ( TRK ) { | 
     if ( TRK ) { | 
| 708 | 
       glt->ResetCounters(); | 
       glt->ResetCounters(); | 
| 709 | 
       printf(" TrackerLevel2 called\n");                 | 
       printf(" TrackerLevel2 called\n");                 | 
| 710 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start TrkCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start TrkCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
| 711 | 
       TRKSGN = TrkCore(run,processFile,dbc,trkargc,trkargv); | 
       TRKSGN = TrkCore(run,processFile,glt,trkargc,trkargv); | 
| 712 | 
       gSystem->Unlink("TrackerFolder"); //patch | 
       gSystem->Unlink("TrackerFolder"); //patch | 
| 713 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end TrkCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end TrkCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
| 714 | 
       NQTRK = glt->GetNqueries(); | 
       NQTRK = glt->GetNqueries(); | 
| 722 | 
       glt->ResetCounters(); | 
       glt->ResetCounters(); | 
| 723 | 
       printf(" ToFLevel2 called\n"); | 
       printf(" ToFLevel2 called\n"); | 
| 724 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start ToFCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start ToFCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
| 725 | 
       TOFSGN = ToFCore(run,processFile,dbc,tofargc,tofargv); | 
       TOFSGN = ToFCore(run,processFile,glt,tofargc,tofargv); | 
| 726 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end ToFCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end ToFCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
| 727 | 
       NQTOF = glt->GetNqueries(); | 
       NQTOF = glt->GetNqueries(); | 
| 728 | 
     }; | 
     }; | 
| 735 | 
       glt->ResetCounters(); | 
       glt->ResetCounters(); | 
| 736 | 
       printf(" CalorimeterLevel2 called\n"); | 
       printf(" CalorimeterLevel2 called\n"); | 
| 737 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start CaloCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start CaloCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
| 738 | 
       CALSGN = CaloCore(run,processFile,dbc,calargc,calargv); | 
       CALSGN = CaloCore(run,processFile,glt,calargc,calargv); | 
| 739 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end CaloCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end CaloCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
| 740 | 
       NQCAL = glt->GetNqueries(); | 
       NQCAL = glt->GetNqueries(); | 
| 741 | 
     }; | 
     }; | 
| 748 | 
       glt->ResetCounters(); | 
       glt->ResetCounters(); | 
| 749 | 
       printf(" TriggerLevel2 called\n"); | 
       printf(" TriggerLevel2 called\n"); | 
| 750 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start TrigCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start TrigCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
| 751 | 
       TRGSGN = TrigCore(run,processFile,dbc,trgargc,trgargv); | 
       TRGSGN = TrigCore(run,processFile,glt,trgargc,trgargv); | 
| 752 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end TrigCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end TrigCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
| 753 | 
       NQTRG = glt->GetNqueries(); | 
       NQTRG = glt->GetNqueries(); | 
| 754 | 
     }; | 
     }; | 
| 761 | 
       glt->ResetCounters(); | 
       glt->ResetCounters(); | 
| 762 | 
       printf(" AnticounterLevel2 called\n"); | 
       printf(" AnticounterLevel2 called\n"); | 
| 763 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start AcCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start AcCore STDOUT |<<<<<<<<<<<<<<<<<<<\n"); | 
| 764 | 
       ACSGN = AcCore(run,processFile,dbc,acargc,acargv); | 
       ACSGN = AcCore(run,processFile,glt,acargc,acargv); | 
| 765 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end AcCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end AcCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
| 766 | 
       NQAC = glt->GetNqueries(); | 
       NQAC = glt->GetNqueries(); | 
| 767 | 
     }; | 
     }; | 
| 774 | 
       glt->ResetCounters(); | 
       glt->ResetCounters(); | 
| 775 | 
       printf(" S4Level2 called\n"); | 
       printf(" S4Level2 called\n"); | 
| 776 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start S4Core STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start S4Core STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
| 777 | 
       S4SGN = S4Core(run,processFile,dbc,s4argc,s4argv); | 
       S4SGN = S4Core(run,processFile,glt,s4argc,s4argv); | 
| 778 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end S4Core STDOUT   |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end S4Core STDOUT   |<<<<<<<<<<<<<<<<<<<\n"); | 
| 779 | 
       NQS4 = glt->GetNqueries(); | 
       NQS4 = glt->GetNqueries(); | 
| 780 | 
     }; | 
     }; | 
| 787 | 
       glt->ResetCounters(); | 
       glt->ResetCounters(); | 
| 788 | 
       printf(" NDLevel2 called\n"); | 
       printf(" NDLevel2 called\n"); | 
| 789 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start NDCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start NDCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
| 790 | 
       NDSGN = NDCore(run,processFile,dbc,ndargc,ndargv); | 
       NDSGN = NDCore(run,processFile,glt,ndargc,ndargv); | 
| 791 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end NDCore STDOUT   |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end NDCore STDOUT   |<<<<<<<<<<<<<<<<<<<\n"); | 
| 792 | 
       NQND = glt->GetNqueries(); | 
       NQND = glt->GetNqueries(); | 
| 793 | 
     }; | 
     }; | 
| 800 | 
       glt->ResetCounters(); | 
       glt->ResetCounters(); | 
| 801 | 
       printf(" OrbitalInfo called\n"); | 
       printf(" OrbitalInfo called\n"); | 
| 802 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start OrbitalInfoCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>| start OrbitalInfoCore STDOUT  |<<<<<<<<<<<<<<<<<<<\n"); | 
| 803 | 
       ORBSGN = OrbitalInfoCore(run,processFile,dbc,orbargc,orbargv); | 
       ORBSGN = OrbitalInfoCore(run,processFile,glt,orbargc,orbargv); | 
| 804 | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end OrbitalInfoCore STDOUT   |<<<<<<<<<<<<<<<<<<<\n"); | 
       if ( debug ) printf("                      >>>>>>>>>>>>>>>>>>>|  end OrbitalInfoCore STDOUT   |<<<<<<<<<<<<<<<<<<<\n"); | 
| 805 | 
       NQORB = glt->GetNqueries(); | 
       NQORB = glt->GetNqueries(); | 
| 806 | 
     };     | 
     };     | 
| 867 | 
     case -116: message += " CALORIMETERLEVEL2 -  DB connection problems"; break; | 
     case -116: message += " CALORIMETERLEVEL2 -  DB connection problems"; break; | 
| 868 | 
     case -117: message += " CALORIMETERLEVEL2 -  Cannot reprocess file with Level1 data without calling Level1 routine"; break; | 
     case -117: message += " CALORIMETERLEVEL2 -  Cannot reprocess file with Level1 data without calling Level1 routine"; break; | 
| 869 | 
     case -118: message += " CALORIMETERLEVEL2 -  Cannot reprocess file without Level1 data calling Level1 routine"; break; | 
     case -118: message += " CALORIMETERLEVEL2 -  Cannot reprocess file without Level1 data calling Level1 routine"; break; | 
| 870 | 
  | 
     case -119: message += " CALORIMETERLEVEL2 -  No CalibCalPulse2 TTree in Level0 file needed for the calibration"; break; | 
| 871 | 
  | 
     case -120: message += " CALORIMETERLEVEL2 -  No CalibCalPulse1 TTree in Level0 file needed for the calibration"; break; | 
| 872 | 
  | 
     case -121: message += " CALORIMETERLEVEL2 -  Cannot open calorimeter neighbour crosstalk correction table file"; break; | 
| 873 | 
  | 
     case -122: message += " CALORIMETERLEVEL2 -  Cannot open calorimeter second neighbour crosstalk correction table file"; break; | 
| 874 | 
  | 
     case -123: message += " CALORIMETERLEVEL2 -  Cannot open calorimeter special calibration file"; break; | 
| 875 | 
  | 
     case -124: message += " CALORIMETERLEVEL2 -  Cannot open calorimeter max rms file"; break; | 
| 876 | 
  | 
     case -125: message += " CALORIMETERLEVEL2 -  Cannot open calorimeter silicon crosstalk correction table file"; break; | 
| 877 | 
       // | 
       // | 
| 878 | 
     case -200: message += " TRACKERLEVEL2 - LEVEL1 framework unknown (HBOOK/ROOT)"; break; | 
     case -200: message += " TRACKERLEVEL2 - LEVEL1 framework unknown (HBOOK/ROOT)"; break; | 
| 879 | 
     case -201: message += " TRACKERLEVEL2 - LEVEL2 framework unknown (HBOOK/ROOT)"; break; | 
     case -201: message += " TRACKERLEVEL2 - LEVEL2 framework unknown (HBOOK/ROOT)"; break; | 
| 987 | 
     Float_t s4rt = 0.; | 
     Float_t s4rt = 0.; | 
| 988 | 
     Float_t ndrt = 0.; | 
     Float_t ndrt = 0.; | 
| 989 | 
     Float_t orbrt = 0.; | 
     Float_t orbrt = 0.; | 
| 990 | 
     Float_t dvrt = nevents/dvtime; | 
     Float_t dvrt = (nevents+1)/dvtime; | 
| 991 | 
     if ( RUN ) runrt = nruns/runtime; | 
     if ( RUN ) runrt = nruns/runtime; | 
| 992 | 
     if ( TRK ) trkrt = nevents/trktime; | 
     if ( TRK ) trkrt = (nevents+1)/trktime; | 
| 993 | 
     if ( CAL ) calrt = nevents/caltime; | 
     if ( CAL ) calrt = (nevents+1)/caltime; | 
| 994 | 
     if ( TOF ) tofrt = nevents/toftime; | 
     if ( TOF ) tofrt = (nevents+1)/toftime; | 
| 995 | 
     if ( TRG ) trgrt = nevents/trgtime; | 
     if ( TRG ) trgrt = (nevents+1)/trgtime; | 
| 996 | 
     if ( AC ) acrt = nevents/actime; | 
     if ( AC ) acrt = (nevents+1)/actime; | 
| 997 | 
     if ( S4 ) s4rt = nevents/s4time; | 
     if ( S4 ) s4rt = (nevents+1)/s4time; | 
| 998 | 
     if ( ND ) ndrt = nevents/ndtime; | 
     if ( ND ) ndrt = (nevents+1)/ndtime; | 
| 999 | 
     if ( ORB ) orbrt = nevents/orbtime; | 
     if ( ORB ) orbrt = (nevents+1)/orbtime; | 
| 1000 | 
     // | 
     // | 
| 1001 | 
     printf("\n\n###########################################################################################\n"); | 
     printf("\n\n###########################################################################################\n"); | 
| 1002 | 
     printf("#              Benchmark results:      nevents = %10u     runs = %3u                #\n",nevents,nruns); | 
     printf("#              Benchmark results:      nevents = %10u     runs = %3u                #\n",(nevents+1),nruns); | 
| 1003 | 
     printf("###########################################################################################\n"); | 
     printf("###########################################################################################\n"); | 
| 1004 | 
     printf("# Detector # Core routine called # Queries  #     Real Time   #   CPU time   #  Events/s  #\n"); | 
     printf("# Detector # Core routine called # Queries  #     Real Time   #   CPU time   #  Events/s  #\n"); | 
| 1005 | 
     printf("###########################################################################################\n"); | 
     printf("###########################################################################################\n"); | 
| 1027 | 
     gSystem->Unlink(filename.Data());  | 
     gSystem->Unlink(filename.Data());  | 
| 1028 | 
   }; | 
   }; | 
| 1029 | 
   // | 
   // | 
| 1030 | 
  | 
   if ( !error && (CALSGN || TRKSGN || TRGSGN || TOFSGN || RUNSGN || ORBSGN || ACSGN || S4SGN || NDSGN || DVSGN) ) error = 1; | 
| 1031 | 
  | 
   // | 
| 1032 | 
   printf("\n Finished, exiting...\n\n"); | 
   printf("\n Finished, exiting...\n\n"); | 
| 1033 | 
   // | 
   // | 
| 1034 | 
   // Close redirection if the case. | 
   // Close redirection if the case. | 
| 1036 | 
   if ( !beverbose ) close(nul); | 
   if ( !beverbose ) close(nul); | 
| 1037 | 
   // | 
   // | 
| 1038 | 
   // | 
   // | 
| 1039 | 
   exit(error); | 
   if ( !error ) exit(0);       // no errors | 
| 1040 | 
  | 
   if ( error == 1 ) exit(255);  // warnings | 
| 1041 | 
  | 
   exit(1);                     // errors | 
| 1042 | 
 } | 
 } |