/[PAMELA software]/chewbacca/YodaProfiler/src/PamelaDBOperations.cpp
ViewVC logotype

Diff of /chewbacca/YodaProfiler/src/PamelaDBOperations.cpp

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

revision 1.31 by mocchiut, Wed Dec 30 10:46:35 2009 UTC revision 1.36 by mocchiut, Wed Apr 10 11:29:38 2013 UTC
# Line 226  void PamelaDBOperations::OpenL0File(TStr Line 226  void PamelaDBOperations::OpenL0File(TStr
226                qu.str("");                qu.str("");
227                //            qu << "SELECT BOOT_NUMBER from ROOT_TABLE where BOOT_NUMBER!=0 AND ABS(LAST_TIME_SYNC_INFO-"<< chlastts <<")<10000 AND ABS(REAL_TIME_INIT-"<< row2->GetField(10) <<")<7200 group by BOOT_NUMBER order by BOOT_NUMBER asc;";                //            qu << "SELECT BOOT_NUMBER from ROOT_TABLE where BOOT_NUMBER!=0 AND ABS(LAST_TIME_SYNC_INFO-"<< chlastts <<")<10000 AND ABS(REAL_TIME_INIT-"<< row2->GetField(10) <<")<7200 group by BOOT_NUMBER order by BOOT_NUMBER asc;";
228                //            qu << "SELECT BOOT_NUMBER from ROOT_TABLE where BOOT_NUMBER!=0 AND ABS(LAST_TIME_SYNC_INFO-"<< chlastts <<")<40000 AND ABS(REAL_TIME_INIT-"<< row2->GetField(10) <<")<40000 group by BOOT_NUMBER order by BOOT_NUMBER asc;"; // relax conditions... 090112 [8RED: error -29]                //            qu << "SELECT BOOT_NUMBER from ROOT_TABLE where BOOT_NUMBER!=0 AND ABS(LAST_TIME_SYNC_INFO-"<< chlastts <<")<40000 AND ABS(REAL_TIME_INIT-"<< row2->GetField(10) <<")<40000 group by BOOT_NUMBER order by BOOT_NUMBER asc;"; // relax conditions... 090112 [8RED: error -29]
229                qu << "SELECT BOOT_NUMBER from ROOT_TABLE where BOOT_NUMBER!=0 AND ABS(LAST_TIME_SYNC_INFO-"<< chlastts <<")<50000 AND ABS(REAL_TIME_INIT-"<< row2->GetField(10) <<")<50000 group by BOOT_NUMBER order by BOOT_NUMBER asc;"; // even more relaxed conditions... 091214 [9REDtest3: error -29]                qu << "SELECT BOOT_NUMBER from ROOT_TABLE where BOOT_NUMBER!=0 AND ABS(LAST_TIME_SYNC_INFO-"<< (float)chlastts <<")<50000 AND ABS(REAL_TIME_INIT-"<< atof(row2->GetField(10)) <<")<50000 group by BOOT_NUMBER order by BOOT_NUMBER asc;"; // even more relaxed conditions... 091214 [9REDtest3: error -29] // 10RED MYSQL operators BUG:
230                  /*
231    
232    mysql> select CAST(1322000646 AS UNSIGNED INTEGER)-1322017203.;
233    +--------------------------------------------------+
234    | CAST(1322000646 AS UNSIGNED INTEGER)-1322017203. |
235    +--------------------------------------------------+
236    |                                           -16557 |
237    +--------------------------------------------------+
238    1 row in set (0.06 sec)
239    
240    mysql> select CAST(1322000646 AS UNSIGNED INTEGER)-1322017203;
241    +-------------------------------------------------+
242    | CAST(1322000646 AS UNSIGNED INTEGER)-1322017203 |
243    +-------------------------------------------------+
244    |                            18446744073709535059 |
245    +-------------------------------------------------+
246    1 row in set (0.02 sec)
247    
248                  */
249                if ( debug ) printf(" chewbacca: query is %s \n",qu.str().c_str());                if ( debug ) printf(" chewbacca: query is %s \n",qu.str().c_str());
250                result3 = conn->Query(qu.str().c_str());                result3 = conn->Query(qu.str().c_str());
251                if ( result3 ){                if ( result3 ){
# Line 1730  Int_t PamelaDBOperations::insertPamelaGL Line 1749  Int_t PamelaDBOperations::insertPamelaGL
1749      TYPE = 0;      TYPE = 0;
1750      TSYNC = 0;      TSYNC = 0;
1751      //      //
1752      Double_t minimum = 0.;      //    Double_t minimum = 0.;
1753      Double_t maximum = 0.;      // Double_t maximum = 0.;
1754      Double_t minimum2 = 0.;      //Double_t minimum2 = 0.;
1755      Double_t maximum2 = 0.;      Double_t maximum2 = 0.;
1756      //      //
1757      //      //
# Line 1740  Int_t PamelaDBOperations::insertPamelaGL Line 1759  Int_t PamelaDBOperations::insertPamelaGL
1759      pamela::McmdRecord *mcrc = 0;      pamela::McmdRecord *mcrc = 0;
1760      TArrayC *mcmddata = 0;      TArrayC *mcmddata = 0;
1761      //      //
1762      minimum = numeric_limits<Double_t>::max();      //    minimum = numeric_limits<Double_t>::max();
1763      maximum = numeric_limits<Double_t>::min();      //    maximum = numeric_limits<Double_t>::min();
1764      minimum2 = numeric_limits<Double_t>::max();      //    minimum2 = numeric_limits<Double_t>::max();
1765      maximum2 = numeric_limits<Double_t>::min();      maximum2 = numeric_limits<Double_t>::min();
1766      //      //
1767      T = (TTree*)file->Get("Mcmd");      T = (TTree*)file->Get("Mcmd");
# Line 2162  Int_t PamelaDBOperations::assignBOOT_NUM Line 2181  Int_t PamelaDBOperations::assignBOOT_NUM
2181      UInt_t lowerts = tsync-(obt0/1000)-5;      UInt_t lowerts = tsync-(obt0/1000)-5;
2182      if ( chewbacca ){      if ( chewbacca ){
2183        oss.str("");        oss.str("");
2184        oss << "select BOOT_NUMBER from ROOT_TABLE where LAST_TIME_SYNC_INFO-(OBT_TIME_SYNC)<"        oss << "select BOOT_NUMBER from ROOT_TABLE where CAST((LAST_TIME_SYNC_INFO-(OBT_TIME_SYNC)) AS SIGNED INT)<" // 10RED MYSQL OPERATORS BUG
2185            << upperts            << upperts
2186            << " AND LAST_TIME_SYNC_INFO-(OBT_TIME_SYNC)>"            << " AND CAST((LAST_TIME_SYNC_INFO-(OBT_TIME_SYNC)) AS SIGNED INT)>" // 10RED MYSQL OPERATORS BUG
2187            << lowerts            << lowerts
2188            << " AND BOOT_NUMBER>1;";            << " AND BOOT_NUMBER>1;";
2189      } else {      } else {
2190        oss.str("");        oss.str("");
2191        oss << "select GL_RAW.BOOT_NUMBER from GL_TIMESYNC LEFT JOIN GL_RAW ON GL_RAW.ID = GL_TIMESYNC.ID_RAW where TIMESYNC-(OBT0/1000)<"        oss << "select GL_RAW.BOOT_NUMBER from GL_TIMESYNC LEFT JOIN GL_RAW ON GL_RAW.ID = GL_TIMESYNC.ID_RAW where CAST((TIMESYNC-(OBT0/1000)) AS SIGNED INT)<" // 10RED MYSQL OPERATORS BUG
2192            << upperts            << upperts
2193            << " AND TIMESYNC-(OBT0/1000)>"            << " AND CAST((TIMESYNC-(OBT0/1000)) AS SIGNED INT)>" // 10RED MYSQL OPERATORS BUG
2194            << lowerts            << lowerts
2195            << " AND GL_RAW.BOOT_NUMBER>0 GROUP BY GL_TIMESYNC.OBT0;";            << " AND GL_RAW.BOOT_NUMBER>0 GROUP BY GL_TIMESYNC.OBT0;";
2196      };      };
# Line 2270  Int_t PamelaDBOperations::insertPamelaRU Line 2289  Int_t PamelaDBOperations::insertPamelaRU
2289    //    //
2290    // no runtrailers in the file!    // no runtrailers in the file!
2291    //    //
2292    if ( !rtev ){    if ( IsDebug() ) printf(" Start rtev %i rhev %i nrtev %i nrhev %i \n",rtev,rhev,nrtev,nrhev);
2293      if ( !rhev ){    if ( !rtev || (chewbacca && !nrtev) ){
2294        if ( IsDebug() ) printf(" No runtrailers \n");
2295        if ( !rhev || (chewbacca && !nrhev) ){
2296        if ( IsDebug() ) printf(" No runheaders nor runtrailers!! \n");        if ( IsDebug() ) printf(" No runheaders nor runtrailers!! \n");
2297        if ( !(upperentry-chminentry) ){        if ( !(upperentry-chminentry) ){
2298          if ( IsDebug() ) printf(" No physics events nor runs in the file \n"); // di nuovo potrebbe esserci un runtrailer senza eventi (riempimento MM)          if ( IsDebug() ) printf(" No physics events nor runs in the file \n"); // di nuovo potrebbe esserci un runtrailer senza eventi (riempimento MM)
# Line 2308  Int_t PamelaDBOperations::insertPamelaRU Line 2329  Int_t PamelaDBOperations::insertPamelaRU
2329      //      //
2330    } else {    } else {
2331      //      //
2332        if ( IsDebug() ) printf(" We have runtrailers \n");
2333      Int_t conptt = -1;      Int_t conptt = -1;
2334      for (Int_t ptt=0; ptt<rtev; ptt++){      for (Int_t ptt=0; ptt<rtev; ptt++){
2335        //        //
# Line 3595  Bool_t PamelaDBOperations::IsRunConsiste Line 3617  Bool_t PamelaDBOperations::IsRunConsiste
3617    //      //  
3618    EventCounter *code=0;    EventCounter *code=0;
3619    //    //
3620    UInt_t nevent = 0;    //  UInt_t nevent = 0;
3621    UInt_t checkfirst = 0;    UInt_t checkfirst = 0;
3622    UInt_t checklast = 0;    UInt_t checklast = 0;
3623    UInt_t firstentry = 0;    UInt_t firstentry = 0;
# Line 3617  Bool_t PamelaDBOperations::IsRunConsiste Line 3639  Bool_t PamelaDBOperations::IsRunConsiste
3639    EventHeader *eh = 0;    EventHeader *eh = 0;
3640    PscuHeader *ph = 0;    PscuHeader *ph = 0;
3641    T->SetBranchAddress("Header", &eh);    T->SetBranchAddress("Header", &eh);
3642    nevent = T->GetEntries();    //  nevent = T->GetEntries();
3643    //    //
3644    //    //
3645    if ( firstev == lastev+1 || lastev == firstev ) { // no events inside the run!    if ( firstev == lastev+1 || lastev == firstev ) { // no events inside the run!
# Line 4138  void PamelaDBOperations::HandleSuspiciou Line 4160  void PamelaDBOperations::HandleSuspiciou
4160    EventCounter *code=0;    EventCounter *code=0;
4161    UInt_t firstev = 0;    UInt_t firstev = 0;
4162    UInt_t lastev = 0;    UInt_t lastev = 0;
4163    UInt_t nevent = 0;    //  UInt_t nevent = 0;
4164    UInt_t checkfirst = 0;    UInt_t checkfirst = 0;
4165    UInt_t checklast = 0;    UInt_t checklast = 0;
4166    UInt_t firstentry = 0;    UInt_t firstentry = 0;
# Line 4163  void PamelaDBOperations::HandleSuspiciou Line 4185  void PamelaDBOperations::HandleSuspiciou
4185    EventHeader *eh = 0;    EventHeader *eh = 0;
4186    PscuHeader *ph = 0;    PscuHeader *ph = 0;
4187    T->SetBranchAddress("Header", &eh);    T->SetBranchAddress("Header", &eh);
4188    nevent = T->GetEntries();    //  nevent = T->GetEntries();
4189    //    //
4190    codt = eht->GetCounter();    codt = eht->GetCounter();
4191    codh = ehh->GetCounter();    codh = ehh->GetCounter();
# Line 5446  Int_t PamelaDBOperations::insertTRK_CALI Line 5468  Int_t PamelaDBOperations::insertTRK_CALI
5468    
5469          if ( IsDebug() ) cout << endl << ">>>> TRY TO RECOVER TRACKER CALIBRATIONS <<<<"<<endl;          if ( IsDebug() ) cout << endl << ">>>> TRY TO RECOVER TRACKER CALIBRATIONS <<<<"<<endl;
5470    
5471          TSQLResult *result = 0;          TSQLResult *rresult = 0; // 10RED bug, result is re-used inside result looop...
5472            TSQLResult *result = 0; // 10RED bug, result is re-used inside result looop...
5473          TSQLRow    *row    = 0;          TSQLRow    *row    = 0;
5474          //          //
5475          stringstream oss;          stringstream oss;
# Line 5476  Int_t PamelaDBOperations::insertTRK_CALI Line 5499  Int_t PamelaDBOperations::insertTRK_CALI
5499          oss << " ORDER BY ID DESC LIMIT "<<ncalib<<"; ";                  oss << " ORDER BY ID DESC LIMIT "<<ncalib<<"; ";        
5500          if ( IsDebug() ) cout << oss.str().c_str() << endl;          if ( IsDebug() ) cout << oss.str().c_str() << endl;
5501    
5502          result = conn->Query(oss.str().c_str());          rresult = conn->Query(oss.str().c_str());
5503          if ( !result ) throw -4;;          if ( !result ) throw -4;;
5504          if ( IsDebug() ) cout <<"Rows: "<<result->GetRowCount()<<endl;          if ( IsDebug() ) cout <<"Rows: "<<result->GetRowCount()<<endl;
5505                    
# Line 5485  Int_t PamelaDBOperations::insertTRK_CALI Line 5508  Int_t PamelaDBOperations::insertTRK_CALI
5508          // -----------------------------------          // -----------------------------------
5509          UInt_t nn=0;          UInt_t nn=0;
5510          do {          do {
5511              row = result->Next();              row = rresult->Next();
5512              if(!row)break;              if(!row)break;
5513                            
5514              UInt_t id       = (UInt_t)atoll(row->GetField(0));              UInt_t id       = (UInt_t)atoll(row->GetField(0));
# Line 5524  Int_t PamelaDBOperations::insertTRK_CALI Line 5547  Int_t PamelaDBOperations::insertTRK_CALI
5547              TString path       = "";              TString path       = "";
5548              TString name       = "";              TString name       = "";
5549              TString raw        = "";              TString raw        = "";
5550              UInt_t obt0        = 0;              //      UInt_t obt0        = 0;
5551              UInt_t timesync    = 0;              //      UInt_t timesync    = 0;
5552              UInt_t boot_number = 0;              //      UInt_t boot_number = 0;
5553              bool   FOUND       = false;              bool   FOUND       = false;
5554    
5555              if ( IsDebug() ) cout << "------------------------------------------------------------" <<endl;              if ( IsDebug() ) cout << "------------------------------------------------------------" <<endl;
# Line 5599  Int_t PamelaDBOperations::insertTRK_CALI Line 5622  Int_t PamelaDBOperations::insertTRK_CALI
5622                      path       = (TString)row2->GetField(0);                      path       = (TString)row2->GetField(0);
5623                      name       = (TString)row2->GetField(1);                      name       = (TString)row2->GetField(1);
5624                      raw        = (TString)row2->GetField(5);                      raw        = (TString)row2->GetField(5);
5625                      obt0        = (UInt_t)atoll(row2->GetField(2));                      //              obt0        = (UInt_t)atoll(row2->GetField(2));
5626                      timesync    = (UInt_t)atoll(row2->GetField(3));                      //              timesync    = (UInt_t)atoll(row2->GetField(3));
5627                      boot_number = (UInt_t)atoll(row2->GetField(4));                      //              boot_number = (UInt_t)atoll(row2->GetField(4));
5628                                    
5629                      if ( IsDebug() ) cout << "- - - - - - - - - - -" <<endl;                      if ( IsDebug() ) cout << "- - - - - - - - - - -" <<endl;
5630  //                  cout << path <<endl;  //                  cout << path <<endl;
# Line 5665  Int_t PamelaDBOperations::insertTRK_CALI Line 5688  Int_t PamelaDBOperations::insertTRK_CALI
5688                      if(FOUND)break;                      if(FOUND)break;
5689    
5690                  }while(1);//endl loop over root table entries                  }while(1);//endl loop over root table entries
5691                    
5692                    delete result2; // 10RED potential memory leak
5693                  if(FOUND)break;                  if(FOUND)break;
5694    
5695              }//end loop over tables              }//end loop over tables
# Line 5819  Int_t PamelaDBOperations::insertTRK_CALI Line 5843  Int_t PamelaDBOperations::insertTRK_CALI
5843          }while(1);//end loop over calibrations          }while(1);//end loop over calibrations
5844                    
5845                    
5846          if( result )delete result;          if( rresult )delete rresult; // 10RED bug
5847          if( row    )delete row;          if( row    )delete row;
5848                    
5849                    
# Line 6120  Int_t PamelaDBOperations::CleanGL_RUN_FR Line 6144  Int_t PamelaDBOperations::CleanGL_RUN_FR
6144      memset(myid,0,500*sizeof(UInt_t));      memset(myid,0,500*sizeof(UInt_t));
6145      //      //
6146      oss.str("");      oss.str("");
6147      oss << "SELECT ID,RUNTRAILER_TIME,RUNTRAILER_PKT,BOOT_NUMBER FROM GL_RUN_FRAGMENTS WHERE INSERT_TIME <= '" << clean_time->AsSQLString() << "'order BY RUNHEADER_TIME asc;";      oss << "SELECT ID,RUNTRAILER_TIME,RUNTRAILER_PKT,BOOT_NUMBER FROM GL_RUN_FRAGMENTS WHERE INSERT_TIME <= '" << clean_time->AsSQLString() << "' order BY RUNHEADER_TIME asc;";
6148      if ( IsDebug() ) printf(" Select from GL_RUN_FRAGMENTS runs older than %s : query is \n %s \n",clean_time->AsSQLString(),oss.str().c_str());      if ( IsDebug() ) printf(" Select from GL_RUN_FRAGMENTS runs older than %s : query is \n %s \n",clean_time->AsSQLString(),oss.str().c_str());
6149      nresult = conn->Query(oss.str().c_str());      nresult = conn->Query(oss.str().c_str());
6150      //      //
# Line 6151  Int_t PamelaDBOperations::CleanGL_RUN_FR Line 6175  Int_t PamelaDBOperations::CleanGL_RUN_FR
6175            while ( anr ){            while ( anr ){
6176              //              //
6177              oss.str("");              oss.str("");
6178              oss << "SELECT ID,RUNTRAILER_TIME,RUNTRAILER_PKT,BOOT_NUMBER FROM GL_RUN_FRAGMENTS WHERE BOOT_NUMBER=" << mbo << " AND RUNHEADER_PKT=" << mrhp <<  "+1 AND ABS(RUNHEADER_TIME-"<< mrht <<")<=1 AND INSERT_TIME <= '" << clean_time->AsSQLString() << "' order BY RUNHEADER_TIME asc;";              oss << "SELECT ID,RUNTRAILER_TIME,RUNTRAILER_PKT,BOOT_NUMBER FROM GL_RUN_FRAGMENTS WHERE BOOT_NUMBER=" << mbo << " AND RUNHEADER_PKT=" << mrhp <<  "+1 AND ABS(RUNHEADER_TIME-"<< (float)mrht <<")<=1 AND INSERT_TIME <= '" << clean_time->AsSQLString() << "' order BY RUNHEADER_TIME asc;"; // 10RED MYSQL OPERATOR BUG
6179              if ( IsDebug() ) printf(" In the loop searching for fragmented runs : query is \n %s \n",oss.str().c_str());              if ( IsDebug() ) printf(" In the loop searching for fragmented runs : query is \n %s \n",oss.str().c_str());
6180              //              //
6181              nresult1 = conn->Query(oss.str().c_str());              nresult1 = conn->Query(oss.str().c_str());

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.36

  ViewVC Help
Powered by ViewVC 1.1.23