| 5 | // | // | 
| 6 | #include <TSystem.h> | #include <TSystem.h> | 
| 7 | // | // | 
| 8 |  | #include <GLTables.h> | 
| 9 | #include <PamelaDBOperations.h> | #include <PamelaDBOperations.h> | 
| 10 | #include <YodaProfilerVerl2.h> | #include <YodaProfilerVerl2.h> | 
| 11 | // | // | 
| 17 | printf("\nUsage:\n"); | printf("\nUsage:\n"); | 
| 18 | printf("\n YodaProfiler [options] -rawFile raw_filename -yodaFile yoda_filename \n"); | printf("\n YodaProfiler [options] -rawFile raw_filename -yodaFile yoda_filename \n"); | 
| 19 | printf("\n -rawFile        full path to the raw file\n"); | printf("\n -rawFile        full path to the raw file\n"); | 
| 20 | printf("\n -yodaFile       full path to the YODA file\n"); | printf(  " -yodaFile       full path to the YODA file\n"); | 
| 21 | printf("\n Options can be: \n"); | printf("\n Options are:\n\n"); | 
| 22 | printf("\n --version       print informations about compilation and exit\n"); | printf(" --version       print informations about compilation and exit\n"); | 
| 23 | printf("\n -h | --help     print this help and exit \n"); | printf(" -h | --help     print this help and exit \n"); | 
| 24 | printf("\n -v | --verbose  be verbose [default]\n"); | printf(" -v | --verbose  be verbose [default]\n"); | 
| 25 | printf("\n -s | --silent   print nothing on STDOUT\n"); | printf(" -s | --silent   print nothing on STDOUT\n"); | 
| 26 | printf("\n -g | --debug    be very verbose [default: no]\n"); | printf(" -g | --debug    be very verbose [default: no]\n"); | 
| 27 | printf("\n -boot number    CPU boot number [default = taken from VarDump]\n"); | printf(" -boot number    CPU boot number [default = taken from VarDump]\n"); | 
| 28 | printf("\n -tsync number   timesync (s) [default = taken from data]\n"); | printf(" -autoboot       if no VarDump found try to determine the BOOT number\n"); | 
| 29 | printf("\n -obt0 number    obt at timesync (ms) [default = taken from data]\n"); | printf("                 looking at timesync [default]\n"); | 
| 30 | printf("\n -clean number   number in seconds after which the fragment table\n"); | printf(" -no-autoboot    disable previous check\n"); | 
| 31 | printf("\n                 can be cleaned and runs validated [default = -1 do not clean],\n"); | printf(" -tsync number   timesync (s) [default = taken from data]\n"); | 
| 32 | printf("\n                 if 0 force cleaning immediatly, if negative do not clean\n"); | printf(" -obt0 number    obt at timesync (ms) [default = taken from data]\n"); | 
| 33 | printf("\n -host           name for the host [default = $PAM_DBHOST or mysql://localhost/pamelaprod]\n"); | printf(" -clean number   number in seconds after which the fragment table\n"); | 
| 34 | printf("\n -user           username for the DB [default = $PAM_DBUSER or \"anonymous\"] \n"); | printf(" -dworbit number number is the downlink orbit number (to be used with non-standard names)\n"); | 
| 35 | printf("\n -psw            password for the DB [default = $PAM_DBPSW or \"\"]\n"); | printf("                 can be cleaned and runs validated [default = -1 do not clean],\n"); | 
| 36 | printf("\n -tle <file>     ascii file containing TLE obtained from celestrak.org or space-track.org [default = no]\n"); | printf("                 if 0 force cleaning immediatly, if negative do not clean\n"); | 
| 37 |  | printf(" -remove file    remove file and all related runs and calibrations from DB\n"); | 
| 38 |  | printf("                 file must be the YODA filename (full path is not needed)\n"); | 
| 39 |  | printf("                 'same' can be used if in conjuction with -yodaFile\n"); | 
| 40 |  | printf(" -validate file  validates runs between the two closest calibration to file \n"); | 
| 41 |  | printf("                 not belonging to file itself. File must be the YODA filename\n"); | 
| 42 |  | printf("                 'same' can be used if in conjuction with -yodaFile\n"); | 
| 43 |  | printf(" -cleanfrag file clean run fragments for file only\n"); | 
| 44 |  | printf("                 File must be the YODA filename\n"); | 
| 45 |  | printf("                 'same' can be used if in conjuction with -yodaFile\n"); | 
| 46 |  | printf(" -nofrag         do not leave runs in the fragment table and look for fragments\n"); | 
| 47 |  | printf("                 in the GL_RUN table.\n"); | 
| 48 |  | printf(" -force          to be used to reprocess a file or to process a file\n"); | 
| 49 |  | printf("                 when already validated the surroundings, it is equivalent to:\n"); | 
| 50 |  | printf("                 -remove same -validate same -cleanfrag same -nofrag\n"); | 
| 51 |  | printf(" -check          performs some test on the GL_RUN table to check its consistency\n"); | 
| 52 |  | printf(" -host           name of the DB host [default = $PAM_DBHOST or mysql://localhost/pamelaprod]\n"); | 
| 53 |  | printf(" -user           username for the DB connection [default = $PAM_DBUSER or \"anonymous\"] \n"); | 
| 54 |  | printf(" -psw            password for the DB connection [default = $PAM_DBPSW or \"\"]\n"); | 
| 55 |  | printf(" -tle <file>     ascii file containing TLE obtained from celestrak.org or space-track.org [default = no]\n"); | 
| 56 | printf("\n The order of input files and options does not matter. \n"); | printf("\n The order of input files and options does not matter. \n"); | 
| 57 | printf("\nExample: \n"); | printf("\n Example: \n"); | 
| 58 | printf("\n YodaProfiler -yodaFile /path/to/raw/files/000_000_00000_cln2.pam -rawFile /path/to/filesfromyoda/000_000_00000_cln2.root -v \n\n"); | printf(" YodaProfiler -yodaFile /path/to/raw/files/000_000_00000_cln2.root -rawFile /path/to/filesfromyoda/000_000_00000_cln2.pam -v \n\n"); | 
| 59 | }; | }; | 
| 60 | // | // | 
| 61 | int main(int numinp, char *inps[]){ | int main(int numinp, char *inps[]){ | 
| 67 | UInt_t boot = 0; | UInt_t boot = 0; | 
| 68 | UInt_t tsync = 0; | UInt_t tsync = 0; | 
| 69 | UInt_t obt0 = 0; | UInt_t obt0 = 0; | 
| 70 | //  Long64_t olderthan = 864000LL; | UInt_t dwinput = 0; | 
| 71 | Long64_t olderthan = -1LL; | Long64_t olderthan = -1LL; | 
|  |  |  | 
| 72 | // | // | 
| 73 | // | // | 
| 74 | TString filerawname  = ""; | TString filerawname  = ""; | 
| 79 | TString password = ""; | TString password = ""; | 
| 80 | // | // | 
| 81 | TString tlefilename = ""; | TString tlefilename = ""; | 
| 82 |  | // | 
| 83 | const char *pamdbhost = gSystem->Getenv("PAM_DBHOST"); | const char *pamdbhost = gSystem->Getenv("PAM_DBHOST"); | 
| 84 | const char *pamdbuser = gSystem->Getenv("PAM_DBUSER"); | const char *pamdbuser = gSystem->Getenv("PAM_DBUSER"); | 
| 85 | const char *pamdbpsw = gSystem->Getenv("PAM_DBPSW"); | const char *pamdbpsw = gSystem->Getenv("PAM_DBPSW"); | 
| 93 | // | // | 
| 94 | Bool_t beverbose = true; | Bool_t beverbose = true; | 
| 95 | Bool_t debug = false; | Bool_t debug = false; | 
| 96 |  | Bool_t autoboot = true; | 
| 97 |  | // | 
| 98 |  | Bool_t remove = false; | 
| 99 |  | TString remfile = ""; | 
| 100 |  | // | 
| 101 |  | Bool_t forceclean = false; | 
| 102 |  | TString fcleanfile = ""; | 
| 103 |  | // | 
| 104 |  | Bool_t validate = false; | 
| 105 |  | TString validfile = ""; | 
| 106 |  | // | 
| 107 |  | Bool_t nofrag = false; | 
| 108 |  | // | 
| 109 |  | Bool_t force = false; | 
| 110 |  | // | 
| 111 |  | Bool_t check = false; | 
| 112 | // | // | 
| 113 | Int_t i = 0; | Int_t i = 0; | 
| 114 | // | // | 
| 137 | }; | }; | 
| 138 | filerootname = (TString)inps[i+1]; | filerootname = (TString)inps[i+1]; | 
| 139 | }; | }; | 
| 140 |  | if ( !strcmp(inps[i],"-remove") ) { | 
| 141 |  | if ( numinp-1 < i+1 ){ | 
| 142 |  | usage(); | 
| 143 |  | exit(1); | 
| 144 |  | }; | 
| 145 |  | remfile = (TString)inps[i+1]; | 
| 146 |  | remove = true; | 
| 147 |  | }; | 
| 148 |  | if ( !strcmp(inps[i],"-cleanfrag") ) { | 
| 149 |  | if ( numinp-1 < i+1 ){ | 
| 150 |  | usage(); | 
| 151 |  | exit(1); | 
| 152 |  | }; | 
| 153 |  | fcleanfile = (TString)inps[i+1]; | 
| 154 |  | forceclean = true; | 
| 155 |  | }; | 
| 156 |  | if ( !strcmp(inps[i],"-validate") ) { | 
| 157 |  | if ( numinp-1 < i+1 ){ | 
| 158 |  | usage(); | 
| 159 |  | exit(1); | 
| 160 |  | }; | 
| 161 |  | validfile = (TString)inps[i+1]; | 
| 162 |  | validate = true; | 
| 163 |  | }; | 
| 164 |  | if ( !strcmp(inps[i],"-autoboot") ) { | 
| 165 |  | autoboot = true; | 
| 166 |  | }; | 
| 167 |  | if ( !strcmp(inps[i],"-no-autoboot") ) { | 
| 168 |  | autoboot = false; | 
| 169 |  | }; | 
| 170 | if ( !strcmp(inps[i],"-boot") ) { | if ( !strcmp(inps[i],"-boot") ) { | 
| 171 | if ( numinp-1 < i+1 ){ | if ( numinp-1 < i+1 ){ | 
| 172 | usage(); | usage(); | 
| 188 | }; | }; | 
| 189 | obt0 = (UInt_t)atoll(inps[i+1]); | obt0 = (UInt_t)atoll(inps[i+1]); | 
| 190 | }; | }; | 
| 191 |  | if ( !strcmp(inps[i],"-dworbit") ) { | 
| 192 |  | if ( numinp-1 < i+1 ){ | 
| 193 |  | usage(); | 
| 194 |  | exit(1); | 
| 195 |  | }; | 
| 196 |  | dwinput = (UInt_t)atoll(inps[i+1]); | 
| 197 |  | }; | 
| 198 | if ( !strcmp(inps[i],"-clean") ) { | if ( !strcmp(inps[i],"-clean") ) { | 
| 199 | if ( numinp-1 < i+1 ){ | if ( numinp-1 < i+1 ){ | 
| 200 | usage(); | usage(); | 
| 223 | }; | }; | 
| 224 | password = (TString)inps[i+1]; | password = (TString)inps[i+1]; | 
| 225 | }; | }; | 
|  |  |  | 
| 226 | if ( !strcmp(inps[i],"-tle") ) { | if ( !strcmp(inps[i],"-tle") ) { | 
| 227 | if ( numinp-1 < i+1 ){ | if ( numinp-1 < i+1 ){ | 
| 228 | usage(); | usage(); | 
| 230 | }; | }; | 
| 231 | tlefilename = (TString)inps[i+1]; | tlefilename = (TString)inps[i+1]; | 
| 232 | }; | }; | 
|  |  |  | 
| 233 | // | // | 
| 234 | if ( !strcmp(inps[i],"-v") || !strcmp(inps[i],"--verbose") ) beverbose = true; | if ( !strcmp(inps[i],"-v") || !strcmp(inps[i],"--verbose") ) beverbose = true; | 
| 235 | // | // | 
| 237 | // | // | 
| 238 | if ( !strcmp(inps[i],"-g") || !strcmp(inps[i],"--debug") ) debug = true; | if ( !strcmp(inps[i],"-g") || !strcmp(inps[i],"--debug") ) debug = true; | 
| 239 | // | // | 
| 240 |  | if ( !strcmp(inps[i],"-f") || !strcmp(inps[i],"-force") ) force = true; | 
| 241 |  | // | 
| 242 |  | if ( !strcmp(inps[i],"-nofrag") ) nofrag = true; | 
| 243 |  | // | 
| 244 |  | if ( !strcmp(inps[i],"-check") ) check = true; | 
| 245 |  | // | 
| 246 | i++; | i++; | 
| 247 | }; | }; | 
| 248 | } else { | } else { | 
| 263 | dup2(nul,2); | dup2(nul,2); | 
| 264 | }; | }; | 
| 265 | // | // | 
| 266 |  | if ( !strcmp(filerootname.Data(),"") ){ | 
| 267 |  | if ( (validate && !strcmp(validfile.Data(),"same")) || | 
| 268 |  | (remove && !strcmp(remfile.Data(),"same")) || | 
| 269 |  | (forceclean && !strcmp(fcleanfile.Data(),"same")) || force ){ | 
| 270 |  | printf("\n ERROR IN INPUT PARAMETERS \n"); | 
| 271 |  | usage(); | 
| 272 |  | exit(1); | 
| 273 |  | }; | 
| 274 |  | } else { | 
| 275 |  | if ( validate && !strcmp(validfile.Data(),"same") ) validfile =  (TString)gSystem->BaseName(filerootname.Data()); | 
| 276 |  | if ( remove && !strcmp(remfile.Data(),"same") ) remfile =  (TString)gSystem->BaseName(filerootname.Data()); | 
| 277 |  | if ( forceclean && !strcmp(fcleanfile.Data(),"same") ) fcleanfile =  (TString)gSystem->BaseName(filerootname.Data()); | 
| 278 |  | }; | 
| 279 |  | // | 
| 280 |  | if ( force ){ | 
| 281 |  | nofrag = true; | 
| 282 |  | forceclean = true; | 
| 283 |  | remove = true; | 
| 284 |  | validate = true; | 
| 285 |  | fcleanfile = (TString)gSystem->BaseName(filerootname.Data()); | 
| 286 |  | remfile = fcleanfile; | 
| 287 |  | validfile = fcleanfile; | 
| 288 |  | }; | 
| 289 |  | // | 
| 290 | // Start: | // Start: | 
| 291 | // | // | 
| 292 |  | GL_TABLES *glt = new GL_TABLES(host,user,password); | 
| 293 |  | // | 
| 294 | TString message; | TString message; | 
| 295 | char *version = YodaProfilerInfo(false); | char *version = YodaProfilerInfo(false); | 
| 296 | PamelaDBOperations *pamDB = 0; | PamelaDBOperations *pamDB = 0; | 
| 297 | UInt_t sizeofwar = 11; | UInt_t sizeofwar = 12; | 
| 298 | UInt_t WAR[11]; | UInt_t WAR[12]; | 
| 299 | memset(WAR, 0, 11*sizeof(UInt_t)); | memset(WAR, 0, sizeofwar*sizeof(UInt_t)); | 
| 300 | // | // | 
| 301 | printf("\n Welcome to the PAMELA YodaProfiler, version %s \n\n",version); | printf("\n Welcome to the PAMELA YodaProfiler, version %s \n\n",version); | 
| 302 | try{ | try{ | 
| 305 | // Create pamDB object and open SQL connection | // Create pamDB object and open SQL connection | 
| 306 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 307 | if ( beverbose ) printf(" 1 => Initialize and open SQL connection \n"); | if ( beverbose ) printf(" 1 => Initialize and open SQL connection \n"); | 
| 308 | pamDB = new PamelaDBOperations(host,user,password,filerawname,filerootname,boot,tsync,obt0,debug,tlefilename); | pamDB = new PamelaDBOperations(host,user,password,filerawname,filerootname,boot,tsync,obt0,debug,tlefilename,dwinput); | 
| 309 | pamDB->CheckConnection(); | pamDB->CheckConnection(); | 
| 310 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 311 | // | // | 
| 312 |  | pamDB->SetNoFrag(nofrag); | 
| 313 | if(pamDB->InsertRaw()){ | pamDB->SetAutoBoot(autoboot); | 
| 314 |  | // | 
| 315 |  | if ( remove ){ | 
| 316 |  | //------------------------------------------------------------------------------------------- | 
| 317 |  | // Remove a file and, on cascade, all that follows from the DB | 
| 318 |  | //------------------------------------------------------------------------------------------- | 
| 319 |  | if ( beverbose ) printf(" X => Remove file %s from DB \n",((TString)gSystem->BaseName(remfile)).Data()); | 
| 320 |  | WAR[11] = pamDB->removeFile((TString)gSystem->BaseName(remfile.Data())); | 
| 321 |  | //------------------------------------------------------------------------------------------- | 
| 322 |  | }; | 
| 323 |  | // | 
| 324 |  | if( pamDB->InsertRaw() ){ | 
| 325 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 326 | //Insert a Raw file in GL_RAW | //Insert a Raw file in GL_RAW | 
| 327 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 329 | WAR[0] = pamDB->insertPamelaRawFile(); | WAR[0] = pamDB->insertPamelaRawFile(); | 
| 330 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 331 | }; | }; | 
| 332 |  | // | 
| 333 | if(pamDB->InsertRoot()){ | if( pamDB->InsertRoot() ){ | 
| 334 |  | // | 
| 335 | if(!pamDB->InsertRaw())printf("=> RAW file not inserted --- the DB might not ( yet ) be filled correctly \n"); | if( !pamDB->InsertRaw() )printf("=> RAW file not inserted --- the DB might not ( yet ) be filled correctly \n"); | 
| 336 | pamDB->CheckFile(); | pamDB->CheckFile(); | 
|  | //------------------------------------------------------------------------------------------- |  | 
|  | //Update a single GL_RAW record with its BOOT_NUMBER |  | 
|  | //------------------------------------------------------------------------------------------- |  | 
|  | if ( beverbose ) printf(" 3 => Update a single GL_RAW record with its BOOT_NUMBER \n"); |  | 
|  | WAR[3] = pamDB->assignBOOT_NUMBER(); |  | 
|  | //    if ( WAR[3] ) pamDB->SetNOBOOT(true); |  | 
|  | if ( WAR[3] && WAR[3] != 1 ) throw -9; |  | 
|  | //------------------------------------------------------------------------------------------- |  | 
| 337 | // | // | 
| 338 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 339 | //Insert an entry in GL_TIMESYNC | //Insert an entry in GL_TIMESYNC | 
| 340 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 341 | if ( beverbose ) printf(" 4 => Insert an entry in GL_TIMESYNC \n"); | if ( beverbose ) printf(" 3 => Insert an entry in GL_TIMESYNC \n"); | 
| 342 | WAR[1] = pamDB->insertPamelaGL_TIMESYNC(); | WAR[1] = pamDB->insertPamelaGL_TIMESYNC(); | 
| 343 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 344 | // | // | 
| 345 |  | //------------------------------------------------------------------------------------------- | 
| 346 |  | //Update a single GL_RAW record with its BOOT_NUMBER | 
| 347 |  | //------------------------------------------------------------------------------------------- | 
| 348 |  | if ( beverbose ) printf(" 4 => Update a single GL_RAW record with its BOOT_NUMBER \n"); | 
| 349 |  | WAR[3] = pamDB->assignBOOT_NUMBER(); | 
| 350 |  | if ( WAR[3] && WAR[3] != 1 && WAR[3] != 8 ) throw -9; | 
| 351 |  | //------------------------------------------------------------------------------------------- | 
| 352 |  | // | 
| 353 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 354 | //Insert unpack ROOT file in GL_ROOT | //Insert unpack ROOT file in GL_ROOT | 
| 355 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 386 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 387 | }; | }; | 
| 388 | // | // | 
| 389 |  | if ( forceclean ){ | 
| 390 |  | //------------------------------------------------------------------------------------------- | 
| 391 |  | //Clean the GL_RUN_FRAGMENTS for the given file | 
| 392 |  | //------------------------------------------------------------------------------------------- | 
| 393 |  | if ( beverbose ) printf(" 10 => Clean the GL_RUN_FRAGMENTS table for file %s \n",fcleanfile.Data()); | 
| 394 |  | WAR[8] = pamDB->CleanGL_RUN_FRAGMENTS((TString)gSystem->BaseName(fcleanfile.Data())); | 
| 395 |  | }; | 
| 396 |  | // | 
| 397 |  | // | 
| 398 |  | if ( validate ){ | 
| 399 |  | //------------------------------------------------------------------------------------------- | 
| 400 |  | //Validate runs | 
| 401 |  | //------------------------------------------------------------------------------------------- | 
| 402 |  | if ( beverbose ) printf(" 11 => Validate runs table for file %s \n",validfile.Data()); | 
| 403 |  | WAR[9] = pamDB->ValidateRuns((TString)gSystem->BaseName(validfile.Data())); | 
| 404 |  | //------------------------------------------------------------------------------------------- | 
| 405 |  | }; | 
| 406 |  | // | 
| 407 | pamDB->CheckValidate(olderthan); | pamDB->CheckValidate(olderthan); | 
| 408 | // | // | 
| 409 | if(pamDB->Validate()){ | if( pamDB->Validate() ){ | 
| 410 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 411 | //Clean the GL_RUN_FRAGMENTS | //Clean the GL_RUN_FRAGMENTS | 
| 412 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 413 | if ( beverbose ) printf(" 10 => Clean the GL_RUN_FRAGMENTS table (earlier than %s) \n",pamDB->GetCleanTime() ); | if ( beverbose ) printf(" 10 => Clean the GL_RUN_FRAGMENTS table (earlier than %s) \n",pamDB->GetCleanTime() ); | 
| 414 | WAR[8] = pamDB->CleanGL_RUN_FRAGMENTS(); | WAR[8] = pamDB->CleanGL_RUN_FRAGMENTS(); | 
| 415 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
|  |  |  | 
| 416 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 417 | //Validate runs | //Validate runs | 
| 418 | //------------------------------------------------------------------------------------------- | //------------------------------------------------------------------------------------------- | 
| 428 | if ( beverbose ) printf(" 12 => Insert TLE elements in the GL_TLE table from file %s \n",tlefilename.Data()); | if ( beverbose ) printf(" 12 => Insert TLE elements in the GL_TLE table from file %s \n",tlefilename.Data()); | 
| 429 | WAR[10] = pamDB->populateTLE(); | WAR[10] = pamDB->populateTLE(); | 
| 430 | } | } | 
| 431 |  |  | 
| 432 |  | if ( check ){ | 
| 433 |  | //---------------------------------------------- | 
| 434 |  | //Check GL_RUN table consistency | 
| 435 |  | //---------------------------------------------- | 
| 436 |  | if ( beverbose ) printf(" 13 => Check GL_RUN table consistency\n"); | 
| 437 |  | UInt_t ch = pamDB->Check(); | 
| 438 |  | if ( !ch ){ | 
| 439 |  | printf(" GL_RUN table seems ok!\n"); | 
| 440 |  | } else { | 
| 441 |  | printf(" Problems found in the GL_RUN table!\n"); | 
| 442 |  | }; | 
| 443 |  | }; | 
| 444 |  |  | 
| 445 | } catch (Int_t exc) { | } catch (Int_t exc) { | 
| 446 | signal = exc; | signal = exc; | 
| 473 | case -26: message += " Raw file not found looking for VarDump"; break; | case -26: message += " Raw file not found looking for VarDump"; break; | 
| 474 | case -27: message += " Cannot determine downlink orbit, wrong filename format?"; break; | case -27: message += " Cannot determine downlink orbit, wrong filename format?"; break; | 
| 475 | case -28: message += " Cannot assign a RUN ID unique number!"; break; | case -28: message += " Cannot assign a RUN ID unique number!"; break; | 
| 476 |  | case -29: message += " No VarDump and impossible to find a consistent BOOT number, use the -boot option to override"; break; | 
| 477 | default: message += " Unidentified error"; break; | default: message += " Unidentified error"; break; | 
| 478 | }; | }; | 
| 479 | printf("\n"); | printf("\n"); | 
| 526 | if ( bit == 0 ) message += "=> BOOT number already inserted\n";// | if ( bit == 0 ) message += "=> BOOT number already inserted\n";// | 
| 527 | else if ( bit == 1 ) message += "=> VarDump event tree is empty, use the -boot option to override\n";// | else if ( bit == 1 ) message += "=> VarDump event tree is empty, use the -boot option to override\n";// | 
| 528 | else if ( bit == 2 ) message += "=> No BOOT number in VarDump(!), use the -boot option to override\n";// | else if ( bit == 2 ) message += "=> No BOOT number in VarDump(!), use the -boot option to override\n";// | 
| 529 |  | else if ( bit == 3 ) message += "=> No VarDump! autoboot option used\n";// | 
| 530 | else if ( bit == 4 ) message += "=> The file is not in the database looking for VarDump, use the -boot option to override\n";// | else if ( bit == 4 ) message += "=> The file is not in the database looking for VarDump, use the -boot option to override\n";// | 
| 531 | else message += "=> Unidentified assignBOOTnumber warning\n"; | else message += "=> Unidentified assignBOOTnumber warning\n"; | 
| 532 | }; | }; | 
| 578 | for (UInt_t bit=0; bit<32; bit++){ | for (UInt_t bit=0; bit<32; bit++){ | 
| 579 | if ( WAR[j] & (1 << bit) ){ | if ( WAR[j] & (1 << bit) ){ | 
| 580 | if      ( bit == 0 ) message += "=> Skip the GL_RUN_FRAGMENTS table cleaning\n"; | if      ( bit == 0 ) message += "=> Skip the GL_RUN_FRAGMENTS table cleaning\n"; | 
| 581 |  | if      ( bit == 1 ) message += "=> Problems retrieving ROOT ID from DB\n"; | 
| 582 | else  message += "=> Unidentified CleanGL_RUN_FRAGMENTS warning\n"; | else  message += "=> Unidentified CleanGL_RUN_FRAGMENTS warning\n"; | 
| 583 | }; | }; | 
| 584 | }; | }; | 
| 588 | for (UInt_t bit=0; bit<32; bit++){ | for (UInt_t bit=0; bit<32; bit++){ | 
| 589 | if ( WAR[j] & (1 << bit) ){ | if ( WAR[j] & (1 << bit) ){ | 
| 590 | if      ( bit == 0 ) message += "=> Skip the run validation \n"; | if      ( bit == 0 ) message += "=> Skip the run validation \n"; | 
| 591 |  | if      ( bit == 1 ) message += "=> Problems retrieving ROOT ID from DB\n"; | 
| 592 | else  message += "=> Unidentified ValidateRuns warning\n"; | else  message += "=> Unidentified ValidateRuns warning\n"; | 
| 593 | }; | }; | 
| 594 | }; | }; | 
| 603 | }; | }; | 
| 604 | }; | }; | 
| 605 | }; | }; | 
| 606 |  | // | 
| 607 |  | if ( j == 11 ){ // removeFile | 
| 608 |  | for (UInt_t bit=0; bit<32; bit++){ | 
| 609 |  | if ( WAR[j] & (1 << bit) ){ | 
| 610 |  | if      ( bit == 0 ) message += "=> No file to delete from DB \n"; | 
| 611 |  | else  message += "=> Unidentified populateTle warning\n"; | 
| 612 |  | }; | 
| 613 |  | }; | 
| 614 |  | }; | 
| 615 | }; | }; | 
| 616 | }; | }; | 
| 617 | // | // | 
| 628 | if ( beverbose ) printf(" 13 => Free objects and close SQL connection \n"); | if ( beverbose ) printf(" 13 => Free objects and close SQL connection \n"); | 
| 629 | pamDB->Close(); | pamDB->Close(); | 
| 630 | // | // | 
| 631 |  | if ( debug ) printf(" Total number of queries through GLTABLES: %u \n",glt->GetNqueries()); | 
| 632 |  | delete glt; | 
| 633 |  | // | 
| 634 | printf("\n"); | printf("\n"); | 
| 635 | printf(" Finished, exiting...\n"); | printf(" Finished, exiting...\n"); | 
| 636 | printf("\n"); | printf("\n"); |