/[PAMELA software]/YodaProfiler/src/R2-D2.cpp
ViewVC logotype

Diff of /YodaProfiler/src/R2-D2.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.12 by mocchiut, Tue Feb 12 19:35:58 2008 UTC revision 1.13 by mocchiut, Mon Mar 3 14:10:36 2008 UTC
# Line 40  void r2d2usage(){ Line 40  void r2d2usage(){
40    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");
41    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");
42    printf(" -psw             password for the DB connection [default = $PAM_DBPSW or \"\"]\n");    printf(" -psw             password for the DB connection [default = $PAM_DBPSW or \"\"]\n");
43      printf(" -splitat file    shows relationship between files around the given file\n");
44    printf(" -tzone timezone  the time zone: UTC,GMT,MSK,MSD,CET,CEST are accepted \n");    printf(" -tzone timezone  the time zone: UTC,GMT,MSK,MSD,CET,CEST are accepted \n");
45    printf(" -convert dbtime  convert the dbtime given in seconds (from the DB) to a string\n");    printf(" -convert dbtime  convert the dbtime given in seconds (from the DB) to a string\n");
46    printf(" -runat date      returns run number which contains the given date,\n");    printf(" -runat date      returns run number which contains the given date,\n");
# Line 69  int main(int numinp, char *inps[]){ Line 70  int main(int numinp, char *inps[]){
70    //    //
71    TString filename = "";    TString filename = "";
72    TString l2filename = "";    TString l2filename = "";
73      TString splitat = "";
74    //    //
75    TSQLServer *dbc = 0;    TSQLServer *dbc = 0;
76    TString host = "mysql://localhost/pamelaprod";    TString host = "mysql://localhost/pamelaprod";
# Line 107  int main(int numinp, char *inps[]){ Line 109  int main(int numinp, char *inps[]){
109    //    //
110    TSQLResult *pResult;    TSQLResult *pResult;
111    TSQLRow *Row;    TSQLRow *Row;
112      TSQLResult *pResult2 = 0;
113      TSQLRow *Row2;
114    int t;    int t;
115    int r;    int r;
116    stringstream myquery;    stringstream myquery;
# Line 141  int main(int numinp, char *inps[]){ Line 145  int main(int numinp, char *inps[]){
145          };          };
146          filename = (TString)inps[i+1];            filename = (TString)inps[i+1];  
147        };        };
148          if ( !strcmp(inps[i],"-splitat") ) {
149            if ( numinp-1 < i+1 ){
150              r2d2usage();
151              exit(-3);
152            };
153            splitat = (TString)inps[i+1];  
154          };
155        if ( !strcmp(inps[i],"-l2filename") ) {        if ( !strcmp(inps[i],"-l2filename") ) {
156          if ( numinp-1 < i+1 ){          if ( numinp-1 < i+1 ){
157            r2d2usage();            r2d2usage();
# Line 662  int main(int numinp, char *inps[]){ Line 673  int main(int numinp, char *inps[]){
673      };      };
674    };      };  
675    //    //
676      //
677      // Show relationship between files around file "splitat"
678      //
679      if ( strcmp(splitat.Data(),"") ){
680        // ----------------
681        Int_t ID = 0;
682        Int_t IDR = 0;
683        TString PATH;
684        TString NAME;
685        UInt_t atime1 = 0;
686        UInt_t atime2 = 0;
687        //    
688        myquery.str("");
689        myquery << " select ID,PATH,NAME from GL_ROOT where NAME>=\"" << splitat.Data() << "\" order by NAME asc limit 20;";    
690        //    printf(" myquery is %s \n",myquery.str().c_str());
691        pResult = dbc->Query(myquery.str().c_str());
692        GL_TIMESYNC *dbtime;
693        GL_S4_CALIB *glS4calib;
694        GL_ROOT *glroot;
695        for( r=0; r < 1000; r++){
696          Row = pResult->Next();      
697          if( Row == NULL ) break;
698          Int_t s=0;
699          Int_t t=0;
700          Int_t c=0;
701          TString *s4files[500];
702          TString *tfiles[500];
703          TString *cfiles[2000];
704          ID     = atoi(Row->GetField(0));
705          PATH = Row->GetField(1);
706          NAME = Row->GetField(2);
707          printf("\n FILE: %s/%s \n",PATH.Data(),NAME.Data());
708          myquery.str("");
709          myquery << " select ID,RUNHEADER_OBT,RUNTRAILER_OBT from GL_RUN where ID_ROOT_L0=" << ID << ";";    
710          pResult2 = dbc->Query(myquery.str().c_str());
711          for( Int_t run=0; run < pResult2->GetRowCount(); run++){
712            Row2 = pResult2->Next();      
713            if( Row2 == NULL ) break;
714            IDR = atoi(Row2->GetField(0));
715            //
716            // here we make queries to DB looking for needed files and print results
717            //
718            dbtime = new GL_TIMESYNC(ID,"ID",dbc);
719            //
720            atime1 = dbtime->DBabsTime(atoi(Row2->GetField(1)));  
721            atime2 = dbtime->DBabsTime(atoi(Row2->GetField(2)));  
722            //
723            // S4
724            //
725            glS4calib = new GL_S4_CALIB();
726            glS4calib->Query_GL_S4_CALIB(atime1, dbc);
727            glroot = new GL_ROOT();
728            glroot->Query_GL_ROOT(glS4calib->ID_ROOT_L0,dbc);
729            //
730            if ( s > 0 ){
731              Bool_t found = false;
732              for (Int_t g=0; g<s; g++){
733                if ( !strcmp(glroot->NAME.Data(),s4files[g]->Data()) ){
734                  found = true;
735                };
736              };
737              if ( !found && strcmp(glroot->NAME.Data(),NAME.Data()) ){
738                s4files[s] = new TString(glroot->NAME.Data());
739                s++;
740              };
741            } else {
742              if ( strcmp(glroot->NAME.Data(),NAME.Data()) ){
743                s4files[s] = new TString(glroot->NAME.Data());
744                s++;
745              };
746            };
747            //
748            delete glS4calib;
749            delete dbtime;
750            delete glroot;
751            //
752            // TRACKER
753            //
754            GL_TRK_CALIB q2;
755            q2.Query_GL_TRK_CALIB(atime1,dbc);
756            GL_ROOT q3;
757            q3.Query_GL_ROOT(q2.ID_ROOT_L0,dbc);
758            //
759            if ( t > 0 ){
760              Bool_t found = false;
761              for (Int_t gt=0; gt<t; gt++){
762                if ( !strcmp(q3.NAME.Data(),tfiles[gt]->Data()) ){
763                  found = true;
764                };
765              };
766              if ( !found && strcmp(q3.NAME.Data(),NAME.Data()) ){
767                tfiles[t] = new TString(q3.NAME.Data());
768                t++;
769              };
770            } else {
771              if ( strcmp(q3.NAME.Data(),NAME.Data()) ){
772                tfiles[t] = new TString(q3.NAME.Data());
773                t++;
774              };
775            };
776            //
777            // CALO
778            //
779            GL_CALO_CALIB *glcalo = new GL_CALO_CALIB();
780            GL_CALOPULSE_CALIB *glp = new GL_CALOPULSE_CALIB();
781            GL_ROOT *glroot = new GL_ROOT();  
782            //
783            for (Int_t sc=0; sc<4; sc++){
784              //
785              UInt_t pampli = 0;
786              glcalo->Query_GL_CALO_CALIB(atime1,pampli,sc,dbc);
787              glroot->Query_GL_ROOT(glcalo->ID_ROOT_L0,dbc);
788              if ( c > 0 ){
789                Bool_t found = false;
790                for (Int_t gt=0; gt<c; gt++){
791                  if ( !strcmp(glroot->NAME.Data(),cfiles[gt]->Data()) ){
792                    found = true;
793                  };
794                };
795                if ( !found && strcmp(glroot->NAME.Data(),NAME.Data()) ){
796                  cfiles[c] = new TString(glroot->NAME.Data());
797                  c++;
798                };
799              } else {
800                if ( strcmp(glroot->NAME.Data(),NAME.Data()) ){
801                  cfiles[c] = new TString(glroot->NAME.Data());
802                  c++;
803                };
804              };
805              //
806              pampli = 0;
807              glcalo->Query_GL_CALO_CALIB(atime2,pampli,sc,dbc);
808              glroot->Query_GL_ROOT(glcalo->ID_ROOT_L0,dbc);
809              if ( c > 0 ){
810                Bool_t found = false;
811                for (Int_t gt=0; gt<c; gt++){
812                  if ( !strcmp(glroot->NAME.Data(),cfiles[gt]->Data()) ){
813                    found = true;
814                  };
815                };
816                if ( !found && strcmp(glroot->NAME.Data(),NAME.Data()) ){
817                  cfiles[c] = new TString(glroot->NAME.Data());
818                  c++;
819                };
820              } else {
821                if ( strcmp(glroot->NAME.Data(),NAME.Data()) ){
822                  cfiles[c] = new TString(glroot->NAME.Data());
823                  c++;
824                };
825              };
826              //
827              pampli = 2;
828              glp->Query_GL_CALOPULSE_CALIB(atime1,sc,pampli,dbc);
829              glroot->Query_GL_ROOT(glp->ID_ROOT_L0,dbc);
830              if ( c > 0 ){
831                Bool_t found = false;
832                for (Int_t gt=0; gt<c; gt++){
833                  if ( !strcmp(glroot->NAME.Data(),cfiles[gt]->Data()) ){
834                    found = true;
835                  };
836                };
837                if ( !found && strcmp(glroot->NAME.Data(),NAME.Data()) ){
838                  cfiles[c] = new TString(glroot->NAME.Data());
839                  c++;
840                };
841              } else {
842                if ( strcmp(glroot->NAME.Data(),NAME.Data()) ){
843                  cfiles[c] = new TString(glroot->NAME.Data());
844                  c++;
845                };
846              };
847              //
848              pampli = 0;
849              glp->Query_GL_CALOPULSE_CALIB(atime1,sc,pampli,dbc);
850              glroot->Query_GL_ROOT(glp->ID_ROOT_L0,dbc);
851              if ( c > 0 ){
852                Bool_t found = false;
853                for (Int_t gt=0; gt<c; gt++){
854                  if ( !strcmp(glroot->NAME.Data(),cfiles[gt]->Data()) ){
855                    found = true;
856                  };
857                };
858                if ( !found && strcmp(glroot->NAME.Data(),NAME.Data()) ){
859                  cfiles[c] = new TString(glroot->NAME.Data());
860                  c++;
861                };
862              } else {
863                if ( strcmp(glroot->NAME.Data(),NAME.Data()) ){
864                  cfiles[c] = new TString(glroot->NAME.Data());
865                  c++;
866                };
867              };
868              //
869              pampli = 2;
870              glp->Query_GL_CALOPULSE_CALIB(atime2,sc,pampli,dbc);
871              glroot->Query_GL_ROOT(glp->ID_ROOT_L0,dbc);
872              if ( c > 0 ){
873                Bool_t found = false;
874                for (Int_t gt=0; gt<c; gt++){
875                  if ( !strcmp(glroot->NAME.Data(),cfiles[gt]->Data()) ){
876                    found = true;
877                  };
878                };
879                if ( !found && strcmp(glroot->NAME.Data(),NAME.Data()) ){
880                  cfiles[c] = new TString(glroot->NAME.Data());
881                  c++;
882                };
883              } else {
884                if ( strcmp(glroot->NAME.Data(),NAME.Data()) ){
885                  cfiles[c] = new TString(glroot->NAME.Data());
886                  c++;
887                };
888              };
889              //
890              pampli = 0;
891              glp->Query_GL_CALOPULSE_CALIB(atime2,sc,pampli,dbc);
892              glroot->Query_GL_ROOT(glp->ID_ROOT_L0,dbc);
893              if ( c > 0 ){
894                Bool_t found = false;
895                for (Int_t gt=0; gt<c; gt++){
896                  if ( !strcmp(glroot->NAME.Data(),cfiles[gt]->Data()) ){
897                    found = true;
898                  };
899                };
900                if ( !found && strcmp(glroot->NAME.Data(),NAME.Data()) ){
901                  cfiles[c] = new TString(glroot->NAME.Data());
902                  c++;
903                };
904              } else {
905                if ( strcmp(glroot->NAME.Data(),NAME.Data()) ){
906                  cfiles[c] = new TString(glroot->NAME.Data());
907                  c++;
908                };
909              };
910              //
911            };
912          };
913          printf(" S4 requires:");
914          for (Int_t f=0;f<s; f++){
915            printf(" %s",s4files[f]->Data());
916            delete s4files[f];
917          };      
918          printf("\n");
919          printf(" Tracker requires:");
920          for (Int_t f=0;f<t; f++){
921            printf(" %s",tfiles[f]->Data());
922            delete tfiles[f];
923          };      
924          printf("\n");
925          printf(" Calorimeter requires:");
926          for (Int_t f=0;f<c; f++){
927            printf(" %s",cfiles[f]->Data());
928            delete cfiles[f];
929          };      
930          printf("\n\n#################################################\n");
931          //
932        };
933        delete pResult;  
934        if ( pResult2 ) delete pResult2;  
935      };  
936      //
937    // Close the DB connection    // Close the DB connection
938    //    //
939    if ( dbc ) dbc->Close();    if ( dbc ) dbc->Close();

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.23