Fix for FMD DA
[u/mrichter/AliRoot.git] / FMD / MakeFMDZeroMisAlignment.C
index db21d2d..e520e48 100644 (file)
@@ -2,25 +2,30 @@ void MakeFMDZeroMisAlignment()
 {
   // Create TClonesArray of zero-misalignment objects for FMD
   //
-  if(!gGeoManager) TGeoManager::Import("geometry.root");
-  
-  gSystem->Load("libFMDutil.so");
-  if(!gSystem->Getenv("$TOCDB")){
-    // save on file
-    AliFMDAlignFaker faker(AliFMDAlignFaker::kAll, "geometry.root","FMDAlignObjs.root");
-  }else{
-    // save in CDB storage
-    const char* Storage = gSystem->Getenv("$STORAGE");
-    AliFMDAlignFaker faker(AliFMDAlignFaker::kAll, "geometry.root", Storage);
-  }
+  const char* macroname = "MakeFMDZeroMisAlignment.C";
+
+  // Activate CDB storage and load geometry from CDB
+  AliCDBManager* cdb = AliCDBManager::Instance();
+  if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+  cdb->SetRun(0);
 
-  // fRunMax should be changed in the constructor
+  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");
+  AliFMDAlignFaker::GetGeometry(toCdb, storage);
+  AliFMDAlignFaker* faker = new AliFMDAlignFaker(AliFMDAlignFaker::kAll, 
+                                                "geometry.root", 
+                                                output.Data());
 
-  faker.SetSensorDisplacement(0., 0., 0., 0., 0., 0.);
-  faker.SetSensorRotation(0., 0., 0., 0., 0., 0.);
-  faker.SetHalfDisplacement(0., 0., 0., 0., 0., 0.);
-  faker.SetHalfRotation(0., 0., 0., 0., 0., 0.);
-  faker.Exec();
+  faker->SetSensorDisplacement(0., 0., 0., 0., 0., 0.);
+  faker->SetSensorRotation(0., 0., 0., 0., 0., 0.);
+  faker->SetHalfDisplacement(0., 0., 0., 0., 0., 0.);
+  faker->SetHalfRotation(0., 0., 0., 0., 0., 0.);
+  faker->Exec();
+  delete faker;
 
 
 }