]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/MakeFMDFullMisAlignment.C
Bug fix
[u/mrichter/AliRoot.git] / FMD / MakeFMDFullMisAlignment.C
index 5901041da886ac848351daffd1b99592b838fe27..e1144c31230f6f18ee9fa0d1ab1d36eebe6817e5 100644 (file)
@@ -1,51 +1,29 @@
-void MakeFMDFullMisAlignment(){
+void MakeFMDFullMisAlignment()
+{
   // Create TClonesArray of full misalignment objects for FMD
-  //
   const char* macroname = "MakeFMDFullMisAlignment.C";
 
   // Activate CDB storage and load geometry from CDB
   AliCDBManager* cdb = AliCDBManager::Instance();
-  if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT");
+  if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
   cdb->SetRun(0);
-  
-  TString Storage;
-  
-  if( gSystem->Getenv("TOCDB") == TString("kTRUE") ){
-    Storage = gSystem->Getenv("STORAGE");
-    if(!Storage.BeginsWith("local://") && !Storage.BeginsWith("alien://")) {
-      Error(macroname,"STORAGE variable set to %s is not valid. Exiting\n",Storage.Data());
-      return;
-    }
-    AliCDBStorage* storage = cdb->GetStorage(Storage.Data());
-    if(!storage){
-      Error(macroname,"Unable to open storage %s\n",Storage.Data());
-      return;
-    }
-    AliCDBPath path("GRP","Geometry","Data");
-    AliCDBEntry *entry = storage->Get(path.GetPath(),cdb->GetRun());
-    if(!entry) Fatal(macroname,"Could not get the specified CDB entry!");
-    entry->SetOwner(0);
-    TGeoManager* geom = (TGeoManager*) entry->GetObject();
-    AliGeomManager::SetGeometry(geom);
-  }else{
-    AliGeomManager::LoadGeometry(); //load geom from default CDB storage
-  }    
+
+  Bool_t    toCdb   = TString(gSystem->Getenv("TOCDB")) == TString("kTRUE");
+  TString   storage = gSystem->Getenv("STORAGE");
+  TString   output  = "FMDfullMisalignment.root";
+  if(toCdb) output  = storage;
   
   gSystem->Load("libFMDutil.so");
-  if( gSystem->Getenv("TOCDB") != TString("kTRUE") ){
-    // save on file
-    AliFMDAlignFaker faker(AliFMDAlignFaker::kAll, "geometry.root","FMDfullMisalignment.root");
-  }else{
-    // save in CDB storage
-    AliFMDAlignFaker faker(AliFMDAlignFaker::kAll, "geometry.root", Storage.Data());
-  }
-
-  // fRunMax should be changed in the constructor
-
-  faker.SetSensorDisplacement(-0.005, -0.005, -0.005, 0.005, 0.005, 0.005);
-  faker.SetSensorRotation(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5);
-  faker.SetHalfDisplacement(-0.25, -0.25, -0.25, 0.25, 0.25, 0.25);
-  faker.SetHalfRotation(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5);
-  faker.Exec();
-
+  AliFMDAlignFaker::GetGeometry(toCdb, storage);
+  AliFMDAlignFaker* faker = new AliFMDAlignFaker(AliFMDAlignFaker::kAll, 
+                                                "geometry.root", 
+                                                output.Data());
+  
+  // Displacements and rotations
+  faker->SetSensorDisplacement(-0.005, -0.005, -0.005, 0.005, 0.005, 0.005);
+  faker->SetSensorRotation(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5);
+  faker->SetHalfDisplacement(-0.25, -0.25, -0.25, 0.25, 0.25, 0.25);
+  faker->SetHalfRotation(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5);
+  faker->Exec();
+  delete faker;
 }