adapt alignment ideal OCDB generation macro and OCDB file to new DCal geometry
authorgconesab <gustavo.conesa.balbastre@cern.ch>
Tue, 7 Oct 2014 07:29:23 +0000 (09:29 +0200)
committergconesab <gustavo.conesa.balbastre@cern.ch>
Tue, 7 Oct 2014 07:31:30 +0000 (09:31 +0200)
EMCAL/macros/AlignmentDB/AliEMCALSetAlignment.C
OCDB/EMCAL/Align/Data/Run0_999999999_v0_s0.root

index 496e29f..f6559a2 100755 (executable)
@@ -41,10 +41,10 @@ void AliEMCALSetAlignment()
 void Help()
 {
   char *string =
-    "\n\n\nSet EMCAL alignment parameters and write them into ALICE CDB.
-Press button \"Ideal geometry\" to create EMCAL geometry with ideal geometry.
-Press button \"Misaligned geometry\" to create EMCAL geometry with fully displaced and disorientated geometry.
-Press button \"Residual misaligned geometry\" to create EMCAL geometry with infinitesimal displacement and disorientation\n\n\n";
+  "\n\n\nSet EMCAL alignment parameters and write them into ALICE CDB.
+  Press button \"Ideal geometry\" to create EMCAL geometry with ideal geometry.
+  Press button \"Misaligned geometry\" to create EMCAL geometry with fully displaced and disorientated geometry.
+  Press button \"Residual misaligned geometry\" to create EMCAL geometry with infinitesimal displacement and disorientation\n\n\n";
   printf(string);
 }
 
@@ -53,49 +53,68 @@ void IdealAlignment()
 {
   // Create alignment objects for EMCAL with ideally aligned geometry,
   // i.e. with zero displacements and zero disorientations
-
+  
   // *************************    1st step    ***************
   // Create TClonesArray of alignment objects for EMCAL
-
-  TClonesArray *array = new TClonesArray("AliAlignObjParams",12);
+  
+  TClonesArray *array = new TClonesArray("AliAlignObjParams",20);
   TClonesArray &alobj = *array;
-   
+  
   AliAlignObjParams a;
-
+  
   Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
   // null shifts and rotations
-
+  
   UShort_t iIndex=0;
   AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
-  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity 
-
-  TString basePath = "EMCAL/FullSupermodule"; 
-  const Int_t nModules=10;
-
-  for (Int_t iModule = 0; iModule < nModules; iModule++) {
+  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity
+  
+  //
+  // EMCAL
+  //
+  TString basePath = "EMCAL/FullSupermodule";
+  for (Int_t iModule = 0; iModule < 10; iModule++)
+  {
     TString newPath = basePath;
     newPath += iModule+1;
     new(alobj[iModule]) AliAlignObjParams(newPath.Data(),
-                                           dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+                                          dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
   }
-
-  //half SMs
-  new(alobj[10]) AliAlignObjParams("EMCAL/HalfSupermodule1",
-                                  dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[11]) AliAlignObjParams("EMCAL/HalfSupermodule2",
+  
+  //1/3 SMs
+  new(alobj[10]) AliAlignObjParams("EMCAL/OneThrdSupermodule1",
                                    dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-
-
+  new(alobj[11]) AliAlignObjParams("EMCAL/OneThrdSupermodule2",
+                                   dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  //
+  // DCal
+  //
+  basePath = "EMCAL/DCALSupermodule";
+  for (Int_t iModule = 0; iModule < 6; iModule++)
+  {
+    TString newPath = basePath;
+    newPath += iModule+1;
+    new(alobj[12+iModule]) AliAlignObjParams(newPath.Data(),
+                                             dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  }
+  
+  //1/3 SMs
+  new(alobj[18]) AliAlignObjParams("EMCAL/OneThrdSupermodule3",
+                                   dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[19]) AliAlignObjParams("EMCAL/OneThrdSupermodule4",
+                                   dvoluid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  
+  
   // *************************    2nd step    ***************
   // Make CDB storage and put TClonesArray in
-  // 
+  //
   AliCDBManager *CDB = AliCDBManager::Instance();
   CDB->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
   
   AliCDBMetaData *md= new AliCDBMetaData();
   md->SetResponsible("EMCAL Expert");
   md->SetComment("Alignment objects for ideal geometry, i.e. applying them to TGeo has to leave geometry unchanged");
-  AliCDBId id("EMCAL/Align/Data",0,999999);
+  AliCDBId id("EMCAL/Align/Data",0,AliCDBRunRange::Infinity());
   CDB->Put(array,id, md);
 }
 
@@ -104,54 +123,85 @@ void ResidualAlignment()
 {
   // Create alignment objects for EMCAL with residual alignment,
   // i.e. with infinitesimal displacement and disorientation
-
+  
   // *************************    1st step    ***************
   // Create TClonesArray of alignment objects for EMCAL
-
-  TClonesArray *array = new TClonesArray("AliAlignObjParams",12);
+  
+  TClonesArray *array = new TClonesArray("AliAlignObjParams",20);
   TClonesArray &alobj = *array;
-   
+  
   AliAlignObjParams a;
-
+  
   UShort_t iIndex=0;
   AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
-  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity 
-
+  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity
+  
   Double_t sigmaTrans = 0.01; Double_t sigmaRot = 0.001;
   Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
-
+  
   TRandom *pRnd = new TRandom(4357);
-
+  
+  //
+  // EMCAL
+  //
   TString basePath = "EMCAL/FullSupermodule";
-  for(Int_t iSM = 0; iSM < 10; iSM++) {
+  for(Int_t iSM = 0; iSM < 10; iSM++)
+  {
     dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
     dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
     TString newPath = basePath;
     newPath += iSM + 1;
     new(alobj[iSM]) AliAlignObjParams(newPath.Data(),
-                                    dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+                                      dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
   }
   
+  //1/3 SMs
   dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
   dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
   new(alobj[10]) AliAlignObjParams("EMCAL/HalfSupermodule1",
-                                  dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
   
   dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
   dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
   new(alobj[11]) AliAlignObjParams("EMCAL/HalfSupermodule2",
-                                  dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
-
+                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+  
+  //
+  // DCal
+  //
+  basePath = "EMCAL/DCALSupermodule";
+  for(Int_t iSM = 0; iSM < 6; iSM++)
+  {
+    dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
+    dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
+    TString newPath = basePath;
+    newPath += iSM + 1;
+    new(alobj[12+iSM]) AliAlignObjParams(newPath.Data(),
+                                         dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+  }
+  
+  //1/3 SMs
+  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
+  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
+  new(alobj[18]) AliAlignObjParams("EMCAL/HalfSupermodule4",
+                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+  
+  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
+  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
+  new(alobj[19]) AliAlignObjParams("EMCAL/HalfSupermodule3",
+                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+  
+  
   // *************************    2nd step    ***************
   // Make CDB storage and put TClonesArray in
-  // 
+  //
   AliCDBManager *CDB = AliCDBManager::Instance();
   CDB->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
   
   AliCDBMetaData *md= new AliCDBMetaData();
   md->SetResponsible("EMCAL Expert");
   md->SetComment("Alignment objects for slightly misaligned geometry, i.e. applying them to TGeo has to distirbes geometry very little (resisual misalignment");
-  AliCDBId id("EMCAL/Align/Data",1000000,1999999);
+  AliCDBId id("EMCAL/Align/Data",0,AliCDBRunRange::Infinity());
   CDB->Put(array,id, md);
 }
 
@@ -159,54 +209,84 @@ void ResidualAlignment()
 void FullMisalignment()
 {
   // Create alignment objects for EMCAL with fully misaligned geometry
-
+  
   // *************************    1st step    ***************
   // Create TClonesArray of alignment objects for EMCAL
-
-  TClonesArray *array = new TClonesArray("AliAlignObjParams",12);
+  
+  TClonesArray *array = new TClonesArray("AliAlignObjParams",20);
   TClonesArray &alobj = *array;
-   
+  
   AliAlignObjParams a;
-
+  
   UShort_t iIndex=0;
   AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
-  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity 
-
-
+  UShort_t dvoluid = AliGeomManager::LayerToVolUID(iLayer,iIndex); //dummy volume identity
+  
+  
   Double_t sigmaTrans = 10.; Double_t sigmaRot = 0.1;
   Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
-
+  
   TRandom *pRnd = new TRandom(4357);
-
+  
+  //
+  // EMCAL
+  //
   TString basePath = "EMCAL/FullSupermodule";
-  for(Int_t iSM = 0; iSM < 10; iSM++) {
+  for(Int_t iSM = 0; iSM < 10; iSM++)
+  {
     dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
     dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
     TString newPath = basePath;
     newPath += iSM + 1;
     new(alobj[iSM]) AliAlignObjParams(newPath.Data(),
-                                    dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+                                      dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
   }
   
+  //1/3 SMs
   dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
   dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
   new(alobj[10]) AliAlignObjParams("EMCAL/HalfSupermodule1",
-                                  dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
   
   dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
   dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
   new(alobj[11]) AliAlignObjParams("EMCAL/HalfSupermodule2",
-                                  dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
-
+                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+  
+  //
+  // DCAL
+  //
+  for(Int_t iSM = 0; iSM < 6; iSM++)
+  {
+    dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
+    dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
+    TString newPath = basePath;
+    newPath += iSM + 1;
+    new(alobj[12+iSM]) AliAlignObjParams(newPath.Data(),
+                                         dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+  }
+  
+  //1/3 SMs
+  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
+  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
+  new(alobj[18]) AliAlignObjParams("EMCAL/HalfSupermodule1",
+                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+  
+  dx = pRnd->Gaus(0,sigmaTrans); dy = pRnd->Gaus(0,sigmaTrans); dz = pRnd->Gaus(0,sigmaTrans);
+  dpsi = pRnd->Gaus(0,sigmaRot); dtheta = pRnd->Gaus(0,sigmaRot); dphi = pRnd->Gaus(0,sigmaRot);
+  new(alobj[19]) AliAlignObjParams("EMCAL/HalfSupermodule2",
+                                   dvoluid, dx,dy,dz,dpsi,dtheta,dphi, kTRUE);
+  
+  
   // *************************    2nd step    ***************
   // Make CDB storage and put TClonesArray in
-  // 
+  //
   AliCDBManager *CDB = AliCDBManager::Instance();
   CDB->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
   
   AliCDBMetaData *md= new AliCDBMetaData();
   md->SetResponsible("EMCAL Expert");
   md->SetComment("Alignment objects for fully misaligned geometry, i.e. applying them to TGeo has to distirbes geometry very much");
-  AliCDBId id("EMCAL/Align/Data",2000000,2999999);
+  AliCDBId id("EMCAL/Align/Data",0,AliCDBRunRange::Infinity());
   CDB->Put(array,id, md);
 }
index 3fc7ab6..40d5998 100644 (file)
Binary files a/OCDB/EMCAL/Align/Data/Run0_999999999_v0_s0.root and b/OCDB/EMCAL/Align/Data/Run0_999999999_v0_s0.root differ