end-of-line normalization
[u/mrichter/AliRoot.git] / PHOS / macros / AlignmentDB / MakePHOSAlignmentModule2.C
index 1436e93..6b38686 100644 (file)
-void MakePHOSAlignmentModule2()\r
-{\r
-  // Create misalignment object for PHOS module 2 \r
-  // from the survey measurements on P2 in May 2008.\r
-  // To store alignment in OCDB, define the evnironment variables:\r
-  // TOCDB=kTRUE\r
-  // STORAGE="local://$ALICE_ROOT/OCDB"\r
-  // Author: Timur Pocheptsov, 19.06.2008\r
-\r
-  const char * macroName = "MakePHOS2Alignment";\r
-  \r
-  const AliPHOSGeometry *phosGeom = AliPHOSGeometry::GetInstance("IHEP", "IHEP");\r
-  if (!phosGeom) {\r
-    Error(macroName, "Cannot obtain AliPHOSGeometry singleton.\n");\r
-    return;\r
-  }\r
-\r
-  //Activate CDB storage and load geometry from CDB\r
-  //I need valid gGeoManager to create local transformations.\r
-  \r
-  //[Part of code, taken from ITS version of MakexxxFullMisalignment\r
-  AliCDBManager * cdb = AliCDBManager::Instance();\r
-  if (!cdb->IsDefaultStorageSet())\r
-    cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");\r
-  cdb->SetRun(0);\r
-\r
-  if (TString(gSystem->Getenv("TOCDB")) == TString("kTRUE")) {\r
-    const TString storageENV(gSystem->Getenv("STORAGE"));\r
-    if (!storageENV.BeginsWith("local://") && !storageENV.BeginsWith("alien://")) {\r
-      Error(macroName, "STORAGE variable set to %s is not valid.\n", storageENV.Data());\r
-      return;\r
-    }\r
-    \r
-    AliCDBStorage * storage = cdb->GetStorage(storageENV.Data());\r
-    if (!storage) {\r
-      Error(macroName, "Unable to open storage %s.\n", storageENV.Data());\r
-      return;\r
-    }\r
-    \r
-    AliCDBPath path("GRP","Geometry","Data");\r
-    AliCDBEntry * entry = storage->Get(path.GetPath(), cdb->GetRun());\r
-    if (!entry) {\r
-      Error(macroName,"Could not get the specified CDB entry!");\r
-      return;  \r
-    }\r
-    \r
-    entry->SetOwner(0);\r
-    AliGeomManager::SetGeometry((TGeoManager*) entry->GetObject());\r
-  }else{\r
-    AliGeomManager::LoadGeometry("geometry.root"); //load geom from default CDB storage\r
-  }    \r
-  //end of code taken from ITS version of MakexxxFullMisalignment]\r
-\r
-  AliPHOSEMCAGeometry * emca = phosGeom->GetEMCAGeometry();\r
-  TClonesArray alobj("AliAlignObjParams", 16);// + phosGeom->GetNModules() * emca->GetNStripX() * emca->GetNStripZ());\r
-   \r
-  const Double_t dpsi = 0., dtheta = 0., dphi = 0.;\r
-  const Double_t displacement = 10.;\r
-  Int_t iIndex = 0; //let all modules have index=0 in a layer with no LUT\r
-  const AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;\r
-  UShort_t volid = AliGeomManager::LayerToVolUID(iLayer, iIndex);\r
-  Int_t i = 0;\r
-\r
-  // Alignment for 5 PHOS modules\r
-\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module1",\r
-         volid, 0., 0., 0., 0., 0., 0., kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module2",\r
-         volid, 0., 0., 0., 0., 0., 0., kTRUE);\r
-\r
-  Double_t rotMatrix[9] = {0.999992695, -0.00295322, -0.0024267, \r
-                          0.002955489, 0.999995199, 0.00093165, \r
-                          0.002423942, -0.000938811, 0.99999662};\r
-  TGeoRotation rotation;\r
-  rotation.SetMatrix(rotMatrix);\r
-  Double_t dX=1.25474126, dY=-1.4088643, dZ=-12.856;\r
-  AliAlignObjParams * mod3 = \r
-    new(alobj[i++]) AliAlignObjParams("PHOS/Module3", volid, dX, dY, dZ, 0., 0., 0., kFALSE);\r
-  mod3->SetRotation(rotation);\r
-  \r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module4",\r
-         volid, 0.,  0., 0., 0., 0., 0., kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module5",\r
-         volid, 0., 0., 0., 0., 0., 0., kTRUE);\r
-\r
-  const Double_t dx = 0., dy = 0., dz = 0. ;\r
-  // Alignment of CPV modules\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module1/CPV",\r
-        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module2/CPV",\r
-        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module3/CPV",\r
-        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module4/CPV",\r
-        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Module5/CPV",\r
-        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);\r
\r
-  // Alignment for PHOS cradle\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Cradle0",\r
-         volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Cradle1",\r
-         volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE);\r
-\r
-  // Alignment for cradle wheels\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Wheel0",\r
-         volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Wheel1",\r
-         volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Wheel2",\r
-         volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE);\r
-  new(alobj[i++]) AliAlignObjParams("PHOS/Wheel3",\r
-         volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE);\r
-\r
-  // *************************    2nd step    ***************\r
-  if ( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ) {\r
-    // save on file\r
-    const char * fileName = "PHOSfullMisalignment.root";\r
-    TFile f(fileName,"RECREATE");\r
-    if (!f) {\r
-      Error(macroName, "cannot open file for output\n");\r
-      return;\r
-    }\r
-    \r
-    Info(macroName,"Saving alignment objects to the file %s", fileName);\r
-    f.cd();\r
-    f.WriteObject(&alobj,"PHOSAlignObjs","kSingleKey");\r
-    f.Close();\r
-  }else{\r
-    // save in CDB storage\r
-    TString storageENV = gSystem->Getenv("STORAGE");\r
-    if(!storageENV.BeginsWith("local://") && !storageENV.BeginsWith("alien://")) {\r
-      Error(macroName,"STORAGE variable set to %s is not valid. Exiting\n", storageENV.Data());\r
-      return;\r
-    }\r
-    \r
-    Info(macroName,"Saving alignment objects in CDB storage %s", storageENV.Data());\r
-    AliCDBManager * cdb = AliCDBManager::Instance();\r
-    AliCDBStorage * storage = cdb->GetStorage(storageENV.Data());\r
-    if (!storage) {\r
-      Error(macroName, "Unable to open storage %s\n", storageENV.Data());\r
-      return;\r
-    }\r
-    \r
-    AliCDBMetaData md;\r
-    md.SetResponsible("Timur Pocheptsov");\r
-    md.SetComment("Alignment objects for PHOS module 2; survey in May 2008");\r
-    md.SetAliRootVersion(gSystem->Getenv("ARVERSION"));\r
-    AliCDBId id("PHOS/Align/Data",0,AliCDBRunRange::Infinity());\r
-    storage->Put(&alobj, id, &md);\r
-  }\r
-\r
-  alobj.Delete();\r
-}\r
+void MakePHOSAlignmentModule2()
+{
+  // Create misalignment object for PHOS module 2 
+  // from the survey measurements on P2 in May 2008.
+  // To store alignment in OCDB, define the evnironment variables:
+  // TOCDB=kTRUE
+  // STORAGE="local://$ALICE_ROOT/OCDB"
+  // Author: Timur Pocheptsov, 19.06.2008
+
+  const char * macroName = "MakePHOS2Alignment";
+  
+  const AliPHOSGeometry *phosGeom = AliPHOSGeometry::GetInstance("IHEP", "IHEP");
+  if (!phosGeom) {
+    Error(macroName, "Cannot obtain AliPHOSGeometry singleton.\n");
+    return;
+  }
+
+  //Activate CDB storage and load geometry from CDB
+  //I need valid gGeoManager to create local transformations.
+  
+  //[Part of code, taken from ITS version of MakexxxFullMisalignment
+  AliCDBManager * cdb = AliCDBManager::Instance();
+  if (!cdb->IsDefaultStorageSet())
+    cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+  cdb->SetRun(0);
+
+  if (TString(gSystem->Getenv("TOCDB")) == TString("kTRUE")) {
+    const TString storageENV(gSystem->Getenv("STORAGE"));
+    if (!storageENV.BeginsWith("local://") && !storageENV.BeginsWith("alien://")) {
+      Error(macroName, "STORAGE variable set to %s is not valid.\n", storageENV.Data());
+      return;
+    }
+    
+    AliCDBStorage * storage = cdb->GetStorage(storageENV.Data());
+    if (!storage) {
+      Error(macroName, "Unable to open storage %s.\n", storageENV.Data());
+      return;
+    }
+    
+    AliCDBPath path("GRP","Geometry","Data");
+    AliCDBEntry * entry = storage->Get(path.GetPath(), cdb->GetRun());
+    if (!entry) {
+      Error(macroName,"Could not get the specified CDB entry!");
+      return;  
+    }
+    
+    entry->SetOwner(0);
+    AliGeomManager::SetGeometry((TGeoManager*) entry->GetObject());
+  }else{
+    AliGeomManager::LoadGeometry("geometry.root"); //load geom from default CDB storage
+  }    
+  //end of code taken from ITS version of MakexxxFullMisalignment]
+
+  AliPHOSEMCAGeometry * emca = phosGeom->GetEMCAGeometry();
+  TClonesArray alobj("AliAlignObjParams", 16);// + phosGeom->GetNModules() * emca->GetNStripX() * emca->GetNStripZ());
+   
+  const Double_t dpsi = 0., dtheta = 0., dphi = 0.;
+  const Double_t displacement = 10.;
+  Int_t iIndex = 0; //let all modules have index=0 in a layer with no LUT
+  const AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
+  UShort_t volid = AliGeomManager::LayerToVolUID(iLayer, iIndex);
+  Int_t i = 0;
+
+  // Alignment for 5 PHOS modules
+
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module1",
+         volid, 0., 0., 0., 0., 0., 0., kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module2",
+         volid, 0., 0., 0., 0., 0., 0., kTRUE);
+
+  Double_t rotMatrix[9] = {0.999992695, -0.00295322, -0.0024267, 
+                          0.002955489, 0.999995199, 0.00093165, 
+                          0.002423942, -0.000938811, 0.99999662};
+  TGeoRotation rotation;
+  rotation.SetMatrix(rotMatrix);
+  Double_t dX=1.25474126, dY=-1.4088643, dZ=-12.856;
+  AliAlignObjParams * mod3 = 
+    new(alobj[i++]) AliAlignObjParams("PHOS/Module3", volid, dX, dY, dZ, 0., 0., 0., kFALSE);
+  mod3->SetRotation(rotation);
+  
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module4",
+         volid, 0.,  0., 0., 0., 0., 0., kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module5",
+         volid, 0., 0., 0., 0., 0., 0., kTRUE);
+
+  const Double_t dx = 0., dy = 0., dz = 0. ;
+  // Alignment of CPV modules
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module1/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module2/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module3/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module4/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Module5/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  // Alignment for PHOS cradle
+  new(alobj[i++]) AliAlignObjParams("PHOS/Cradle0",
+         volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Cradle1",
+         volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE);
+
+  // Alignment for cradle wheels
+  new(alobj[i++]) AliAlignObjParams("PHOS/Wheel0",
+         volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Wheel1",
+         volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Wheel2",
+         volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjParams("PHOS/Wheel3",
+         volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE);
+
+  // *************************    2nd step    ***************
+  if ( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ) {
+    // save on file
+    const char * fileName = "PHOSfullMisalignment.root";
+    TFile f(fileName,"RECREATE");
+    if (!f) {
+      Error(macroName, "cannot open file for output\n");
+      return;
+    }
+    
+    Info(macroName,"Saving alignment objects to the file %s", fileName);
+    f.cd();
+    f.WriteObject(&alobj,"PHOSAlignObjs","kSingleKey");
+    f.Close();
+  }else{
+    // save in CDB storage
+    TString storageENV = gSystem->Getenv("STORAGE");
+    if(!storageENV.BeginsWith("local://") && !storageENV.BeginsWith("alien://")) {
+      Error(macroName,"STORAGE variable set to %s is not valid. Exiting\n", storageENV.Data());
+      return;
+    }
+    
+    Info(macroName,"Saving alignment objects in CDB storage %s", storageENV.Data());
+    AliCDBManager * cdb = AliCDBManager::Instance();
+    AliCDBStorage * storage = cdb->GetStorage(storageENV.Data());
+    if (!storage) {
+      Error(macroName, "Unable to open storage %s\n", storageENV.Data());
+      return;
+    }
+    
+    AliCDBMetaData md;
+    md.SetResponsible("Timur Pocheptsov");
+    md.SetComment("Alignment objects for PHOS module 2; survey in May 2008");
+    md.SetAliRootVersion(gSystem->Getenv("ARVERSION"));
+    AliCDBId id("PHOS/Align/Data",0,AliCDBRunRange::Infinity());
+    storage->Put(&alobj, id, &md);
+  }
+
+  alobj.Delete();
+}