00001 #define OLD_GEANT_VMC
00002 void Ast2Root(const Char_t *vers="y2005x") {
00003 gROOT->LoadMacro("bfc.C");
00004 TString cmd("bfc(0,\"gstar,nodefault,");
00005 cmd += vers;
00006 cmd += "\")";
00007 gInterpreter->ProcessLine(cmd.Data());
00008 geant = (St_geant_Maker *) chain->Maker("geant");
00009 if (! geant) return;
00010 #ifndef OLD_GEANT_VMC
00011 geant->DetSetIndex();
00012 #endif
00013 TString rzFile(vers);
00014 rzFile += ".rz";
00015 TString cmd("grfile ");
00016 cmd += rzFile;
00017 geant->Do(cmd.Data());
00018 #ifdef OLD_GEANT_VMC
00019 Char_t *sets[2] = {"geom","Detectors"};
00020 for (Int_t i = 0; i < 2; i++) {
00021 TString setN(".const/");
00022 setN += sets[i];
00023 TDataSet *set = geant->Find(setN.Data());
00024 if (set) {
00025 TString file(sets[i]);
00026 file += ".";
00027 file += vers;
00028 file += ".root";
00029 TFile *f = new TFile(file.Data(),"RECREATE");
00030 set->Write();
00031 delete f;
00032 }
00033 }
00034 #endif
00035 cmd = "g2Root ";
00036 rzFile.ReplaceAll("grfile ","");
00037 cmd += rzFile;
00038 cmd += " "; cmd += vers; cmd += ".h";
00039 gSystem->Exec(cmd);
00040 }