| 24 | printf(" -v | --verbose  be verbose [default]\n"); | printf(" -v | --verbose  be verbose [default]\n"); | 
| 25 | printf(" -s | --silent   print nothing on STDOUT\n"); | printf(" -s | --silent   print nothing on STDOUT\n"); | 
| 26 | printf(" -g | --debug    be very verbose [default: no]\n"); | printf(" -g | --debug    be very verbose [default: no]\n"); | 
| 27 | printf(" -p | --pedantic be strict in checks, exit with error if any problem is found [default: no]\n"); | printf(" -p | --pedantic be strict in checks, exit with error if any problem is found [default: yes]\n"); | 
| 28 |  | printf(" -r | --relaxed  do not perfrom some important checks, use it only if you know what you are doing [default: NO]\n"); | 
| 29 |  | printf(" -np | --no-pedantic do NOT be strict in checks, try to continue if any problem is found [default: no]\n"); | 
| 30 |  | printf(" -tag char       set the run tagging in _RUNID_GEN to \"char\" (four letters)[default = 'NONE']\n"); | 
| 31 | printf(" -boot number    CPU boot number [default = taken from VarDump]\n"); | printf(" -boot number    CPU boot number [default = taken from VarDump]\n"); | 
| 32 | printf(" -autoboot       if no VarDump found try to determine the BOOT number\n"); | printf(" -autoboot       if no VarDump found try to determine the BOOT number\n"); | 
| 33 | printf("                 looking at timesync [default]\n"); | printf("                 looking at timesync [default]\n"); | 
| 36 | printf(" -obt0 number    obt at timesync (ms) [default = taken from data]\n"); | printf(" -obt0 number    obt at timesync (ms) [default = taken from data]\n"); | 
| 37 | printf(" -dworbit number number is the downlink orbit number (to be used with non-standard names)\n"); | printf(" -dworbit number number is the downlink orbit number (to be used with non-standard names)\n"); | 
| 38 | printf(" -static         use static path inside the DB instead of symbolic names\n"); | printf(" -static         use static path inside the DB instead of symbolic names\n"); | 
| 39 |  | //  printf(" -keepenv        use environmental variables in the filenames\n"); | 
| 40 |  | printf(" -k | --keepenv  use environmental variables in the filenames [default]\n"); | 
| 41 |  | printf(" -nk | --no-keepenv  use PAM_L0 or standard filenames\n"); | 
| 42 | //  printf(" -gpamela        shortcut to \"-clean 0 -obt0 1 -tsync 1 -no-autoboot -boot 1 -dworbit 1 -static\"\n"); | //  printf(" -gpamela        shortcut to \"-clean 0 -obt0 1 -tsync 1 -no-autoboot -boot 1 -dworbit 1 -static\"\n"); | 
| 43 | printf(" -gpamela        shortcut to \"-clean 0 -obt0 1 -no-autoboot -dworbit 1 -static\"\n"); | printf(" -gpamela        shortcut to \"-clean 0 -obt0 1 -no-autoboot -dworbit 1 -static\"\n"); | 
| 44 | printf(" -clean number   number in seconds after which the fragment table\n"); | printf(" -clean number   number in seconds after which the fragment table\n"); | 
| 87 | Bool_t runpieces = false; | Bool_t runpieces = false; | 
| 88 | // | // | 
| 89 | // | // | 
| 90 |  | TString tag = "NONE"; | 
| 91 | TString filerawname  = ""; | TString filerawname  = ""; | 
| 92 | TString filerootname = ""; | TString filerootname = ""; | 
| 93 | // | // | 
| 110 | // | // | 
| 111 | Bool_t chewbacca = false; | Bool_t chewbacca = false; | 
| 112 | Bool_t staticp = false; | Bool_t staticp = false; | 
| 113 |  | Bool_t keepenv = true; | 
| 114 | Bool_t beverbose = true; | Bool_t beverbose = true; | 
| 115 | Bool_t debug = false; | Bool_t debug = false; | 
| 116 | Bool_t autoboot = true; | Bool_t autoboot = true; | 
| 131 | // | // | 
| 132 | Bool_t check = false; | Bool_t check = false; | 
| 133 | // | // | 
| 134 | Bool_t pedantic = false; | Bool_t pedantic = true; | 
| 135 |  | // | 
| 136 |  | Bool_t relaxed = false; | 
| 137 | // | // | 
| 138 | Int_t i = 0; | Int_t i = 0; | 
| 139 | // | // | 
| 155 | }; | }; | 
| 156 | filerawname = (TString)inps[i+1]; | filerawname = (TString)inps[i+1]; | 
| 157 | }; | }; | 
| 158 | if ( !strcmp(inps[i],"-yodaFile") ) { | if ( !strcmp(inps[i],"-yodaFile") || !strcmp(inps[i],"-L0File") ) { | 
| 159 | if ( numinp-1 < i+1 ){ | if ( numinp-1 < i+1 ){ | 
| 160 | usage(); | usage(); | 
| 161 | exit(1); | exit(1); | 
| 182 | fcleanfile = (TString)inps[i+1]; | fcleanfile = (TString)inps[i+1]; | 
| 183 | forceclean = true; | forceclean = true; | 
| 184 | }; | }; | 
| 185 |  | if ( !strcmp(inps[i],"-tag") ) { | 
| 186 |  | if ( numinp-1 < i+1 ){ | 
| 187 |  | usage(); | 
| 188 |  | exit(1); | 
| 189 |  | }; | 
| 190 |  | tag = (TString)inps[i+1]; | 
| 191 |  | }; | 
| 192 | if ( !strcmp(inps[i],"-validate") ) { | if ( !strcmp(inps[i],"-validate") ) { | 
| 193 | if ( numinp-1 < i+1 ){ | if ( numinp-1 < i+1 ){ | 
| 194 | usage(); | usage(); | 
| 206 | if ( !strcmp(inps[i],"-static") ) { | if ( !strcmp(inps[i],"-static") ) { | 
| 207 | staticp = true; | staticp = true; | 
| 208 | }; | }; | 
| 209 |  | if ( !strcmp(inps[i],"-k") || !strcmp(inps[i],"--keepenv") ) { | 
| 210 |  | keepenv = true; | 
| 211 |  | }; | 
| 212 |  | if ( !strcmp(inps[i],"-nk") || !strcmp(inps[i],"--no-keepenv") ) { | 
| 213 |  | keepenv = false; | 
| 214 |  | }; | 
| 215 | if ( !strcmp(inps[i],"-autoboot") ) { | if ( !strcmp(inps[i],"-autoboot") ) { | 
| 216 | autoboot = true; | autoboot = true; | 
| 217 | }; | }; | 
| 308 | // | // | 
| 309 | if ( !strcmp(inps[i],"-p") || !strcmp(inps[i],"--pedantic") ) pedantic = true; | if ( !strcmp(inps[i],"-p") || !strcmp(inps[i],"--pedantic") ) pedantic = true; | 
| 310 | // | // | 
| 311 |  | if ( !strcmp(inps[i],"-r") || !strcmp(inps[i],"--relaxed") ) relaxed = true; | 
| 312 |  | // | 
| 313 |  | if ( !strcmp(inps[i],"-np") || !strcmp(inps[i],"--no-pedantic") ) pedantic = false; | 
| 314 |  | // | 
| 315 | if ( !strcmp(inps[i],"-nofrag") ) nofrag = true; | if ( !strcmp(inps[i],"-nofrag") ) nofrag = true; | 
| 316 | // | // | 
| 317 | if ( !strcmp(inps[i],"-check") ) check = true; | if ( !strcmp(inps[i],"-check") ) check = true; | 
| 414 | // Create pamDB object and open SQL connection | // Create pamDB object and open SQL connection | 
| 415 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 416 | if ( beverbose ) printf(" 1 => Initialize and open SQL connection \n"); | if ( beverbose ) printf(" 1 => Initialize and open SQL connection \n"); | 
| 417 | pamDB = new PamelaDBOperations(host,user,password,filerawname,filerootname,boot,tsync,obt0,debug,tlefilename,dwinput,staticp,gpamela); | pamDB = new PamelaDBOperations(host,user,password,filerawname,filerootname,boot,tsync,obt0,debug,tlefilename,dwinput,staticp,gpamela,keepenv); | 
| 418 | pamDB->CheckConnection(); | pamDB->CheckConnection(); | 
| 419 | pamDB->LockTables(); | pamDB->LockTables(); | 
| 420 | pamDB->OpenL0File(filerootname); | if ( filerootname != "" ) pamDB->OpenL0File(filerootname); | 
| 421 |  | pamDB->SetTag(tag); | 
| 422 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 423 | // | // | 
| 424 | // | // | 
| 425 | pamDB->SetNoFrag(nofrag); | pamDB->SetNoFrag(nofrag); | 
| 426 | pamDB->SetAutoBoot(autoboot); | pamDB->SetAutoBoot(autoboot); | 
| 427 | pamDB->SetPedantic(pedantic); | pamDB->SetPedantic(pedantic); | 
| 428 |  | pamDB->SetRelaxed(relaxed); | 
| 429 | // | // | 
| 430 | if ( remove ){ | if ( remove ){ | 
| 431 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 544 | //Validate runs | //Validate runs | 
| 545 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 546 | if ( beverbose ) printf(" 11 => Validate runs (earlier than %s)\n",pamDB->GetCleanTime()); | if ( beverbose ) printf(" 11 => Validate runs (earlier than %s)\n",pamDB->GetCleanTime()); | 
| 547 | WAR[9] = pamDB->ValidateRuns(); | WAR[9] = pamDB->ValidateRuns(); | 
| 548 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 549 | }; | }; | 
| 550 |  |  | 
| 570 | }; | }; | 
| 571 |  |  | 
| 572 | } catch (Int_t exc) { | } catch (Int_t exc) { | 
| 573 | signal = exc; | //    signal = exc; | 
| 574 |  | signal = 1; | 
| 575 | switch(exc){ | switch(exc){ | 
| 576 | case -1: message += " DB connection failure"; break; | case -1: message += " DB connection failure"; break; | 
| 577 | case -2: message += " Connection failure"; break; | case -2: message += " Connection failure"; break; | 
| 629 | case -87: message += " PEDANTIC: THE RUN SHOULD HAVE ALREADY BEEN TREATED BY HANDLERUN()!"; break; | case -87: message += " PEDANTIC: THE RUN SHOULD HAVE ALREADY BEEN TREATED BY HANDLERUN()!"; break; | 
| 630 | case -88: message += " PEDANTIC: INCONSISTENT PKT/OBT SEQUENCE"; break; | case -88: message += " PEDANTIC: INCONSISTENT PKT/OBT SEQUENCE"; break; | 
| 631 | case -89: message += " PEDANTIC: CANNOT FIND PKT/OBT SEQUENCE IN THE POINTED FILE"; break; | case -89: message += " PEDANTIC: CANNOT FIND PKT/OBT SEQUENCE IN THE POINTED FILE"; break; | 
| 632 |  | case -90: message += " No PhysEndRun tree in the file"; break; | 
| 633 |  | case -91: message += " PEDANTIC: Repetition of PhysEndRun data"; break; | 
| 634 |  | case -92: message += " CHEWBACCA: cannot find Resurs time zero used by chewbacca in the GL_RESURS_OFFSET table"; break; | 
| 635 |  | case -100: message += " Cannot open calibration files to check repeated calibration"; break; | 
| 636 | default: message += " Unidentified error"; break; | default: message += " Unidentified error"; break; | 
| 637 | }; | }; | 
| 638 | printf("\n"); | printf("\n"); | 
| 783 | printf("\n"); | printf("\n"); | 
| 784 | printf(" WARNING(s):\n%s\n",message.Data()); | printf(" WARNING(s):\n%s\n",message.Data()); | 
| 785 | printf("\n"); | printf("\n"); | 
| 786 | if ( !signal ) signal = 1; | //    if ( !signal ) signal = 1; | 
| 787 |  | if ( !signal ) signal = 255; | 
| 788 | }; | }; | 
| 789 | // | // | 
| 790 | //--------------------------------------------------------------------------------------- | //--------------------------------------------------------------------------------------- |