DP:Misalignment of CPV added
authorkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Mar 2007 06:59:53 +0000 (06:59 +0000)
committerkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Mar 2007 06:59:53 +0000 (06:59 +0000)
PHOS/AliPHOSv0.cxx
PHOS/MakePHOSZeroMisAlignment.C

index 6eb5c1f..c302c69 100644 (file)
@@ -17,6 +17,9 @@
 /* History of cvs commits:
  *
  * $Log$
+ * Revision 1.85  2007/03/01 11:37:37  kharlov
+ * Strip units changed from 8x1 to 8x2 (T.Pocheptsov)
+ *
  * Revision 1.84  2006/12/20 16:56:43  kharlov
  * Optional geometry without CPV
  *
@@ -431,7 +434,6 @@ void AliPHOSv0::CreateGeometryforEMC()
       Float_t* splate = emcg->GetSupportPlateHalfSize();  
       y = -splate[1] ;
       Float_t* acel = emcg->GetAirCellHalfSize() ;
-      Int_t icel ;
 
       for(Int_t lev = 2, icel = 1; icel <= emcg->GetNCellsXInStrip()*emcg->GetNCellsZInStrip(); icel += 2, lev += 2){
          Float_t x = (2*(lev / 2) - 1 - emcg->GetNCellsXInStrip())* acel[0] ;
@@ -906,6 +908,19 @@ void AliPHOSv0::AddAlignableVolumes() const
     gGeoManager->SetAlignableEntry(symname.Data(),volpath.Data());
   }
 
+  //Aligning of CPV should be done for volume PCPV_1
+  symbModuleName="PHOS/Module";
+  for(Int_t iModule=1; iModule<=nModules; iModule++){
+    volpath = physModulePath;
+    volpath += iModule;
+    volpath += "/PCPV_1";
+    symname = symbModuleName;
+    symname += iModule;
+    symname += "/CPV";
+    gGeoManager->SetAlignableEntry(symname.Data(),volpath.Data());
+  }
+
   // Alignable cradle walls
   // Volume path /ALIC_1/PCRA_<i> => symbolic name /PHOS/Cradle<i>, <i>=0,1
 
index 4251132..9710275 100644 (file)
@@ -12,36 +12,50 @@ void MakePHOSZeroMisAlignment(){
   AliAlignObj::ELayerID iLayer = AliAlignObj::kInvalidLayer;
   UShort_t volid = AliAlignObj::LayerToVolUID(iLayer,iIndex);
  
+  Int_t i=0 ;
   // Alignment for 5 PHOS modules
-  new(alobj[0]) AliAlignObjAngles("PHOS/Module1",
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module1",
         volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[1]) AliAlignObjAngles("PHOS/Module2",
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module2",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[2]) AliAlignObjAngles("PHOS/Module3",
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module3",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[3]) AliAlignObjAngles("PHOS/Module4",
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module4",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[4]) AliAlignObjAngles("PHOS/Module5",
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module5",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
 
+  // Alignment of CPV modules
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module1/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module2/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module3/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module4/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Module5/CPV",
+        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
+
   // Alignment for PHOS cradle
-  new(alobj[5]) AliAlignObjAngles("PHOS/Cradle0",
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Cradle0",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[6]) AliAlignObjAngles("PHOS/Cradle1",
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Cradle1",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
 
   // Alignment for cradle wheels
-  new(alobj[7])  AliAlignObjAngles("PHOS/Wheel0",
+  new(alobj[i++])  AliAlignObjAngles("PHOS/Wheel0",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[8])  AliAlignObjAngles("PHOS/Wheel1",
+  new(alobj[i++])  AliAlignObjAngles("PHOS/Wheel1",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[9])  AliAlignObjAngles("PHOS/Wheel2",
+  new(alobj[i++])  AliAlignObjAngles("PHOS/Wheel2",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
-  new(alobj[10]) AliAlignObjAngles("PHOS/Wheel3",
+  new(alobj[i++]) AliAlignObjAngles("PHOS/Wheel3",
        volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
 
 
-  if( gSystem->Getenv("TOCDB") != TString("kTRUE") ){
+  if(!gSystem->Getenv("$TOCDB")){
     // save on file
     TFile f("PHOSzeroMisalignment.root","RECREATE");
     if(!f) cerr<<"cannot open file for output\n";
@@ -50,13 +64,13 @@ void MakePHOSZeroMisAlignment(){
     f.Close();
   }else{
     // save in CDB storage
-    const char* Storage = gSystem->Getenv("STORAGE");
+    const char* Storage = gSystem->Getenv("$STORAGE");
     AliCDBManager *CDB = AliCDBManager::Instance();
     AliCDBStorage* storage = CDB->GetStorage(Storage);
     AliCDBMetaData *md= new AliCDBMetaData();
     md->SetResponsible("Yuri Kharlov");
     md->SetComment("Zero misalignment objects");
-    md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
+    md->SetAliRootVersion(gSystem->Getenv("$ARVERSION"));
     AliCDBId id("PHOS/Align/Data",0,9999999);
     storage->Put(array,id, md);
   }