--- DarthVader/src/R2-D2.cpp 2006/09/07 08:50:39 1.5 +++ DarthVader/src/R2-D2.cpp 2006/09/22 09:18:46 1.9 @@ -35,11 +35,10 @@ printf("\n -host name for the host [default = $PAM_DBHOST or mysql://localhost/pamelaprod]\n"); printf("\n -user username for the DB [default = $PAM_DBUSER or \"anonymous\"] \n"); printf("\n -psw password for the DB [default = $PAM_DBPSW or \"\"]\n"); - printf("\n -convert [ -tzone timezone -dbtime dbtime ] \n"); - printf("\n convert the dbtime given in seconds (from the DB) to a string for\n"); - printf("\n the given time zone (UTC,GMT,MSK,MSD,CET,CEST are accepted) \n"); - printf("\n -runat [ -tzone timezone -time \"yyyy-mm-dd hh:mm:ss\" ] \n"); - printf("\n returns run number which contains the given date in the given time zone \n"); + printf("\n -tzone timezone the time zone: UTC,GMT,MSK,MSD,CET,CEST are accepted \n"); + printf("\n -convert dbtime convert the dbtime given in seconds (from the DB) to a string\n"); + printf("\n -runat time returns run number which contains the given date,\n"); + printf("\n for time use the SQL format \"yyyy-mm-dd hh:mm:ss\" \n"); printf("\nExamples: \n"); printf("\n R2-D2 -idRun 1085 \n"); printf("\n R2-D2 -filename DW_050208_00900.root \n"); @@ -67,14 +66,16 @@ const char *pamdbhost=gSystem->Getenv("PAM_DBHOST"); const char *pamdbuser=gSystem->Getenv("PAM_DBUSER"); const char *pamdbpsw=gSystem->Getenv("PAM_DBPSW"); + if ( !pamdbhost ) pamdbhost = ""; + if ( !pamdbuser ) pamdbuser = ""; + if ( !pamdbpsw ) pamdbpsw = ""; if ( strcmp(pamdbhost,"") ) host = pamdbhost; if ( strcmp(pamdbuser,"") ) user = pamdbuser; if ( strcmp(pamdbpsw,"") ) psw = pamdbpsw; // - printf(" host %s user %s psw %s \n",host.Data(),user.Data(),psw.Data()); + // printf(" host %s user %s psw %s \n",host.Data(),user.Data(),psw.Data()); // - TString tzone = "MSK"; - TString tzone2 = "MSK"; + TString tzone = "UTC"; TString runtime = "1970-01-01 00:00:00"; UInt_t dbti = 0; Bool_t convert = false; @@ -135,68 +136,30 @@ psw = (TString)inps[i+1]; }; // + if ( !strcmp(inps[i],"-tzone") ) { + if ( numinp-1 < i+1 ){ + r2d2usage(); + exit(-3); + }; + tzone = (TString)inps[i+1]; + }; + // if ( !strcmp(inps[i],"-convert") ) { convert = true; - if ( numinp >= i+2 && !strcmp(inps[i+1],"[") ){ - if ( numinp < i+2 ){ - r2d2usage(); - throw -3; - }; - i += 2; - while ( strcmp(inps[i],"]") ){ - if ( !strcmp(inps[i],"-tzone") ) { - if ( numinp-1 < i+1 ){ - r2d2usage(); - exit(-3); - }; - tzone = (TString)inps[i+1]; - }; - if ( !strcmp(inps[i],"-dbtime") ) { - if ( numinp-1 < i+1 ){ - r2d2usage(); - exit(-3); - }; - dbti = (UInt_t)atoll(inps[i+1]); - }; - i++; - if ( i > numinp-1 ){ - r2d2usage(); - throw -3; - }; - }; + if ( numinp-1 < i+1 ){ + r2d2usage(); + exit(-3); }; + dbti = (UInt_t)atoll(inps[i+1]); }; // if ( !strcmp(inps[i],"-runat") ) { ruti = true; - if ( numinp >= i+2 && !strcmp(inps[i+1],"[") ){ - if ( numinp < i+2 ){ - r2d2usage(); - throw -3; - }; - i += 2; - while ( strcmp(inps[i],"]") ){ - if ( !strcmp(inps[i],"-tzone") ) { - if ( numinp-1 < i+1 ){ - r2d2usage(); - exit(-3); - }; - tzone2 = (TString)inps[i+1]; - }; - if ( !strcmp(inps[i],"-time") ) { - if ( numinp-1 < i+1 ){ - r2d2usage(); - exit(-3); - }; - runtime = (TString)inps[i+1]; - }; - i++; - if ( i > numinp-1 ){ - r2d2usage(); - throw -3; - }; - }; + if ( numinp-1 < i+1 ){ + r2d2usage(); + exit(-3); }; + runtime = (TString)inps[i+1]; }; // i++; @@ -229,7 +192,7 @@ // At which date correspond the DB time "dbti"? // if ( convert ){ - printf("\n DB time %u is %s %s \n",dbti,dbtime->ConvertTime(tzone.Data(),dbti).Data(),tzone.Data()); + printf("\n DB time %u is %s %s \n",dbti,dbtime->ConvertTime(tzone,dbti).Data(),tzone.Data()); }; // // Which run contains the date "runtime"? @@ -239,7 +202,7 @@ TDatime *time = new TDatime(runtime.Data()); UInt_t dbti = time->Convert(); // - TString thetime = dbtime->UnConvertTime(tzone2.Data(),dbti); + TString thetime = dbtime->UnConvertTime(tzone,dbti); // TDatime *time2 = new TDatime(thetime.Data()); UInt_t mytime = time2->Convert(); @@ -254,10 +217,10 @@ for( r=0; r < 1000; r++){ Row = pResult->Next(); if ( !r && !Row ){ - printf("\n No run contains date %s %s (DB time %u )\n",runtime.Data(),tzone2.Data(),mytime); + printf("\n No run contains date %s %s (DB time %u )\n",runtime.Data(),tzone.Data(),mytime); }; if( Row == NULL ) break; - printf("\n Date %s %s (DB time %u ) is contained in run %u \n",runtime.Data(),tzone2.Data(),mytime,(UInt_t)atoll(Row->GetField(0))); + printf("\n Date %s %s (DB time %u ) is contained in run %u \n",runtime.Data(),tzone.Data(),mytime,(UInt_t)atoll(Row->GetField(0))); }; }; // @@ -268,13 +231,13 @@ error = glrun->Query_GL_RUN(run,dbc); glroot->Clear(); error = glroot->Query_GL_ROOT(glrun->ID_ROOT_L0,dbc); - if ( error ){ - printf(" Error querying the DB! \n"); - exit(-4); - }; - if ( !glrun->ID ){ + if ( !glrun->ID_ROOT_L0 ){ printf("\n No run with ID=%u in the DB!\n",run); } else { + if ( error ){ + printf(" Error querying the DB! \n"); + exit(-4); + }; printf("\n Run %u belongs to file %s \n",run,(glroot->PATH+glroot->NAME).Data()); }; }; @@ -321,7 +284,8 @@ }; if( Row == NULL ) break; if ( !r ) printf("\n File %s contains the following runs: \n\n",filename.Data()); - printf(" => ID = %i _-_-_ the run started at %s UTC ended at %s UTC \n\n",(UInt_t)atoll(Row->GetField(0)),dbtime->ConvertTime("UTC",(UInt_t)atoll(Row->GetField(1))).Data(),dbtime->ConvertTime("UTC",(UInt_t)atoll(Row->GetField(2))).Data()); + TString UTC="UTC"; + printf(" => ID = %i _-_-_ the run started at %s UTC ended at %s UTC \n\n",(UInt_t)atoll(Row->GetField(0)),dbtime->ConvertTime(UTC,(UInt_t)atoll(Row->GetField(1))).Data(),dbtime->ConvertTime(UTC,(UInt_t)atoll(Row->GetField(2))).Data()); }; delete pResult; myquery.str("");