]>
Commit | Line | Data |
---|---|---|
3592c27f | 1 | #include "ARVersion.h" |
a63b8f02 | 2 | #if !defined(__CINT__) || defined(__MAKECINT__) |
3 | #include "AliCDBManager.h" | |
4 | #include "AliCDBStorage.h" | |
5 | #include "AliCDBId.h" | |
6 | #include "AliCDBMetaData.h" | |
7 | #include "AliGeomManager.h" | |
8 | #include <TROOT.h> | |
9 | #include "AliRun.h" | |
10 | #include <TGeoManager.h> | |
11 | #include <TString.h> | |
12 | #endif | |
3592c27f | 13 | |
a24be56b | 14 | void UpdateCDBIdealGeom(const char* cdbUri, const char* cfgFile){ |
15 | // Produce the ideal geometry and store it in the specified CDB | |
16 | // The second argument allows to specify the config file to be used | |
17 | // in particular for giving the choice to generate either a full or | |
18 | // a partial geometry. | |
19 | // | |
9b8b014f | 20 | |
a24be56b | 21 | AliCDBManager* cdb = AliCDBManager::Instance(); |
22 | // we set the default storage to the repository because some dets require | |
23 | // already at the time of geometry creation to find calibration objects in the cdb | |
860aa382 | 24 | AliCDBStorage* storage = 0; |
162637e4 | 25 | if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); |
860aa382 | 26 | storage = cdb->GetStorage(cdbUri); |
27 | if(!storage) | |
28 | { | |
29 | Printf("unable to create valid storage from: %s", cdbUri); | |
30 | return; | |
31 | } | |
a24be56b | 32 | cdb->SetRun(0); |
9b8b014f | 33 | AliCDBId id("GRP/Geometry/Data",0,AliCDBRunRange::Infinity()); |
34 | AliCDBMetaData *md= new AliCDBMetaData(); | |
35 | ||
a24be56b | 36 | // Get root and AliRoot versions |
9b8b014f | 37 | const char* rootv = gROOT->GetVersion(); |
3592c27f | 38 | TString av(ALIROOT_SVN_BRANCH); |
39 | Int_t revnum = ALIROOT_SVN_REVISION; | |
40 | ||
a63b8f02 | 41 | Printf("root version: %s. AliRoot %s, revision number %d",rootv,av.Data(),revnum); |
9b8b014f | 42 | |
a24be56b | 43 | md->SetAliRootVersion(av.Data()); |
3592c27f | 44 | md->SetComment(Form("Geometry produced with root version %s and AliRoot %s, revision number %d",rootv,av.Data(),revnum)); |
9b8b014f | 45 | |
99a8afe3 | 46 | gROOT->LoadMacro(cfgFile); |
47 | gInterpreter->ProcessLine(gAlice->GetConfigFunction()); | |
48 | gAlice->GetMCApp()->Init(); | |
9b8b014f | 49 | |
50 | if(!gGeoManager){ | |
51 | Printf("Unable to produce a valid geometry to be put in the CDB!"); | |
52 | return; | |
53 | } | |
6f009629 | 54 | gGeoManager->DefaultColors(); // assign default colors according to Z of material |
55 | // (many colors turned into dark gray nuances some time ago, when the root palette was changed) | |
9b8b014f | 56 | |
a24be56b | 57 | Printf("Storing in CDB geometry produced with root version %s and AliRoot version %s",rootv,av.Data()); |
58 | storage->Put(gGeoManager,id,md); | |
59 | // This is to allow macros lauched after this one in the same session to find the | |
60 | // newly produced geometry. | |
61 | storage->QueryCDB(cdb->GetRun()); | |
9b8b014f | 62 | |
63 | } | |
a24be56b | 64 | |
65 |