| 101 | 
   if (INSERT_RAW) SetRawName(filerawname); | 
   if (INSERT_RAW) SetRawName(filerawname); | 
| 102 | 
   // | 
   // | 
| 103 | 
   INSERT_ROOT = !filerootname.IsNull(); | 
   INSERT_ROOT = !filerootname.IsNull(); | 
| 104 | 
  | 
   if ( INSERT_ROOT ) this->SetRootName(filerootname); | 
| 105 | 
   this->SetOrbitNo(dwinput); | 
   this->SetOrbitNo(dwinput); | 
| 106 | 
   // | 
   // | 
| 107 | 
   this->SetID_RAW(0); | 
   this->SetID_RAW(0); | 
| 190 | 
         throw -85; | 
         throw -85; | 
| 191 | 
       }; | 
       }; | 
| 192 | 
       filerootname = chpath + chfile;// + ".root"; | 
       filerootname = chpath + chfile;// + ".root"; | 
 | 
       if ( debug ) printf(" chewbacca: filename is %s \n",filerootname.Data()); | 
  | 
| 193 | 
     }; | 
     }; | 
| 194 | 
     this->SetRootName(filerootname); | 
     this->SetRootName(filerootname); | 
 | 
     file = TFile::Open(this->GetRootName().Data()); | 
  | 
 | 
   } else { | 
  | 
 | 
     this->SetRootName(""); | 
  | 
| 195 | 
   }; | 
   }; | 
| 196 | 
  | 
   if ( debug ) printf(" Filename is %s \n",filerootname.Data()); | 
| 197 | 
  | 
   file = TFile::Open(this->GetRootName().Data()); | 
| 198 | 
  | 
   //  } else { | 
| 199 | 
  | 
   //    this->SetRootName(""); | 
| 200 | 
  | 
   //    this->SetRootName(filerootname); | 
| 201 | 
  | 
   //  }; | 
| 202 | 
 } | 
 } | 
| 203 | 
  | 
  | 
| 204 | 
 // | 
 // | 
| 398 | 
     return; | 
     return; | 
| 399 | 
   }; | 
   }; | 
| 400 | 
   // | 
   // | 
| 401 | 
   TString name = this->GetRootFile(); | 
   if ( !chewbacca ){ | 
| 402 | 
   Int_t nlength = name.Length(); | 
     TString name = this->GetRootFile(); | 
| 403 | 
   if ( nlength < 5 ) return; | 
     Int_t nlength = name.Length(); | 
| 404 | 
   TString dwo = 0; | 
     if ( nlength < 5 ){ | 
| 405 | 
   for (Int_t i = 0; i<5; i++){ | 
       if ( IsDebug() ) printf(" Agh problems determining the orbit number! name = %s \n",name.Data()); | 
| 406 | 
     dwo.Append(name[i],1); | 
       return; | 
| 407 | 
   }; | 
     }; | 
| 408 | 
   if ( dwo.IsDigit() ){ | 
     TString dwo = 0; | 
| 409 | 
     dworbit = (UInt_t)dwo.Atoi(); | 
     for (Int_t i = 0; i<5; i++){ | 
 | 
   } else { | 
  | 
 | 
     dwo=""; | 
  | 
 | 
     for (Int_t i = 8; i<13; i++){ | 
  | 
| 410 | 
       dwo.Append(name[i],1); | 
       dwo.Append(name[i],1); | 
| 411 | 
     };      | 
     }; | 
| 412 | 
     if ( dwo.IsDigit() ) dworbit = (UInt_t)dwo.Atoi(); | 
     if ( dwo.IsDigit() ){ | 
| 413 | 
  | 
       dworbit = (UInt_t)dwo.Atoi(); | 
| 414 | 
  | 
     } else { | 
| 415 | 
  | 
       dwo=""; | 
| 416 | 
  | 
       for (Int_t i = 8; i<13; i++){ | 
| 417 | 
  | 
         dwo.Append(name[i],1); | 
| 418 | 
  | 
       };      | 
| 419 | 
  | 
       if ( dwo.IsDigit() ) dworbit = (UInt_t)dwo.Atoi(); | 
| 420 | 
  | 
     }; | 
| 421 | 
  | 
     if ( IsDebug() ) printf(" Downlink orbit is %i (dwo = %s) \n",dworbit,dwo.Data()); | 
| 422 | 
   }; | 
   }; | 
 | 
   if ( IsDebug() ) printf(" Downlink orbit is %i (dwo = %s) \n",dworbit,dwo.Data()); | 
  | 
| 423 | 
   return; | 
   return; | 
| 424 | 
 }; | 
 }; | 
| 425 | 
  | 
  | 
| 668 | 
     UInt_t tjump = 50000; | 
     UInt_t tjump = 50000; | 
| 669 | 
     //UInt_t tjump = 100; | 
     //UInt_t tjump = 100; | 
| 670 | 
     while ( tjump > 0 ){ | 
     while ( tjump > 0 ){ | 
| 671 | 
       pktlast = numeric_limits<UInt_t>::max(); | 
       //      pktlast = numeric_limits<UInt_t>::max(); | 
| 672 | 
       while ( pktlast > chpktmax && (Int_t)(nevent-1-it) >= 0 ){ | 
       pktlast = chpktmax + 1; | 
| 673 | 
  | 
       while ( PKT(pktlast) > PKT(chpktmax) && (Int_t)(nevent-1-it) >= 0 ){ | 
| 674 | 
         if ( (Int_t)(nevent-1-it) >= 0 ){ | 
         if ( (Int_t)(nevent-1-it) >= 0 ){ | 
| 675 | 
           T->GetEntry(nevent-1-it); | 
           T->GetEntry(nevent-1-it); | 
| 676 | 
           ph = eh->GetPscuHeader(); | 
           ph = eh->GetPscuHeader(); | 
| 678 | 
         } else { | 
         } else { | 
| 679 | 
           pktlast = chpktmax + 1; | 
           pktlast = chpktmax + 1; | 
| 680 | 
         }; | 
         }; | 
| 681 | 
         if ( (!(it%1000) || abs((int)pktlast - (int)chpktmax)<1000 ) && debug ) printf(" look for up %i %i %i nevent %u (nevent-1-it) %i \n",it,pktlast,chpktmax,nevent,(Int_t)(nevent-1-it)); | 
         if ( (!(it%1000) || abs((int)(PKT(pktlast) - PKT(chpktmax)))<1000 ) && debug ) printf(" look for up %i %i %i nevent %u (nevent-1-it) %i \n",it,pktlast,chpktmax,nevent,(Int_t)(nevent-1-it)); | 
| 682 | 
         it += tjump; | 
         it += tjump; | 
| 683 | 
       }; | 
       }; | 
| 684 | 
       if ( tjump > 1 ) it -= 2*tjump; | 
       if ( tjump > 1 ) it -= 2*tjump; | 
| 702 | 
     tjump = 50000; | 
     tjump = 50000; | 
| 703 | 
     //tjump = 100; | 
     //tjump = 100; | 
| 704 | 
     while ( tjump > 0 ){ | 
     while ( tjump > 0 ){ | 
| 705 | 
       pktlast = 0; | 
       //      pktlast = 0; | 
| 706 | 
       while ( pktlast < chpktmin && it < (Int_t)nevent ){ | 
       pktlast = chpktmin - 1; | 
| 707 | 
  | 
       if ( debug ) printf("LLlook for down %i %i %llu %llu \n",it,pktlast,PKT(pktlast),PKT(chpktmin)); | 
| 708 | 
  | 
       while ( PKT(pktlast) < PKT(chpktmin) && it < (Int_t)nevent ){ | 
| 709 | 
         if ( it < (Int_t)nevent ){  | 
         if ( it < (Int_t)nevent ){  | 
| 710 | 
           T->GetEntry(it); | 
           T->GetEntry(it); | 
| 711 | 
           ph = eh->GetPscuHeader(); | 
           ph = eh->GetPscuHeader(); | 
| 1360 | 
   // | 
   // | 
| 1361 | 
   //  if ( IsDebug() ) printf(" obt conversion: obt is %u obtfirst is %u  (numeric_limits<UInt_t>::max()/2) is %u  \n",obt,pobtfirst,(UInt_t)(numeric_limits<UInt_t>::max()/2)); | 
   //  if ( IsDebug() ) printf(" obt conversion: obt is %u obtfirst is %u  (numeric_limits<UInt_t>::max()/2) is %u  \n",obt,pobtfirst,(UInt_t)(numeric_limits<UInt_t>::max()/2)); | 
| 1362 | 
   // | 
   // | 
| 1363 | 
   if ( obt < (pobtfirst/2) && pobtfirst > (numeric_limits<UInt_t>::max()/2) ){ | 
   if ( obt < ((Long64_t)pobtfirst/2) && pobtfirst > (numeric_limits<UInt_t>::max()/2) ){ | 
| 1364 | 
     //    if ( IsDebug() ) printf(" rise up obt %lld \n",(Long64_t)obt+(Long64_t)numeric_limits<UInt_t>::max()); | 
     //    if ( IsDebug() ) printf(" rise up obt %lld \n",(Long64_t)obt+(Long64_t)numeric_limits<UInt_t>::max()); | 
| 1365 | 
     return((Long64_t)obt+(Long64_t)numeric_limits<UInt_t>::max()); | 
     return((Long64_t)obt+(Long64_t)numeric_limits<UInt_t>::max()); | 
| 1366 | 
   }; | 
   }; | 
| 1585 | 
     result = conn->Query(oss.str().c_str()); | 
     result = conn->Query(oss.str().c_str()); | 
| 1586 | 
     if ( !result ) throw -10; | 
     if ( !result ) throw -10; | 
| 1587 | 
     row = result->Next(); | 
     row = result->Next(); | 
| 1588 | 
  | 
     if ( !row ) throw -92; | 
| 1589 | 
     idresof = (UInt_t)atoll(row->GetField(0)); | 
     idresof = (UInt_t)atoll(row->GetField(0)); | 
| 1590 | 
     existsts = true; | 
     existsts = true; | 
| 1591 | 
     goto eout; | 
     goto eout; | 
| 2326 | 
               // | 
               // | 
| 2327 | 
               this->HandleRunFragments(true,true,chminentry,(evbefh));  | 
               this->HandleRunFragments(true,true,chminentry,(evbefh));  | 
| 2328 | 
               // | 
               // | 
| 2329 | 
  | 
               // what about pth=ptht-1 | 
| 2330 | 
             }; | 
             }; | 
| 2331 | 
           }; | 
           }; | 
| 2332 | 
           // | 
           // | 
| 2389 | 
         //      if ( ptt+1 == rtev){   | 
         //      if ( ptt+1 == rtev){   | 
| 2390 | 
         if ( conptt+1 == nrtev ){   | 
         if ( conptt+1 == nrtev ){   | 
| 2391 | 
           //    if ( conptt+1 == (nrtev+nrtbef )){   | 
           //    if ( conptt+1 == (nrtev+nrtbef )){   | 
| 2392 | 
  | 
           if ( IsDebug() ) printf(" >>>>>>>>>>> %i %u %i %u \n",ptht,rhev,nrtev,conptt);  | 
| 2393 | 
           ptht++; | 
           ptht++; | 
| 2394 | 
           if ( ptht < rhev ){ | 
           if ( ptht < rhev ){  | 
| 2395 | 
             rh->GetEntry(ptht); | 
             rh->GetEntry(ptht); | 
| 2396 | 
  | 
             //pth++; | 
| 2397 | 
  | 
             //if ( pth < rhev ){ | 
| 2398 | 
  | 
             //rh->GetEntry(pth); | 
| 2399 | 
             phh = ehh->GetPscuHeader(); | 
             phh = ehh->GetPscuHeader(); | 
| 2400 | 
             pkth = phh->GetCounter(); | 
             pkth = phh->GetCounter(); | 
| 2401 | 
             obth = phh->GetOrbitalTime(); | 
             obth = phh->GetOrbitalTime(); | 
| 2419 | 
             if ( (UInt_t)evbeft < upperentry-1 && upperentry>0 ){ | 
             if ( (UInt_t)evbeft < upperentry-1 && upperentry>0 ){ | 
| 2420 | 
               if ( IsDebug() ) printf(" Piece of run at the end of the file with NO RUNHEADER! evbeft %u upperentry-1 %u \n",(UInt_t)evbeft,upperentry-1); | 
               if ( IsDebug() ) printf(" Piece of run at the end of the file with NO RUNHEADER! evbeft %u upperentry-1 %u \n",(UInt_t)evbeft,upperentry-1); | 
| 2421 | 
               // | 
               // | 
| 2422 | 
               if ( (ptt-1) < 0 ) throw -15; // should never arrive here! | 
               //              if ( (ptt-1) < 0 ) throw -15; // should never arrive here! | 
| 2423 | 
               rt->GetEntry(ptt-1); | 
               if ( (rtev-1) < 0 || ptt < 0 ) throw -15; // should never arrive here! | 
| 2424 | 
  | 
               //              rt->GetEntry(ptt-1); | 
| 2425 | 
  | 
               rt->GetEntry(rtev-1); | 
| 2426 | 
               cod = eht->GetCounter(); | 
               cod = eht->GetCounter(); | 
| 2427 | 
               tcod = (UInt_t)cod->Get(pctp->Physics); | 
               tcod = (UInt_t)cod->Get(pctp->Physics)+1; | 
| 2428 | 
               evbefh = TMath::Max(chminentry,tcod); | 
               evbefh = TMath::Max(chminentry,tcod); | 
| 2429 | 
               //            evbefh = cod->Get(pctp->Physics); | 
               //            evbefh = cod->Get(pctp->Physics); | 
| 2430 | 
               rt->GetEntry(ptt); | 
               rt->GetEntry(ptt); | 
| 3258 | 
       // | 
       // | 
| 3259 | 
     } else { | 
     } else { | 
| 3260 | 
       // | 
       // | 
| 3261 | 
       if ( IsDebug() ) printf(" There are no-phyics packets inside the run!\n"); | 
       if ( IsDebug() ) printf(" There are no-physics packets inside the run!\n"); | 
| 3262 | 
       // | 
       // | 
| 3263 | 
       // HERE WE MUST HANDLE THAT RUNS AND GO BACK | 
       // HERE WE MUST HANDLE THAT RUNS AND GO BACK | 
| 3264 | 
       // | 
       // | 
| 3268 | 
       UInt_t check = 0; | 
       UInt_t check = 0; | 
| 3269 | 
       UInt_t lastevtemp = lastev; | 
       UInt_t lastevtemp = lastev; | 
| 3270 | 
       UInt_t firstevno = firstev; | 
       UInt_t firstevno = firstev; | 
| 3271 | 
  | 
       UInt_t rhchko=0; | 
| 3272 | 
  | 
       UInt_t rhchk=0; | 
| 3273 | 
       // | 
       // | 
| 3274 | 
       for (UInt_t i=firstev; i<=lastev; i++){ | 
       for (UInt_t i=firstev; i<=lastev; i++){ | 
| 3275 | 
         // | 
         // | 
| 3278 | 
         // | 
         // | 
| 3279 | 
         check = 0; | 
         check = 0; | 
| 3280 | 
         // | 
         // | 
| 3281 | 
  | 
  | 
| 3282 | 
  | 
         // if we have a runheader set lastev then exit | 
| 3283 | 
  | 
         // | 
| 3284 | 
         for(Iter = packetsNames.begin(); Iter != packetsNames.end(); Iter++){ | 
         for(Iter = packetsNames.begin(); Iter != packetsNames.end(); Iter++){ | 
| 3285 | 
           if ( strcmp(*Iter,"Physics") ) check += code->Get(GetPacketType(*Iter)); | 
           if ( strcmp(*Iter,"Physics") ) check += code->Get(GetPacketType(*Iter)); | 
| 3286 | 
         }; | 
         }; | 
| 3287 | 
  | 
         // check here if we have a runheader | 
| 3288 | 
  | 
         rhchko = rhchk;    | 
| 3289 | 
  | 
         rhchk = code->Get(GetPacketType("RunHeader"));     | 
| 3290 | 
         // | 
         // | 
| 3291 | 
         if ( checkfirst < check || i == lastev ){ | 
         if ( checkfirst < check || i == lastev ){ | 
| 3292 | 
           // | 
           // | 
| 3703 | 
           // | 
           // | 
| 3704 | 
         }; | 
         }; | 
| 3705 | 
         // | 
         // | 
| 3706 | 
  | 
         if ( i > firstev ){ | 
| 3707 | 
  | 
           if ( rhchko != rhchk ){ | 
| 3708 | 
  | 
             if ( IsDebug() ) printf("oh oh... we have a runheader! stop here and handle later the remaining piece\n"); | 
| 3709 | 
  | 
             lastev = i; | 
| 3710 | 
  | 
             return(false); | 
| 3711 | 
  | 
           }; | 
| 3712 | 
  | 
         }; | 
| 3713 | 
  | 
         // | 
| 3714 | 
         if ( check == checklast && i != lastev ){ | 
         if ( check == checklast && i != lastev ){ | 
| 3715 | 
           lastevtemp = i - 1; | 
           lastevtemp = i - 1; | 
| 3716 | 
           i = lastev - 1;  | 
           i = lastev - 1;  | 
| 4927 | 
                 // | 
                 // | 
| 4928 | 
             }; | 
             }; | 
| 4929 | 
             // | 
             // | 
| 4930 | 
  | 
  | 
| 4931 | 
  | 
             if( !(MISSING_pkt1&MISSING_pkt2) ){ | 
| 4932 | 
  | 
               this->HandleTRK_CALIB(!MISSING_pkt1,!MISSING_pkt2);  | 
| 4933 | 
  | 
               ncalib++; | 
| 4934 | 
  | 
               if( MISSING_pkt1||MISSING_pkt2||!valid )try_to_recover=true; | 
| 4935 | 
  | 
             } | 
| 4936 | 
  | 
  | 
| 4937 | 
  | 
  | 
| 4938 | 
         } else { | 
         } else { | 
| 4939 | 
             // | 
           // | 
| 4940 | 
             if ( IsDebug() ) printf(" Trk calibration1 at time %u obt %u pkt %u OUTSIDE the considered time interval \n",fromtime,obt1,pkt1); | 
             if ( IsDebug() ) printf(" Trk calibration1 at time %u obt %u pkt %u OUTSIDE the considered time interval \n",fromtime,obt1,pkt1); | 
| 4941 | 
             //      if ( PEDANTIC ) throw -79; | 
             //      if ( PEDANTIC ) throw -79; | 
| 4942 | 
             // | 
             // | 
| 4943 | 
         }; | 
         }; | 
| 4944 | 
         //     | 
         //     | 
| 4945 | 
  | 
  | 
 | 
         if( !(MISSING_pkt1&MISSING_pkt2) ){ | 
  | 
 | 
             this->HandleTRK_CALIB(!MISSING_pkt1,!MISSING_pkt2);  | 
  | 
 | 
             ncalib++; | 
  | 
 | 
             if( MISSING_pkt1||MISSING_pkt2||!valid )try_to_recover=true; | 
  | 
 | 
         } | 
  | 
 | 
  | 
  | 
| 4946 | 
     }; //end loop on pkt1 | 
     }; //end loop on pkt1 | 
| 4947 | 
  | 
  | 
| 4948 | 
  | 
  | 
| 5167 | 
                     // ------------------------------------------------------ | 
                     // ------------------------------------------------------ | 
| 5168 | 
                     // ... retrieve the calibration packets. | 
                     // ... retrieve the calibration packets. | 
| 5169 | 
                     // ------------------------------------------------------ | 
                     // ------------------------------------------------------ | 
| 5170 | 
                     TFile *file = new TFile((TString)gSystem->ExpandPathName(path)+"/"+name); // EM, path could be symbolic and we must expand it | 
                     if ( IsDebug() ) printf(" file is %s/%s \n",((TString)gSystem->ExpandPathName(path.Data())).Data(),name.Data()); | 
| 5171 | 
  | 
                     TFile *file = new TFile(((TString)gSystem->ExpandPathName(path.Data()))+"/"+name); // EM, path could be symbolic and we must expand it | 
| 5172 | 
                     if(!file)throw -100; | 
                     if(!file)throw -100; | 
| 5173 | 
                     if(file->IsZombie())throw -100; | 
                     if(file->IsZombie())throw -100; | 
| 5174 | 
                     // | 
                     // | 
| 6092 | 
     // 2) get the OBT of the last validated run | 
     // 2) get the OBT of the last validated run | 
| 6093 | 
     // -------------------------------------------------------------- | 
     // -------------------------------------------------------------- | 
| 6094 | 
     oss.str(""); | 
     oss.str(""); | 
| 6095 | 
     oss << " SELECT * FROM GL_RUN  WHERE VALIDATION=1 AND RUNHEADER_TIME<="<< t_start | 
     //    oss << " SELECT * FROM GL_RUN  WHERE VALIDATION=1 AND RUNHEADER_TIME<="<< t_start | 
| 6096 | 
  | 
     oss << " SELECT * FROM GL_RUN  WHERE VALIDATION>0 AND RUNHEADER_TIME<="<< t_start | 
| 6097 | 
         <<" ORDER BY RUNHEADER_TIME DESC LIMIT 1;"; | 
         <<" ORDER BY RUNHEADER_TIME DESC LIMIT 1;"; | 
| 6098 | 
     if ( IsDebug() ) printf(" Get stop validation-time: query is \n %s \n",oss.str().c_str()); | 
     if ( IsDebug() ) printf(" Get stop validation-time: query is \n %s \n",oss.str().c_str()); | 
| 6099 | 
     result = conn->Query(oss.str().c_str()); | 
     result = conn->Query(oss.str().c_str()); | 
| 6236 | 
         if( interval >= calibtime )CHECK = true;                        //more than calibtime s => there might be a calibration | 
         if( interval >= calibtime )CHECK = true;                        //more than calibtime s => there might be a calibration | 
| 6237 | 
                            | 
                            | 
| 6238 | 
         if( !CHECK && this_run->VALIDATION ){ | 
         if( !CHECK && this_run->VALIDATION ){ | 
| 6239 | 
           for (Int_t irun = 0; irun < nseq; irun++)assignVALIDATION(sequence[irun],true); | 
           //      for (Int_t irun = 0; irun < nseq; irun++)assignVALIDATION(sequence[irun],true); | 
| 6240 | 
  | 
           for (Int_t irun = 0; irun < nseq; irun++)assignVALIDATION(sequence[irun],this_run->VALIDATION); | 
| 6241 | 
           nseq=0; | 
           nseq=0; | 
| 6242 | 
         } | 
         } | 
| 6243 | 
                    | 
                    | 
| 6258 | 
     if( CHECK ){ | 
     if( CHECK ){ | 
| 6259 | 
       // check if calibration exists | 
       // check if calibration exists | 
| 6260 | 
       if ( IsDebug() )printf("DT %i ===> CHECK Missing calibration\n",interval);  | 
       if ( IsDebug() )printf("DT %i ===> CHECK Missing calibration\n",interval);  | 
| 6261 | 
       Bool_t MISSING = MissingTRK_CALIB(t1,t2); | 
       //      Bool_t MISSING = MissingTRK_CALIB(t1,t2); | 
| 6262 | 
       for (Int_t irun = 0; irun < nseq; irun++)assignVALIDATION(sequence[irun],!MISSING); | 
       UInt_t MISSING = MissingTRK_CALIB(t1,t2); | 
| 6263 | 
  | 
       UInt_t val = 0; | 
| 6264 | 
  | 
       if ( MISSING == 1 ) val = 0; | 
| 6265 | 
  | 
       if ( MISSING == 0 ) val = 1; | 
| 6266 | 
  | 
       if ( MISSING == 2 ) val = 2; | 
| 6267 | 
  | 
       for (Int_t irun = 0; irun < nseq; irun++)assignVALIDATION(sequence[irun],val); | 
| 6268 | 
       nseq=0; | 
       nseq=0; | 
| 6269 | 
     }; | 
     }; | 
| 6270 | 
     //-------------- | 
     //-------------- | 
| 6294 | 
  * @param t2 To absolute time | 
  * @param t2 To absolute time | 
| 6295 | 
  * @return true if there might be a missing calibration | 
  * @return true if there might be a missing calibration | 
| 6296 | 
  */ | 
  */ | 
| 6297 | 
 Bool_t PamelaDBOperations::MissingTRK_CALIB(UInt_t t1,UInt_t t2){ | 
 //Bool_t PamelaDBOperations::MissingTRK_CALIB(UInt_t t1,UInt_t t2){ | 
| 6298 | 
  | 
 UInt_t PamelaDBOperations::MissingTRK_CALIB(UInt_t t1,UInt_t t2){ | 
| 6299 | 
          | 
          | 
| 6300 | 
   GL_TRK_CALIB* trkcalib = new GL_TRK_CALIB(); | 
   GL_TRK_CALIB* trkcalib = new GL_TRK_CALIB(); | 
| 6301 | 
          | 
          | 
| 6302 | 
   // get the closest calibration before the run start (t2) | 
   // get the closest calibration before the run start (t2) | 
| 6303 | 
   if ( trkcalib->Query_GL_TRK_CALIB(t2, conn) )return(true);    //>>> missing | 
   //  if ( trkcalib->Query_GL_TRK_CALIB(t2, conn) )return(true);        //>>> missing | 
| 6304 | 
  | 
   if ( trkcalib->Query_GL_TRK_CALIB(t2, conn) )return(1);       //>>> missing | 
| 6305 | 
          | 
          | 
| 6306 | 
   if ( trkcalib->TO_TIME  < t2 ) return(true);                                  //>>> missing | 
   //  if ( trkcalib->TO_TIME  < t2 ) return(true);                                      //>>> missing | 
| 6307 | 
  | 
   if ( trkcalib->TO_TIME  < t2 ) return(1);                                     //>>> missing | 
| 6308 | 
          | 
          | 
| 6309 | 
   //============================================================== | 
   //============================================================== | 
| 6310 | 
   // Check is done first on the basis of time between calibration, | 
   // Check is done first on the basis of time between calibration, | 
| 6321 | 
     //============================================================== | 
     //============================================================== | 
| 6322 | 
     Bool_t DOWNLOAD = false; | 
     Bool_t DOWNLOAD = false; | 
| 6323 | 
     // check if the calib was skipped becouse of download .... DA FARE!!  | 
     // check if the calib was skipped becouse of download .... DA FARE!!  | 
| 6324 | 
     if(DOWNLOAD)return(false); | 
     //    if(DOWNLOAD)return(false); | 
| 6325 | 
  | 
     if(DOWNLOAD)return(0); | 
| 6326 | 
                  | 
                  | 
| 6327 | 
     return(true);                                       //>>> missing | 
     //    return(true);                                         //>>> missing | 
| 6328 | 
  | 
     return(1);                                  //>>> missing | 
| 6329 | 
                  | 
                  | 
| 6330 | 
   }; | 
   }; | 
| 6331 | 
          | 
          | 
| 6335 | 
   //============================================================== | 
   //============================================================== | 
| 6336 | 
   // the long time interval bewteen runs might be due to download | 
   // the long time interval bewteen runs might be due to download | 
| 6337 | 
   if ( IsDebug() )printf("Short time between calib and run start %u :-) ==> OK! \n",t2 - trkcalib->FROM_TIME); | 
   if ( IsDebug() )printf("Short time between calib and run start %u :-) ==> OK! \n",t2 - trkcalib->FROM_TIME); | 
| 6338 | 
   return(false); | 
   if ( trkcalib->VALIDATION ) return(0); | 
| 6339 | 
  | 
   if ( IsDebug() )printf("Calibration is not validated... :-/ ==> OK but with VALIDATION=2! \n"); | 
| 6340 | 
  | 
   return(2); | 
| 6341 | 
          | 
          | 
| 6342 | 
 }; | 
 }; | 
| 6343 | 
 /** | 
 /** | 
| 6346 | 
  * @param validation true/false | 
  * @param validation true/false | 
| 6347 | 
  */ | 
  */ | 
| 6348 | 
 Int_t PamelaDBOperations::assignVALIDATION(UInt_t idrun, Bool_t validation){ | 
 Int_t PamelaDBOperations::assignVALIDATION(UInt_t idrun, Bool_t validation){ | 
| 6349 | 
  | 
   return(this->assignVALIDATION(idrun,(UInt_t)validation)); | 
| 6350 | 
  | 
 } | 
| 6351 | 
  | 
  | 
| 6352 | 
  | 
 Int_t PamelaDBOperations::assignVALIDATION(UInt_t idrun, UInt_t validation){ | 
| 6353 | 
   TSQLResult *result = 0; | 
   TSQLResult *result = 0; | 
| 6354 | 
   stringstream oss; | 
   stringstream oss; | 
| 6355 | 
   oss.str(""); | 
   oss.str(""); | 
| 6546 | 
   stringstream myquery; | 
   stringstream myquery; | 
| 6547 | 
   //   | 
   //   | 
| 6548 | 
   myquery.str(""); | 
   myquery.str(""); | 
| 6549 | 
   myquery << " SELECT ID, ID_RAW FROM GL_ROOT where NAME='"<<remfile.Data() <<"';"; | 
   myquery << " SELECT ID,ID_RAW,ID_TIMESYNC FROM GL_ROOT where NAME='"<<remfile.Data() <<"';"; | 
| 6550 | 
   // | 
   // | 
| 6551 | 
   pResult = conn->Query(myquery.str().c_str()); | 
   pResult = conn->Query(myquery.str().c_str()); | 
| 6552 | 
   // | 
   // | 
| 6562 | 
   // | 
   // | 
| 6563 | 
   this->SetID_ROOT((UInt_t)atoll(Row->GetField(0))); | 
   this->SetID_ROOT((UInt_t)atoll(Row->GetField(0))); | 
| 6564 | 
   this->SetID_RAW((UInt_t)atoll(Row->GetField(1))); | 
   this->SetID_RAW((UInt_t)atoll(Row->GetField(1))); | 
| 6565 | 
  | 
   UInt_t idtsy=(UInt_t)atoll(Row->GetField(2)); | 
| 6566 | 
   // | 
   // | 
| 6567 | 
   this->ValidationOFF(); | 
   this->ValidationOFF(); | 
| 6568 | 
   // | 
   // | 
| 6570 | 
   // | 
   // | 
| 6571 | 
   this->RemoveRUNS(); | 
   this->RemoveRUNS(); | 
| 6572 | 
   // | 
   // | 
| 6573 | 
   this->RemoveFILES(); | 
   this->RemoveFILES(idtsy); | 
| 6574 | 
   // | 
   // | 
| 6575 | 
   this->SetID_ROOT(0); | 
   this->SetID_ROOT(0); | 
| 6576 | 
   this->SetID_RAW(0); | 
   this->SetID_RAW(0); | 
| 6790 | 
  * Rearrange calibration tables | 
  * Rearrange calibration tables | 
| 6791 | 
  * | 
  * | 
| 6792 | 
  **/ | 
  **/ | 
| 6793 | 
 void PamelaDBOperations::RemoveFILES(){ | 
 void PamelaDBOperations::RemoveFILES(UInt_t idtsy){ | 
| 6794 | 
   stringstream myquery; | 
   stringstream myquery; | 
| 6795 | 
   // | 
   // | 
| 6796 | 
   myquery.str(""); | 
   myquery.str(""); | 
| 6800 | 
   // | 
   // | 
| 6801 | 
   conn->Query(myquery.str().c_str()); | 
   conn->Query(myquery.str().c_str()); | 
| 6802 | 
   // | 
   // | 
| 6803 | 
  | 
   myquery.str(""); | 
| 6804 | 
  | 
   myquery << " DELETE FROM GL_ROOT WHERE ID=" <<this->GetID_ROOT() <<";"; | 
| 6805 | 
  | 
   // | 
| 6806 | 
  | 
   if ( IsDebug() ) printf("  query is \n %s \n",myquery.str().c_str()); | 
| 6807 | 
  | 
   // | 
| 6808 | 
  | 
   conn->Query(myquery.str().c_str());  // | 
| 6809 | 
  | 
   // | 
| 6810 | 
  | 
   if ( !chewbacca ){ | 
| 6811 | 
  | 
     myquery.str(""); | 
| 6812 | 
  | 
     myquery << " DELETE FROM GL_TIMESYNC WHERE ID=" << idtsy <<";"; | 
| 6813 | 
  | 
     // | 
| 6814 | 
  | 
     if ( IsDebug() ) printf("  query is \n %s \n",myquery.str().c_str()); | 
| 6815 | 
  | 
     // | 
| 6816 | 
  | 
     conn->Query(myquery.str().c_str()); | 
| 6817 | 
  | 
   }; | 
| 6818 | 
  | 
   // | 
| 6819 | 
 }; | 
 }; | 
| 6820 | 
  | 
  | 
| 6821 | 
 /** | 
 /** |