ROOT logo
AliRoot » EMCAL » AliEMCALEMCGeometry

class AliEMCALEMCGeometry: public TNamed

 Geometry class  for EMCAL : singleton
 EMCAL consists of layers of scintillator and lead
 with scintillator fiber arranged as "shish-kebab" skewers
 Places the the Barrel Geometry of The EMCAL at Midrapidity
 between 80 and 180(or 190) degrees of Phi and
 -0.7 to 0.7 in eta

     EMCAL geometry tree:
     EMCAL -> superModule -> module -> tower(cell)
     Indexes
     absId -> nSupMod     -> nModule -> (nIphi,nIeta)

   Name choices:
   EMCAL_PDC06 (geometry used for PDC06 simulations, kept for backward compatibility)
      = equivalent to SHISH_77_TRD1_2X2_FINAL_110DEG in old notation
   EMCAL_COMPLETE (geometry for expected complete detector)
      = equivalent to SHISH_77_TRD1_2X2_FINAL_110DEG scTh=0.176 pbTh=0.144
          in old notation

   EMCAL_FIRSTYEAR - geometry for December 2009 to December 2010 run period
                     with four Super Modules

   Adding V1 (EMCAL_FIRSTYEARV1, EMCAL_COMPLETEV1) - geometry from December 2009 ;
                1. Fixed bug for positions of modules inside SM
                   (first module has tilt 0.75 degree);
                2. Added Al front plate (width 1 cm) and 2 paper sheets per sampling
                   layer (additional 0.2 mm)
                   The sizes have updated with last information from production
                   drawing (end of October 2010).
                3. COMPLETEV1 contains now only 10 SM for runs for year 2011
                4. COMPLETE12SMV1 contains 12 SM for runs from year 2012 and on
                5. COMPLETE12SMV1_DCAL contains 12 SM and 6 DCal SM
                6. COMPLETE12SMV1_DCAL_DEV contains 12 SM and 10 DCal SM
		  7. COMPLETE12SMV1_DCAL_8SM contains 12 SM and 6 DCal SM and 2 extentions

   EMCAL_WSUC (Wayne State test stand)
      = no definite equivalent in old notation, was only used by
          Aleksei, but kept for testing purposes

   etc.



*-- Author: Sahal Yacoob (LBL / UCT)
     and  : Yves Schutz (SUBATECH)
     and  : Jennifer Klay (LBL)
     and  : Aleksei Pavlinov (WSU)
     and  : Magali Estienne (SUBATECH)
     and  : Adapted for DCAL by M.L. Wang CCNU Wuhan & Subatech Oct-23-2009

Function Members (Methods)

public:
AliEMCALEMCGeometry()
AliEMCALEMCGeometry(const AliEMCALEMCGeometry& geom)
AliEMCALEMCGeometry(const Text_t* name, const Text_t* title, const Text_t* mcname = "", const Text_t* mctitle = "")
virtual~AliEMCALEMCGeometry()
voidTObject::AbstractMethod(const char* method) const
Float_tAngleFromEta(Float_t eta) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidCheckAdditionalOptions()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
voidDefineSamplingFraction(const Text_t* mcname = "", const Text_t* mctitle = "")
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 voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Float_tGet2Trd1Dx2() const
Float_tGet2Trd2Dy2() const
Float_tGetArm1EtaMax() const
Float_tGetArm1EtaMin() const
Float_tGetArm1PhiMax() const
Float_tGetArm1PhiMin() const
Float_tGetDCALInnerEdge() const
Float_tGetDCALInnerExtandedEta() const
Float_tGetDCALPhiMax() const
Float_tGetDCALPhiMin() const
Float_tGetDCALStandardPhiMax() const
static const Char_t*GetDefaultGeometryName()
Float_tGetDeltaEta() const
Float_tGetDeltaPhi() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tGetECPbRadThick() const
Float_tGetECScintThick() const
Float_tGetEMCALPhiMax() const
Int_t*GetEMCSystem() const
Float_tGetEnvelop(Int_t index) const
Float_tGetEtaMaxOfTRD1() const
Float_tGetEtaModuleSize() const
Float_tGetEtaTileSize() const
Float_tGetFrontSteelStrip() const
Float_tGetGap2Active() const
TStringGetGeoName() const
virtual const char*TObject::GetIconName() const
Int_tGetIHADR() const
Int_tGetILOSS() const
Float_tGetIPDistance() const
Int_tGetKey110DEG() const
Float_tGetLateralSteelStrip() const
Float_tGetLongModuleSize() const
virtual const char*TNamed::GetName() const
const Char_t*GetNameOfEMCALEnvelope() const
Int_tGetNCells() const
Int_tGetNCellsInModule() const
Int_tGetNCellsInSupMod() const
Int_tGetNECLayers() const
Int_tGetNEta() const
Int_tGetNETAdiv() const
Int_tGetNEtaSubOfTRU() const
Int_tGetNModulesInTRU() const
Int_tGetNModulesInTRUEta() const
Int_tGetNModulesInTRUPhi() const
Int_tGetNPhi() const
Int_tGetNPHIdiv() const
Int_tGetNPhiSuperModule() const
Int_tGetnSupModInDCAL() const
Int_tGetNTotalTRU() const
Int_tGetNTowers() const
Int_tGetNTRU() const
Int_tGetNTRUEta() const
Int_tGetNTRUPhi() const
Int_tGetNumberOfSuperModules() const
Int_tGetNZ() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Float_tGetPassiveScintThick() const
Bool_tGetPhiBoundariesOfSM(Int_t nSupMod, Double_t& phiMin, Double_t& phiMax) const
Bool_tGetPhiBoundariesOfSMGap(Int_t nPhiSec, Double_t& phiMin, Double_t& phiMax) const
Double_tGetPhiCenterOfSM(Int_t nsupmod) const
Double_tGetPhiCenterOfSMSec(Int_t nsupmod) const
Float_tGetPhiGapForSuperModules() const
Float_tGetPhiModuleSize() const
Float_tGetPhiSuperModule() const
Float_tGetPhiTileSize() const
Float_tGetSampling() const
Float_tGetShellThickness() const
Int_tGetSMType(Int_t nSupMod) const
Float_tGetSteelFrontThickness() const
Float_tGetSuperModulesPar(Int_t ipar) const
virtual const char*TNamed::GetTitle() const
Float_tGetTrd1AlFrontThick() const
Float_tGetTrd1Angle() const
Float_tGetTrd1BondPaperThick() const
Float_tGetTrd2AngleY() const
Float_tGetTubsR() const
Float_tGetTubsTurnAngle() const
virtual UInt_tTObject::GetUniqueID() const
Float_tGetZLength() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::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
voidInit(const Text_t* mcname = "", const Text_t* mctitle = "")
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_tIsInitialized() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::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)
AliEMCALEMCGeometry&operator=(const AliEMCALEMCGeometry&)
virtual voidTObject::Paint(Option_t* option = "")
static intParseString(const TString& topt, TObjArray& Opt)
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidPrintGeometry()MENU
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)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNPhi(Int_t nphi)
voidSetNTRUEta(Int_t ntru)
voidSetNTRUPhi(Int_t ntru)
voidSetNZ(Int_t nz)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetSampling(Float_t samp)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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
Float_tZFromEtaR(Float_t r, Float_t eta) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum fEMCSMType { kEMCAL_Standard
kEMCAL_Half
kEMCAL_3rd
kDCAL_Standard
kDCAL_Ext
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
static Bool_tfgInitTells if geometry has been succesfully set up.
static const Char_t*fgkDefaultGeometryNameDefault name of geometry
protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
Float_tf2Trd1Dx22*dx2 for TRD1
Float_tf2Trd2Dy22*dy2 for TRD2
Float_tfArm1EtaMaxMaximum pseudorapidity position of EMCAL in Eta
Float_tfArm1EtaMinMinimum pseudorapidity position of EMCAL in Eta
Float_tfArm1PhiMaxMaximum angular position of EMCAL in Phi (degrees)
Float_tfArm1PhiMinMinimum angular position of EMCAL in Phi (degrees)
TObjArray*fArrayOpts! array of geometry options
TArrayDfCentersOfCellsEtaDirsize fNEta*fNETAdiv (for TRD1 only) (eta or z in SM, in cm)
TArrayDfCentersOfCellsPhiDirsize fNPhi*fNPHIdiv (for TRD1 only) (phi or y in SM, in cm)
TArrayDfCentersOfCellsXDirsize fNEta*fNETAdiv (for TRD1 only) ( x in SM, in cm)
Float_tfDCALInnerEdgeInner edge for DCAL
Float_tfDCALInnerExtandedEtaDCAL inner edge in Eta (with some extension)
Float_tfDCALPhiMaxMaximum angular position of DCAL in Phi (degrees)
Float_tfDCALPhiMinMinimum angular position of DCAL in Phi (degrees)
Float_tfDCALStandardPhiMaxspecial edge for the case that DCAL contian extension
Float_tfECPbRadThicknesscm, Thickness of the Pb radiators
Float_tfECScintThickcm, Thickness of the scintillators
Float_tfEMCALPhiMaxMaximum angular position of EMCAL in Phi (degrees)
Int_t*fEMCSMSystemgeometry structure
Float_tfEmptySpace2mm om fred drawing
Float_tfEnvelop[3]the GEANT TUB for the detector
TArrayDfEtaCentersOfCells[fNEta*fNETAdiv*fNPhi*fNPHIdiv], positive direction (eta>0); eta depend from phi position;
Float_tfEtaMaxOfTRD1max eta in case of TRD1 geometry (see AliEMCALShishKebabTrd1Module)
Float_tfEtaModuleSizeEta -> Y
Float_tfEtaTileSizeSize of eta tile
Float_tfFrontSteelStrip13-may-05
Float_tfGap2ActiveGap between the envelop and the active material
TStringfGeoNamegeometry name
Int_tfIHADROptions for Geant (MIP business) - will call in AliEMCAL
Int_tfILOSSOptions for Geant (MIP business) - will call in AliEMCAL
Float_tfIPDistanceRadial Distance of the inner surface of the EMCAL
Int_tfKey110DEGfor calculation abs cell id; 19-oct-05
Float_tfLateralSteelStrip13-may-05
Float_tfLongModuleSizeSize of long module
intfNAdditionalOpts! size of additional options parameter
Int_tfNCellsnumber of cells in calo
Int_tfNCellsInModulenumber cell in module)
Int_tfNCellsInSupModnumber cell in super module
Int_tfNECLayersnumber of scintillator layers
Int_tfNETAdivnumber eta divizion of module
Int_tfNEtaSubOfTRUNumber of eta (z) subregiohi
Int_tfNModulesInTRUEtaNumber of modules per TRU in eta
Int_tfNModulesInTRUPhiNumber of modules per TRU in phi
Int_tfNPHIdivnumber phi divizion of module
Int_tfNPhiNumber of Towers in the PHI direction
Int_tfNPhiSuperModule9 - number supermodule in phi direction
Int_tfNTRUEtaNumber of TRUs per module in eta
Int_tfNTRUPhiNumber of TRUs per module in phi
Int_tfNTotalTRUTotal Number of TRU (all SM)
Int_tfNZNumber of Towers in the Z direction
Int_tfNumberOfSuperModulesdefault is 12 = 6 * 2
Float_tfParSM[3]SM sizes as in GEANT (TRD1)
Float_tfPassiveScintThick13-may-05
TArrayDfPhiBoundariesOfSMphi boundaries of SM in rad; size is fNumberOfSuperModules;
TArrayDfPhiCentersOfCells[fNPhi*fNPHIdiv] from center of SM (-10. < phi < +10.)
TArrayDfPhiCentersOfSMphi of centers of SM; size is fNumberOfSuperModules/2
TArrayDfPhiCentersOfSMSecphi of centers of section where SM lies; size is fNumberOfSuperModules/2
Float_tfPhiGapForSMGap betweeen supermodules in phi direction
Float_tfPhiModuleSizePhi -> X
Float_tfPhiSuperModulePhi of normal supermodule (20, in degree)
Float_tfPhiTileSizeSize of phi tile
Float_tfSamplingSampling factor
Float_tfShellThicknessTotal thickness in (x,y) direction
TList*fShishKebabTrd1Modules! list of modules
Float_tfSteelFrontThickThickness of the front stell face of the support box - 9-sep-04
Float_tfTrd1AlFrontThickThickness of the Al front plate
Float_tfTrd1Angleangle in x-z plane (in degree)
Float_tfTrd1BondPaperThickThickness of the Bond Paper sheet
Float_tfTrd2AngleYangle in y-z plane (in degree)
Float_tfTubsRradius of tubs
Float_tfTubsTurnAngleturn angle of tubs in degree
Float_tfZLengthTotal length in z direction
const char*fkAdditionalOpts[6]! some additional options for the geometry type and name
Int_tfnSupModInDCALfor calculation abs cell id;

Class Charts

Inheritance Chart:
TNamed
AliEMCALEMCGeometry

Function documentation

AliEMCALEMCGeometry()
 Trigger staff

obsolete member data
 default ctor only for internal usage (singleton)
 must be kept public for root persistency purposes,
 but should never be called by the outside world
AliEMCALEMCGeometry(const Text_t* name, const Text_t* title, const Text_t* mcname = "", const Text_t* mctitle = "")
 Trigger staff

obsolete member data
 ctor only for internal usage (singleton)
AliEMCALEMCGeometry(const AliEMCALEMCGeometry& geom)
 Trigger staff

obsolete member data
copy ctor
~AliEMCALEMCGeometry(void)
 dtor
void Init(const Text_t* mcname = "", const Text_t* mctitle = "")
 Initializes the EMCAL parameters based on the name
 Only Shashlyk geometry is available, but various combinations of
 layers and number of supermodules can be selected with additional
 options or geometry name

void PrintGeometry()
 Separate routine is callable from broswer; Nov 7,2006
void CheckAdditionalOptions()
 Feb 06,2006
 Additional options that
 can be used to select
 the specific geometry of
 EMCAL to run
 Dec 27,2006
 adeed allILOSS= and allIHADR= for MIP investigation
void DefineSamplingFraction(const Text_t* mcname = "", const Text_t* mctitle = "")
 Jun 05,2006
 Look http://rhic.physics.wayne.edu/~pavlinov/ALICE/SHISHKEBAB/RES/linearityAndResolutionForTRD1.html
 Keep for compatibilty

Double_t GetPhiCenterOfSMSec(Int_t nsupmod) const
returns center of supermodule in phi
Double_t GetPhiCenterOfSM(Int_t nsupmod) const
returns center of supermodule in phi
Bool_t GetPhiBoundariesOfSM(Int_t nSupMod, Double_t& phiMin, Double_t& phiMax) const
 0<= nSupMod <=17; phi in rad
Bool_t GetPhiBoundariesOfSMGap(Int_t nPhiSec, Double_t& phiMin, Double_t& phiMax) const
 0<= nPhiSec <=max; phi in rad
 0;  gap boundaries between  0th&2th  | 1th&3th SM
 1;  gap boundaries between  2th&4th  | 3th&5th SM
 2;  gap boundaries between  4th&6th  | 5th&7th SM
 3;  gap boundaries between  6th&8th  | 7th&9th SM
 4;  gap boundaries between  8th&10th | 9th&11th SM
 5;  gap boundaries between 10th&12th | 11h&13th SM

int ParseString(const TString& topt, TObjArray& Opt)
Parse string, does what? GCB 08/09
Bool_t IsInitialized(void)
 General

{ return fgInit ; }
const Char_t* GetDefaultGeometryName()
TString GetGeoName() const
 Return EMCAL geometrical parameters

{return fGeoName;}
Int_t * GetEMCSystem() const
{return fEMCSMSystem;}
const Char_t* GetNameOfEMCALEnvelope() const
{ const Char_t* env = "XEN1"; return env ;}
Float_t GetArm1PhiMin() const
{ return fArm1PhiMin ; }
Float_t GetArm1PhiMax() const
{ return fArm1PhiMax ; }
Float_t GetArm1EtaMin() const
{ return fArm1EtaMin;}
Float_t GetArm1EtaMax() const
{ return fArm1EtaMax;}
Float_t GetIPDistance() const
{ return fIPDistance;}
Float_t GetEnvelop(Int_t index) const
{ return fEnvelop[index] ; }
Float_t GetShellThickness() const
{ return fShellThickness ; }
Float_t GetZLength() const
{ return fZLength ; }
Float_t GetDCALInnerEdge() const
{ return fDCALInnerEdge ; }
Float_t GetDCALPhiMin() const
{ return fDCALPhiMin ; }
Float_t GetDCALPhiMax() const
{ return fDCALPhiMax ; }
Float_t GetDCALInnerExtandedEta() const
Float_t GetEMCALPhiMax() const
{ return fEMCALPhiMax ; }
Float_t GetDCALStandardPhiMax() const
{ return fDCALStandardPhiMax ; }
Int_t GetNECLayers() const
{return fNECLayers ;}
Int_t GetNZ() const
{return fNZ ;}
Int_t GetNEta() const
{return fNZ ;}
Int_t GetNPhi() const
{return fNPhi ;}
Float_t GetECPbRadThick() const
Float_t GetECScintThick() const
{return fECScintThick;}
Float_t GetSampling() const
{return fSampling ; }
Int_t GetNumberOfSuperModules() const
Float_t GetPhiGapForSuperModules() const
{return fPhiGapForSM;}
Float_t GetPhiModuleSize() const
{return fPhiModuleSize;}
Float_t GetEtaModuleSize() const
{return fEtaModuleSize;}
Float_t GetFrontSteelStrip() const
Float_t GetLateralSteelStrip() const
Float_t GetPassiveScintThick() const
Float_t GetPhiTileSize() const
{return fPhiTileSize;}
Float_t GetEtaTileSize() const
{return fEtaTileSize;}
Float_t GetPhiSuperModule() const
{return fPhiSuperModule;}
Int_t GetNPhiSuperModule() const
Int_t GetNPHIdiv() const
{return fNPHIdiv ;}
Int_t GetNETAdiv() const
{return fNETAdiv ;}
Int_t GetNCells() const
{return fNCells;}
Float_t GetLongModuleSize() const
{return fLongModuleSize;}
Float_t GetTrd1Angle() const
{return fTrd1Angle;}
Float_t Get2Trd1Dx2() const
{return f2Trd1Dx2;}
Float_t GetEtaMaxOfTRD1() const
{return fEtaMaxOfTRD1;}
Float_t GetTrd1AlFrontThick() const
Float_t GetTrd1BondPaperThick() const
 --
Int_t GetNCellsInSupMod() const
{return fNCellsInSupMod;}
Int_t GetNCellsInModule() const
{return fNCellsInModule; }
Int_t GetKey110DEG() const
{return fKey110DEG;}
Int_t GetnSupModInDCAL() const
{return fnSupModInDCAL;}
Int_t GetILOSS() const
{return fILOSS;}
Int_t GetIHADR() const
 For gamma(Jet) trigger simulations
{return fIHADR;}
Int_t GetNTRU() const
{return fNTRUEta*fNTRUPhi ; }
Int_t GetNTRUEta() const
{return fNTRUEta ; }
Int_t GetNTRUPhi() const
{return fNTRUPhi ; }
Int_t GetNEtaSubOfTRU() const
{return fNEtaSubOfTRU;}
Int_t GetNTotalTRU() const
{return fNTotalTRU ; }
Int_t GetNModulesInTRU() const
Int_t GetNModulesInTRUEta() const
{return fNModulesInTRUEta ; }
Int_t GetNModulesInTRUPhi() const
{return fNModulesInTRUPhi ; }
Float_t GetDeltaEta() const
 --
Float_t GetDeltaPhi() const
Int_t GetNTowers() const
{return fNPhi * fNZ ;}
Float_t GetSuperModulesPar(Int_t ipar) const
{return fParSM[ipar];}
Int_t GetSMType(Int_t nSupMod) const
void SetNZ(Int_t nz)
Geometry data member setters

void SetNPhi(Int_t nphi)
void SetNTRUEta(Int_t ntru)
void SetNTRUPhi(Int_t ntru)
void SetSampling(Float_t samp)
Float_t AngleFromEta(Float_t eta) const
 useful utilities

Float_t ZFromEtaR(Float_t r, Float_t eta) const
 pseudorapidity and r=sqrt(x*x+y*y).
Float_t GetGap2Active() const
 Obsolete methods to be thrown out when feasible
{return fGap2Active ;}
Float_t GetSteelFrontThickness() const
{ return fSteelFrontThick;}
Float_t GetTrd2AngleY() const
{return fTrd2AngleY;}
Float_t Get2Trd2Dy2() const
{return f2Trd2Dy2;}
Float_t GetTubsR() const
{return fTubsR;}
Float_t GetTubsTurnAngle() const
  Float_t GetIP2ECASection() const { return ( GetIPDistance() + GetAlFrontThickness()
					      + GetGap2Active() ) ; }

{return fTubsTurnAngle;}