]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/MakeFMDFullMisAlignment.C
When Pt is bad defined (ex. no field), the multiple scattering effect is calculated...
[u/mrichter/AliRoot.git] / FMD / MakeFMDFullMisAlignment.C
index bc8c6bb31292aa24e87675ecbbb06bd0abbf47e5..e1144c31230f6f18ee9fa0d1ab1d36eebe6817e5 100644 (file)
@@ -1,25 +1,29 @@
-void MakeFMDFullMisAlignment(){
+void MakeFMDFullMisAlignment()
+{
   // Create TClonesArray of full misalignment objects for FMD
-  //
-  if(!gGeoManager) TGeoManager::Import("geometry.root");
-  // needed for the constructors with local coordinates not to fail
-  
-  gSystem->Load("libFMDutil.so");
-  if(!gSystem->Getenv("$TOCDB")){
-    // save on file
-    AliFMDAlignFaker faker(AliFMDAlignFaker::kAll, "geometry.root","FMDfullMisalignment.root");
-  }else{
-    // save in CDB storage
-    const char* Storage = gSystem->Getenv("$STORAGE");
-    AliFMDAlignFaker faker(AliFMDAlignFaker::kAll, "geometry.root", Storage);
-  }
-
-  // fRunMax should be changed in the constructor
+  const char* macroname = "MakeFMDFullMisAlignment.C";
 
-  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();
+  // Activate CDB storage and load geometry from CDB
+  AliCDBManager* cdb = AliCDBManager::Instance();
+  if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+  cdb->SetRun(0);
 
+  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");
+  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;
 }