| 42 |
printf(" --version print informations about compilation and exit\n"); |
printf(" --version print informations about compilation and exit\n"); |
| 43 |
printf(" -h | --help print this help and exit \n"); |
printf(" -h | --help print this help and exit \n"); |
| 44 |
printf(" -g | --debug set debug flag\n"); |
printf(" -g | --debug set debug flag\n"); |
| 45 |
|
printf(" -p | --pedantic merge only when all level2 run files are present (default NOT pedantic, merge whatever it finds)\n"); |
| 46 |
printf(" -idRun run merge all runs in the directory which have the same date of run \"run\"\n"); |
printf(" -idRun run merge all runs in the directory which have the same date of run \"run\"\n"); |
| 47 |
printf(" -outdir dir output directory \"dir\"\n"); |
printf(" -outdir dir output directory \"dir\"\n"); |
| 48 |
printf(" -dir dir merge all runs in the directory \"dir\"\n"); |
printf(" -dir dir merge all runs in the directory \"dir\"\n"); |
| 49 |
printf(" -d | -delete delete original DarthVader runs once merged\n"); |
printf(" -d | -delete delete original DarthVader runs once merged\n"); |
| 50 |
|
printf(" -no-DBupdate do not update the DB\n"); |
| 51 |
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"); |
| 52 |
printf(" -user username for the DB connection [default = $PAM_DBUSER or \"anonymous\"] \n"); |
printf(" -user username for the DB connection [default = $PAM_DBUSER or \"anonymous\"] \n"); |
| 53 |
printf(" -psw password for the DB connection [default = $PAM_DBPSW or \"\"]\n"); |
printf(" -psw password for the DB connection [default = $PAM_DBPSW or \"\"]\n"); |
| 76 |
TString psw = ""; |
TString psw = ""; |
| 77 |
Bool_t debug = false; |
Bool_t debug = false; |
| 78 |
Bool_t delop = false; |
Bool_t delop = false; |
| 79 |
|
Bool_t dbup = true; |
| 80 |
|
Bool_t pedantic = false; |
| 81 |
// |
// |
| 82 |
const char *pamdbhost=gSystem->Getenv("PAM_DBHOST"); |
const char *pamdbhost=gSystem->Getenv("PAM_DBHOST"); |
| 83 |
const char *pamdbuser=gSystem->Getenv("PAM_DBUSER"); |
const char *pamdbuser=gSystem->Getenv("PAM_DBUSER"); |
| 110 |
if ( !strcmp(inps[i],"-d") || !strcmp(inps[i],"-delete") ){ |
if ( !strcmp(inps[i],"-d") || !strcmp(inps[i],"-delete") ){ |
| 111 |
delop = true; |
delop = true; |
| 112 |
}; |
}; |
| 113 |
|
if ( !strcmp(inps[i],"-p") || !strcmp(inps[i],"--pedantic") ){ |
| 114 |
|
pedantic = true; |
| 115 |
|
} |
| 116 |
|
if ( !strcmp(inps[i],"-no-DBupdate") ){ |
| 117 |
|
dbup = false; |
| 118 |
|
}; |
| 119 |
if ( !strcmp(inps[i],"-idRun") ) { |
if ( !strcmp(inps[i],"-idRun") ) { |
| 120 |
if ( numinp-1 < i+1 ) { |
if ( numinp-1 < i+1 ) { |
| 121 |
amidalausage(); |
amidalausage(); |
| 203 |
if ( !strcmp(inps[i],"+all") || !strcmp(inps[i],"+ALL") ) { |
if ( !strcmp(inps[i],"+all") || !strcmp(inps[i],"+ALL") ) { |
| 204 |
dectlist +=" +ALL"; |
dectlist +=" +ALL"; |
| 205 |
}; |
}; |
| 206 |
|
if ( !strcmp(inps[i],"+auto") || !strcmp(inps[i],"+AUTO") ) { |
| 207 |
|
dectlist +=" +AUTO"; |
| 208 |
|
}; |
| 209 |
if ( !strcmp(inps[i],"+CAL") ) { |
if ( !strcmp(inps[i],"+CAL") ) { |
| 210 |
dectlist +=" +CAL"; |
dectlist +=" +CAL"; |
| 211 |
}; |
}; |
| 278 |
}; |
}; |
| 279 |
// |
// |
| 280 |
myquery.str(""); |
myquery.str(""); |
| 281 |
myquery << "SET time_zone='+0:00'"; |
myquery << "SET time_zone='+0:00';"; |
| 282 |
dbc->Query(myquery.str().c_str()); |
delete dbc->Query(myquery.str().c_str()); |
| 283 |
|
delete dbc->Query("SET sql_mode = 'NO_UNSIGNED_SUBTRACTION';"); |
| 284 |
// |
// |
| 285 |
RunGlue *rg = new RunGlue(dbc,run,dir,outdir); |
RunGlue *rg = new RunGlue(dbc,run,dir,outdir); |
| 286 |
// |
// |
| 287 |
if ( debug ) rg->SetDebug(true); |
if ( debug ) rg->SetDebug(true); |
| 288 |
|
if ( !dbup ) rg->SetUpgrade(false); |
| 289 |
rg->SetDList(dectlist); |
rg->SetDList(dectlist); |
| 290 |
// |
// |
| 291 |
TList *l = 0; |
TList *l = 0; |
| 292 |
// |
// |
| 293 |
TString treelist="+ALL"; |
Int_t RET=0; |
| 294 |
|
// |
| 295 |
|
// TString treelist="+AUTO"; |
| 296 |
// |
// |
| 297 |
while ( !rg->End() ){ |
while ( !rg->End() ){ |
| 298 |
// |
// |
| 299 |
l = rg->GetRunList(); |
l = rg->GetRunList(); |
| 300 |
// |
// |
| 301 |
if ( l ){ |
if ( l && !(rg->HasDiscardedRuns() && pedantic) ){ |
| 302 |
// |
// |
| 303 |
if ( rg->OpenFile() ){ |
if ( rg->FileIsOpen() ){ |
| 304 |
// |
// |
| 305 |
rg->MergeRootfile(l); |
rg->MergeRootfile(l); |
| 306 |
// |
// |
| 307 |
rg->UpdateDB(l); |
if ( dbup ) rg->UpdateDB(l); |
| 308 |
// |
// |
| 309 |
if ( delop ) rg->DeleteRunFiles(l); |
if ( delop ) rg->DeleteRunFiles(l); |
| 310 |
// |
// |
| 311 |
rg->Clean(); |
rg->Clean(); |
| 312 |
// |
// |
| 313 |
|
} else { |
| 314 |
|
RET = 255; |
| 315 |
}; |
}; |
| 316 |
}; |
} else { |
| 317 |
|
RET = 255; |
| 318 |
|
if (rg->HasDiscardedRuns() && pedantic){ |
| 319 |
|
printf(" Missing runs (and pedantic selected), cannot merge file %s \n",rg->GetFilename().Data()); |
| 320 |
|
rg->Clean(); |
| 321 |
|
} |
| 322 |
|
} |
| 323 |
delete l; |
delete l; |
| 324 |
// |
// |
| 325 |
}; |
} |
| 326 |
// |
// |
| 327 |
delete rg; |
delete rg; |
| 328 |
// |
// |
| 330 |
// |
// |
| 331 |
if ( dbc ) dbc->Close(); |
if ( dbc ) dbc->Close(); |
| 332 |
// |
// |
| 333 |
|
if ( debug ) printf(" exit with error code %i \n",RET); |
| 334 |
|
// |
| 335 |
printf("\n"); |
printf("\n"); |
| 336 |
// |
// |
| 337 |
exit(0); |
exit(RET); |
| 338 |
} |
} |