The check over the symbolic names allows partial PHOS configurations (only some modul...
authorrgrosso <rgrosso@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 8 Sep 2008 18:06:47 +0000 (18:06 +0000)
committerrgrosso <rgrosso@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 8 Sep 2008 18:06:47 +0000 (18:06 +0000)
STEER/AliGeomManager.cxx

index e021cde..e74539a 100644 (file)
@@ -525,11 +525,41 @@ Bool_t AliGeomManager::CheckSymNamesLUT(const char* detsToBeChecked)
   }
   if(trdActive) detsString+="TRD ";
 
-  if(fgGeometry->CheckPath("ALIC_1/B077_1/BSEGMO0_1/BTRD0_1/UTR1_1")) detsString+="TRD ";
   if(fgGeometry->CheckPath("ALIC_1/Hmp0_0")) detsString+="HMPID ";
-  if(fgGeometry->CheckPath("ALIC_1/PHOS_1")) detsString+="PHOS ";
+  
+  TString phosMod, cpvMod;
+  TString basePhos("ALIC_1/PHOS_");
+  Bool_t phosActive=kFALSE;
+  Bool_t cpvActive=kFALSE;
+  Bool_t phosMods[5];
+  for(Int_t pmod=0; pmod<5; pmod++)
+  {
+    phosMods[pmod]=kFALSE;
+    phosMod = basePhos;
+    phosMod += (pmod+1);
+    cpvMod = phosMod;
+    cpvMod += "/PCPV_1";
+    if(fgGeometry->CheckPath(phosMod.Data()))
+    {
+      phosActive=kTRUE;
+      phosMods[pmod]=kTRUE;
+      if(fgGeometry->CheckPath(cpvMod.Data())) cpvActive=kTRUE;
+    }
+  }
+  if(phosActive) detsString+="PHOS ";
+
   if(fgGeometry->CheckPath("ALIC_1/XEN1_1")) detsString+="EMCAL";
 
+  Printf("\n\n\n  %s  \n\n\n",detsString.Data());
+  for(Int_t pmod=0; pmod<5; pmod++)
+  {
+    if(phosMods[pmod]){
+      Printf("PHOS module %d is active",pmod+1);
+    }else{
+      Printf("PHOS module %d is NOT active",pmod+1);
+    }
+  }
+  
   
   TString symname;
   const char* sname;
@@ -1000,15 +1030,14 @@ Bool_t AliGeomManager::CheckSymNamesLUT(const char* detsToBeChecked)
 
     AliDebugClass(2,"Checking consistency of symbolic names for PHOS layers");
     
-    {
       TString str = "PHOS/Module";
       modnum=0;
 
-      for (Int_t iModule=1; iModule <= 5; iModule++) {
+      for (Int_t iModule=0; iModule < 5; iModule++) {
+       if(!phosMods[iModule]) continue;
        symname = str;
-       symname += iModule;
-       modnum = iModule-1;
-       uid = LayerToVolUID(kPHOS1,modnum);
+       symname += (iModule+1);
+       uid = LayerToVolUID(kPHOS1,iModule);
        pne = fgGeometry->GetAlignableEntryByUID(uid);
        if(!pne)
        {
@@ -1022,20 +1051,11 @@ Bool_t AliGeomManager::CheckSymNamesLUT(const char* detsToBeChecked)
                "Expected was %s, found was %s!", uid, symname.Data(), sname));
          return kFALSE;
        }
-      }
-    }
-
-    /*********************      PHOS CPV layer   ***********************/
-    {
-      TString str = "PHOS/Module";
-      modnum=0;
-
-      for (Int_t iModule=1; iModule <= 5; iModule++) {
-       symname = str;
-       symname += iModule;
+       Printf(" %s ",sname);
+       /*********************      PHOS CPV layer   ***********************/
+       if(!cpvActive) continue;
        symname += "/CPV";
-       modnum = iModule-1;
-       uid = LayerToVolUID(kPHOS2,modnum);
+       uid = LayerToVolUID(kPHOS2,iModule);
        pne = fgGeometry->GetAlignableEntryByUID(uid);
        if(!pne)
        {
@@ -1049,9 +1069,8 @@ Bool_t AliGeomManager::CheckSymNamesLUT(const char* detsToBeChecked)
                "Expected was %s, found was %s!", uid, symname.Data(), sname));
          return kFALSE;
        }
+       Printf(" %s ",sname);
       }
-    }
-
     AliDebugClass(2,"Consistency check for PHOS symbolic names finished successfully.");
   }