ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
//-------------------------------------------------------------------------
//   Implementation of AliGeomManager, the geometry manager class 
//   which interfaces to TGeo and the look-up table mapping unique
//   volume indices to symbolic volume names. For that it collects
//   several static methods.
//-------------------------------------------------------------------------

#include <TClass.h>
#include <TFile.h>
#include <TGeoManager.h>
#include <TObjString.h>
#include <TGeoPhysicalNode.h>
#include <TClonesArray.h>
#include <TGeoMatrix.h>
#include <TGeoPhysicalNode.h>
#include <TSystem.h>
#include <TStopwatch.h>
#include <TGeoOverlap.h>
#include <TPluginManager.h>
#include <TROOT.h>

#include "AliGeomManager.h"
#include "AliLog.h"
#include "AliAlignObj.h"
#include "AliAlignObjParams.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"

ClassImp(AliGeomManager)
  
Int_t AliGeomManager::fgLayerSize[kLastLayer - kFirstLayer] = {
  80, 160,  // ITS SPD first and second layer
  84, 176,  // ITS SDD first and second layer
  748, 950, // ITS SSD first and second layer
  36, 36,   // TPC inner and outer chambers
  90, 90, 90, 90, 90, 90,  // 6 TRD chambers' layers
  1638,     // TOF
  5, 5,     // PHOS,CPV
  7,        // HMPID ??
  1,         // MUON ??
  22        // EMCAL and DCAL
};

const char* AliGeomManager::fgLayerName[kLastLayer - kFirstLayer] = {
  "ITS inner pixels layer", "ITS outer pixels layer",
  "ITS inner drifts layer", "ITS outer drifts layer",
  "ITS inner strips layer", "ITS outer strips layer",
  "TPC inner chambers layer", "TPC outer chambers layer",
  "TRD chambers layer 1", "TRD chambers layer 2", "TRD chambers layer 3",
  "TRD chambers layer 4", "TRD chambers layer 5", "TRD chambers layer 6",
  "TOF layer",
  "PHOS EMC layer","PHOS CPV layer",
  "HMPID layer", 
  "MUON ?",
  "EMCAL layer"
};

TGeoPNEntry** AliGeomManager::fgPNEntry[kLastLayer - kFirstLayer] = {
  0x0,0x0,
  0x0,0x0,
  0x0,0x0,
  0x0,0x0,
  0x0,0x0,0x0,
  0x0,0x0,0x0,
  0x0,
  0x0,0x0,
  0x0,
  0x0,
  0x0
};

AliAlignObj** AliGeomManager::fgAlignObjs[kLastLayer - kFirstLayer] = {
  0x0,0x0,
  0x0,0x0,
  0x0,0x0,
  0x0,0x0,
  0x0,0x0,0x0,
  0x0,0x0,0x0,
  0x0,
  0x0,0x0,
  0x0,
  0x0,
  0x0
};

const char* AliGeomManager::fgkDetectorName[AliGeomManager::fgkNDetectors] =
{"GRP","ITS","TPC","TRD","TOF","PHOS","HMPID","EMCAL","MUON","FMD","ZDC","PMD","T0","VZERO","ACORDE","AD","MFT","FIT"};
Int_t AliGeomManager::fgNalignable[fgkNDetectors] = {0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

TGeoManager* AliGeomManager::fgGeometry = 0x0;

//_____________________________________________________________________________
void AliGeomManager::Destroy()
{
  // destroy the manager as well as gGeoManager (if it was not attached to fgGeometry)
  TGeoManager::UnlockGeometry();
  delete gGeoManager;
  fgGeometry = gGeoManager = 0;
  ResetPNEntriesLUT();
}

//_____________________________________________________________________________
void AliGeomManager::LoadGeometry(const char *geomFileName)
{
  // initialization
  // Load geometry either from a file
  // or from the corresponding CDB entry

  if(fgGeometry->IsLocked()){
      AliErrorClass("Cannot load a new geometry, the current one being locked. Setting internal geometry to null!!");
      fgGeometry = NULL;
      return;
  }

  fgGeometry = NULL;
  if (geomFileName && (!gSystem->AccessPathName(geomFileName))) {
    fgGeometry = TGeoManager::Import(geomFileName);
    AliInfoClass(Form("From now on using geometry from custom geometry file \"%s\"",geomFileName));
  }

  if (!fgGeometry) {
    AliCDBPath path("GRP","Geometry","Data");
	
    AliCDBEntry *entry=AliCDBManager::Instance()->Get(path.GetPath());
    if(!entry) AliFatalClass("Couldn't load geometry data from CDB!");

    entry->SetOwner(0);
    fgGeometry = (TGeoManager*) entry->GetObject();
    if (!fgGeometry) AliFatalClass("Couldn't find TGeoManager in the specified CDB entry!");
    
    AliInfoClass(Form("From now on using geometry from CDB base folder \"%s\"",
		      AliCDBManager::Instance()->GetURI("GRP/Geometry/Data")));
  }
  ResetPNEntriesLUT();
  InitPNEntriesLUT();
  InitNalignable();
}

//_____________________________________________________________________________
void AliGeomManager::SetGeometry(TGeoManager * const geom)
{
  // Load already active geometry
  if (!geom) AliFatalClass("Pointer to the active geometry is 0x0!");
  ResetPNEntriesLUT();
  fgGeometry = geom;
  InitPNEntriesLUT();
  InitNalignable();
}

//_____________________________________________________________________________
AliGeomManager::AliGeomManager():
  TObject()
{
  // default constructor
}

//_____________________________________________________________________________
AliGeomManager::~AliGeomManager()
{
  // dummy destructor
}

//_____________________________________________________________________________
Int_t AliGeomManager::LayerSize(Int_t layerId)
{
  // Get the layer size for layer corresponding to layerId.
  // Implemented only for ITS,TPC,TRD,TOF and HMPID
  //
  if (layerId < kFirstLayer || layerId >= kLastLayer) {
    AliErrorClass(Form("Invalid layer index %d ! Layer range is (%d -> %d) !",layerId,kFirstLayer,kLastLayer));
    return 0;
  }
  else {
    return fgLayerSize[layerId - kFirstLayer];
  }
}

//_____________________________________________________________________________
const char* AliGeomManager::LayerName(Int_t layerId)
{
  // Get the layer name corresponding to layerId.
  // Implemented only for ITS,TPC,TRD,TOF and HMPID
  //
  if (layerId < kFirstLayer || layerId >= kLastLayer) {
    AliErrorClass(Form("Invalid layer index %d ! Layer range is (%d -> %d) !",layerId,kFirstLayer,kLastLayer));
    return "Invalid Layer!";
  }
  else {
    return fgLayerName[layerId - kFirstLayer];
  }
}

//_____________________________________________________________________________
UShort_t AliGeomManager::LayerToVolUID(ELayerID layerId, Int_t modId)
{
  // From detector (layer) name and module number (according to detector
  // internal numbering) build the unique numerical identity of that volume
  // inside ALICE
  // fVolUID is 16 bits, first 5 reserved for layerID (32 possible values),
  // remaining 11 for module ID inside det (2048 possible values).
  // NO check for validity of given modId inside the layer for speed's sake.
  //
  return ((UShort_t(layerId) << 11) | UShort_t(modId));
}

//_____________________________________________________________________________
UShort_t AliGeomManager::LayerToVolUID(Int_t   layerId, Int_t modId)
{
  // From detector (layer) name and module number (according to detector
  // internal numbering) build the unique numerical identity of that volume
  // inside ALICE
  // fVolUID is 16 bits, first 5 reserved for layerID (32 possible values),
  // remaining 11 for module ID inside det (2048 possible values).
  // NO check for validity of given modId inside the layer for speed's sake.
  //
  return ((UShort_t(layerId) << 11) | UShort_t(modId));
}

//_____________________________________________________________________________
UShort_t AliGeomManager::LayerToVolUIDSafe(ELayerID layerId, Int_t modId)
{
  // From detector (layer) name and module number (according to detector
  // internal numbering) build the unique numerical identity of that volume
  // inside ALICE
  // fVolUID is 16 bits, first 5 reserved for layerID (32 possible values),
  // remaining 11 for module ID inside det (2048 possible values).
  // Check validity of given modId inside the layer.
  //
  if(modId < 0 || modId >= LayerSize(layerId)){
    AliErrorClass(Form("Invalid volume id %d ! Range of valid ids for layer \"%s\" is [0, %d] !",modId,LayerName(layerId),LayerSize(layerId)-1));
    return 0;
  }
  return ((UShort_t(layerId) << 11) | UShort_t(modId));
}

//_____________________________________________________________________________
UShort_t AliGeomManager::LayerToVolUIDSafe(Int_t layerId, Int_t modId)
{
  // From detector (layer) name and module number (according to detector
  // internal numbering) build the unique numerical identity of that volume
  // inside ALICE
  // fVolUID is 16 bits, first 5 reserved for layerID (32 possible values),
  // remaining 11 for module ID inside det (2048 possible values).
  // Check validity of given modId inside the layer.
  //
  if(modId < 0 || modId >= LayerSize(layerId)){
    AliErrorClass(Form("Invalid volume id %d ! Range of valid ids for layer \"%s\" is [0, %d] !",modId,LayerName(layerId),LayerSize(layerId)-1));
    return 0;
  }
  return ((UShort_t(layerId) << 11) | UShort_t(modId));
}

//_____________________________________________________________________________
AliGeomManager::ELayerID AliGeomManager::VolUIDToLayer(UShort_t voluid, Int_t &modId)
{
  // From voluid, unique numerical identity of that volume inside ALICE,
  // (voluid is 16 bits, first 5 reserved for layerID (32 possible values),
  // remaining 11 for module ID inside det (2048 possible values)), return
  // the identity of the layer to which that volume belongs and sets the
  // argument modId to the identity of that volume internally to the layer.
  // NO check for validity of given voluid for speed's sake.
  //
  modId = voluid & 0x7ff;

  return VolUIDToLayer(voluid);
}

//_____________________________________________________________________________
AliGeomManager::ELayerID AliGeomManager::VolUIDToLayer(UShort_t voluid)
{
  // From voluid, unique numerical identity of that volume inside ALICE,
  // (voluid is 16 bits, first 5 reserved for layerID (32 possible values),
  // remaining 11 for module ID inside det (2048 possible values)), return
  // the identity of the layer to which that volume belongs
  // NO check for validity of given voluid for speed's sake.
  //
  return ELayerID(voluid >> 11);
}

//_____________________________________________________________________________
AliGeomManager::ELayerID AliGeomManager::VolUIDToLayerSafe(UShort_t voluid, Int_t &modId)
{
  // From voluid, unique numerical identity of that volume inside ALICE,
  // (voluid is 16 bits, first 5 reserved for layerID (32 possible values),
  // remaining 11 for module ID inside det (2048 possible values)), returns
  // the identity of the layer to which that volume belongs and sets the
  // argument modId to the identity of that volume internally to the layer.
  // Checks the validity of the given voluid
  //
  ELayerID layId = VolUIDToLayerSafe(voluid);
  if(layId != AliGeomManager::kInvalidLayer){
    Int_t mId = Int_t(voluid & 0x7ff);
    if( mId>=0 && mId<LayerSize(layId)){
      modId = mId;
      return layId;
    }
  }

  AliErrorClass(Form("Invalid unique volume id: %d !",voluid));
  modId = -1;
  return kInvalidLayer;

}

//_____________________________________________________________________________
AliGeomManager::ELayerID AliGeomManager::VolUIDToLayerSafe(UShort_t voluid)
{
  // From voluid, unique numerical identity of that volume inside ALICE,
  // (voluid is 16 bits, first 5 reserved for layerID (32 possible values),
  // remaining 11 for module ID inside det (2048 possible values)), returns
  // the identity of the layer to which that volume belongs
  // Checks the validity of the given voluid
  //
  if( (voluid >> 11) < kLastLayer)  return ELayerID(voluid >> 11);

  AliErrorClass(Form("Invalid layer id: %d !",(voluid >> 11)));
  return kInvalidLayer;

}

//_____________________________________________________________________________
Bool_t AliGeomManager::GetFromGeometry(const char *symname, AliAlignObj &alobj)
{
  // Get the alignment object which corresponds to the symbolic volume name
  // symname (in case equal to the TGeo volume path)
  // The method is extremely slow due to the searching by string,
  // therefore it should be used with great care!!
  // This method returns FALSE if the symname of the object was not
  // valid neither to get a TGeoPEntry nor as a volume path, or if the path
  // associated to the TGeoPNEntry was not valid.
  //

  // Reset the alignment object
  alobj.SetPars(0,0,0,0,0,0);
  alobj.SetSymName(symname);

  if (!fgGeometry || !fgGeometry->IsClosed()) {
    AliErrorClass("Can't get the alignment object! gGeoManager doesn't exist or it is still opened!");
    return kFALSE;
  }

  if (!fgGeometry->GetListOfPhysicalNodes()) {
    AliErrorClass("Can't get the alignment object! gGeoManager doesn't contain any aligned nodes!");
    return kFALSE;
  }

  const char *path;
  TGeoPNEntry* pne = fgGeometry->GetAlignableEntry(symname);
  if(pne){
    path = pne->GetTitle();
  }else{
    AliWarningClass(Form("The symbolic volume name %s does not correspond to a physical entry. Using it as a volume path!",symname));
    path = symname;
  }
  TObjArray* nodesArr = fgGeometry->GetListOfPhysicalNodes();
  TGeoPhysicalNode* node = NULL;
  for (Int_t iNode = 0; iNode < nodesArr->GetEntriesFast(); iNode++) {
    TGeoPhysicalNode* tempNode = (TGeoPhysicalNode*) nodesArr->UncheckedAt(iNode);
    const char *nodePath = tempNode->GetName();
    if (strcmp(path,nodePath) == 0) {
      node = tempNode;
      break;
    }
  }

  if (!node) {
    if (!fgGeometry->cd(path)) {
      AliErrorClass(Form("%s not valid neither as symbolic volume name nor as volume path!",path));
      return kFALSE;
    }
    else {
      AliWarningClass(Form("Volume (%s) has not been misaligned!",path));
      return kTRUE;
    }
  }

  TGeoHMatrix align,gprime,g,ginv,l;
  gprime = *node->GetMatrix();
  l = *node->GetOriginalMatrix();
  g = *node->GetMatrix(node->GetLevel()-1);
  g *= l;
  ginv = g.Inverse();
  align = gprime * ginv;

  return alobj.SetMatrix(align);
}


//_____________________________________________________________________________
void  AliGeomManager::InitAlignObjFromGeometry()
{
  // Loop over all alignable volumes and extract
  // the corresponding alignment objects from
  // the TGeo geometry
  //
  for (Int_t iLayer = kFirstLayer; iLayer < AliGeomManager::kLastLayer; iLayer++) {
    if (!fgAlignObjs[iLayer-kFirstLayer]) {
      fgAlignObjs[iLayer-kFirstLayer] = new AliAlignObj*[LayerSize(iLayer)];
    }
    for (Int_t iModule = 0; iModule < LayerSize(iLayer); iModule++) {
      UShort_t volid = LayerToVolUID(iLayer,iModule);
      fgAlignObjs[iLayer-kFirstLayer][iModule] = new AliAlignObjParams("",volid,0,0,0,0,0,0,kTRUE);
      const char *symname = SymName(volid);
      if (!GetFromGeometry(symname, *fgAlignObjs[iLayer-kFirstLayer][iModule]))
	AliErrorClass(Form("Failed to extract the alignment object for the volume (ID=%d and path=%s) !",volid,symname));
    }
  }

}

//_____________________________________________________________________________
AliAlignObj* AliGeomManager::GetAlignObj(UShort_t voluid)
{
  // Returns the alignment object for given volume ID
  //
  Int_t modId;
  ELayerID layerId = VolUIDToLayer(voluid,modId);
  return GetAlignObj(layerId,modId);
}

//_____________________________________________________________________________
AliAlignObj* AliGeomManager::GetAlignObj(ELayerID layerId, Int_t modId)
{
  // Returns pointer to alignment object given its layer and module ID
  //
  if(modId<0 || modId>=fgLayerSize[layerId-kFirstLayer]){
    AliWarningClass(Form("Module number %d not in the valid range (0->%d) !",modId,fgLayerSize[layerId-kFirstLayer]-1));
    return NULL;
  }
  InitAlignObjFromGeometry();

  return fgAlignObjs[layerId-kFirstLayer][modId];
}

//_____________________________________________________________________________
const char* AliGeomManager::SymName(UShort_t voluid)
{
  // Returns the symbolic volume name for given volume ID
  //
  Int_t modId;
  ELayerID layerId = VolUIDToLayer(voluid,modId);
  return SymName(layerId,modId);
}

//_____________________________________________________________________________
const char* AliGeomManager::SymName(ELayerID layerId, Int_t modId)
{
  // Returns the symbolic volume name given for a given layer
  // and module ID
  //
  if(!fgGeometry){
    AliErrorClass("No geometry instance loaded yet!");
    return NULL;
  }
  if(modId<0 || modId>=fgLayerSize[layerId-kFirstLayer]){
    AliWarningClass(Form("Module number %d not in the valid range (0->%d) !",modId,fgLayerSize[layerId-kFirstLayer]-1));
    return NULL;
  }

  TGeoPNEntry* pne = fgPNEntry[layerId-kFirstLayer][modId];
  if(!pne)
  {
    AliWarningClass(Form("Module %d of layer %s is not activated!",modId,LayerName(layerId)));
    return NULL;
  }
  return pne->GetName();

}

//_____________________________________________________________________________
Bool_t AliGeomManager::CheckSymNamesLUT(const char* /*detsToBeChecked*/)
{
  // 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 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.
  // To accept both complete and partial geometry, this method skips the check
  // for TRD and TOF volumes which are missing in the partial geometry.
  // 

//  TString detsString(detsToBeChecked);
//  if(detsString.Contains("ALL")) detsString="ITS TPC TOF TRD HMPID PHOS EMCAL";

  // Temporary measure to face the case of reconstruction over detectors not present in the geometry
  TString detsString = "";
  if(fgGeometry->CheckPath("ALIC_1/ITSV_1")) detsString+="ITS ";
  if(fgGeometry->CheckPath("ALIC_1/TPC_M_1")) detsString+="TPC ";

  TString tofsm;
  TString baseTof("ALIC_1/B077_1/BSEGMO");
  TString middleTof("_1/BTOF");
  TString trailTof("_1/FTOA_0");
  Bool_t tofActive=kFALSE;
  Bool_t tofSMs[18];
  for(Int_t sm=0; sm<18; sm++)
  {
    tofSMs[sm]=kFALSE;
    tofsm=baseTof;
    tofsm += sm;
    tofsm += middleTof;
    tofsm += sm;
    tofsm += trailTof;
    if(fgGeometry->CheckPath(tofsm.Data()))
    {
      tofActive=kTRUE;
      tofSMs[sm]=kTRUE;
    }
  }
  if(tofActive) detsString+="TOF ";
  
  TString trdsm;
  TString baseTrd("ALIC_1/B077_1/BSEGMO");
  TString middleTrd("_1/BTRD");
  TString trailTrd("_1/UTR1_1");
  Bool_t trdActive=kFALSE;
  Bool_t trdSMs[18];
  for(Int_t sm=0; sm<18; sm++)
  {
    trdSMs[sm]=kFALSE;
    trdsm=baseTrd;
    trdsm += sm;
    trdsm += middleTrd;
    trdsm += sm;
    trdsm += trailTrd;
    if(fgGeometry->CheckPath(trdsm.Data()))
    {
      trdActive=kTRUE;
      trdSMs[sm]=kTRUE;
    }
  }
  if(trdActive) detsString+="TRD ";

  if(fgGeometry->CheckPath("ALIC_1/Hmp0_0")) detsString+="HMPID ";
  
  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 ";

  // Check over the ten EMCAL full supermodules and the two EMCAL half supermodules
  TString emcalSM;
  TString baseEmcalSM("ALIC_1/XEN1_1/");
  Bool_t emcalActive=kFALSE;
  Bool_t emcalSMs[22] = {kFALSE};
  for(Int_t sm=0; sm<22; sm++)
  {
    emcalSM=baseEmcalSM;
    if(sm<10){
      emcalSM += "SMOD_";
      emcalSM += (sm+1);
    }else if(sm/2 == 5){
      emcalSM += "SM10_";
      emcalSM += (sm-9);
    }else if(sm > 11){
      emcalSM += "DCSM_";
      emcalSM += (sm-11);
    }
    if(fgGeometry->CheckPath(emcalSM.Data()))
    {
      emcalActive=kTRUE;
      emcalSMs[sm]=kTRUE;
    }
  }
  if(emcalActive) detsString+="EMCAL ";
  

  TString symname;
  const char* sname;
  TGeoPNEntry* pne = 0x0;
  Int_t uid; // global unique identity
  Int_t modnum; // unique id inside layer; in the following, set it to 0 at the start of each layer

  if(detsString.Contains("ITS")){
  /*********************       ITS layers  ***********************/
    AliDebugClass(2,"Checking consistency of symbolic names for ITS layers");
    TString strSPD = "ITS/SPD";
    TString strSDD = "ITS/SDD";
    TString strSSD = "ITS/SSD";
    TString strStave = "/Stave";
    TString strHalfStave = "/HalfStave";
    TString strLadder = "/Ladder";
    TString strSector = "/Sector";
    TString strSensor = "/Sensor";
    TString strEntryName1;
    TString strEntryName2;
    TString strEntryName3;

    /*********************       SPD layer1  ***********************/
    {
      modnum = 0;

      for(Int_t cSect = 0; cSect<10; cSect++){
	strEntryName1 = strSPD;
	strEntryName1 += 0;
	strEntryName1 += strSector;
	strEntryName1 += cSect;

	for(Int_t cStave =0; cStave<2; cStave++){
	  strEntryName2 = strEntryName1;
	  strEntryName2 += strStave;
	  strEntryName2 += cStave;

	  for (Int_t cHS=0; cHS<2; cHS++) {
	    strEntryName3 = strEntryName2;
	    strEntryName3 += strHalfStave;
	    strEntryName3 += cHS;

	    for(Int_t cLad =0; cLad<2; cLad++){
	      symname = strEntryName3;
	      symname += strLadder;
	      symname += cLad+cHS*2;
	      uid = LayerToVolUID(kSPD1,modnum++);
	      pne = fgGeometry->GetAlignableEntryByUID(uid);
	      if(!pne)
	      {
		AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
		return kFALSE;
	      }
	      sname = pne->GetName();
	      if(symname.CompareTo(sname)) 
	      {
		AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d."
		      "Expected was %s, found was %s!", uid, symname.Data(), sname));
		return kFALSE;
	      }
	    }
	  }
	}
      }
    }

    /*********************       SPD layer2  ***********************/
    {
      modnum = 0;

      for(Int_t cSect = 0; cSect<10; cSect++){
	strEntryName1 = strSPD;
	strEntryName1 += 1;
	strEntryName1 += strSector;
	strEntryName1 += cSect;

	for(Int_t cStave =0; cStave<4; cStave++){
	  strEntryName2 = strEntryName1;
	  strEntryName2 += strStave;
	  strEntryName2 += cStave;

	  for (Int_t cHS=0; cHS<2; cHS++) {
	    strEntryName3 = strEntryName2;
	    strEntryName3 += strHalfStave;
	    strEntryName3 += cHS;

	    for(Int_t cLad =0; cLad<2; cLad++){
	      symname = strEntryName3;
	      symname += strLadder;
	      symname += cLad+cHS*2;
	      uid = LayerToVolUID(kSPD2,modnum++);
	      pne = fgGeometry->GetAlignableEntryByUID(uid);
	      if(!pne)
	      {
		AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
		return kFALSE;
	      }
	      sname = pne->GetName();
	      if(symname.CompareTo(sname)) 
	      {
		AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d."
		      "Expected was %s, found was %s!", uid, symname.Data(), sname));
		return kFALSE;
	      }
	    }
	  }
	}
      }
    }

    /*********************       SDD layer1  ***********************/
    {
      modnum=0;

      for(Int_t c1 = 1; c1<=14; c1++){
	strEntryName1 = strSDD;
	strEntryName1 += 2;
	strEntryName1 +=strLadder;
	strEntryName1 += (c1-1);
	for(Int_t c2 =1; c2<=6; c2++){
	  symname = strEntryName1;
	  symname += strSensor;
	  symname += (c2-1);
	  uid = LayerToVolUID(kSDD1,modnum++);
	  pne = fgGeometry->GetAlignableEntryByUID(uid);
	  if(!pne)
	  {
	    AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	    return kFALSE;
	  }
	  sname = pne->GetName();
	  if(symname.CompareTo(sname)) 
	  {
	    AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		  "Expected was %s, found was %s!", uid, symname.Data(), sname));
	    return kFALSE;
	  }
	}
      }
    }

    /*********************       SDD layer2  ***********************/
    {
      modnum=0;

      for(Int_t c1 = 1; c1<=22; c1++){
	strEntryName1 = strSDD;
	strEntryName1 += 3;
	strEntryName1 +=strLadder;
	strEntryName1 += (c1-1);
	for(Int_t c2 = 1; c2<=8; c2++){
	  symname = strEntryName1;
	  symname += strSensor;
	  symname += (c2-1);
	  uid = LayerToVolUID(kSDD2,modnum++);
	  pne = fgGeometry->GetAlignableEntryByUID(uid);
	  if(!pne)
	  {
	    AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	    return kFALSE;
	  }
	  sname = pne->GetName();
	  if(symname.CompareTo(sname)) 
	  {
	    AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		  "Expected was %s, found was %s!", uid, symname.Data(), sname));
	    return kFALSE;
	  }
	}
      }
    }

    /*********************       SSD layer1  ***********************/
    {
      modnum=0;

      for(Int_t c1 = 1; c1<=34; c1++){
	strEntryName1 = strSSD;
	strEntryName1 += 4;
	strEntryName1 +=strLadder;
	strEntryName1 += (c1-1);
	for(Int_t c2 = 1; c2<=22; c2++){
	  symname = strEntryName1;
	  symname += strSensor;
	  symname += (c2-1);
	  uid = LayerToVolUID(kSSD1,modnum++);
	  pne = fgGeometry->GetAlignableEntryByUID(uid);
	  if(!pne)
	  {
	    AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	    return kFALSE;
	  }
	  sname = pne->GetName();
	  if(symname.CompareTo(sname)) 
	  {
	    AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		  "Expected was %s, found was %s!", uid, symname.Data(), sname));
	    return kFALSE;
	  }
	}
      }
    }

    /*********************       SSD layer2  ***********************/
    {
      modnum=0;

      for(Int_t c1 = 1; c1<=38; c1++){
	strEntryName1 = strSSD;
	strEntryName1 += 5;
	strEntryName1 +=strLadder;
	strEntryName1 += (c1-1);
	for(Int_t c2 = 1; c2<=25; c2++){
	  symname = strEntryName1;
	  symname += strSensor;
	  symname += (c2-1);
	  uid = LayerToVolUID(kSSD2,modnum++);
	  pne = fgGeometry->GetAlignableEntryByUID(uid);
	  if(!pne)
	  {
	    AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	    return kFALSE;
	  }
	  sname = pne->GetName();
	  if(symname.CompareTo(sname)) 
	  {
	    AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		  "Expected was %s, found was %s!", uid, symname.Data(), sname));
	    return kFALSE;
	  }
	}
      }
    }

    AliDebugClass(2,"Consistency check for ITS symbolic names finished successfully.");
  }

  if(detsString.Contains("TPC"))
  {
    /***************    TPC inner and outer layers    ****************/
    
    AliDebugClass(2,"Checking consistency of symbolic names for TPC layers");
    TString sAsector="TPC/EndcapA/Sector";
    TString sCsector="TPC/EndcapC/Sector";
    TString sInner="/InnerChamber";
    TString sOuter="/OuterChamber";

    /***************    TPC inner chambers' layer    ****************/
    {
      modnum = 0;

      for(Int_t cnt=1; cnt<=18; cnt++)
      {
	symname = sAsector;
	symname += cnt;
	symname += sInner;
	uid = LayerToVolUID(kTPC1,modnum++);
	pne = fgGeometry->GetAlignableEntryByUID(uid);
	if(!pne)
	{
	  AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	  return kFALSE;
	}
	sname = pne->GetName();
	if(symname.CompareTo(sname)) 
	{
	  AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		"Expected was %s, found was %s!", uid, symname.Data(), sname));
	  return kFALSE;
	}
      }

      for(Int_t cnt=1; cnt<=18; cnt++)
      {
	symname = sCsector;
	symname += cnt;
	symname += sInner;
	uid = LayerToVolUID(kTPC1,modnum++);
	pne = fgGeometry->GetAlignableEntryByUID(uid);
	if(!pne)
	{
	  AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	  return kFALSE;
	}
	sname = pne->GetName();
	if(symname.CompareTo(sname)) 
	{
	  AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		"Expected was %s, found was %s!", uid, symname.Data(), sname));
	  return kFALSE;
	}
      }
    }

    /***************    TPC outer chambers' layer    ****************/
    {
      modnum = 0;

      for(Int_t cnt=1; cnt<=18; cnt++)
      {
	symname = sAsector;
	symname += cnt;
	symname += sOuter;
	uid = LayerToVolUID(kTPC2,modnum++);
	pne = fgGeometry->GetAlignableEntryByUID(uid);
	if(!pne)
	{
	  AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	  return kFALSE;
	}
	sname = pne->GetName();
	if(symname.CompareTo(sname)) 
	{
	  AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		"Expected was %s, found was %s!", uid, symname.Data(), sname));
	  return kFALSE;
	}
      }

      for(Int_t cnt=1; cnt<=18; cnt++)
      {
	symname = sCsector;
	symname += cnt;
	symname += sOuter;
	uid = LayerToVolUID(kTPC2,modnum++);
	pne = fgGeometry->GetAlignableEntryByUID(uid);
	if(!pne)
	{
	  AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	  return kFALSE;
	}
	sname = pne->GetName();
	if(symname.CompareTo(sname)) 
	{
	  AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		"Expected was %s, found was %s!", uid, symname.Data(), sname));
	  return kFALSE;
	}
      }
    }

    AliDebugClass(2,"Consistency check for TPC symbolic names finished successfully.");
  }

  if(detsString.Contains("TOF"))
  {
    /*********************       TOF layer   ***********************/

    AliDebugClass(2,"Checking consistency of symbolic names for TOF layers");
    modnum=0;

    Int_t nstrA=15;
    Int_t nstrB=19;
    Int_t nstrC=19;
    Int_t nSectors=18;
    Int_t nStrips=nstrA+2*nstrB+2*nstrC;

    TString snSM  = "TOF/sm";
    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 += snSTRIP;
	symname += Form("%02d",istr);
	uid = LayerToVolUID(kTOF,modnum++);
	if(!tofSMs[isect]) continue; // taking possible missing TOF sectors (partial geometry) into account
	if ((isect==13 || isect==14 || isect==15) && (istr >= 39 && istr <= 53)) continue; //taking holes into account
	pne = fgGeometry->GetAlignableEntryByUID(uid);
	if(!pne)
	{
	  AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	  return kFALSE;
	}
	sname = pne->GetName();
	if(symname.CompareTo(sname)) 
	{
	  AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		"Expected was %s, found was %s!", uid, symname.Data(), sname));
	  return kFALSE;
	}
      }
    }
    
    AliDebugClass(2,"Consistency check for TOF symbolic names finished successfully.");
  } 

  if(detsString.Contains("HMPID"))
  {
    /*********************      HMPID layer   ***********************/

    AliDebugClass(2,"Checking consistency of symbolic names for HMPID layers");
    TString str = "/HMPID/Chamber";

    for (modnum=0; modnum < 7; modnum++) {
      symname = str;
      symname += modnum;
      uid = LayerToVolUID(kHMPID,modnum);
      pne = fgGeometry->GetAlignableEntryByUID(uid);
      if(!pne)
      {
	AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	return kFALSE;
      }
      sname = pne->GetName();
      if(symname.CompareTo(sname)) 
      {
	AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
	      "Expected was %s, found was %s!", uid, symname.Data(), sname));
	return kFALSE;
      }
    }

    AliDebugClass(2,"Consistency check for HMPID symbolic names finished successfully.");
  }

  if(detsString.Contains("TRD"))
  {
    /*********************      TRD layers 1-6   *******************/
    //!! 6 layers with index increasing in outwards direction
    
    AliDebugClass(2,"Checking consistency of symbolic names for TRD layers");
    Int_t arTRDlayId[6] = {kTRD1, kTRD2, kTRD3, kTRD4, kTRD5, kTRD6};

    TString snStr  = "TRD/sm";
    TString snApp1 = "/st";
    TString snApp2 = "/pl";
    
    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 += Form("%02d",isect);
	  symname += snApp1;
	  symname += icham;
	  symname += snApp2;
	  symname += layer;
	  uid = LayerToVolUID(arTRDlayId[layer],modnum++);
	  if(!trdSMs[isect]) continue;
	  if ((isect==13 || isect==14 || isect==15) && icham==2) continue; //keeping holes into account
	  pne = fgGeometry->GetAlignableEntryByUID(uid);
	  if(!pne)
	  {
	    AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	    return kFALSE;
	  }
	  sname = pne->GetName();
	  if(symname.CompareTo(sname)) 
	  {
	    AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		  "Expected was %s, found was %s!", uid, symname.Data(), sname));
	    return kFALSE;
	  }
	}
      }
    }

    AliDebugClass(2,"Consistency check for TRD symbolic names finished successfully.");
  }

  if(detsString.Contains("PHOS"))
  {
    /*********************      PHOS EMC layer   ***********************/

    AliDebugClass(2,"Checking consistency of symbolic names for PHOS layers");
    
      TString str = "PHOS/Module";
      modnum=0;

      for (Int_t iModule=0; iModule < 5; iModule++) {
	if(!phosMods[iModule]) continue;
	symname = str;
	symname += (iModule+1);
	uid = LayerToVolUID(kPHOS1,iModule);
	pne = fgGeometry->GetAlignableEntryByUID(uid);
	if(!pne)
	{
	  AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	  return kFALSE;
	}
	sname = pne->GetName();
	if(symname.CompareTo(sname)) 
	{
	  AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		"Expected was %s, found was %s!", uid, symname.Data(), sname));
	  return kFALSE;
	}
	/*********************      PHOS CPV layer   ***********************/
	if(!cpvActive) continue;
	symname += "/CPV";
	uid = LayerToVolUID(kPHOS2,iModule);
	pne = fgGeometry->GetAlignableEntryByUID(uid);
	if(!pne)
	{
	  AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	  return kFALSE;
	}
	sname = pne->GetName();
	if(symname.CompareTo(sname)) 
	{
	  AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
		"Expected was %s, found was %s!", uid, symname.Data(), sname));
	  return kFALSE;
	}
      }
    AliDebugClass(2,"Consistency check for PHOS symbolic names finished successfully.");
  }

  if(detsString.Contains("EMCAL"))
  {
    /*********************      EMCAL layer   ***********************/

    AliDebugClass(2,"Checking consistency of symbolic names for EMCAL layers");
    TString str = "EMCAL/FullSupermodule";
    modnum=0;

    for (Int_t iModule=0; iModule < 22; iModule++) {
      if(!emcalSMs[iModule]) continue;
      symname = str;
      symname += iModule+1;
      if(iModule/2 == 5) {// 10,11
	symname = "EMCAL/HalfSupermodule";
	symname += iModule-9;
      }else if(iModule > 11) {// 12 ~ 21
        symname = "EMCAL/DCALSupermodule";
        symname += iModule-11;
      }
      modnum = iModule;
      uid = LayerToVolUID(kEMCAL,modnum);
      pne = fgGeometry->GetAlignableEntryByUID(uid);
      if(!pne)
      {
	AliErrorClass(Form("In the currently loaded geometry there is no TGeoPNEntry with unique id %d",uid));
	return kFALSE;
      }
      sname = pne->GetName();
      if(symname.CompareTo(sname)) 
      {
	AliErrorClass(Form("Current loaded geometry differs in the definition of symbolic name for uid %d"
	      "Expected was %s, found was %s!", uid, symname.Data(), sname));
	return kFALSE;
      }
    }
  
    AliDebugClass(2,"Consistency check for EMCAL symbolic names finished successfully.");
  }
  
  return kTRUE;

}

//_____________________________________________________________________________
void AliGeomManager::InitPNEntriesLUT()
{
  // Initialize the look-up table which associates the unique
  // numerical identity of each alignable volume to the
  // corresponding TGeoPNEntry.
  // The LUTs are static; they are created at the creation of the
  // AliGeomManager instance and recreated if the geometry has changed
  //
  if(!fgGeometry) {
    AliErrorClass("Impossible to initialize PNEntries LUT without an active geometry");
    return;
  }

  for (Int_t iLayer = 0; iLayer < (kLastLayer - kFirstLayer); iLayer++){
    if (!fgPNEntry[iLayer]) fgPNEntry[iLayer] = new TGeoPNEntry*[fgLayerSize[iLayer]];
    for(Int_t modnum=0; modnum<fgLayerSize[iLayer]; modnum++){
      fgPNEntry[iLayer][modnum] = fgGeometry->GetAlignableEntryByUID(LayerToVolUID(iLayer+1,modnum));
    }
  }
}

//______________________________________________________________________
TGeoHMatrix* AliGeomManager::GetMatrix(TGeoPNEntry * const pne) 
{
  // Get the global transformation matrix for a given PNEntry
  // by quering the TGeoManager

  if (!fgGeometry || !fgGeometry->IsClosed()) {
    AliErrorClass("Can't get the global matrix! gGeoManager doesn't exist or it is still opened!");
    return NULL;
  }

  TGeoPhysicalNode *pnode = pne->GetPhysicalNode();
  if (pnode) return pnode->GetMatrix();

  const char* path = pne->GetTitle();
  if (!fgGeometry->cd(path)) {
    AliErrorClass(Form("Volume path %s not valid!",path));
    return NULL;
  }
  return fgGeometry->GetCurrentMatrix();
}

//______________________________________________________________________
TGeoHMatrix* AliGeomManager::GetMatrix(Int_t index) 
{
  // Get the global transformation matrix for a given alignable volume
  // identified by its unique ID 'index' by quering the TGeoManager

  TGeoPNEntry *pne = GetPNEntry(index);
  if (!pne) return NULL;

  return GetMatrix(pne);
}

//______________________________________________________________________
TGeoHMatrix* AliGeomManager::GetMatrix(const char* symname) 
{
  // Get the global transformation matrix for a given alignable volume
  //  identified by its symbolic name 'symname' by quering the TGeoManager

  if (!fgGeometry || !fgGeometry->IsClosed()) {
    AliErrorClass("No active geometry or geometry not yet closed!");
    return NULL;
  }

  TGeoPNEntry* pne = fgGeometry->GetAlignableEntry(symname);
  if (!pne) return NULL;

  return GetMatrix(pne);
}

//______________________________________________________________________
Bool_t AliGeomManager::GetTranslation(Int_t index, Double_t t[3]) 
{
  // Get the translation vector for a given module 'index'
  // by quering the TGeoManager

  TGeoHMatrix *m = GetMatrix(index);
  if (!m) return kFALSE;

  Double_t *trans = m->GetTranslation();
  for (Int_t i = 0; i < 3; i++) t[i] = trans[i];

  return kTRUE;
}

//______________________________________________________________________
Bool_t AliGeomManager::GetRotation(Int_t index, Double_t r[9]) 
{
  // Get the rotation matrix for a given module 'index'
  // by quering the TGeoManager

  TGeoHMatrix *m = GetMatrix(index);
  if (!m) return kFALSE;

  Double_t *rot = m->GetRotationMatrix();
  for (Int_t i = 0; i < 9; i++) r[i] = rot[i];

  return kTRUE;
}

//_____________________________________________________________________________
Bool_t AliGeomManager::GetDeltaForBranch(Int_t index, TGeoHMatrix &inclusiveD)
{
  // The method sets the matrix passed as argument as the global delta
  // (for the volume referred by the unique index) including the displacements
  // of all parent volumes in the branch.
  //

  TGeoHMatrix go,invgo;
  go = *GetOrigGlobalMatrix(index);
  invgo = go.Inverse();
  inclusiveD = *GetMatrix(index);
  inclusiveD.Multiply(&invgo);

  return kTRUE;
}

//_____________________________________________________________________________
Bool_t AliGeomManager::GetDeltaForBranch(AliAlignObj& aao, TGeoHMatrix &inclusiveD)
{
  // The method sets the matrix passed as argument as the global delta
  // (for the volume referred by the alignment object) including the displacements
  // of all parent volumes in the brach.
  //
  Int_t index = aao.GetVolUID();
  if(!index){
    AliErrorClass("Either the alignment object or its index are not valid");
    return kFALSE;
  }
  return GetDeltaForBranch(index, inclusiveD);
}

//______________________________________________________________________
Bool_t AliGeomManager::GetOrigGlobalMatrix(const char* symname, TGeoHMatrix &m) 
{
  // Get the global transformation matrix (ideal geometry) for a given alignable volume
  // The alignable volume is identified by 'symname' which has to be either a valid symbolic
  // name, the query being performed after alignment, or a valid volume path if the query is
  // performed before alignment.
  //
  m.Clear();

  if (!fgGeometry || !fgGeometry->IsClosed()) {
    AliErrorClass("No active geometry or geometry not yet closed!");
    return kFALSE;
  }
  if (!fgGeometry->GetListOfPhysicalNodes()) {
    AliWarningClass("gGeoManager doesn't contain any aligned nodes!");
    if (!fgGeometry->cd(symname)) {
      AliErrorClass(Form("Volume path %s not valid!",symname));
      return kFALSE;
    }
    else {
      m = *fgGeometry->GetCurrentMatrix();
      return kTRUE;
    }
  }

  TGeoPNEntry* pne = fgGeometry->GetAlignableEntry(symname);
  const char* path = NULL;
  if(pne){
    m = *pne->GetGlobalOrig();
    return kTRUE;
  }else{
    AliWarningClass(Form("The symbolic volume name %s does not correspond to a physical entry. Using it as a volume path!",symname));
    path=symname;
  }

  return GetOrigGlobalMatrixFromPath(path,m);
}

//_____________________________________________________________________________
Bool_t AliGeomManager::GetOrigGlobalMatrixFromPath(const char *path, TGeoHMatrix &m)
{
  // The method returns the global matrix for the volume identified by 
  // 'path' in the ideal detector geometry.
  // The output global matrix is stored in 'm'.
  // Returns kFALSE in case TGeo has not been initialized or the volume
  // path is not valid.
  //
  m.Clear();

  if (!fgGeometry || !fgGeometry->IsClosed()) {
    AliErrorClass("Can't get the original global matrix! gGeoManager doesn't exist or it is still opened!");
    return kFALSE;
  }

  if (!fgGeometry->CheckPath(path)) {
    AliErrorClass(Form("Volume path %s not valid!",path));
    return kFALSE;
  }

  TIter next(fgGeometry->GetListOfPhysicalNodes());
  fgGeometry->cd(path);

  while(fgGeometry->GetLevel()){

    TGeoPhysicalNode *physNode = NULL;
    next.Reset();
    TGeoNode *node = fgGeometry->GetCurrentNode();
    while ((physNode=(TGeoPhysicalNode*)next())) 
      if (physNode->GetNode() == node) break;

    TGeoMatrix *lm = NULL;
    if (physNode) {
      lm = physNode->GetOriginalMatrix();
      if (!lm) lm = node->GetMatrix();
    } else
      lm = node->GetMatrix();

    m.MultiplyLeft(lm);

    fgGeometry->CdUp();
  }

  return kTRUE;
}

//_____________________________________________________________________________
TGeoHMatrix* AliGeomManager::GetOrigGlobalMatrix(TGeoPNEntry * const pne)
{
  // The method returns global matrix for the ideal detector geometry
  // using the corresponding TGeoPNEntry as an input.
  // The returned pointer should be copied by the user, since its content could
  // be overwritten by a following call to the method.
  // In case of missing TGeoManager the method returns NULL.
  //
  if (!fgGeometry || !fgGeometry->IsClosed()) {
    AliErrorClass("Can't get the global matrix! gGeoManager doesn't exist or it is still opened!");
    return NULL;
  }

  return pne->GetGlobalOrig();
}

//______________________________________________________________________
TGeoHMatrix* AliGeomManager::GetOrigGlobalMatrix(Int_t index)
{
  // The method returns global matrix from the ideal detector geometry
  // for the volume identified by its index.
  // The returned pointer should be copied by the user, since its content could
  // be overwritten by a following call to the method.
  // In case of missing TGeoManager the method returns NULL.
  // If possible, the method uses the LUT of original ideal matrices
  // for fast access. The LUT is reset in case a
  // new geometry is loaded.
  //
  TGeoPNEntry* pne = GetPNEntry(index);
  return pne->GetGlobalOrig();
}

//______________________________________________________________________
Bool_t AliGeomManager::GetOrigTranslation(Int_t index, Double_t t[3]) 
{
  // Get the original translation vector (ideal geometry)
  // for a given module 'index' by quering the TGeoManager

  TGeoHMatrix *m = GetOrigGlobalMatrix(index);
  if (!m) return kFALSE;

  Double_t *trans = m->GetTranslation();
  for (Int_t i = 0; i < 3; i++) t[i] = trans[i];

  return kTRUE;
}

//______________________________________________________________________
Bool_t AliGeomManager::GetOrigRotation(Int_t index, Double_t r[9]) 
{
  // Get the original rotation matrix (ideal geometry)
  // for a given module 'index' by quering the TGeoManager

  TGeoHMatrix *m = GetOrigGlobalMatrix(index);
  if (!m) return kFALSE;

  Double_t *rot = m->GetRotationMatrix();
  for (Int_t i = 0; i < 9; i++) r[i] = rot[i];

  return kTRUE;
}

//______________________________________________________________________
const TGeoHMatrix* AliGeomManager::GetTracking2LocalMatrix(Int_t index)
{
  // Get the matrix which transforms from the tracking to the local RS
  // The method queries directly the TGeoPNEntry

  TGeoPNEntry *pne = GetPNEntry(index);
  if (!pne) return NULL;

  const TGeoHMatrix *m = pne->GetMatrix();
  if (!m)
    AliErrorClass(Form("TGeoPNEntry (%s) contains no tracking-to-local matrix !",pne->GetName()));

  return m;
}

//______________________________________________________________________
Bool_t AliGeomManager::GetTrackingMatrix(Int_t index, TGeoHMatrix &m)
{
  // Get the matrix which transforms from the tracking r.s. to
  // the global one.
  // Returns kFALSE in case of error.

  m.Clear();

  TGeoHMatrix *m1 = GetMatrix(index);
  if (!m1) return kFALSE;

  const TGeoHMatrix *m2 = GetTracking2LocalMatrix(index);
  if (!m2) return kFALSE;

  m = *m1;
  m.Multiply(m2);

  return kTRUE;
}

//_____________________________________________________________________________
TGeoPNEntry* AliGeomManager::GetPNEntry(Int_t voluid) {
  // Returns the TGeoPNEntry for the given global volume ID "voluid"
  //
  Int_t modId;
  ELayerID layerId = VolUIDToLayer(voluid,modId);
  return GetPNEntry(layerId,modId);
}

//_____________________________________________________________________________
TGeoPNEntry* AliGeomManager::GetPNEntry(ELayerID layerId, Int_t modId)
{
  // Returns the TGeoPNEntry for a given layer
  // and module ID
  //

  if(modId<0 || modId>=fgLayerSize[layerId-kFirstLayer]){
    AliWarningClass(Form("Module number %d not in the valid range (0->%d) !",modId,fgLayerSize[layerId-kFirstLayer]-1));
    return NULL;
  }

  return fgPNEntry[layerId-kFirstLayer][modId];
}

//_____________________________________________________________________________
void AliGeomManager::CheckOverlapsOverPNs(Double_t threshold)
{
  // Check for overlaps/extrusions on physical nodes only;
  // this overlap-checker is meant to be used to check overlaps/extrusions
  // originated by the application of alignment objects.
  //

  TObjArray* ovexlist = 0x0;

  AliInfoClass("********* Checking overlaps/extrusions over physical nodes only *********");
  TObjArray* pnList = gGeoManager->GetListOfPhysicalNodes();
  TGeoVolume* mvol = 0;
  TGeoPhysicalNode* pn;
  TObjArray* overlaps = new TObjArray(64);
  overlaps->SetOwner();

  TStopwatch timer2;
  timer2.Start();
  for(Int_t pni=0; pni<pnList->GetEntriesFast(); pni++){
    pn = (TGeoPhysicalNode*) pnList->UncheckedAt(pni);
    // checking the volume of the mother (go upper in the tree in case it is an assembly)
    Int_t levup=1;
    while(((TGeoVolume*)pn->GetVolume(pn->GetLevel()-levup))->IsAssembly()) levup++;
      //Printf("Going to upper level");
    mvol = pn->GetVolume(pn->GetLevel()-levup);
    if(!mvol->IsSelected()){
      AliInfoClass(Form("Checking overlaps for volume %s",mvol->GetName()));
      mvol->CheckOverlaps(threshold);
      ovexlist = gGeoManager->GetListOfOverlaps();
      TIter next(ovexlist);
      TGeoOverlap *ov;
      while ((ov=(TGeoOverlap*)next())) overlaps->Add(ov->Clone());
      mvol->SelectVolume();
    }
  }
  mvol->SelectVolume(kTRUE); // clears the list of selected volumes

  AliInfoClass(Form("Number of overlapping/extruding PNs: %d",overlaps->GetEntriesFast()));
  timer2.Stop();
  timer2.Print();

  TIter nextN(overlaps);
  TGeoOverlap *ovlp;
  while ((ovlp=(TGeoOverlap*)nextN())) ovlp->PrintInfo();

  overlaps->Delete();
  delete overlaps;
}

//_____________________________________________________________________________
Int_t AliGeomManager::GetNalignable(const char* module)
{
  // 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 ;
  for (index = 0; index < fgkNDetectors ; index++) {
    if ( strcmp(module, fgkDetectorName[index]) == 0 )
      break ;
  }
  if(index==fgkNDetectors) return -1;
  return fgNalignable[index];
}
  
//_____________________________________________________________________________
void AliGeomManager::InitNalignable()
{
  // Set number of declared alignable volumes for given detector in current geometry
  // by looping on the list of PNEntries
  //
  
  Int_t nAlE = gGeoManager->GetNAlignable(); // total number of alignable entries
  TGeoPNEntry *pne = 0;
  const char* detName;
  
  for (Int_t iDet = 0; iDet < fgkNDetectors ; iDet++) {
    detName = fgkDetectorName[iDet];
    Int_t nAlDet = 0;
    
    for(Int_t iE = 0; iE < nAlE; iE++)
    {
      pne = gGeoManager->GetAlignableEntry(iE);
      TString pneName = pne->GetName();
      if(pneName.Contains(detName)) nAlDet++;
      if(!strcmp(detName,"GRP")) if(pneName.Contains("ABSO")  || pneName.Contains("DIPO") || 
				    pneName.Contains("FRAME") || pneName.Contains("PIPE") || 
				    pneName.Contains("SHIL")) nAlDet++;
    }
    fgNalignable[iDet] = nAlDet;
  }

}
  
//_____________________________________________________________________________
Bool_t AliGeomManager::ApplyAlignObjsFromCDB(const char* alignDetsList)
{
  // Calls AddAlignObjsFromCDBSingleDet for the detectors appearing in
  // the list passed as argument (called by AliSimulation and
  // AliReconstruction)
  // Read the alignment objects from CDB.
  // Each detector is supposed to have the
  // alignment objects in DET/Align/Data CDB path.
  // All the detector objects are then collected,
  // sorted by geometry level (starting from ALIC) and
  // then applied to the TGeo geometry.
  // Finally an overlaps check is performed.
  //
 
  TObjArray alignObjArray;
  alignObjArray.Clear();  	
  alignObjArray.SetOwner(0);

  TString alObjsNotLoaded="";
  TString alObjsLoaded="";

  TString alignDetsString(alignDetsList);
  TObjArray *detsarr = alignDetsString.Tokenize(' ');
  TIter iter(detsarr);
  TObjString *str = 0;
  
  while((str = (TObjString*) iter.Next())){
    TString det(str->String());
    AliDebugClass(5,Form("Loading alignment objs for %s",det.Data()));
    if(!LoadAlignObjsFromCDBSingleDet(det.Data(),alignObjArray)){
      alObjsNotLoaded += det.Data();
      alObjsNotLoaded += " ";
    } else {
      alObjsLoaded += det.Data();
      alObjsLoaded += " ";
    }
  }
  detsarr->Delete();
  delete detsarr;

  if(!alObjsLoaded.IsNull()) AliInfoClass(Form("Alignment objects loaded for: %s",
					       alObjsLoaded.Data()));
  if(!alObjsNotLoaded.IsNull())
      AliFatalClass(Form("Could not load alignment objects from OCDB for: %s",
						  alObjsNotLoaded.Data()));
 
  return ApplyAlignObjsToGeom(alignObjArray);
}

//_____________________________________________________________________________
Bool_t AliGeomManager::LoadAlignObjsFromCDBSingleDet(const char* detName, TObjArray& alignObjArray)
{
  // Adds the alignable objects found in the CDBEntry for the detector
  // passed as argument to the array of all alignment objects to be applyed
  // to geometry
  //
  // Fills array of single detector's alignable objects from CDB
  
  AliDebugClass(2, Form("Loading alignment objs for detector: %s",detName));
  
  AliCDBEntry *entry;
  	
  AliCDBPath path(detName,"Align","Data");
	
  entry=AliCDBManager::Instance()->Get(path.GetPath());
  if(!entry){ 
  	AliDebugClass(2,Form("Couldn't load alignment data for detector %s",detName));
	return kFALSE;
  }
  entry->SetOwner(1);
  TClonesArray *alignArray = (TClonesArray*) entry->GetObject();	
  alignArray->SetOwner(0);
  Int_t nAlObjs = alignArray->GetEntries();
  AliDebugClass(2,Form("Found %d alignment objects for %s",nAlObjs,detName));
  Int_t nAlVols = GetNalignable(detName);
  if(nAlObjs!=nAlVols) AliWarningClass(Form("%d alignment objects loaded for %s, which has %d alignable volumes",nAlObjs,detName,GetNalignable(detName)));

  AliAlignObj *alignObj=0;
  TIter iter(alignArray);
	
  // loop over align objects in detector
  while( ( alignObj=(AliAlignObj *) iter.Next() ) ){
  	alignObjArray.Add(alignObj);
  }
  // delete entry --- Don't delete, it is cached!
	
  AliDebugClass(2, Form("fAlignObjArray entries: %d",alignObjArray.GetEntries() ));
  return kTRUE;

}

//_____________________________________________________________________________
Bool_t AliGeomManager::ApplyAlignObjsToGeom(TObjArray& alignObjArray, Bool_t ovlpcheck)
{
    // Read collection of alignment objects (AliAlignObj derived) saved
    // in the TClonesArray alObjArray and apply them to gGeoManager
    //
    alignObjArray.Sort();
    Int_t nvols = alignObjArray.GetEntriesFast();

    Bool_t flag = kTRUE;

    for(Int_t j=0; j<nvols; j++)
    {
	AliAlignObj* alobj = (AliAlignObj*) alignObjArray.UncheckedAt(j);
	if(!alobj->ApplyToGeometry(ovlpcheck))
	{
	    flag = kFALSE;
	    AliDebugClass(5,Form("Error applying alignment object for volume %s !",alobj->GetSymName()));
	}else{
	    AliDebugClass(5,Form("Alignment object for volume %s applied successfully",alobj->GetSymName()));
	}

    }

    if (AliDebugLevelClass() > 5) {
	fgGeometry->CheckOverlaps(0.001);
	TObjArray* ovexlist = fgGeometry->GetListOfOverlaps();
	if(ovexlist->GetEntriesFast()){  
	    AliErrorClass("The application of alignment objects to the geometry caused huge overlaps/extrusions!");
	    fgGeometry->PrintOverlaps();
	}
    }

    // Update the TGeoPhysicalNodes
    fgGeometry->RefreshPhysicalNodes();

    return flag;

}

//_____________________________________________________________________________
Bool_t AliGeomManager::ApplyAlignObjsToGeom(const char* fileName, const char* clArrayName)
{
  // read collection of alignment objects (AliAlignObj derived) saved
  // in the TClonesArray ClArrayName in the file fileName and apply
  // them to the geometry
  //

  TFile* inFile = TFile::Open(fileName,"READ");
  if (!inFile || !inFile->IsOpen()) {
    AliErrorClass(Form("Could not open file %s !",fileName));
    return kFALSE;
  }

  TClonesArray* alignObjArray = ((TClonesArray*) inFile->Get(clArrayName));
  inFile->Close();
  if (!alignObjArray) {
    AliErrorClass(Form("Could not get array (%s) from file (%s) !",clArrayName,fileName));
    return kFALSE;
  }

  return ApplyAlignObjsToGeom(*alignObjArray);

}

//_____________________________________________________________________________
Bool_t AliGeomManager::ApplyAlignObjsToGeom(const char* uri, const char* path, Int_t runnum, Int_t version, Int_t sversion)
{
  // read collection of alignment objects (AliAlignObj derived) saved
  // in the TClonesArray ClArrayName in the AliCDBEntry identified by
  // param (to get the AliCDBStorage) and Id; apply the alignment objects
  // to the geometry
  //

  AliCDBStorage* storage = AliCDBManager::Instance()->GetStorage(uri);
  AliCDBId id(path, runnum, runnum, version, sversion);
  AliCDBEntry* entry = storage->Get(id);
  TClonesArray* alignObjArray = dynamic_cast<TClonesArray*>(entry->GetObject());

  return ApplyAlignObjsToGeom(*alignObjArray);

}

//_____________________________________________________________________________
Bool_t AliGeomManager::ApplyAlignObjsToGeom(const char* detName, Int_t runnum, Int_t version, Int_t sversion)
{
  // read collection of alignment objects (AliAlignObj derived) saved
  // in the TClonesArray ClArrayName in the AliCDBEntry identified by
  // param (to get the AliCDBStorage) and Id; apply the alignment objects
  // to the geometry
  //

  AliCDBPath path(detName,"Align","Data");
  AliCDBEntry* entry = AliCDBManager::Instance()->Get(path.GetPath(),runnum,version,sversion);

  if(!entry) return kFALSE;
  TClonesArray* alignObjArray = ((TClonesArray*) entry->GetObject());

  return ApplyAlignObjsToGeom(*alignObjArray);
}

//_____________________________________________________________________________
void AliGeomManager::ResetPNEntriesLUT()
{
  // cleans static arrays containing the information on currently loaded geometry
  //
  for (Int_t iLayer = 0; iLayer < (kLastLayer - kFirstLayer); iLayer++){
    if (!fgPNEntry[iLayer]) continue;
    for (Int_t modnum=0; modnum<fgLayerSize[iLayer]; modnum++) fgPNEntry[iLayer][modnum] = 0;
  }
  //
}
  
 AliGeomManager.cxx:1
 AliGeomManager.cxx:2
 AliGeomManager.cxx:3
 AliGeomManager.cxx:4
 AliGeomManager.cxx:5
 AliGeomManager.cxx:6
 AliGeomManager.cxx:7
 AliGeomManager.cxx:8
 AliGeomManager.cxx:9
 AliGeomManager.cxx:10
 AliGeomManager.cxx:11
 AliGeomManager.cxx:12
 AliGeomManager.cxx:13
 AliGeomManager.cxx:14
 AliGeomManager.cxx:15
 AliGeomManager.cxx:16
 AliGeomManager.cxx:17
 AliGeomManager.cxx:18
 AliGeomManager.cxx:19
 AliGeomManager.cxx:20
 AliGeomManager.cxx:21
 AliGeomManager.cxx:22
 AliGeomManager.cxx:23
 AliGeomManager.cxx:24
 AliGeomManager.cxx:25
 AliGeomManager.cxx:26
 AliGeomManager.cxx:27
 AliGeomManager.cxx:28
 AliGeomManager.cxx:29
 AliGeomManager.cxx:30
 AliGeomManager.cxx:31
 AliGeomManager.cxx:32
 AliGeomManager.cxx:33
 AliGeomManager.cxx:34
 AliGeomManager.cxx:35
 AliGeomManager.cxx:36
 AliGeomManager.cxx:37
 AliGeomManager.cxx:38
 AliGeomManager.cxx:39
 AliGeomManager.cxx:40
 AliGeomManager.cxx:41
 AliGeomManager.cxx:42
 AliGeomManager.cxx:43
 AliGeomManager.cxx:44
 AliGeomManager.cxx:45
 AliGeomManager.cxx:46
 AliGeomManager.cxx:47
 AliGeomManager.cxx:48
 AliGeomManager.cxx:49
 AliGeomManager.cxx:50
 AliGeomManager.cxx:51
 AliGeomManager.cxx:52
 AliGeomManager.cxx:53
 AliGeomManager.cxx:54
 AliGeomManager.cxx:55
 AliGeomManager.cxx:56
 AliGeomManager.cxx:57
 AliGeomManager.cxx:58
 AliGeomManager.cxx:59
 AliGeomManager.cxx:60
 AliGeomManager.cxx:61
 AliGeomManager.cxx:62
 AliGeomManager.cxx:63
 AliGeomManager.cxx:64
 AliGeomManager.cxx:65
 AliGeomManager.cxx:66
 AliGeomManager.cxx:67
 AliGeomManager.cxx:68
 AliGeomManager.cxx:69
 AliGeomManager.cxx:70
 AliGeomManager.cxx:71
 AliGeomManager.cxx:72
 AliGeomManager.cxx:73
 AliGeomManager.cxx:74
 AliGeomManager.cxx:75
 AliGeomManager.cxx:76
 AliGeomManager.cxx:77
 AliGeomManager.cxx:78
 AliGeomManager.cxx:79
 AliGeomManager.cxx:80
 AliGeomManager.cxx:81
 AliGeomManager.cxx:82
 AliGeomManager.cxx:83
 AliGeomManager.cxx:84
 AliGeomManager.cxx:85
 AliGeomManager.cxx:86
 AliGeomManager.cxx:87
 AliGeomManager.cxx:88
 AliGeomManager.cxx:89
 AliGeomManager.cxx:90
 AliGeomManager.cxx:91
 AliGeomManager.cxx:92
 AliGeomManager.cxx:93
 AliGeomManager.cxx:94
 AliGeomManager.cxx:95
 AliGeomManager.cxx:96
 AliGeomManager.cxx:97
 AliGeomManager.cxx:98
 AliGeomManager.cxx:99
 AliGeomManager.cxx:100
 AliGeomManager.cxx:101
 AliGeomManager.cxx:102
 AliGeomManager.cxx:103
 AliGeomManager.cxx:104
 AliGeomManager.cxx:105
 AliGeomManager.cxx:106
 AliGeomManager.cxx:107
 AliGeomManager.cxx:108
 AliGeomManager.cxx:109
 AliGeomManager.cxx:110
 AliGeomManager.cxx:111
 AliGeomManager.cxx:112
 AliGeomManager.cxx:113
 AliGeomManager.cxx:114
 AliGeomManager.cxx:115
 AliGeomManager.cxx:116
 AliGeomManager.cxx:117
 AliGeomManager.cxx:118
 AliGeomManager.cxx:119
 AliGeomManager.cxx:120
 AliGeomManager.cxx:121
 AliGeomManager.cxx:122
 AliGeomManager.cxx:123
 AliGeomManager.cxx:124
 AliGeomManager.cxx:125
 AliGeomManager.cxx:126
 AliGeomManager.cxx:127
 AliGeomManager.cxx:128
 AliGeomManager.cxx:129
 AliGeomManager.cxx:130
 AliGeomManager.cxx:131
 AliGeomManager.cxx:132
 AliGeomManager.cxx:133
 AliGeomManager.cxx:134
 AliGeomManager.cxx:135
 AliGeomManager.cxx:136
 AliGeomManager.cxx:137
 AliGeomManager.cxx:138
 AliGeomManager.cxx:139
 AliGeomManager.cxx:140
 AliGeomManager.cxx:141
 AliGeomManager.cxx:142
 AliGeomManager.cxx:143
 AliGeomManager.cxx:144
 AliGeomManager.cxx:145
 AliGeomManager.cxx:146
 AliGeomManager.cxx:147
 AliGeomManager.cxx:148
 AliGeomManager.cxx:149
 AliGeomManager.cxx:150
 AliGeomManager.cxx:151
 AliGeomManager.cxx:152
 AliGeomManager.cxx:153
 AliGeomManager.cxx:154
 AliGeomManager.cxx:155
 AliGeomManager.cxx:156
 AliGeomManager.cxx:157
 AliGeomManager.cxx:158
 AliGeomManager.cxx:159
 AliGeomManager.cxx:160
 AliGeomManager.cxx:161
 AliGeomManager.cxx:162
 AliGeomManager.cxx:163
 AliGeomManager.cxx:164
 AliGeomManager.cxx:165
 AliGeomManager.cxx:166
 AliGeomManager.cxx:167
 AliGeomManager.cxx:168
 AliGeomManager.cxx:169
 AliGeomManager.cxx:170
 AliGeomManager.cxx:171
 AliGeomManager.cxx:172
 AliGeomManager.cxx:173
 AliGeomManager.cxx:174
 AliGeomManager.cxx:175
 AliGeomManager.cxx:176
 AliGeomManager.cxx:177
 AliGeomManager.cxx:178
 AliGeomManager.cxx:179
 AliGeomManager.cxx:180
 AliGeomManager.cxx:181
 AliGeomManager.cxx:182
 AliGeomManager.cxx:183
 AliGeomManager.cxx:184
 AliGeomManager.cxx:185
 AliGeomManager.cxx:186
 AliGeomManager.cxx:187
 AliGeomManager.cxx:188
 AliGeomManager.cxx:189
 AliGeomManager.cxx:190
 AliGeomManager.cxx:191
 AliGeomManager.cxx:192
 AliGeomManager.cxx:193
 AliGeomManager.cxx:194
 AliGeomManager.cxx:195
 AliGeomManager.cxx:196
 AliGeomManager.cxx:197
 AliGeomManager.cxx:198
 AliGeomManager.cxx:199
 AliGeomManager.cxx:200
 AliGeomManager.cxx:201
 AliGeomManager.cxx:202
 AliGeomManager.cxx:203
 AliGeomManager.cxx:204
 AliGeomManager.cxx:205
 AliGeomManager.cxx:206
 AliGeomManager.cxx:207
 AliGeomManager.cxx:208
 AliGeomManager.cxx:209
 AliGeomManager.cxx:210
 AliGeomManager.cxx:211
 AliGeomManager.cxx:212
 AliGeomManager.cxx:213
 AliGeomManager.cxx:214
 AliGeomManager.cxx:215
 AliGeomManager.cxx:216
 AliGeomManager.cxx:217
 AliGeomManager.cxx:218
 AliGeomManager.cxx:219
 AliGeomManager.cxx:220
 AliGeomManager.cxx:221
 AliGeomManager.cxx:222
 AliGeomManager.cxx:223
 AliGeomManager.cxx:224
 AliGeomManager.cxx:225
 AliGeomManager.cxx:226
 AliGeomManager.cxx:227
 AliGeomManager.cxx:228
 AliGeomManager.cxx:229
 AliGeomManager.cxx:230
 AliGeomManager.cxx:231
 AliGeomManager.cxx:232
 AliGeomManager.cxx:233
 AliGeomManager.cxx:234
 AliGeomManager.cxx:235
 AliGeomManager.cxx:236
 AliGeomManager.cxx:237
 AliGeomManager.cxx:238
 AliGeomManager.cxx:239
 AliGeomManager.cxx:240
 AliGeomManager.cxx:241
 AliGeomManager.cxx:242
 AliGeomManager.cxx:243
 AliGeomManager.cxx:244
 AliGeomManager.cxx:245
 AliGeomManager.cxx:246
 AliGeomManager.cxx:247
 AliGeomManager.cxx:248
 AliGeomManager.cxx:249
 AliGeomManager.cxx:250
 AliGeomManager.cxx:251
 AliGeomManager.cxx:252
 AliGeomManager.cxx:253
 AliGeomManager.cxx:254
 AliGeomManager.cxx:255
 AliGeomManager.cxx:256
 AliGeomManager.cxx:257
 AliGeomManager.cxx:258
 AliGeomManager.cxx:259
 AliGeomManager.cxx:260
 AliGeomManager.cxx:261
 AliGeomManager.cxx:262
 AliGeomManager.cxx:263
 AliGeomManager.cxx:264
 AliGeomManager.cxx:265
 AliGeomManager.cxx:266
 AliGeomManager.cxx:267
 AliGeomManager.cxx:268
 AliGeomManager.cxx:269
 AliGeomManager.cxx:270
 AliGeomManager.cxx:271
 AliGeomManager.cxx:272
 AliGeomManager.cxx:273
 AliGeomManager.cxx:274
 AliGeomManager.cxx:275
 AliGeomManager.cxx:276
 AliGeomManager.cxx:277
 AliGeomManager.cxx:278
 AliGeomManager.cxx:279
 AliGeomManager.cxx:280
 AliGeomManager.cxx:281
 AliGeomManager.cxx:282
 AliGeomManager.cxx:283
 AliGeomManager.cxx:284
 AliGeomManager.cxx:285
 AliGeomManager.cxx:286
 AliGeomManager.cxx:287
 AliGeomManager.cxx:288
 AliGeomManager.cxx:289
 AliGeomManager.cxx:290
 AliGeomManager.cxx:291
 AliGeomManager.cxx:292
 AliGeomManager.cxx:293
 AliGeomManager.cxx:294
 AliGeomManager.cxx:295
 AliGeomManager.cxx:296
 AliGeomManager.cxx:297
 AliGeomManager.cxx:298
 AliGeomManager.cxx:299
 AliGeomManager.cxx:300
 AliGeomManager.cxx:301
 AliGeomManager.cxx:302
 AliGeomManager.cxx:303
 AliGeomManager.cxx:304
 AliGeomManager.cxx:305
 AliGeomManager.cxx:306
 AliGeomManager.cxx:307
 AliGeomManager.cxx:308
 AliGeomManager.cxx:309
 AliGeomManager.cxx:310
 AliGeomManager.cxx:311
 AliGeomManager.cxx:312
 AliGeomManager.cxx:313
 AliGeomManager.cxx:314
 AliGeomManager.cxx:315
 AliGeomManager.cxx:316
 AliGeomManager.cxx:317
 AliGeomManager.cxx:318
 AliGeomManager.cxx:319
 AliGeomManager.cxx:320
 AliGeomManager.cxx:321
 AliGeomManager.cxx:322
 AliGeomManager.cxx:323
 AliGeomManager.cxx:324
 AliGeomManager.cxx:325
 AliGeomManager.cxx:326
 AliGeomManager.cxx:327
 AliGeomManager.cxx:328
 AliGeomManager.cxx:329
 AliGeomManager.cxx:330
 AliGeomManager.cxx:331
 AliGeomManager.cxx:332
 AliGeomManager.cxx:333
 AliGeomManager.cxx:334
 AliGeomManager.cxx:335
 AliGeomManager.cxx:336
 AliGeomManager.cxx:337
 AliGeomManager.cxx:338
 AliGeomManager.cxx:339
 AliGeomManager.cxx:340
 AliGeomManager.cxx:341
 AliGeomManager.cxx:342
 AliGeomManager.cxx:343
 AliGeomManager.cxx:344
 AliGeomManager.cxx:345
 AliGeomManager.cxx:346
 AliGeomManager.cxx:347
 AliGeomManager.cxx:348
 AliGeomManager.cxx:349
 AliGeomManager.cxx:350
 AliGeomManager.cxx:351
 AliGeomManager.cxx:352
 AliGeomManager.cxx:353
 AliGeomManager.cxx:354
 AliGeomManager.cxx:355
 AliGeomManager.cxx:356
 AliGeomManager.cxx:357
 AliGeomManager.cxx:358
 AliGeomManager.cxx:359
 AliGeomManager.cxx:360
 AliGeomManager.cxx:361
 AliGeomManager.cxx:362
 AliGeomManager.cxx:363
 AliGeomManager.cxx:364
 AliGeomManager.cxx:365
 AliGeomManager.cxx:366
 AliGeomManager.cxx:367
 AliGeomManager.cxx:368
 AliGeomManager.cxx:369
 AliGeomManager.cxx:370
 AliGeomManager.cxx:371
 AliGeomManager.cxx:372
 AliGeomManager.cxx:373
 AliGeomManager.cxx:374
 AliGeomManager.cxx:375
 AliGeomManager.cxx:376
 AliGeomManager.cxx:377
 AliGeomManager.cxx:378
 AliGeomManager.cxx:379
 AliGeomManager.cxx:380
 AliGeomManager.cxx:381
 AliGeomManager.cxx:382
 AliGeomManager.cxx:383
 AliGeomManager.cxx:384
 AliGeomManager.cxx:385
 AliGeomManager.cxx:386
 AliGeomManager.cxx:387
 AliGeomManager.cxx:388
 AliGeomManager.cxx:389
 AliGeomManager.cxx:390
 AliGeomManager.cxx:391
 AliGeomManager.cxx:392
 AliGeomManager.cxx:393
 AliGeomManager.cxx:394
 AliGeomManager.cxx:395
 AliGeomManager.cxx:396
 AliGeomManager.cxx:397
 AliGeomManager.cxx:398
 AliGeomManager.cxx:399
 AliGeomManager.cxx:400
 AliGeomManager.cxx:401
 AliGeomManager.cxx:402
 AliGeomManager.cxx:403
 AliGeomManager.cxx:404
 AliGeomManager.cxx:405
 AliGeomManager.cxx:406
 AliGeomManager.cxx:407
 AliGeomManager.cxx:408
 AliGeomManager.cxx:409
 AliGeomManager.cxx:410
 AliGeomManager.cxx:411
 AliGeomManager.cxx:412
 AliGeomManager.cxx:413
 AliGeomManager.cxx:414
 AliGeomManager.cxx:415
 AliGeomManager.cxx:416
 AliGeomManager.cxx:417
 AliGeomManager.cxx:418
 AliGeomManager.cxx:419
 AliGeomManager.cxx:420
 AliGeomManager.cxx:421
 AliGeomManager.cxx:422
 AliGeomManager.cxx:423
 AliGeomManager.cxx:424
 AliGeomManager.cxx:425
 AliGeomManager.cxx:426
 AliGeomManager.cxx:427
 AliGeomManager.cxx:428
 AliGeomManager.cxx:429
 AliGeomManager.cxx:430
 AliGeomManager.cxx:431
 AliGeomManager.cxx:432
 AliGeomManager.cxx:433
 AliGeomManager.cxx:434
 AliGeomManager.cxx:435
 AliGeomManager.cxx:436
 AliGeomManager.cxx:437
 AliGeomManager.cxx:438
 AliGeomManager.cxx:439
 AliGeomManager.cxx:440
 AliGeomManager.cxx:441
 AliGeomManager.cxx:442
 AliGeomManager.cxx:443
 AliGeomManager.cxx:444
 AliGeomManager.cxx:445
 AliGeomManager.cxx:446
 AliGeomManager.cxx:447
 AliGeomManager.cxx:448
 AliGeomManager.cxx:449
 AliGeomManager.cxx:450
 AliGeomManager.cxx:451
 AliGeomManager.cxx:452
 AliGeomManager.cxx:453
 AliGeomManager.cxx:454
 AliGeomManager.cxx:455
 AliGeomManager.cxx:456
 AliGeomManager.cxx:457
 AliGeomManager.cxx:458
 AliGeomManager.cxx:459
 AliGeomManager.cxx:460
 AliGeomManager.cxx:461
 AliGeomManager.cxx:462
 AliGeomManager.cxx:463
 AliGeomManager.cxx:464
 AliGeomManager.cxx:465
 AliGeomManager.cxx:466
 AliGeomManager.cxx:467
 AliGeomManager.cxx:468
 AliGeomManager.cxx:469
 AliGeomManager.cxx:470
 AliGeomManager.cxx:471
 AliGeomManager.cxx:472
 AliGeomManager.cxx:473
 AliGeomManager.cxx:474
 AliGeomManager.cxx:475
 AliGeomManager.cxx:476
 AliGeomManager.cxx:477
 AliGeomManager.cxx:478
 AliGeomManager.cxx:479
 AliGeomManager.cxx:480
 AliGeomManager.cxx:481
 AliGeomManager.cxx:482
 AliGeomManager.cxx:483
 AliGeomManager.cxx:484
 AliGeomManager.cxx:485
 AliGeomManager.cxx:486
 AliGeomManager.cxx:487
 AliGeomManager.cxx:488
 AliGeomManager.cxx:489
 AliGeomManager.cxx:490
 AliGeomManager.cxx:491
 AliGeomManager.cxx:492
 AliGeomManager.cxx:493
 AliGeomManager.cxx:494
 AliGeomManager.cxx:495
 AliGeomManager.cxx:496
 AliGeomManager.cxx:497
 AliGeomManager.cxx:498
 AliGeomManager.cxx:499
 AliGeomManager.cxx:500
 AliGeomManager.cxx:501
 AliGeomManager.cxx:502
 AliGeomManager.cxx:503
 AliGeomManager.cxx:504
 AliGeomManager.cxx:505
 AliGeomManager.cxx:506
 AliGeomManager.cxx:507
 AliGeomManager.cxx:508
 AliGeomManager.cxx:509
 AliGeomManager.cxx:510
 AliGeomManager.cxx:511
 AliGeomManager.cxx:512
 AliGeomManager.cxx:513
 AliGeomManager.cxx:514
 AliGeomManager.cxx:515
 AliGeomManager.cxx:516
 AliGeomManager.cxx:517
 AliGeomManager.cxx:518
 AliGeomManager.cxx:519
 AliGeomManager.cxx:520
 AliGeomManager.cxx:521
 AliGeomManager.cxx:522
 AliGeomManager.cxx:523
 AliGeomManager.cxx:524
 AliGeomManager.cxx:525
 AliGeomManager.cxx:526
 AliGeomManager.cxx:527
 AliGeomManager.cxx:528
 AliGeomManager.cxx:529
 AliGeomManager.cxx:530
 AliGeomManager.cxx:531
 AliGeomManager.cxx:532
 AliGeomManager.cxx:533
 AliGeomManager.cxx:534
 AliGeomManager.cxx:535
 AliGeomManager.cxx:536
 AliGeomManager.cxx:537
 AliGeomManager.cxx:538
 AliGeomManager.cxx:539
 AliGeomManager.cxx:540
 AliGeomManager.cxx:541
 AliGeomManager.cxx:542
 AliGeomManager.cxx:543
 AliGeomManager.cxx:544
 AliGeomManager.cxx:545
 AliGeomManager.cxx:546
 AliGeomManager.cxx:547
 AliGeomManager.cxx:548
 AliGeomManager.cxx:549
 AliGeomManager.cxx:550
 AliGeomManager.cxx:551
 AliGeomManager.cxx:552
 AliGeomManager.cxx:553
 AliGeomManager.cxx:554
 AliGeomManager.cxx:555
 AliGeomManager.cxx:556
 AliGeomManager.cxx:557
 AliGeomManager.cxx:558
 AliGeomManager.cxx:559
 AliGeomManager.cxx:560
 AliGeomManager.cxx:561
 AliGeomManager.cxx:562
 AliGeomManager.cxx:563
 AliGeomManager.cxx:564
 AliGeomManager.cxx:565
 AliGeomManager.cxx:566
 AliGeomManager.cxx:567
 AliGeomManager.cxx:568
 AliGeomManager.cxx:569
 AliGeomManager.cxx:570
 AliGeomManager.cxx:571
 AliGeomManager.cxx:572
 AliGeomManager.cxx:573
 AliGeomManager.cxx:574
 AliGeomManager.cxx:575
 AliGeomManager.cxx:576
 AliGeomManager.cxx:577
 AliGeomManager.cxx:578
 AliGeomManager.cxx:579
 AliGeomManager.cxx:580
 AliGeomManager.cxx:581
 AliGeomManager.cxx:582
 AliGeomManager.cxx:583
 AliGeomManager.cxx:584
 AliGeomManager.cxx:585
 AliGeomManager.cxx:586
 AliGeomManager.cxx:587
 AliGeomManager.cxx:588
 AliGeomManager.cxx:589
 AliGeomManager.cxx:590
 AliGeomManager.cxx:591
 AliGeomManager.cxx:592
 AliGeomManager.cxx:593
 AliGeomManager.cxx:594
 AliGeomManager.cxx:595
 AliGeomManager.cxx:596
 AliGeomManager.cxx:597
 AliGeomManager.cxx:598
 AliGeomManager.cxx:599
 AliGeomManager.cxx:600
 AliGeomManager.cxx:601
 AliGeomManager.cxx:602
 AliGeomManager.cxx:603
 AliGeomManager.cxx:604
 AliGeomManager.cxx:605
 AliGeomManager.cxx:606
 AliGeomManager.cxx:607
 AliGeomManager.cxx:608
 AliGeomManager.cxx:609
 AliGeomManager.cxx:610
 AliGeomManager.cxx:611
 AliGeomManager.cxx:612
 AliGeomManager.cxx:613
 AliGeomManager.cxx:614
 AliGeomManager.cxx:615
 AliGeomManager.cxx:616
 AliGeomManager.cxx:617
 AliGeomManager.cxx:618
 AliGeomManager.cxx:619
 AliGeomManager.cxx:620
 AliGeomManager.cxx:621
 AliGeomManager.cxx:622
 AliGeomManager.cxx:623
 AliGeomManager.cxx:624
 AliGeomManager.cxx:625
 AliGeomManager.cxx:626
 AliGeomManager.cxx:627
 AliGeomManager.cxx:628
 AliGeomManager.cxx:629
 AliGeomManager.cxx:630
 AliGeomManager.cxx:631
 AliGeomManager.cxx:632
 AliGeomManager.cxx:633
 AliGeomManager.cxx:634
 AliGeomManager.cxx:635
 AliGeomManager.cxx:636
 AliGeomManager.cxx:637
 AliGeomManager.cxx:638
 AliGeomManager.cxx:639
 AliGeomManager.cxx:640
 AliGeomManager.cxx:641
 AliGeomManager.cxx:642
 AliGeomManager.cxx:643
 AliGeomManager.cxx:644
 AliGeomManager.cxx:645
 AliGeomManager.cxx:646
 AliGeomManager.cxx:647
 AliGeomManager.cxx:648
 AliGeomManager.cxx:649
 AliGeomManager.cxx:650
 AliGeomManager.cxx:651
 AliGeomManager.cxx:652
 AliGeomManager.cxx:653
 AliGeomManager.cxx:654
 AliGeomManager.cxx:655
 AliGeomManager.cxx:656
 AliGeomManager.cxx:657
 AliGeomManager.cxx:658
 AliGeomManager.cxx:659
 AliGeomManager.cxx:660
 AliGeomManager.cxx:661
 AliGeomManager.cxx:662
 AliGeomManager.cxx:663
 AliGeomManager.cxx:664
 AliGeomManager.cxx:665
 AliGeomManager.cxx:666
 AliGeomManager.cxx:667
 AliGeomManager.cxx:668
 AliGeomManager.cxx:669
 AliGeomManager.cxx:670
 AliGeomManager.cxx:671
 AliGeomManager.cxx:672
 AliGeomManager.cxx:673
 AliGeomManager.cxx:674
 AliGeomManager.cxx:675
 AliGeomManager.cxx:676
 AliGeomManager.cxx:677
 AliGeomManager.cxx:678
 AliGeomManager.cxx:679
 AliGeomManager.cxx:680
 AliGeomManager.cxx:681
 AliGeomManager.cxx:682
 AliGeomManager.cxx:683
 AliGeomManager.cxx:684
 AliGeomManager.cxx:685
 AliGeomManager.cxx:686
 AliGeomManager.cxx:687
 AliGeomManager.cxx:688
 AliGeomManager.cxx:689
 AliGeomManager.cxx:690
 AliGeomManager.cxx:691
 AliGeomManager.cxx:692
 AliGeomManager.cxx:693
 AliGeomManager.cxx:694
 AliGeomManager.cxx:695
 AliGeomManager.cxx:696
 AliGeomManager.cxx:697
 AliGeomManager.cxx:698
 AliGeomManager.cxx:699
 AliGeomManager.cxx:700
 AliGeomManager.cxx:701
 AliGeomManager.cxx:702
 AliGeomManager.cxx:703
 AliGeomManager.cxx:704
 AliGeomManager.cxx:705
 AliGeomManager.cxx:706
 AliGeomManager.cxx:707
 AliGeomManager.cxx:708
 AliGeomManager.cxx:709
 AliGeomManager.cxx:710
 AliGeomManager.cxx:711
 AliGeomManager.cxx:712
 AliGeomManager.cxx:713
 AliGeomManager.cxx:714
 AliGeomManager.cxx:715
 AliGeomManager.cxx:716
 AliGeomManager.cxx:717
 AliGeomManager.cxx:718
 AliGeomManager.cxx:719
 AliGeomManager.cxx:720
 AliGeomManager.cxx:721
 AliGeomManager.cxx:722
 AliGeomManager.cxx:723
 AliGeomManager.cxx:724
 AliGeomManager.cxx:725
 AliGeomManager.cxx:726
 AliGeomManager.cxx:727
 AliGeomManager.cxx:728
 AliGeomManager.cxx:729
 AliGeomManager.cxx:730
 AliGeomManager.cxx:731
 AliGeomManager.cxx:732
 AliGeomManager.cxx:733
 AliGeomManager.cxx:734
 AliGeomManager.cxx:735
 AliGeomManager.cxx:736
 AliGeomManager.cxx:737
 AliGeomManager.cxx:738
 AliGeomManager.cxx:739
 AliGeomManager.cxx:740
 AliGeomManager.cxx:741
 AliGeomManager.cxx:742
 AliGeomManager.cxx:743
 AliGeomManager.cxx:744
 AliGeomManager.cxx:745
 AliGeomManager.cxx:746
 AliGeomManager.cxx:747
 AliGeomManager.cxx:748
 AliGeomManager.cxx:749
 AliGeomManager.cxx:750
 AliGeomManager.cxx:751
 AliGeomManager.cxx:752
 AliGeomManager.cxx:753
 AliGeomManager.cxx:754
 AliGeomManager.cxx:755
 AliGeomManager.cxx:756
 AliGeomManager.cxx:757
 AliGeomManager.cxx:758
 AliGeomManager.cxx:759
 AliGeomManager.cxx:760
 AliGeomManager.cxx:761
 AliGeomManager.cxx:762
 AliGeomManager.cxx:763
 AliGeomManager.cxx:764
 AliGeomManager.cxx:765
 AliGeomManager.cxx:766
 AliGeomManager.cxx:767
 AliGeomManager.cxx:768
 AliGeomManager.cxx:769
 AliGeomManager.cxx:770
 AliGeomManager.cxx:771
 AliGeomManager.cxx:772
 AliGeomManager.cxx:773
 AliGeomManager.cxx:774
 AliGeomManager.cxx:775
 AliGeomManager.cxx:776
 AliGeomManager.cxx:777
 AliGeomManager.cxx:778
 AliGeomManager.cxx:779
 AliGeomManager.cxx:780
 AliGeomManager.cxx:781
 AliGeomManager.cxx:782
 AliGeomManager.cxx:783
 AliGeomManager.cxx:784
 AliGeomManager.cxx:785
 AliGeomManager.cxx:786
 AliGeomManager.cxx:787
 AliGeomManager.cxx:788
 AliGeomManager.cxx:789
 AliGeomManager.cxx:790
 AliGeomManager.cxx:791
 AliGeomManager.cxx:792
 AliGeomManager.cxx:793
 AliGeomManager.cxx:794
 AliGeomManager.cxx:795
 AliGeomManager.cxx:796
 AliGeomManager.cxx:797
 AliGeomManager.cxx:798
 AliGeomManager.cxx:799
 AliGeomManager.cxx:800
 AliGeomManager.cxx:801
 AliGeomManager.cxx:802
 AliGeomManager.cxx:803
 AliGeomManager.cxx:804
 AliGeomManager.cxx:805
 AliGeomManager.cxx:806
 AliGeomManager.cxx:807
 AliGeomManager.cxx:808
 AliGeomManager.cxx:809
 AliGeomManager.cxx:810
 AliGeomManager.cxx:811
 AliGeomManager.cxx:812
 AliGeomManager.cxx:813
 AliGeomManager.cxx:814
 AliGeomManager.cxx:815
 AliGeomManager.cxx:816
 AliGeomManager.cxx:817
 AliGeomManager.cxx:818
 AliGeomManager.cxx:819
 AliGeomManager.cxx:820
 AliGeomManager.cxx:821
 AliGeomManager.cxx:822
 AliGeomManager.cxx:823
 AliGeomManager.cxx:824
 AliGeomManager.cxx:825
 AliGeomManager.cxx:826
 AliGeomManager.cxx:827
 AliGeomManager.cxx:828
 AliGeomManager.cxx:829
 AliGeomManager.cxx:830
 AliGeomManager.cxx:831
 AliGeomManager.cxx:832
 AliGeomManager.cxx:833
 AliGeomManager.cxx:834
 AliGeomManager.cxx:835
 AliGeomManager.cxx:836
 AliGeomManager.cxx:837
 AliGeomManager.cxx:838
 AliGeomManager.cxx:839
 AliGeomManager.cxx:840
 AliGeomManager.cxx:841
 AliGeomManager.cxx:842
 AliGeomManager.cxx:843
 AliGeomManager.cxx:844
 AliGeomManager.cxx:845
 AliGeomManager.cxx:846
 AliGeomManager.cxx:847
 AliGeomManager.cxx:848
 AliGeomManager.cxx:849
 AliGeomManager.cxx:850
 AliGeomManager.cxx:851
 AliGeomManager.cxx:852
 AliGeomManager.cxx:853
 AliGeomManager.cxx:854
 AliGeomManager.cxx:855
 AliGeomManager.cxx:856
 AliGeomManager.cxx:857
 AliGeomManager.cxx:858
 AliGeomManager.cxx:859
 AliGeomManager.cxx:860
 AliGeomManager.cxx:861
 AliGeomManager.cxx:862
 AliGeomManager.cxx:863
 AliGeomManager.cxx:864
 AliGeomManager.cxx:865
 AliGeomManager.cxx:866
 AliGeomManager.cxx:867
 AliGeomManager.cxx:868
 AliGeomManager.cxx:869
 AliGeomManager.cxx:870
 AliGeomManager.cxx:871
 AliGeomManager.cxx:872
 AliGeomManager.cxx:873
 AliGeomManager.cxx:874
 AliGeomManager.cxx:875
 AliGeomManager.cxx:876
 AliGeomManager.cxx:877
 AliGeomManager.cxx:878
 AliGeomManager.cxx:879
 AliGeomManager.cxx:880
 AliGeomManager.cxx:881
 AliGeomManager.cxx:882
 AliGeomManager.cxx:883
 AliGeomManager.cxx:884
 AliGeomManager.cxx:885
 AliGeomManager.cxx:886
 AliGeomManager.cxx:887
 AliGeomManager.cxx:888
 AliGeomManager.cxx:889
 AliGeomManager.cxx:890
 AliGeomManager.cxx:891
 AliGeomManager.cxx:892
 AliGeomManager.cxx:893
 AliGeomManager.cxx:894
 AliGeomManager.cxx:895
 AliGeomManager.cxx:896
 AliGeomManager.cxx:897
 AliGeomManager.cxx:898
 AliGeomManager.cxx:899
 AliGeomManager.cxx:900
 AliGeomManager.cxx:901
 AliGeomManager.cxx:902
 AliGeomManager.cxx:903
 AliGeomManager.cxx:904
 AliGeomManager.cxx:905
 AliGeomManager.cxx:906
 AliGeomManager.cxx:907
 AliGeomManager.cxx:908
 AliGeomManager.cxx:909
 AliGeomManager.cxx:910
 AliGeomManager.cxx:911
 AliGeomManager.cxx:912
 AliGeomManager.cxx:913
 AliGeomManager.cxx:914
 AliGeomManager.cxx:915
 AliGeomManager.cxx:916
 AliGeomManager.cxx:917
 AliGeomManager.cxx:918
 AliGeomManager.cxx:919
 AliGeomManager.cxx:920
 AliGeomManager.cxx:921
 AliGeomManager.cxx:922
 AliGeomManager.cxx:923
 AliGeomManager.cxx:924
 AliGeomManager.cxx:925
 AliGeomManager.cxx:926
 AliGeomManager.cxx:927
 AliGeomManager.cxx:928
 AliGeomManager.cxx:929
 AliGeomManager.cxx:930
 AliGeomManager.cxx:931
 AliGeomManager.cxx:932
 AliGeomManager.cxx:933
 AliGeomManager.cxx:934
 AliGeomManager.cxx:935
 AliGeomManager.cxx:936
 AliGeomManager.cxx:937
 AliGeomManager.cxx:938
 AliGeomManager.cxx:939
 AliGeomManager.cxx:940
 AliGeomManager.cxx:941
 AliGeomManager.cxx:942
 AliGeomManager.cxx:943
 AliGeomManager.cxx:944
 AliGeomManager.cxx:945
 AliGeomManager.cxx:946
 AliGeomManager.cxx:947
 AliGeomManager.cxx:948
 AliGeomManager.cxx:949
 AliGeomManager.cxx:950
 AliGeomManager.cxx:951
 AliGeomManager.cxx:952
 AliGeomManager.cxx:953
 AliGeomManager.cxx:954
 AliGeomManager.cxx:955
 AliGeomManager.cxx:956
 AliGeomManager.cxx:957
 AliGeomManager.cxx:958
 AliGeomManager.cxx:959
 AliGeomManager.cxx:960
 AliGeomManager.cxx:961
 AliGeomManager.cxx:962
 AliGeomManager.cxx:963
 AliGeomManager.cxx:964
 AliGeomManager.cxx:965
 AliGeomManager.cxx:966
 AliGeomManager.cxx:967
 AliGeomManager.cxx:968
 AliGeomManager.cxx:969
 AliGeomManager.cxx:970
 AliGeomManager.cxx:971
 AliGeomManager.cxx:972
 AliGeomManager.cxx:973
 AliGeomManager.cxx:974
 AliGeomManager.cxx:975
 AliGeomManager.cxx:976
 AliGeomManager.cxx:977
 AliGeomManager.cxx:978
 AliGeomManager.cxx:979
 AliGeomManager.cxx:980
 AliGeomManager.cxx:981
 AliGeomManager.cxx:982
 AliGeomManager.cxx:983
 AliGeomManager.cxx:984
 AliGeomManager.cxx:985
 AliGeomManager.cxx:986
 AliGeomManager.cxx:987
 AliGeomManager.cxx:988
 AliGeomManager.cxx:989
 AliGeomManager.cxx:990
 AliGeomManager.cxx:991
 AliGeomManager.cxx:992
 AliGeomManager.cxx:993
 AliGeomManager.cxx:994
 AliGeomManager.cxx:995
 AliGeomManager.cxx:996
 AliGeomManager.cxx:997
 AliGeomManager.cxx:998
 AliGeomManager.cxx:999
 AliGeomManager.cxx:1000
 AliGeomManager.cxx:1001
 AliGeomManager.cxx:1002
 AliGeomManager.cxx:1003
 AliGeomManager.cxx:1004
 AliGeomManager.cxx:1005
 AliGeomManager.cxx:1006
 AliGeomManager.cxx:1007
 AliGeomManager.cxx:1008
 AliGeomManager.cxx:1009
 AliGeomManager.cxx:1010
 AliGeomManager.cxx:1011
 AliGeomManager.cxx:1012
 AliGeomManager.cxx:1013
 AliGeomManager.cxx:1014
 AliGeomManager.cxx:1015
 AliGeomManager.cxx:1016
 AliGeomManager.cxx:1017
 AliGeomManager.cxx:1018
 AliGeomManager.cxx:1019
 AliGeomManager.cxx:1020
 AliGeomManager.cxx:1021
 AliGeomManager.cxx:1022
 AliGeomManager.cxx:1023
 AliGeomManager.cxx:1024
 AliGeomManager.cxx:1025
 AliGeomManager.cxx:1026
 AliGeomManager.cxx:1027
 AliGeomManager.cxx:1028
 AliGeomManager.cxx:1029
 AliGeomManager.cxx:1030
 AliGeomManager.cxx:1031
 AliGeomManager.cxx:1032
 AliGeomManager.cxx:1033
 AliGeomManager.cxx:1034
 AliGeomManager.cxx:1035
 AliGeomManager.cxx:1036
 AliGeomManager.cxx:1037
 AliGeomManager.cxx:1038
 AliGeomManager.cxx:1039
 AliGeomManager.cxx:1040
 AliGeomManager.cxx:1041
 AliGeomManager.cxx:1042
 AliGeomManager.cxx:1043
 AliGeomManager.cxx:1044
 AliGeomManager.cxx:1045
 AliGeomManager.cxx:1046
 AliGeomManager.cxx:1047
 AliGeomManager.cxx:1048
 AliGeomManager.cxx:1049
 AliGeomManager.cxx:1050
 AliGeomManager.cxx:1051
 AliGeomManager.cxx:1052
 AliGeomManager.cxx:1053
 AliGeomManager.cxx:1054
 AliGeomManager.cxx:1055
 AliGeomManager.cxx:1056
 AliGeomManager.cxx:1057
 AliGeomManager.cxx:1058
 AliGeomManager.cxx:1059
 AliGeomManager.cxx:1060
 AliGeomManager.cxx:1061
 AliGeomManager.cxx:1062
 AliGeomManager.cxx:1063
 AliGeomManager.cxx:1064
 AliGeomManager.cxx:1065
 AliGeomManager.cxx:1066
 AliGeomManager.cxx:1067
 AliGeomManager.cxx:1068
 AliGeomManager.cxx:1069
 AliGeomManager.cxx:1070
 AliGeomManager.cxx:1071
 AliGeomManager.cxx:1072
 AliGeomManager.cxx:1073
 AliGeomManager.cxx:1074
 AliGeomManager.cxx:1075
 AliGeomManager.cxx:1076
 AliGeomManager.cxx:1077
 AliGeomManager.cxx:1078
 AliGeomManager.cxx:1079
 AliGeomManager.cxx:1080
 AliGeomManager.cxx:1081
 AliGeomManager.cxx:1082
 AliGeomManager.cxx:1083
 AliGeomManager.cxx:1084
 AliGeomManager.cxx:1085
 AliGeomManager.cxx:1086
 AliGeomManager.cxx:1087
 AliGeomManager.cxx:1088
 AliGeomManager.cxx:1089
 AliGeomManager.cxx:1090
 AliGeomManager.cxx:1091
 AliGeomManager.cxx:1092
 AliGeomManager.cxx:1093
 AliGeomManager.cxx:1094
 AliGeomManager.cxx:1095
 AliGeomManager.cxx:1096
 AliGeomManager.cxx:1097
 AliGeomManager.cxx:1098
 AliGeomManager.cxx:1099
 AliGeomManager.cxx:1100
 AliGeomManager.cxx:1101
 AliGeomManager.cxx:1102
 AliGeomManager.cxx:1103
 AliGeomManager.cxx:1104
 AliGeomManager.cxx:1105
 AliGeomManager.cxx:1106
 AliGeomManager.cxx:1107
 AliGeomManager.cxx:1108
 AliGeomManager.cxx:1109
 AliGeomManager.cxx:1110
 AliGeomManager.cxx:1111
 AliGeomManager.cxx:1112
 AliGeomManager.cxx:1113
 AliGeomManager.cxx:1114
 AliGeomManager.cxx:1115
 AliGeomManager.cxx:1116
 AliGeomManager.cxx:1117
 AliGeomManager.cxx:1118
 AliGeomManager.cxx:1119
 AliGeomManager.cxx:1120
 AliGeomManager.cxx:1121
 AliGeomManager.cxx:1122
 AliGeomManager.cxx:1123
 AliGeomManager.cxx:1124
 AliGeomManager.cxx:1125
 AliGeomManager.cxx:1126
 AliGeomManager.cxx:1127
 AliGeomManager.cxx:1128
 AliGeomManager.cxx:1129
 AliGeomManager.cxx:1130
 AliGeomManager.cxx:1131
 AliGeomManager.cxx:1132
 AliGeomManager.cxx:1133
 AliGeomManager.cxx:1134
 AliGeomManager.cxx:1135
 AliGeomManager.cxx:1136
 AliGeomManager.cxx:1137
 AliGeomManager.cxx:1138
 AliGeomManager.cxx:1139
 AliGeomManager.cxx:1140
 AliGeomManager.cxx:1141
 AliGeomManager.cxx:1142
 AliGeomManager.cxx:1143
 AliGeomManager.cxx:1144
 AliGeomManager.cxx:1145
 AliGeomManager.cxx:1146
 AliGeomManager.cxx:1147
 AliGeomManager.cxx:1148
 AliGeomManager.cxx:1149
 AliGeomManager.cxx:1150
 AliGeomManager.cxx:1151
 AliGeomManager.cxx:1152
 AliGeomManager.cxx:1153
 AliGeomManager.cxx:1154
 AliGeomManager.cxx:1155
 AliGeomManager.cxx:1156
 AliGeomManager.cxx:1157
 AliGeomManager.cxx:1158
 AliGeomManager.cxx:1159
 AliGeomManager.cxx:1160
 AliGeomManager.cxx:1161
 AliGeomManager.cxx:1162
 AliGeomManager.cxx:1163
 AliGeomManager.cxx:1164
 AliGeomManager.cxx:1165
 AliGeomManager.cxx:1166
 AliGeomManager.cxx:1167
 AliGeomManager.cxx:1168
 AliGeomManager.cxx:1169
 AliGeomManager.cxx:1170
 AliGeomManager.cxx:1171
 AliGeomManager.cxx:1172
 AliGeomManager.cxx:1173
 AliGeomManager.cxx:1174
 AliGeomManager.cxx:1175
 AliGeomManager.cxx:1176
 AliGeomManager.cxx:1177
 AliGeomManager.cxx:1178
 AliGeomManager.cxx:1179
 AliGeomManager.cxx:1180
 AliGeomManager.cxx:1181
 AliGeomManager.cxx:1182
 AliGeomManager.cxx:1183
 AliGeomManager.cxx:1184
 AliGeomManager.cxx:1185
 AliGeomManager.cxx:1186
 AliGeomManager.cxx:1187
 AliGeomManager.cxx:1188
 AliGeomManager.cxx:1189
 AliGeomManager.cxx:1190
 AliGeomManager.cxx:1191
 AliGeomManager.cxx:1192
 AliGeomManager.cxx:1193
 AliGeomManager.cxx:1194
 AliGeomManager.cxx:1195
 AliGeomManager.cxx:1196
 AliGeomManager.cxx:1197
 AliGeomManager.cxx:1198
 AliGeomManager.cxx:1199
 AliGeomManager.cxx:1200
 AliGeomManager.cxx:1201
 AliGeomManager.cxx:1202
 AliGeomManager.cxx:1203
 AliGeomManager.cxx:1204
 AliGeomManager.cxx:1205
 AliGeomManager.cxx:1206
 AliGeomManager.cxx:1207
 AliGeomManager.cxx:1208
 AliGeomManager.cxx:1209
 AliGeomManager.cxx:1210
 AliGeomManager.cxx:1211
 AliGeomManager.cxx:1212
 AliGeomManager.cxx:1213
 AliGeomManager.cxx:1214
 AliGeomManager.cxx:1215
 AliGeomManager.cxx:1216
 AliGeomManager.cxx:1217
 AliGeomManager.cxx:1218
 AliGeomManager.cxx:1219
 AliGeomManager.cxx:1220
 AliGeomManager.cxx:1221
 AliGeomManager.cxx:1222
 AliGeomManager.cxx:1223
 AliGeomManager.cxx:1224
 AliGeomManager.cxx:1225
 AliGeomManager.cxx:1226
 AliGeomManager.cxx:1227
 AliGeomManager.cxx:1228
 AliGeomManager.cxx:1229
 AliGeomManager.cxx:1230
 AliGeomManager.cxx:1231
 AliGeomManager.cxx:1232
 AliGeomManager.cxx:1233
 AliGeomManager.cxx:1234
 AliGeomManager.cxx:1235
 AliGeomManager.cxx:1236
 AliGeomManager.cxx:1237
 AliGeomManager.cxx:1238
 AliGeomManager.cxx:1239
 AliGeomManager.cxx:1240
 AliGeomManager.cxx:1241
 AliGeomManager.cxx:1242
 AliGeomManager.cxx:1243
 AliGeomManager.cxx:1244
 AliGeomManager.cxx:1245
 AliGeomManager.cxx:1246
 AliGeomManager.cxx:1247
 AliGeomManager.cxx:1248
 AliGeomManager.cxx:1249
 AliGeomManager.cxx:1250
 AliGeomManager.cxx:1251
 AliGeomManager.cxx:1252
 AliGeomManager.cxx:1253
 AliGeomManager.cxx:1254
 AliGeomManager.cxx:1255
 AliGeomManager.cxx:1256
 AliGeomManager.cxx:1257
 AliGeomManager.cxx:1258
 AliGeomManager.cxx:1259
 AliGeomManager.cxx:1260
 AliGeomManager.cxx:1261
 AliGeomManager.cxx:1262
 AliGeomManager.cxx:1263
 AliGeomManager.cxx:1264
 AliGeomManager.cxx:1265
 AliGeomManager.cxx:1266
 AliGeomManager.cxx:1267
 AliGeomManager.cxx:1268
 AliGeomManager.cxx:1269
 AliGeomManager.cxx:1270
 AliGeomManager.cxx:1271
 AliGeomManager.cxx:1272
 AliGeomManager.cxx:1273
 AliGeomManager.cxx:1274
 AliGeomManager.cxx:1275
 AliGeomManager.cxx:1276
 AliGeomManager.cxx:1277
 AliGeomManager.cxx:1278
 AliGeomManager.cxx:1279
 AliGeomManager.cxx:1280
 AliGeomManager.cxx:1281
 AliGeomManager.cxx:1282
 AliGeomManager.cxx:1283
 AliGeomManager.cxx:1284
 AliGeomManager.cxx:1285
 AliGeomManager.cxx:1286
 AliGeomManager.cxx:1287
 AliGeomManager.cxx:1288
 AliGeomManager.cxx:1289
 AliGeomManager.cxx:1290
 AliGeomManager.cxx:1291
 AliGeomManager.cxx:1292
 AliGeomManager.cxx:1293
 AliGeomManager.cxx:1294
 AliGeomManager.cxx:1295
 AliGeomManager.cxx:1296
 AliGeomManager.cxx:1297
 AliGeomManager.cxx:1298
 AliGeomManager.cxx:1299
 AliGeomManager.cxx:1300
 AliGeomManager.cxx:1301
 AliGeomManager.cxx:1302
 AliGeomManager.cxx:1303
 AliGeomManager.cxx:1304
 AliGeomManager.cxx:1305
 AliGeomManager.cxx:1306
 AliGeomManager.cxx:1307
 AliGeomManager.cxx:1308
 AliGeomManager.cxx:1309
 AliGeomManager.cxx:1310
 AliGeomManager.cxx:1311
 AliGeomManager.cxx:1312
 AliGeomManager.cxx:1313
 AliGeomManager.cxx:1314
 AliGeomManager.cxx:1315
 AliGeomManager.cxx:1316
 AliGeomManager.cxx:1317
 AliGeomManager.cxx:1318
 AliGeomManager.cxx:1319
 AliGeomManager.cxx:1320
 AliGeomManager.cxx:1321
 AliGeomManager.cxx:1322
 AliGeomManager.cxx:1323
 AliGeomManager.cxx:1324
 AliGeomManager.cxx:1325
 AliGeomManager.cxx:1326
 AliGeomManager.cxx:1327
 AliGeomManager.cxx:1328
 AliGeomManager.cxx:1329
 AliGeomManager.cxx:1330
 AliGeomManager.cxx:1331
 AliGeomManager.cxx:1332
 AliGeomManager.cxx:1333
 AliGeomManager.cxx:1334
 AliGeomManager.cxx:1335
 AliGeomManager.cxx:1336
 AliGeomManager.cxx:1337
 AliGeomManager.cxx:1338
 AliGeomManager.cxx:1339
 AliGeomManager.cxx:1340
 AliGeomManager.cxx:1341
 AliGeomManager.cxx:1342
 AliGeomManager.cxx:1343
 AliGeomManager.cxx:1344
 AliGeomManager.cxx:1345
 AliGeomManager.cxx:1346
 AliGeomManager.cxx:1347
 AliGeomManager.cxx:1348
 AliGeomManager.cxx:1349
 AliGeomManager.cxx:1350
 AliGeomManager.cxx:1351
 AliGeomManager.cxx:1352
 AliGeomManager.cxx:1353
 AliGeomManager.cxx:1354
 AliGeomManager.cxx:1355
 AliGeomManager.cxx:1356
 AliGeomManager.cxx:1357
 AliGeomManager.cxx:1358
 AliGeomManager.cxx:1359
 AliGeomManager.cxx:1360
 AliGeomManager.cxx:1361
 AliGeomManager.cxx:1362
 AliGeomManager.cxx:1363
 AliGeomManager.cxx:1364
 AliGeomManager.cxx:1365
 AliGeomManager.cxx:1366
 AliGeomManager.cxx:1367
 AliGeomManager.cxx:1368
 AliGeomManager.cxx:1369
 AliGeomManager.cxx:1370
 AliGeomManager.cxx:1371
 AliGeomManager.cxx:1372
 AliGeomManager.cxx:1373
 AliGeomManager.cxx:1374
 AliGeomManager.cxx:1375
 AliGeomManager.cxx:1376
 AliGeomManager.cxx:1377
 AliGeomManager.cxx:1378
 AliGeomManager.cxx:1379
 AliGeomManager.cxx:1380
 AliGeomManager.cxx:1381
 AliGeomManager.cxx:1382
 AliGeomManager.cxx:1383
 AliGeomManager.cxx:1384
 AliGeomManager.cxx:1385
 AliGeomManager.cxx:1386
 AliGeomManager.cxx:1387
 AliGeomManager.cxx:1388
 AliGeomManager.cxx:1389
 AliGeomManager.cxx:1390
 AliGeomManager.cxx:1391
 AliGeomManager.cxx:1392
 AliGeomManager.cxx:1393
 AliGeomManager.cxx:1394
 AliGeomManager.cxx:1395
 AliGeomManager.cxx:1396
 AliGeomManager.cxx:1397
 AliGeomManager.cxx:1398
 AliGeomManager.cxx:1399
 AliGeomManager.cxx:1400
 AliGeomManager.cxx:1401
 AliGeomManager.cxx:1402
 AliGeomManager.cxx:1403
 AliGeomManager.cxx:1404
 AliGeomManager.cxx:1405
 AliGeomManager.cxx:1406
 AliGeomManager.cxx:1407
 AliGeomManager.cxx:1408
 AliGeomManager.cxx:1409
 AliGeomManager.cxx:1410
 AliGeomManager.cxx:1411
 AliGeomManager.cxx:1412
 AliGeomManager.cxx:1413
 AliGeomManager.cxx:1414
 AliGeomManager.cxx:1415
 AliGeomManager.cxx:1416
 AliGeomManager.cxx:1417
 AliGeomManager.cxx:1418
 AliGeomManager.cxx:1419
 AliGeomManager.cxx:1420
 AliGeomManager.cxx:1421
 AliGeomManager.cxx:1422
 AliGeomManager.cxx:1423
 AliGeomManager.cxx:1424
 AliGeomManager.cxx:1425
 AliGeomManager.cxx:1426
 AliGeomManager.cxx:1427
 AliGeomManager.cxx:1428
 AliGeomManager.cxx:1429
 AliGeomManager.cxx:1430
 AliGeomManager.cxx:1431
 AliGeomManager.cxx:1432
 AliGeomManager.cxx:1433
 AliGeomManager.cxx:1434
 AliGeomManager.cxx:1435
 AliGeomManager.cxx:1436
 AliGeomManager.cxx:1437
 AliGeomManager.cxx:1438
 AliGeomManager.cxx:1439
 AliGeomManager.cxx:1440
 AliGeomManager.cxx:1441
 AliGeomManager.cxx:1442
 AliGeomManager.cxx:1443
 AliGeomManager.cxx:1444
 AliGeomManager.cxx:1445
 AliGeomManager.cxx:1446
 AliGeomManager.cxx:1447
 AliGeomManager.cxx:1448
 AliGeomManager.cxx:1449
 AliGeomManager.cxx:1450
 AliGeomManager.cxx:1451
 AliGeomManager.cxx:1452
 AliGeomManager.cxx:1453
 AliGeomManager.cxx:1454
 AliGeomManager.cxx:1455
 AliGeomManager.cxx:1456
 AliGeomManager.cxx:1457
 AliGeomManager.cxx:1458
 AliGeomManager.cxx:1459
 AliGeomManager.cxx:1460
 AliGeomManager.cxx:1461
 AliGeomManager.cxx:1462
 AliGeomManager.cxx:1463
 AliGeomManager.cxx:1464
 AliGeomManager.cxx:1465
 AliGeomManager.cxx:1466
 AliGeomManager.cxx:1467
 AliGeomManager.cxx:1468
 AliGeomManager.cxx:1469
 AliGeomManager.cxx:1470
 AliGeomManager.cxx:1471
 AliGeomManager.cxx:1472
 AliGeomManager.cxx:1473
 AliGeomManager.cxx:1474
 AliGeomManager.cxx:1475
 AliGeomManager.cxx:1476
 AliGeomManager.cxx:1477
 AliGeomManager.cxx:1478
 AliGeomManager.cxx:1479
 AliGeomManager.cxx:1480
 AliGeomManager.cxx:1481
 AliGeomManager.cxx:1482
 AliGeomManager.cxx:1483
 AliGeomManager.cxx:1484
 AliGeomManager.cxx:1485
 AliGeomManager.cxx:1486
 AliGeomManager.cxx:1487
 AliGeomManager.cxx:1488
 AliGeomManager.cxx:1489
 AliGeomManager.cxx:1490
 AliGeomManager.cxx:1491
 AliGeomManager.cxx:1492
 AliGeomManager.cxx:1493
 AliGeomManager.cxx:1494
 AliGeomManager.cxx:1495
 AliGeomManager.cxx:1496
 AliGeomManager.cxx:1497
 AliGeomManager.cxx:1498
 AliGeomManager.cxx:1499
 AliGeomManager.cxx:1500
 AliGeomManager.cxx:1501
 AliGeomManager.cxx:1502
 AliGeomManager.cxx:1503
 AliGeomManager.cxx:1504
 AliGeomManager.cxx:1505
 AliGeomManager.cxx:1506
 AliGeomManager.cxx:1507
 AliGeomManager.cxx:1508
 AliGeomManager.cxx:1509
 AliGeomManager.cxx:1510
 AliGeomManager.cxx:1511
 AliGeomManager.cxx:1512
 AliGeomManager.cxx:1513
 AliGeomManager.cxx:1514
 AliGeomManager.cxx:1515
 AliGeomManager.cxx:1516
 AliGeomManager.cxx:1517
 AliGeomManager.cxx:1518
 AliGeomManager.cxx:1519
 AliGeomManager.cxx:1520
 AliGeomManager.cxx:1521
 AliGeomManager.cxx:1522
 AliGeomManager.cxx:1523
 AliGeomManager.cxx:1524
 AliGeomManager.cxx:1525
 AliGeomManager.cxx:1526
 AliGeomManager.cxx:1527
 AliGeomManager.cxx:1528
 AliGeomManager.cxx:1529
 AliGeomManager.cxx:1530
 AliGeomManager.cxx:1531
 AliGeomManager.cxx:1532
 AliGeomManager.cxx:1533
 AliGeomManager.cxx:1534
 AliGeomManager.cxx:1535
 AliGeomManager.cxx:1536
 AliGeomManager.cxx:1537
 AliGeomManager.cxx:1538
 AliGeomManager.cxx:1539
 AliGeomManager.cxx:1540
 AliGeomManager.cxx:1541
 AliGeomManager.cxx:1542
 AliGeomManager.cxx:1543
 AliGeomManager.cxx:1544
 AliGeomManager.cxx:1545
 AliGeomManager.cxx:1546
 AliGeomManager.cxx:1547
 AliGeomManager.cxx:1548
 AliGeomManager.cxx:1549
 AliGeomManager.cxx:1550
 AliGeomManager.cxx:1551
 AliGeomManager.cxx:1552
 AliGeomManager.cxx:1553
 AliGeomManager.cxx:1554
 AliGeomManager.cxx:1555
 AliGeomManager.cxx:1556
 AliGeomManager.cxx:1557
 AliGeomManager.cxx:1558
 AliGeomManager.cxx:1559
 AliGeomManager.cxx:1560
 AliGeomManager.cxx:1561
 AliGeomManager.cxx:1562
 AliGeomManager.cxx:1563
 AliGeomManager.cxx:1564
 AliGeomManager.cxx:1565
 AliGeomManager.cxx:1566
 AliGeomManager.cxx:1567
 AliGeomManager.cxx:1568
 AliGeomManager.cxx:1569
 AliGeomManager.cxx:1570
 AliGeomManager.cxx:1571
 AliGeomManager.cxx:1572
 AliGeomManager.cxx:1573
 AliGeomManager.cxx:1574
 AliGeomManager.cxx:1575
 AliGeomManager.cxx:1576
 AliGeomManager.cxx:1577
 AliGeomManager.cxx:1578
 AliGeomManager.cxx:1579
 AliGeomManager.cxx:1580
 AliGeomManager.cxx:1581
 AliGeomManager.cxx:1582
 AliGeomManager.cxx:1583
 AliGeomManager.cxx:1584
 AliGeomManager.cxx:1585
 AliGeomManager.cxx:1586
 AliGeomManager.cxx:1587
 AliGeomManager.cxx:1588
 AliGeomManager.cxx:1589
 AliGeomManager.cxx:1590
 AliGeomManager.cxx:1591
 AliGeomManager.cxx:1592
 AliGeomManager.cxx:1593
 AliGeomManager.cxx:1594
 AliGeomManager.cxx:1595
 AliGeomManager.cxx:1596
 AliGeomManager.cxx:1597
 AliGeomManager.cxx:1598
 AliGeomManager.cxx:1599
 AliGeomManager.cxx:1600
 AliGeomManager.cxx:1601
 AliGeomManager.cxx:1602
 AliGeomManager.cxx:1603
 AliGeomManager.cxx:1604
 AliGeomManager.cxx:1605
 AliGeomManager.cxx:1606
 AliGeomManager.cxx:1607
 AliGeomManager.cxx:1608
 AliGeomManager.cxx:1609
 AliGeomManager.cxx:1610
 AliGeomManager.cxx:1611
 AliGeomManager.cxx:1612
 AliGeomManager.cxx:1613
 AliGeomManager.cxx:1614
 AliGeomManager.cxx:1615
 AliGeomManager.cxx:1616
 AliGeomManager.cxx:1617
 AliGeomManager.cxx:1618
 AliGeomManager.cxx:1619
 AliGeomManager.cxx:1620
 AliGeomManager.cxx:1621
 AliGeomManager.cxx:1622
 AliGeomManager.cxx:1623
 AliGeomManager.cxx:1624
 AliGeomManager.cxx:1625
 AliGeomManager.cxx:1626
 AliGeomManager.cxx:1627
 AliGeomManager.cxx:1628
 AliGeomManager.cxx:1629
 AliGeomManager.cxx:1630
 AliGeomManager.cxx:1631
 AliGeomManager.cxx:1632
 AliGeomManager.cxx:1633
 AliGeomManager.cxx:1634
 AliGeomManager.cxx:1635
 AliGeomManager.cxx:1636
 AliGeomManager.cxx:1637
 AliGeomManager.cxx:1638
 AliGeomManager.cxx:1639
 AliGeomManager.cxx:1640
 AliGeomManager.cxx:1641
 AliGeomManager.cxx:1642
 AliGeomManager.cxx:1643
 AliGeomManager.cxx:1644
 AliGeomManager.cxx:1645
 AliGeomManager.cxx:1646
 AliGeomManager.cxx:1647
 AliGeomManager.cxx:1648
 AliGeomManager.cxx:1649
 AliGeomManager.cxx:1650
 AliGeomManager.cxx:1651
 AliGeomManager.cxx:1652
 AliGeomManager.cxx:1653
 AliGeomManager.cxx:1654
 AliGeomManager.cxx:1655
 AliGeomManager.cxx:1656
 AliGeomManager.cxx:1657
 AliGeomManager.cxx:1658
 AliGeomManager.cxx:1659
 AliGeomManager.cxx:1660
 AliGeomManager.cxx:1661
 AliGeomManager.cxx:1662
 AliGeomManager.cxx:1663
 AliGeomManager.cxx:1664
 AliGeomManager.cxx:1665
 AliGeomManager.cxx:1666
 AliGeomManager.cxx:1667
 AliGeomManager.cxx:1668
 AliGeomManager.cxx:1669
 AliGeomManager.cxx:1670
 AliGeomManager.cxx:1671
 AliGeomManager.cxx:1672
 AliGeomManager.cxx:1673
 AliGeomManager.cxx:1674
 AliGeomManager.cxx:1675
 AliGeomManager.cxx:1676
 AliGeomManager.cxx:1677
 AliGeomManager.cxx:1678
 AliGeomManager.cxx:1679
 AliGeomManager.cxx:1680
 AliGeomManager.cxx:1681
 AliGeomManager.cxx:1682
 AliGeomManager.cxx:1683
 AliGeomManager.cxx:1684
 AliGeomManager.cxx:1685
 AliGeomManager.cxx:1686
 AliGeomManager.cxx:1687
 AliGeomManager.cxx:1688
 AliGeomManager.cxx:1689
 AliGeomManager.cxx:1690
 AliGeomManager.cxx:1691
 AliGeomManager.cxx:1692
 AliGeomManager.cxx:1693
 AliGeomManager.cxx:1694
 AliGeomManager.cxx:1695
 AliGeomManager.cxx:1696
 AliGeomManager.cxx:1697
 AliGeomManager.cxx:1698
 AliGeomManager.cxx:1699
 AliGeomManager.cxx:1700
 AliGeomManager.cxx:1701
 AliGeomManager.cxx:1702
 AliGeomManager.cxx:1703
 AliGeomManager.cxx:1704
 AliGeomManager.cxx:1705
 AliGeomManager.cxx:1706
 AliGeomManager.cxx:1707
 AliGeomManager.cxx:1708
 AliGeomManager.cxx:1709
 AliGeomManager.cxx:1710
 AliGeomManager.cxx:1711
 AliGeomManager.cxx:1712
 AliGeomManager.cxx:1713
 AliGeomManager.cxx:1714
 AliGeomManager.cxx:1715
 AliGeomManager.cxx:1716
 AliGeomManager.cxx:1717
 AliGeomManager.cxx:1718
 AliGeomManager.cxx:1719
 AliGeomManager.cxx:1720
 AliGeomManager.cxx:1721
 AliGeomManager.cxx:1722
 AliGeomManager.cxx:1723
 AliGeomManager.cxx:1724
 AliGeomManager.cxx:1725
 AliGeomManager.cxx:1726
 AliGeomManager.cxx:1727
 AliGeomManager.cxx:1728
 AliGeomManager.cxx:1729
 AliGeomManager.cxx:1730
 AliGeomManager.cxx:1731
 AliGeomManager.cxx:1732
 AliGeomManager.cxx:1733
 AliGeomManager.cxx:1734
 AliGeomManager.cxx:1735
 AliGeomManager.cxx:1736
 AliGeomManager.cxx:1737
 AliGeomManager.cxx:1738
 AliGeomManager.cxx:1739
 AliGeomManager.cxx:1740
 AliGeomManager.cxx:1741
 AliGeomManager.cxx:1742
 AliGeomManager.cxx:1743
 AliGeomManager.cxx:1744
 AliGeomManager.cxx:1745
 AliGeomManager.cxx:1746
 AliGeomManager.cxx:1747
 AliGeomManager.cxx:1748
 AliGeomManager.cxx:1749
 AliGeomManager.cxx:1750
 AliGeomManager.cxx:1751
 AliGeomManager.cxx:1752
 AliGeomManager.cxx:1753
 AliGeomManager.cxx:1754
 AliGeomManager.cxx:1755
 AliGeomManager.cxx:1756
 AliGeomManager.cxx:1757
 AliGeomManager.cxx:1758
 AliGeomManager.cxx:1759
 AliGeomManager.cxx:1760
 AliGeomManager.cxx:1761
 AliGeomManager.cxx:1762
 AliGeomManager.cxx:1763
 AliGeomManager.cxx:1764
 AliGeomManager.cxx:1765
 AliGeomManager.cxx:1766
 AliGeomManager.cxx:1767
 AliGeomManager.cxx:1768
 AliGeomManager.cxx:1769
 AliGeomManager.cxx:1770
 AliGeomManager.cxx:1771
 AliGeomManager.cxx:1772
 AliGeomManager.cxx:1773
 AliGeomManager.cxx:1774
 AliGeomManager.cxx:1775
 AliGeomManager.cxx:1776
 AliGeomManager.cxx:1777
 AliGeomManager.cxx:1778
 AliGeomManager.cxx:1779
 AliGeomManager.cxx:1780
 AliGeomManager.cxx:1781
 AliGeomManager.cxx:1782
 AliGeomManager.cxx:1783
 AliGeomManager.cxx:1784
 AliGeomManager.cxx:1785
 AliGeomManager.cxx:1786
 AliGeomManager.cxx:1787
 AliGeomManager.cxx:1788
 AliGeomManager.cxx:1789
 AliGeomManager.cxx:1790
 AliGeomManager.cxx:1791
 AliGeomManager.cxx:1792
 AliGeomManager.cxx:1793
 AliGeomManager.cxx:1794
 AliGeomManager.cxx:1795
 AliGeomManager.cxx:1796
 AliGeomManager.cxx:1797
 AliGeomManager.cxx:1798
 AliGeomManager.cxx:1799