// Checks the validity of the given voluid
//
ELayerID layId = VolUIDToLayerSafe(voluid);
- if(layId){
+ if(layId != AliGeomManager::kInvalidLayer){
Int_t mId = Int_t(voluid & 0x7ff);
if( mId>=0 && mId<LayerSize(layId)){
modId = mId;
{
// Check the look-up table which associates the unique numerical identity of
// each alignable volume to the corresponding symbolic volume name.
- // The LUT is now hold inside the geometry and handled by TGeo.
+ // The LUT is now held inside the geometry and handled by TGeo.
// The method is meant to be launched when loading a geometry to verify that
// no changes in the symbolic names have been introduced, which would prevent
// backward compatibility with alignment objects.
}
if(phosActive) detsString+="PHOS ";
- if(fgGeometry->CheckPath("ALIC_1/XEN1_1")) detsString+="EMCAL";
+ // Check over the ten EMCAL full supermodules and the two EMCAL half supermodules
+ TString emcalSM;
+ TString baseEmcalSM("ALIC_1/XEN1_1/SM");
+ Bool_t emcalActive=kFALSE;
+ Bool_t emcalSMs[12] = {kFALSE};
+ for(Int_t sm=0; sm<12; sm++)
+ {
+ emcalSM=baseEmcalSM;
+ if(sm<10){
+ emcalSM += "OD_";
+ emcalSM += (sm+1);
+ }else{
+ emcalSM += "10_";
+ emcalSM += (sm-9);
+ }
+ if(fgGeometry->CheckPath(emcalSM.Data()))
+ {
+ emcalActive=kTRUE;
+ emcalSMs[sm]=kTRUE;
+ }
+ }
+ if(emcalActive) detsString+="EMCAL ";
+
TString symname;
const char* sname;
TString snSTRIP = "/strip";
for (Int_t isect = 0; isect < nSectors; isect++) {
+ if(tofSMs[isect]) AliDebugClass(3,Form("Consistency check for symnames of TOF supermodule %d.",isect));
for (Int_t istr = 1; istr <= nStrips; istr++) {
symname = snSM;
symname += Form("%02d",isect);
symname += Form("%02d",istr);
uid = LayerToVolUID(kTOF,modnum++);
if(!tofSMs[isect]) continue; // taking possible missing TOF sectors (partial geometry) into account
- AliDebugClass(2,Form("Consistency check for symnames of TOF supermodule %d.",isect));
if ((isect==13 || isect==14 || isect==15) && (istr >= 39 && istr <= 53)) continue; //taking holes into account
pne = fgGeometry->GetAlignableEntryByUID(uid);
if(!pne)
for(Int_t layer=0; layer<6; layer++){
modnum=0;
+ AliDebugClass(3,Form("Consistency check for symnames of TRD layer %d.",layer));
for (Int_t isect = 0; isect < 18; isect++) {
for (Int_t icham = 0; icham < 5; icham++) {
symname = snStr;
symname += layer;
uid = LayerToVolUID(arTRDlayId[layer],modnum++);
if(!trdSMs[isect]) continue;
- AliDebugClass(2,Form("Consistency check for symnames of TRD supermodule %d.",isect));
if ((isect==13 || isect==14 || isect==15) && icham==2) continue; //keeping holes into account
pne = fgGeometry->GetAlignableEntryByUID(uid);
if(!pne)
modnum=0;
for (Int_t iModule=1; iModule <= 12; iModule++) {
+ if(!emcalSMs[iModule-1]) continue;
symname = str;
symname += iModule;
if(iModule >10) {
//_____________________________________________________________________________
Int_t AliGeomManager::GetNalignable(const char* module)
{
- // Get number of declared alignable volumes for given detector in current geometry
- //
+ // Get number of declared alignable volumes in current geometry
+ // for the given detector "module" passed as a vaild detector name
+ // if the detector name is invalid return -1
// return the detector index corresponding to detector
Int_t index = -1 ;
if ( strcmp(module, fgkDetectorName[index]) == 0 )
break ;
}
+ if(index==fgkNDetectors) return -1;
return fgNalignable[index];
}