ROOT logo
AliRoot » ITS » UPGRADE » AliITSUGeomTGeo

class AliITSUGeomTGeo: public TObject

AliITSUGeomTGeo is a simple interface class to TGeoManager
It is used in the simulation and reconstruction in order to
query the TGeo ITS geometry

author - cvetan.cheshkov@cern.ch
15/02/2007
adapted to ITSupg 18/07/2012 - ruben.shahoyan@cern.ch

ATTENTION: In opposite to ols AliITSgeomTGeo, all indices start
from 0, not from 1!!!


Function Members (Methods)

public:
AliITSUGeomTGeo(const AliITSUGeomTGeo& src)
AliITSUGeomTGeo(Bool_t build = kFALSE, Bool_t loadSegmentations = kTRUE)
virtual~AliITSUGeomTGeo()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static Int_tChipVolUID(Int_t mod)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
static UInt_tComposeChipTypeID(UInt_t segmId)
static const char*ComposeSymNameChip(Int_t lr, Int_t sta, Int_t ssta, Int_t mod, Int_t chip)
static const char*ComposeSymNameHalfStave(Int_t lr, Int_t sta, Int_t ssta)
static const char*ComposeSymNameITS()
static const char*ComposeSymNameLayer(Int_t lr)
static const char*ComposeSymNameModule(Int_t lr, Int_t sta, Int_t ssta, Int_t mod)
static const char*ComposeSymNameStave(Int_t lr, Int_t sta)
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tGetChipChipTypeID(Int_t id) const
Bool_tGetChipId(Int_t index, Int_t& lay, Int_t& sta, Int_t& ssta, Int_t& mod, Int_t& chip) const
Int_tGetChipIdInHalfStave(Int_t index) const
Int_tGetChipIdInLayer(Int_t index) const
Int_tGetChipIdInModule(Int_t index) const
Int_tGetChipIdInStave(Int_t index) const
Int_tGetChipIndex(Int_t lay, int detInLay) const
Int_tGetChipIndex(Int_t lay, Int_t sta, Int_t detInSta) const
Int_tGetChipIndex(Int_t lay, Int_t sta, Int_t subSta, Int_t detInSubSta) const
Int_tGetChipIndex(Int_t lay, Int_t sta, Int_t subSta, Int_t md, Int_t detInMod) const
static const char*GetChipTypeName(Int_t i)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tGetFirstChipIndex(Int_t lay) const
Int_tGetHalfStave(Int_t index) const
virtual const char*TObject::GetIconName() const
static const char*GetITSChipPattern()
static const char*GetITSHalfStavePattern()
static const char*GetITSLayerPattern()
static const char*GetITSModulePattern()
static const char*GetITSsegmentationFileName()
static const char*GetITSSensorPattern()
static const char*GetITSStavePattern()
static const char*GetITSVolPattern()
static const char*GetITSWrapVolPattern()
Int_tGetLastChipIndex(Int_t lay) const
Int_tGetLayer(Int_t index) const
Int_tGetLayerChipTypeID(Int_t lr) const
TGeoHMatrix*GetMatrix(Int_t index) const
TGeoHMatrix*GetMatrix(Int_t lay, Int_t sta, Int_t det) const
const TGeoHMatrix*GetMatrixSens(Int_t index)
const TGeoHMatrix*GetMatrixSens(Int_t lay, Int_t sta, Int_t det)
const TGeoHMatrix*GetMatrixT2L(Int_t index)
const TGeoHMatrix*GetMatrixT2L(Int_t lay, Int_t sta, Int_t det)
Int_tGetModule(Int_t index) const
virtual const char*TObject::GetName() const
Int_tGetNChipColsPerModule(Int_t lay) const
Int_tGetNChipRowsPerModule(Int_t lay) const
Int_tGetNChips() const
Int_tGetNChipsPerHalfStave(Int_t lay) const
Int_tGetNChipsPerLayer(Int_t lay) const
Int_tGetNChipsPerModule(Int_t lay) const
Int_tGetNChipsPerStave(Int_t lay) const
Int_tGetNHalfStaves(Int_t lay) const
Int_tGetNLayers() const
Int_tGetNModules(Int_t lay) const
Int_tGetNStaves(Int_t lay) const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Bool_tGetOrigMatrix(Int_t index, TGeoHMatrix& m) const
Bool_tGetOrigMatrix(Int_t lay, Int_t sta, Int_t det, TGeoHMatrix& m) const
Bool_tGetOrigRotation(Int_t index, Double_t* r) const
Bool_tGetOrigRotation(Int_t lay, Int_t sta, Int_t det, Double_t* r) const
Bool_tGetOrigTranslation(Int_t index, Double_t* t) const
Bool_tGetOrigTranslation(Int_t lay, Int_t sta, Int_t det, Double_t* t) const
Bool_tGetRotation(Int_t index, Double_t* r) const
Bool_tGetRotation(Int_t lay, Int_t sta, Int_t det, Double_t* r) const
const AliITSsegmentation*GetSegmentation(Int_t lr) const
const AliITSsegmentation*GetSegmentationByID(Int_t id) const
TObjArray*GetSegmentations() const
Int_tGetStave(Int_t index) const
const char*GetSymName(Int_t index) const
const char*GetSymName(Int_t lay, Int_t sta, Int_t det) const
virtual const char*TObject::GetTitle() const
Bool_tGetTrackingMatrix(Int_t index, TGeoHMatrix& m)
Bool_tGetTrackingMatrix(Int_t lay, Int_t sta, Int_t det, TGeoHMatrix& m)
Bool_tGetTranslation(Int_t index, Double_t* t) const
Bool_tGetTranslation(Int_t lay, Int_t sta, Int_t det, Double_t* t) const
static UInt_tGetUIDShift()
virtual UInt_tTObject::GetUniqueID() const
voidGlobalToLocal(Int_t index, const Double_t* glob, Double_t* loc)
voidGlobalToLocal(Int_t lay, Int_t sta, Int_t det, const Double_t* glob, Double_t* loc)
voidGlobalToLocalVect(Int_t index, const Double_t* glob, Double_t* loc)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
Int_tLayerToVolUID(Int_t lay, int detInLay) const
voidLocalToGlobal(Int_t index, const Double_t* loc, Double_t* glob)
voidLocalToGlobal(Int_t lay, Int_t sta, Int_t det, const Double_t* loc, Double_t* glob)
voidLocalToGlobalVect(Int_t index, const Double_t* loc, Double_t* glob)
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliITSUGeomTGeo&operator=(const AliITSUGeomTGeo& geom)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
static voidSetChipTypeName(Int_t i, const char* nm)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidSetITSChipPattern(const char* nm)
static voidSetITSHalfStavePattern(const char* nm)
static voidSetITSLayerPattern(const char* nm)
static voidSetITSModulePattern(const char* nm)
static voidSetITSsegmentationFileName(const char* nm)
static voidSetITSSensorPattern(const char* nm)
static voidSetITSStavePattern(const char* nm)
static voidSetITSVolPattern(const char* nm)
static voidSetITSWrapVolPattern(const char* nm)
static voidTObject::SetObjectStat(Bool_t stat)
static voidSetUIDShift(UInt_t s = 16)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
voidBuildITS(Bool_t loadSegm)
voidCreateT2LMatrices()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Int_tExtractLayerChipType(Int_t lay) const
TGeoHMatrix*ExtractMatrixSens(Int_t index) const
TGeoHMatrix*ExtractMatrixT2L(Int_t index) const
Int_tExtractNChipsPerModule(Int_t lay, Int_t& nrow) const
Int_tExtractNumberOfHalfStaves(Int_t lay) const
Int_tExtractNumberOfLayers()
Int_tExtractNumberOfModules(Int_t lay) const
Int_tExtractNumberOfStaves(Int_t lay) const
Int_tExtractVolumeCopy(const char* name, const char* prefix) const
voidFetchMatrices()
Bool_tGetLayer(Int_t index, Int_t& lay, Int_t& index2) const
TGeoPNEntry*GetPNEntry(Int_t index) const
voidTObject::MakeZombie()

Data Members

public:
enum { kITSVNA
kITSVUpg
kChipTypePix
kNChipTypes
kMaxSegmPerChipType
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_t*fLastChipIndex[fNLayers] max ID of the detctor in the layer
Char_tfLr2Wrapper[15]layer -> wrapper correspondence
Int_t*fLrChipType[fNLayers] Array of layer chip types
TObjArray*fMatSensSensor's matrices pointers in the geometry
TObjArray*fMatT2LTracking to Local matrices pointers in the geometry
Int_t*fNChipRowsPerModule[fNLayers] Array of the number of chips rows per module (relevant for OB modules)
Int_tfNChipsThe total number of chips
Int_t*fNChipsPerHalfStave[fNLayers] Array of the number of chips per substave
Int_t*fNChipsPerLayer[fNLayers] Array of the number of chips per stave
Int_t*fNChipsPerModule[fNLayers] Array of the number of chips per module (group of chips on the substaves)
Int_t*fNChipsPerStave[fNLayers] Array of the number of chips per stave
Int_t*fNHalfStaves[fNLayers] Array of the number of substaves/stave(layer)
Int_tfNLayersnumber of layers
Int_t*fNModules[fNLayers] Array of the number of modules/substave(layer)
Int_t*fNStaves[fNLayers] Array of the number of staves/layer(layer)
TObjArray*fSegmsegmentations
Int_tfVersionITS Version
static TStringfgITSChipNameITS Chip name
static TStringfgITSChipTypeName[1]ITS upg detType Names
static TStringfgITSHalfStaveNameITS HalfStave name
static TStringfgITSLrNameITS Layer name
static TStringfgITSModuleNameITS Module name
static TStringfgITSSensNameITS Sensor name
static TStringfgITSStaveNameITS Stave name
static TStringfgITSVolNameITS mother volume name
static TStringfgITSWrapVolNameITS Wrapper volume name
static TStringfgITSsegmFileNamefile name for segmentations
static UInt_tfgUIDShiftbit shift to go from mod.id to modUUID for TGeo

Class Charts

Inheritance Chart:
TObject
AliITSUGeomTGeo

Function documentation

AliITSUGeomTGeo(Bool_t build = kFALSE, Bool_t loadSegmentations = kTRUE)
 default c-tor
AliITSUGeomTGeo(const AliITSUGeomTGeo& src)
 copy c-tor
~AliITSUGeomTGeo()
d-tor
AliITSUGeomTGeo& operator=(const AliITSUGeomTGeo& geom)
 cp op.
Int_t GetChipIndex(Int_t lay, Int_t sta, Int_t detInSta) const
 This routine computes the chip index number from the layer,
 stave, and chip number in stave.
 Inputs:
    Int_t lay  The layer number. Starting from 0.
    Int_t sta  The stave number. Starting from 0
    Int_t chipInStave  The chip number in the stave. Starting from 0

Int_t GetChipIndex(Int_t lay, Int_t sta, Int_t subSta, Int_t detInSubSta) const
 This routine computes the chip index number from the layer,
 stave, substave and chip number in substave.
 Inputs:
    Int_t lay  The layer number. Starting from 0.
    Int_t sta  The stave number. Starting from 0
    Int_t substa  The substave number. Starting from 0
    Int_t chipInSStave  The chip number in the sub stave. Starting from 0

Int_t GetChipIndex(Int_t lay, Int_t sta, Int_t subSta, Int_t md, Int_t detInMod) const
 This routine computes the chip index number from the layer,
 stave, substave module and chip number in module.
 Inputs:
    Int_t lay  The layer number. Starting from 0.
    Int_t sta  The stave number. Starting from 0
    Int_t substa  The substave number. Starting from 0
    Int_t module  The module number ...
    Int_t chipInSStave  The chip number in the module. Starting from 0

Bool_t GetLayer(Int_t index, Int_t& lay, Int_t& index2) const
 This routine computes the layer number a
 given the chip index. The
 Inputs:
     Int_t index  The chip index number, starting from zero.
 Outputs:
     Int_t indexInLr The chip index inside a layer, starting from zero.
     Int_t lay    The layer number. Starting from 0.

Int_t GetLayer(Int_t index) const
 Get chip layer, from 0

Int_t GetStave(Int_t index) const
 Get chip stave, from 0

Int_t GetHalfStave(Int_t index) const
 Get chip substave id in stave, from 0

Int_t GetModule(Int_t index) const
 Get chip module id in substave, from 0

Int_t GetChipIdInLayer(Int_t index) const
 Get chip number within layer, from 0

Int_t GetChipIdInStave(Int_t index) const
 Get chip number within stave, from 0

Int_t GetChipIdInHalfStave(Int_t index) const
 Get chip number within stave, from 0

Int_t GetChipIdInModule(Int_t index) const
 Get chip number within module, from 0

Bool_t GetChipId(Int_t index, Int_t& lay, Int_t& sta, Int_t& ssta, Int_t& mod, Int_t& chip) const
 This routine computes the layer, stave, substave, module and chip number
 given the chip index number.
 Inputs:
     Int_t index  The chip index number, starting from zero.
 Outputs:
     Int_t lay    The layer number. Starting from 0
     Int_t sta    The stave number. Starting from 0
     Int_t ssta   The halfstave number. Starting from 0
     Int_t mod    The module number. Starting from 0
     Int_t chip   The detector number. Starting from 0

const char* GetSymName(Int_t index) const
 Get the TGeoPNEntry symbolic name
 for a given chip identified by 'index'

const char* ComposeSymNameITS()
 sym name of the layer
const char* ComposeSymNameLayer(Int_t lr)
 sym name of the layer
const char* ComposeSymNameStave(Int_t lr, Int_t sta)
 sym name of the stave at given layer
const char* ComposeSymNameHalfStave(Int_t lr, Int_t sta, Int_t ssta)
 sym name of the stave at given layer
const char* ComposeSymNameModule(Int_t lr, Int_t sta, Int_t ssta, Int_t mod)
 sym name of the substave at given layer/stave
const char* ComposeSymNameChip(Int_t lr, Int_t sta, Int_t ssta, Int_t mod, Int_t chip)
 sym name of the chip in the given layer/stave/substave/module
TGeoHMatrix* GetMatrix(Int_t index) const
 Get the transformation matrix for a given chip 'index'
 by quering the TGeoManager
Bool_t GetTranslation(Int_t index, Double_t* t) const
 Get the translation vector for a given chip 'index'
 by quering the TGeoManager
Bool_t GetRotation(Int_t index, Double_t* r) const
 Get the rotation matrix for a given chip 'index'
 by quering the TGeoManager
Bool_t GetOrigMatrix(Int_t index, TGeoHMatrix& m) const
 Get the original (ideal geometry) TGeo matrix for
 a given chip identified by 'index'.
 The method is slow, so it should be used
 with great care.
Bool_t GetOrigTranslation(Int_t index, Double_t* t) const
 Get the original translation vector (ideal geometry)
 for a given chip 'index' by quering the TGeoManager
Bool_t GetOrigRotation(Int_t index, Double_t* r) const
 Get the original rotation matrix (ideal geometry)
 for a given chip 'index' by quering the TGeoManager
TGeoHMatrix* ExtractMatrixT2L(Int_t index) const
 Get the matrix which transforms from the tracking to local r.s.
 The method queries directly the TGeoPNEntry
Bool_t 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.
TGeoHMatrix* ExtractMatrixSens(Int_t index) const
 Get the transformation matrix of the SENSOR (not necessary the same as the chip)
 for a given chip 'index' by quering the TGeoManager
TGeoPNEntry* GetPNEntry(Int_t index) const
 Get a pointer to the TGeoPNEntry of a chip
 identified by 'index'
 Returns NULL in case of invalid index,
 missing TGeoManager or invalid symbolic name

void BuildITS(Bool_t loadSegm)
 exract upg ITS parameters from TGeo
Int_t ExtractNumberOfLayers()
 Determines the number of layers in the Upgrade Geometry

Int_t ExtractNumberOfStaves(Int_t lay) const
 Determines the number of layers in the Upgrade Geometry

 Inputs:
   lay: layer number, starting from 0

 MS
Int_t ExtractNumberOfHalfStaves(Int_t lay) const
 Determines the number of substaves in the stave of the layer

 Inputs:
   lay: layer number, starting from 0

 MS
Int_t ExtractNumberOfModules(Int_t lay) const
 Determines the number of modules in substave in the stave of the layer

 Inputs:
   lay: layer number, starting from 0

 for the setup w/o modules defined the module and the stave or the substave is the same thing
Int_t ExtractNChipsPerModule(Int_t lay, Int_t& nrow) const
 Determines the number of chips per module on the (sub)stave in the Upgrade Geometry
 Also extract the layout: span of module centers in Z and X
 Inputs:
   lay: layer number from 0
 MS
Int_t ExtractLayerChipType(Int_t lay) const
 Determines the layer detector type the Upgrade Geometry

 Inputs:
   lay: layer number from 0
 Outputs:
   none
 Return:
   detector type id for the layer
 MS
UInt_t ComposeChipTypeID(UInt_t segmId)
void Print(Option_t* opt = "") const
 print
void FetchMatrices()
 store pointer on often used matrices for faster access
void CreateT2LMatrices()
 create tracking to local (Sensor!) matrices
Int_t ExtractVolumeCopy(const char* name, const char* prefix) const
 extract Number following the prefix in the name string
const char * GetSymName(Int_t lay, Int_t sta, Int_t det) const
TGeoHMatrix* GetMatrix(Int_t lay, Int_t sta, Int_t det) const
Bool_t GetTranslation(Int_t lay, Int_t sta, Int_t det, Double_t* t) const
Bool_t GetRotation(Int_t lay, Int_t sta, Int_t det, Double_t* r) const
Bool_t GetOrigMatrix(Int_t lay, Int_t sta, Int_t det, TGeoHMatrix& m) const
Bool_t GetOrigTranslation(Int_t lay, Int_t sta, Int_t det, Double_t* t) const
Bool_t GetOrigRotation(Int_t lay, Int_t sta, Int_t det, Double_t* r) const
Bool_t GetTrackingMatrix(Int_t lay, Int_t sta, Int_t det, TGeoHMatrix& m)
Int_t GetLayerChipTypeID(Int_t lr) const
Int_t GetChipChipTypeID(Int_t id) const
const TGeoHMatrix* GetMatrixSens(Int_t index)
const TGeoHMatrix* GetMatrixT2L(Int_t index)
void LocalToGlobal(Int_t index, const Double_t* loc, Double_t* glob)
void GlobalToLocal(Int_t index, const Double_t* glob, Double_t* loc)
void LocalToGlobalVect(Int_t index, const Double_t* loc, Double_t* glob)
void GlobalToLocalVect(Int_t index, const Double_t* glob, Double_t* loc)
void LocalToGlobal(Int_t lay, Int_t sta, Int_t det, const Double_t* loc, Double_t* glob)
void GlobalToLocal(Int_t lay, Int_t sta, Int_t det, const Double_t* glob, Double_t* loc)
const char* GetChipTypeName(Int_t i)
void SetChipTypeName(Int_t i, const char* nm)
const AliITSsegmentation* GetSegmentationByID(Int_t id) const
const AliITSsegmentation* GetSegmentation(Int_t lr) const
Int_t GetNChips() const
{return fNChips;}
Int_t GetNChipRowsPerModule(Int_t lay) const
{return fNChipRowsPerModule[lay];}
Int_t GetNChipColsPerModule(Int_t lay) const
Int_t GetNChipsPerModule(Int_t lay) const
{return fNChipsPerModule[lay];}
Int_t GetNChipsPerHalfStave(Int_t lay) const
{return fNChipsPerHalfStave[lay];}
Int_t GetNChipsPerStave(Int_t lay) const
{return fNChipsPerStave[lay];}
Int_t GetNChipsPerLayer(Int_t lay) const
{return fNChipsPerLayer[lay];}
Int_t GetNModules(Int_t lay) const
{return fNModules[lay];}
Int_t GetNHalfStaves(Int_t lay) const
{return fNHalfStaves[lay];}
Int_t GetNStaves(Int_t lay) const
{return fNStaves[lay];}
Int_t GetNLayers() const
{return fNLayers;}
Int_t GetChipIndex(Int_t lay, int detInLay) const
{return GetFirstChipIndex(lay)+detInLay;}
Int_t GetLastChipIndex(Int_t lay) const
{return fLastChipIndex[lay];}
Int_t GetFirstChipIndex(Int_t lay) const
{return (lay==0) ? 0:fLastChipIndex[lay-1]+1;}
const TGeoHMatrix* GetMatrixT2L(Int_t index)
const TGeoHMatrix* GetMatrixSens(Int_t index)
TObjArray* GetSegmentations() const
{return (TObjArray*)fSegm;}
UInt_t GetUIDShift()
{return fgUIDShift;}
void SetUIDShift(UInt_t s = 16)
{fgUIDShift = s<16 ? s:16;}
const char* GetITSVolPattern()
{return fgITSVolName.Data();}
const char* GetITSLayerPattern()
{return fgITSLrName.Data();}
const char* GetITSWrapVolPattern()
{return fgITSWrapVolName.Data();}
const char* GetITSStavePattern()
{return fgITSStaveName.Data();}
const char* GetITSHalfStavePattern()
{return fgITSHalfStaveName.Data();}
const char* GetITSModulePattern()
{return fgITSModuleName.Data();}
const char* GetITSChipPattern()
{return fgITSChipName.Data();}
const char* GetITSSensorPattern()
{return fgITSSensName.Data();}
const char* GetITSsegmentationFileName()
{return fgITSsegmFileName.Data();}
void SetITSVolPattern(const char* nm)
{fgITSVolName = nm;}
void SetITSLayerPattern(const char* nm)
{fgITSLrName = nm;}
void SetITSWrapVolPattern(const char* nm)
void SetITSStavePattern(const char* nm)
void SetITSHalfStavePattern(const char* nm)
void SetITSModulePattern(const char* nm)
void SetITSChipPattern(const char* nm)
void SetITSSensorPattern(const char* nm)
void SetITSsegmentationFileName(const char* nm)
Int_t LayerToVolUID(Int_t lay, int detInLay) const
 hack to avoid using AliGeomManager
{return ChipVolUID(GetChipIndex(lay,detInLay));}
Int_t ChipVolUID(Int_t mod)
{return (mod&0xffff)<<fgUIDShift;}