Macro to generate the CDB entry with the ideal geometry (Raffaele)
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 5 Jul 2007 13:22:41 +0000 (13:22 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 5 Jul 2007 13:22:41 +0000 (13:22 +0000)
GRP/UpdateCDBIdealGeom.C [new file with mode: 0644]

diff --git a/GRP/UpdateCDBIdealGeom.C b/GRP/UpdateCDBIdealGeom.C
new file mode 100644 (file)
index 0000000..159cfe1
--- /dev/null
@@ -0,0 +1,43 @@
+void UpdateCDBIdealGeom(){
+  // produce the ideal geometry with the current AliRoot and store it in the
+  // CDB
+
+  AliCDBManager* man = AliCDBManager::Instance();
+  man->SetDefaultStorage("local://$ALICE_ROOT");
+  man->SetRun(0);
+  AliCDBId id("GRP/Geometry/Data",0,AliCDBRunRange::Infinity());
+  AliCDBMetaData *md= new AliCDBMetaData();
+
+  // Get root version
+  const char* rootv = gROOT->GetVersion();
+
+  // Get AliRoot version from file to set it in the metadata of the entry
+  TFile *fv= TFile::Open("$ALICE_ROOT/CVS/Repository?filetype=raw","READ");
+  Int_t size = fv->GetSize();
+  char *buf = new Char_t[size];
+  memset(buf, '\0', size);
+  fv->Seek(0);
+  char* alirootv;
+  if ( fv->ReadBuffer(buf, size) ) {
+    Printf("Error reading AliRoot version from file to buffer!");
+    alirootv = "";
+  }
+  if(buf=="AliRoot"){
+    alirootv="HEAD";
+  }else{
+    alirootv = buf;
+    md->SetAliRootVersion(alirootv);
+    md->SetComment(Form("Geometry produced with root version %s and AliRoot version %s",rootv,alirootv));
+  }
+  
+  gAlice->Init();
+  
+  if(!gGeoManager){
+    Printf("Unable to produce a valid geometry to be put in the CDB!");
+    return;
+  }
+  
+  Printf("Storing in CDB geometry produced with root version %s and AliRoot version %s",rootv,alirootv);
+  man->Put(gGeoManager,id,md);
+
+}