ROOT logo
// $Id$
/**
 * @file changeRunValidity.C
 * @brief Change the run validity for OCDB entries. It increments the version of the input by 1,
 * in case there exists another object in the same folder with the same run validity. 
 * Please BE CAREFUL where you run it and where you copy the result. Check that the version of the
 * produced file is correct to enable its loading during the reconstruction.
 *
 * THIS IS A TEMPORARY SOLUTION UNTIL THE PENDOLINO STARTS RUNNING. WE SHOULD NOT RELY ON THIS MACRO.
 *
 * <pre>
 * Usage: aliroot -b -q -l changeRunValidity.C'("RunXXX_YYY_v?_s?.root",runmin,runmax)'
 * Default runmin = 0, runmax = 999999999
 *
 * Used for OCDB objects whose run validity is restrictic (run specific),
 * e.g. TPC/Calib/AltroConfig
 *      TPC/Calib/Temperature
 *      TPC/Calib/HighVoltage
 *      GRP/CTP/CTPtiming
 *
 *
 * @author Kalliopi.Kanaki@ift.uib.no
 * @ingroup alihlt_tutorial
 */
 
 void changeRunValidity(const char* file, int runmin=0, int runmax=999999999){

  TFile *f_in = TFile::Open(file);
  AliCDBEntry* entry = AliCDBEntry;

  AliCDBId id = entry->GetId();  
  printf("existing runmin: %d, runmax: %d, version: %d, subversion: %d\n", id.GetFirstRun(), id.GetLastRun(), id.GetVersion(), id.GetSubVersion() );  
  
  id.SetFirstRun(runmin);
  id.SetLastRun(runmax);  
  //id.SetRunRange(nnn,mmm); 
  //id.SetLastRun(AliCDBRunRange::Infinity()); 
 
  id.SetVersion(id.GetVersion()+1);
  entry->SetId(id);
  
  printf("change to runmin: %d, runmax: %d, version: %d, subversion: %d\n", id.GetFirstRun(), id.GetLastRun(), id.GetVersion(), id.GetSubVersion() );  
  
  
  TString out;
  out.Form("Run%i_%i_v%i_s%i.root",runmin, runmax, id.GetVersion(), id.GetSubVersion());
     
  TFile f_out(out, "RECREATE");
  entry->Write();
  f_out.Close(); 

}
 changeRunValidity.C:1
 changeRunValidity.C:2
 changeRunValidity.C:3
 changeRunValidity.C:4
 changeRunValidity.C:5
 changeRunValidity.C:6
 changeRunValidity.C:7
 changeRunValidity.C:8
 changeRunValidity.C:9
 changeRunValidity.C:10
 changeRunValidity.C:11
 changeRunValidity.C:12
 changeRunValidity.C:13
 changeRunValidity.C:14
 changeRunValidity.C:15
 changeRunValidity.C:16
 changeRunValidity.C:17
 changeRunValidity.C:18
 changeRunValidity.C:19
 changeRunValidity.C:20
 changeRunValidity.C:21
 changeRunValidity.C:22
 changeRunValidity.C:23
 changeRunValidity.C:24
 changeRunValidity.C:25
 changeRunValidity.C:26
 changeRunValidity.C:27
 changeRunValidity.C:28
 changeRunValidity.C:29
 changeRunValidity.C:30
 changeRunValidity.C:31
 changeRunValidity.C:32
 changeRunValidity.C:33
 changeRunValidity.C:34
 changeRunValidity.C:35
 changeRunValidity.C:36
 changeRunValidity.C:37
 changeRunValidity.C:38
 changeRunValidity.C:39
 changeRunValidity.C:40
 changeRunValidity.C:41
 changeRunValidity.C:42
 changeRunValidity.C:43
 changeRunValidity.C:44
 changeRunValidity.C:45
 changeRunValidity.C:46
 changeRunValidity.C:47
 changeRunValidity.C:48
 changeRunValidity.C:49
 changeRunValidity.C:50
 changeRunValidity.C:51
 changeRunValidity.C:52
 changeRunValidity.C:53