ROOT logo
#ifndef ALIEMCALEMCGEOMETRY_H
#define ALIEMCALEMCGEOMETRY_H
/* Copyright(c) 1998-2004, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliEMCALEMCGeometry.h 26174 2008-05-26 20:27:16Z jklay $ */

//_________________________________________________________________________
// Geometry class  for EMCAL : singleton
// EMCAL consists of a layers of scintillator, and lead.
//                  
//*-- Author: Sahal Yacoob (LBL / UCT)
//*--   and : Yves Schutz (Subatech)
//*--   and : Aleksei Pavlinov (WSU) - shashlyk staff
//*--   and : Gustavo Conesa: Add TRU mapping. TRU parameters still not fixed.
//*--   and : Magali Estienne (Subatech): class added for new library for EMCALGeoUtils.par file
//*--   and : Adapted for DCAL by M.L. Wang CCNU Wuhan & Subatech Oct-23-2009

// --- ROOT system ---
#include <TMath.h>
#include <TArrayD.h>
#include <TNamed.h>
class TString ;
class TObjArray;
class Riostream;

// --- AliRoot header files ---
class AliEMCALEMCGeometry;
class AliEMCALShishKebabTrd1Module;

class AliEMCALEMCGeometry : public TNamed {
public:
  enum fEMCSMType { kEMCAL_Standard = 0, kEMCAL_Half = 1, kEMCAL_3rd = 2, kDCAL_Standard = 3, kDCAL_Ext= 4 }; // possible SM Type
  AliEMCALEMCGeometry(); // default ctor only for internal usage (singleton)
  AliEMCALEMCGeometry(const AliEMCALEMCGeometry& geom);
  // ctor only for internal usage (singleton)
  AliEMCALEMCGeometry(const Text_t* name, const Text_t* title,
                      const Text_t* mcname="", const Text_t* mctitle="");

  virtual ~AliEMCALEMCGeometry(void); 

  AliEMCALEMCGeometry & operator = (const AliEMCALEMCGeometry  & /*rvalue*/) {
    // assignement operator requested by coding convention but not needed
    Fatal("operator =", "not implemented");
    return *this;
  };

  //////////
  // General
  //
  Bool_t IsInitialized(void) const { return fgInit ; }
  static const Char_t* GetDefaultGeometryName() {return fgkDefaultGeometryName;}
  void   PrintGeometry();        //*MENU*  
  
  void   Init(const Text_t* mcname="", const Text_t* mctitle=""); // initializes the parameters of EMCAL
  void   CheckAdditionalOptions();        //
  void   DefineSamplingFraction(const Text_t* mcname="", const Text_t* mctitle="");

  //////////////////////////////////////
  // Return EMCAL geometrical parameters
  //
  
  TString GetGeoName() const {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 { return fDCALInnerExtandedEta ; }
  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 {return fECPbRadThickness;}
  Float_t GetECScintThick() const {return fECScintThick;}
  Float_t GetSampling() const {return fSampling ; }
  Int_t   GetNumberOfSuperModules() const {return fNumberOfSuperModules;}
  Float_t GetPhiGapForSuperModules() const {return fPhiGapForSM;}
  Float_t GetPhiModuleSize() const  {return fPhiModuleSize;}
  Float_t GetEtaModuleSize() const  {return fEtaModuleSize;}
  Float_t GetFrontSteelStrip() const {return fFrontSteelStrip;}
  Float_t GetLateralSteelStrip() const {return fLateralSteelStrip;}
  Float_t GetPassiveScintThick() const {return fPassiveScintThick;}
  Float_t GetPhiTileSize() const {return fPhiTileSize;}
  Float_t GetEtaTileSize() const {return fEtaTileSize;}
  Float_t GetPhiSuperModule() const {return fPhiSuperModule;}
  Int_t   GetNPhiSuperModule() const {return fNPhiSuperModule;}
  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 { return fTrd1AlFrontThick;}
  Float_t GetTrd1BondPaperThick() const {return fTrd1BondPaperThick;}
  // --
  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 {return fIHADR;}
    // For gamma(Jet) trigger simulations
  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 {return fNModulesInTRUEta*fNModulesInTRUPhi; }
  Int_t    GetNModulesInTRUEta() const {return fNModulesInTRUEta ; }  
  Int_t    GetNModulesInTRUPhi() const {return fNModulesInTRUPhi ; }  

  // --
  Float_t  GetDeltaEta() const {return (fArm1EtaMax-fArm1EtaMin)/ ((Float_t)fNZ);}
  Float_t  GetDeltaPhi() const {return (fArm1PhiMax-fArm1PhiMin)/ ((Float_t)fNPhi);}
  Int_t    GetNTowers() const {return fNPhi * fNZ ;}
  //
  Double_t GetPhiCenterOfSM(Int_t nsupmod) const;
  Double_t GetPhiCenterOfSMSec(Int_t nsupmod) const;
  Float_t  GetSuperModulesPar(Int_t ipar) const {return fParSM[ipar];}
  Int_t    GetSMType(Int_t nSupMod)           const { if( nSupMod > GetNumberOfSuperModules() ) return -1;
                                                      return fEMCSMSystem[nSupMod]		     ; }
  //
  Bool_t   GetPhiBoundariesOfSM   (Int_t nSupMod, Double_t &phiMin, Double_t &phiMax) const;
  Bool_t   GetPhiBoundariesOfSMGap(Int_t nPhiSec, Double_t &phiMin, Double_t &phiMax) const;
  //
  // Local Coordinates of SM
/*   TArrayD  GetCentersOfCellsEtaDir() const {return fCentersOfCellsEtaDir;}        // size fNEta*fNETAdiv (for TRD1 only) (eta or z in SM, in cm) */
/*   TArrayD  GetCentersOfCellsXDir()   const {return fCentersOfCellsXDir;}          // size fNEta*fNETAdiv (for TRD1 only) (       x in SM, in cm) */
/*   TArrayD  GetCentersOfCellsPhiDir() const {return fCentersOfCellsPhiDir;}        // size fNPhi*fNPHIdiv (for TRD1 only) (phi or y in SM, in cm) */
/*   // */
/*   TArrayD  GetEtaCentersOfCells() const {return fEtaCentersOfCells;}           // [fNEta*fNETAdiv*fNPhi*fNPHIdiv], positive direction (eta>0); eta depend from phi position;  */
/*   TArrayD  GetPhiCentersOfCells() const {return fPhiCentersOfCells;}           // [fNPhi*fNPHIdiv] from center of SM (-10. < phi < +10.) */

  static int ParseString(const TString &topt, TObjArray &Opt) ; 

  ///////////////////////////////
  //Geometry data member setters
  //
  void SetNZ(Int_t nz) { fNZ= nz; 
                         printf("SetNZ: Number of modules in Z set to %d", fNZ) ; }
  void SetNPhi(Int_t nphi) { fNPhi= nphi; 
                             printf("SetNPhi: Number of modules in Phi set to %d", fNPhi) ; }
  void SetNTRUEta(Int_t ntru) {fNTRUEta = ntru;
               printf("SetNTRU: Number of TRUs per SuperModule in Eta set to %d", fNTRUEta) ;}
  void SetNTRUPhi(Int_t ntru) {fNTRUPhi = ntru;
              printf("SetNTRU: Number of TRUs per SuperModule in Phi set to %d", fNTRUPhi) ;}
  void SetSampling(Float_t samp) { fSampling = samp; 
                              printf("SetSampling: Sampling factor set to %f", fSampling) ; }

  ///////////////////
  // useful utilities
  //
  Float_t AngleFromEta(Float_t eta) const { // returns theta in radians for a given pseudorapidity
    return 2.0*TMath::ATan(TMath::Exp(-eta));
  }
  Float_t ZFromEtaR(Float_t r,Float_t eta) const { // returns z in for a given
    // pseudorapidity and r=sqrt(x*x+y*y).
    return r/TMath::Tan(AngleFromEta(eta));
  }

  //////////////////////////////////////////////////
  // Obsolete methods to be thrown out when feasible
  Float_t GetGap2Active() const {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 {return fTubsTurnAngle;}
  //  Float_t GetIP2ECASection() const { return ( GetIPDistance() + GetAlFrontThickness() 
  //					      + GetGap2Active() ) ; }   
  //////////////////////////////////////////////////
  static const Char_t* fgkDefaultGeometryName; // Default name of geometry
  static Bool_t  fgInit;	        // Tells if geometry has been succesfully set up.

private:

  // Member data

  TString fGeoName;                     //geometry name
  Int_t   *fEMCSMSystem;		// geometry structure

  TObjArray *fArrayOpts;                //! array of geometry options
  const char *fkAdditionalOpts[6];  //! some additional options for the geometry type and name
  int  fNAdditionalOpts;     //! size of additional options parameter

  Float_t fECPbRadThickness;		// cm, Thickness of the Pb radiators
  Float_t fECScintThick;		// cm, Thickness of the scintillators
  Int_t   fNECLayers;			// number of scintillator layers
  
  Float_t fArm1PhiMin; 			// Minimum angular position of EMCAL in Phi (degrees)
  Float_t fArm1PhiMax;			// Maximum angular position of EMCAL in Phi (degrees)
  Float_t fArm1EtaMin;			// Minimum pseudorapidity position of EMCAL in Eta
  Float_t fArm1EtaMax; 			// Maximum pseudorapidity position of EMCAL in Eta
  
  // Geometry Parameters
  Float_t fEnvelop[3];			// the GEANT TUB for the detector 
  Float_t fIPDistance;			// Radial Distance of the inner surface of the EMCAL
  Float_t fShellThickness;		// Total thickness in (x,y) direction
  Float_t fZLength;			// Total length in z direction
  Float_t fDCALInnerEdge;		// Inner edge for DCAL
  Float_t fDCALPhiMin;	                // Minimum angular position of DCAL in Phi (degrees)
  Float_t fDCALPhiMax;	                // Maximum angular position of DCAL in Phi (degrees)
  Float_t fEMCALPhiMax; 		// Maximum angular position of EMCAL in Phi (degrees)
  Float_t fDCALStandardPhiMax;           // special edge for the case that DCAL contian extension
  Float_t fDCALInnerExtandedEta;	// DCAL inner edge in Eta (with some extension)
  Int_t   fNZ;				// Number of Towers in the Z direction
  Int_t   fNPhi;			// Number of Towers in the PHI direction
  Float_t fSampling;			// Sampling factor

  // Shish-kebab option - 23-aug-04 by PAI; COMPACT, TWIST, TRD1 and TRD2
  Int_t   fNumberOfSuperModules;         // default is 12 = 6 * 2 
  Float_t fFrontSteelStrip;              // 13-may-05
  Float_t fLateralSteelStrip;            // 13-may-05
  Float_t fPassiveScintThick;            // 13-may-05
  Float_t fPhiModuleSize;                // Phi -> X 
  Float_t fEtaModuleSize;                // Eta -> Y
  Float_t fPhiTileSize;                  // Size of phi tile
  Float_t fEtaTileSize;                  // Size of eta tile
  Float_t fLongModuleSize;               // Size of long module
  Float_t fPhiSuperModule;               // Phi of normal supermodule (20, in degree)
  Int_t   fNPhiSuperModule;              // 9 - number supermodule in phi direction
  Int_t   fNPHIdiv;                      // number phi divizion of module
  Int_t   fNETAdiv;                      // number eta divizion of module
  //
  Int_t   fNCells;                       // number of cells in calo
  Int_t   fNCellsInSupMod;               // number cell in super module
  Int_t   fNCellsInModule;               // number cell in module)
  //TRU parameters
  Int_t   fNTRUEta ;                     // Number of TRUs per module in eta
  Int_t   fNTRUPhi ;                     // Number of TRUs per module in phi
  Int_t   fNModulesInTRUEta;             // Number of modules per TRU in eta 
  Int_t   fNModulesInTRUPhi;             // Number of modules per TRU in phi 
  Int_t   fNEtaSubOfTRU;                 // Number of eta (z) subregiohi
  Int_t   fNTotalTRU;			 // Total Number of TRU (all SM)

  // TRD1 options - 30-sep-04
  Float_t fTrd1Angle;                    // angle in x-z plane (in degree) 
  Float_t f2Trd1Dx2;                     // 2*dx2 for TRD1
  Float_t fPhiGapForSM;                  // Gap betweeen supermodules in phi direction
  Int_t   fKey110DEG;                    // for calculation abs cell id; 19-oct-05 
  Int_t   fnSupModInDCAL;                      // for calculation abs cell id;
  TArrayD fPhiBoundariesOfSM;            // phi boundaries of SM in rad; size is fNumberOfSuperModules;
  TArrayD fPhiCentersOfSM;               // phi of centers of SM; size is fNumberOfSuperModules/2
  TArrayD fPhiCentersOfSMSec;            // phi of centers of section where SM lies; size is fNumberOfSuperModules/2
  Float_t fEtaMaxOfTRD1;                 // max eta in case of TRD1 geometry (see AliEMCALShishKebabTrd1Module)
  // Oct 26,2010
  Float_t fTrd1AlFrontThick;		 // Thickness of the Al front plate  
  Float_t fTrd1BondPaperThick;		 // Thickness of the Bond Paper sheet  
  // Local Coordinates of SM
  TArrayD fCentersOfCellsEtaDir;        // size fNEta*fNETAdiv (for TRD1 only) (eta or z in SM, in cm)
  TArrayD fCentersOfCellsXDir;          // size fNEta*fNETAdiv (for TRD1 only) (       x in SM, in cm)
  TArrayD fCentersOfCellsPhiDir;        // size fNPhi*fNPHIdiv (for TRD1 only) (phi or y in SM, in cm)
  //
  TArrayD fEtaCentersOfCells;           // [fNEta*fNETAdiv*fNPhi*fNPHIdiv], positive direction (eta>0); eta depend from phi position; 
  TArrayD fPhiCentersOfCells;           // [fNPhi*fNPHIdiv] from center of SM (-10. < phi < +10.)
  // Move from AliEMCALv0 - Feb 19, 2006
  TList   *fShishKebabTrd1Modules; //! list of modules
  // Local coordinates of SM for TRD1
  Float_t fParSM[3];       // SM sizes as in GEANT (TRD1)

  Int_t   fILOSS; // Options for Geant (MIP business) - will call in AliEMCAL
  Int_t   fIHADR; // Options for Geant (MIP business) - will call in AliEMCAL

  ////////////////////////////////////////////////////////////
  //Obsolete member data that will be thrown out when feasible
  //
  Float_t fGap2Active;			// Gap between the envelop and the active material
  Float_t fSteelFrontThick;		 // Thickness of the front stell face of the support box - 9-sep-04
  // TRD2 options - 27-jan-07
  Float_t fTrd2AngleY;                   // angle in y-z plane (in degree) 
  Float_t f2Trd2Dy2;                     // 2*dy2 for TRD2
  Float_t fEmptySpace;                   // 2mm om fred drawing
  // Super module as TUBS
  Float_t fTubsR;                        // radius of tubs 
  Float_t fTubsTurnAngle;                // turn angle of tubs in degree

  ///////////////////////////////////////////////////////////

  ClassDef(AliEMCALEMCGeometry, 3) // EMCAL geometry class 
};

#endif // AliEMCALEMCGEOMETRY_H
 AliEMCALEMCGeometry.h:1
 AliEMCALEMCGeometry.h:2
 AliEMCALEMCGeometry.h:3
 AliEMCALEMCGeometry.h:4
 AliEMCALEMCGeometry.h:5
 AliEMCALEMCGeometry.h:6
 AliEMCALEMCGeometry.h:7
 AliEMCALEMCGeometry.h:8
 AliEMCALEMCGeometry.h:9
 AliEMCALEMCGeometry.h:10
 AliEMCALEMCGeometry.h:11
 AliEMCALEMCGeometry.h:12
 AliEMCALEMCGeometry.h:13
 AliEMCALEMCGeometry.h:14
 AliEMCALEMCGeometry.h:15
 AliEMCALEMCGeometry.h:16
 AliEMCALEMCGeometry.h:17
 AliEMCALEMCGeometry.h:18
 AliEMCALEMCGeometry.h:19
 AliEMCALEMCGeometry.h:20
 AliEMCALEMCGeometry.h:21
 AliEMCALEMCGeometry.h:22
 AliEMCALEMCGeometry.h:23
 AliEMCALEMCGeometry.h:24
 AliEMCALEMCGeometry.h:25
 AliEMCALEMCGeometry.h:26
 AliEMCALEMCGeometry.h:27
 AliEMCALEMCGeometry.h:28
 AliEMCALEMCGeometry.h:29
 AliEMCALEMCGeometry.h:30
 AliEMCALEMCGeometry.h:31
 AliEMCALEMCGeometry.h:32
 AliEMCALEMCGeometry.h:33
 AliEMCALEMCGeometry.h:34
 AliEMCALEMCGeometry.h:35
 AliEMCALEMCGeometry.h:36
 AliEMCALEMCGeometry.h:37
 AliEMCALEMCGeometry.h:38
 AliEMCALEMCGeometry.h:39
 AliEMCALEMCGeometry.h:40
 AliEMCALEMCGeometry.h:41
 AliEMCALEMCGeometry.h:42
 AliEMCALEMCGeometry.h:43
 AliEMCALEMCGeometry.h:44
 AliEMCALEMCGeometry.h:45
 AliEMCALEMCGeometry.h:46
 AliEMCALEMCGeometry.h:47
 AliEMCALEMCGeometry.h:48
 AliEMCALEMCGeometry.h:49
 AliEMCALEMCGeometry.h:50
 AliEMCALEMCGeometry.h:51
 AliEMCALEMCGeometry.h:52
 AliEMCALEMCGeometry.h:53
 AliEMCALEMCGeometry.h:54
 AliEMCALEMCGeometry.h:55
 AliEMCALEMCGeometry.h:56
 AliEMCALEMCGeometry.h:57
 AliEMCALEMCGeometry.h:58
 AliEMCALEMCGeometry.h:59
 AliEMCALEMCGeometry.h:60
 AliEMCALEMCGeometry.h:61
 AliEMCALEMCGeometry.h:62
 AliEMCALEMCGeometry.h:63
 AliEMCALEMCGeometry.h:64
 AliEMCALEMCGeometry.h:65
 AliEMCALEMCGeometry.h:66
 AliEMCALEMCGeometry.h:67
 AliEMCALEMCGeometry.h:68
 AliEMCALEMCGeometry.h:69
 AliEMCALEMCGeometry.h:70
 AliEMCALEMCGeometry.h:71
 AliEMCALEMCGeometry.h:72
 AliEMCALEMCGeometry.h:73
 AliEMCALEMCGeometry.h:74
 AliEMCALEMCGeometry.h:75
 AliEMCALEMCGeometry.h:76
 AliEMCALEMCGeometry.h:77
 AliEMCALEMCGeometry.h:78
 AliEMCALEMCGeometry.h:79
 AliEMCALEMCGeometry.h:80
 AliEMCALEMCGeometry.h:81
 AliEMCALEMCGeometry.h:82
 AliEMCALEMCGeometry.h:83
 AliEMCALEMCGeometry.h:84
 AliEMCALEMCGeometry.h:85
 AliEMCALEMCGeometry.h:86
 AliEMCALEMCGeometry.h:87
 AliEMCALEMCGeometry.h:88
 AliEMCALEMCGeometry.h:89
 AliEMCALEMCGeometry.h:90
 AliEMCALEMCGeometry.h:91
 AliEMCALEMCGeometry.h:92
 AliEMCALEMCGeometry.h:93
 AliEMCALEMCGeometry.h:94
 AliEMCALEMCGeometry.h:95
 AliEMCALEMCGeometry.h:96
 AliEMCALEMCGeometry.h:97
 AliEMCALEMCGeometry.h:98
 AliEMCALEMCGeometry.h:99
 AliEMCALEMCGeometry.h:100
 AliEMCALEMCGeometry.h:101
 AliEMCALEMCGeometry.h:102
 AliEMCALEMCGeometry.h:103
 AliEMCALEMCGeometry.h:104
 AliEMCALEMCGeometry.h:105
 AliEMCALEMCGeometry.h:106
 AliEMCALEMCGeometry.h:107
 AliEMCALEMCGeometry.h:108
 AliEMCALEMCGeometry.h:109
 AliEMCALEMCGeometry.h:110
 AliEMCALEMCGeometry.h:111
 AliEMCALEMCGeometry.h:112
 AliEMCALEMCGeometry.h:113
 AliEMCALEMCGeometry.h:114
 AliEMCALEMCGeometry.h:115
 AliEMCALEMCGeometry.h:116
 AliEMCALEMCGeometry.h:117
 AliEMCALEMCGeometry.h:118
 AliEMCALEMCGeometry.h:119
 AliEMCALEMCGeometry.h:120
 AliEMCALEMCGeometry.h:121
 AliEMCALEMCGeometry.h:122
 AliEMCALEMCGeometry.h:123
 AliEMCALEMCGeometry.h:124
 AliEMCALEMCGeometry.h:125
 AliEMCALEMCGeometry.h:126
 AliEMCALEMCGeometry.h:127
 AliEMCALEMCGeometry.h:128
 AliEMCALEMCGeometry.h:129
 AliEMCALEMCGeometry.h:130
 AliEMCALEMCGeometry.h:131
 AliEMCALEMCGeometry.h:132
 AliEMCALEMCGeometry.h:133
 AliEMCALEMCGeometry.h:134
 AliEMCALEMCGeometry.h:135
 AliEMCALEMCGeometry.h:136
 AliEMCALEMCGeometry.h:137
 AliEMCALEMCGeometry.h:138
 AliEMCALEMCGeometry.h:139
 AliEMCALEMCGeometry.h:140
 AliEMCALEMCGeometry.h:141
 AliEMCALEMCGeometry.h:142
 AliEMCALEMCGeometry.h:143
 AliEMCALEMCGeometry.h:144
 AliEMCALEMCGeometry.h:145
 AliEMCALEMCGeometry.h:146
 AliEMCALEMCGeometry.h:147
 AliEMCALEMCGeometry.h:148
 AliEMCALEMCGeometry.h:149
 AliEMCALEMCGeometry.h:150
 AliEMCALEMCGeometry.h:151
 AliEMCALEMCGeometry.h:152
 AliEMCALEMCGeometry.h:153
 AliEMCALEMCGeometry.h:154
 AliEMCALEMCGeometry.h:155
 AliEMCALEMCGeometry.h:156
 AliEMCALEMCGeometry.h:157
 AliEMCALEMCGeometry.h:158
 AliEMCALEMCGeometry.h:159
 AliEMCALEMCGeometry.h:160
 AliEMCALEMCGeometry.h:161
 AliEMCALEMCGeometry.h:162
 AliEMCALEMCGeometry.h:163
 AliEMCALEMCGeometry.h:164
 AliEMCALEMCGeometry.h:165
 AliEMCALEMCGeometry.h:166
 AliEMCALEMCGeometry.h:167
 AliEMCALEMCGeometry.h:168
 AliEMCALEMCGeometry.h:169
 AliEMCALEMCGeometry.h:170
 AliEMCALEMCGeometry.h:171
 AliEMCALEMCGeometry.h:172
 AliEMCALEMCGeometry.h:173
 AliEMCALEMCGeometry.h:174
 AliEMCALEMCGeometry.h:175
 AliEMCALEMCGeometry.h:176
 AliEMCALEMCGeometry.h:177
 AliEMCALEMCGeometry.h:178
 AliEMCALEMCGeometry.h:179
 AliEMCALEMCGeometry.h:180
 AliEMCALEMCGeometry.h:181
 AliEMCALEMCGeometry.h:182
 AliEMCALEMCGeometry.h:183
 AliEMCALEMCGeometry.h:184
 AliEMCALEMCGeometry.h:185
 AliEMCALEMCGeometry.h:186
 AliEMCALEMCGeometry.h:187
 AliEMCALEMCGeometry.h:188
 AliEMCALEMCGeometry.h:189
 AliEMCALEMCGeometry.h:190
 AliEMCALEMCGeometry.h:191
 AliEMCALEMCGeometry.h:192
 AliEMCALEMCGeometry.h:193
 AliEMCALEMCGeometry.h:194
 AliEMCALEMCGeometry.h:195
 AliEMCALEMCGeometry.h:196
 AliEMCALEMCGeometry.h:197
 AliEMCALEMCGeometry.h:198
 AliEMCALEMCGeometry.h:199
 AliEMCALEMCGeometry.h:200
 AliEMCALEMCGeometry.h:201
 AliEMCALEMCGeometry.h:202
 AliEMCALEMCGeometry.h:203
 AliEMCALEMCGeometry.h:204
 AliEMCALEMCGeometry.h:205
 AliEMCALEMCGeometry.h:206
 AliEMCALEMCGeometry.h:207
 AliEMCALEMCGeometry.h:208
 AliEMCALEMCGeometry.h:209
 AliEMCALEMCGeometry.h:210
 AliEMCALEMCGeometry.h:211
 AliEMCALEMCGeometry.h:212
 AliEMCALEMCGeometry.h:213
 AliEMCALEMCGeometry.h:214
 AliEMCALEMCGeometry.h:215
 AliEMCALEMCGeometry.h:216
 AliEMCALEMCGeometry.h:217
 AliEMCALEMCGeometry.h:218
 AliEMCALEMCGeometry.h:219
 AliEMCALEMCGeometry.h:220
 AliEMCALEMCGeometry.h:221
 AliEMCALEMCGeometry.h:222
 AliEMCALEMCGeometry.h:223
 AliEMCALEMCGeometry.h:224
 AliEMCALEMCGeometry.h:225
 AliEMCALEMCGeometry.h:226
 AliEMCALEMCGeometry.h:227
 AliEMCALEMCGeometry.h:228
 AliEMCALEMCGeometry.h:229
 AliEMCALEMCGeometry.h:230
 AliEMCALEMCGeometry.h:231
 AliEMCALEMCGeometry.h:232
 AliEMCALEMCGeometry.h:233
 AliEMCALEMCGeometry.h:234
 AliEMCALEMCGeometry.h:235
 AliEMCALEMCGeometry.h:236
 AliEMCALEMCGeometry.h:237
 AliEMCALEMCGeometry.h:238
 AliEMCALEMCGeometry.h:239
 AliEMCALEMCGeometry.h:240
 AliEMCALEMCGeometry.h:241
 AliEMCALEMCGeometry.h:242
 AliEMCALEMCGeometry.h:243
 AliEMCALEMCGeometry.h:244
 AliEMCALEMCGeometry.h:245
 AliEMCALEMCGeometry.h:246
 AliEMCALEMCGeometry.h:247
 AliEMCALEMCGeometry.h:248
 AliEMCALEMCGeometry.h:249
 AliEMCALEMCGeometry.h:250
 AliEMCALEMCGeometry.h:251
 AliEMCALEMCGeometry.h:252
 AliEMCALEMCGeometry.h:253
 AliEMCALEMCGeometry.h:254
 AliEMCALEMCGeometry.h:255
 AliEMCALEMCGeometry.h:256
 AliEMCALEMCGeometry.h:257
 AliEMCALEMCGeometry.h:258
 AliEMCALEMCGeometry.h:259
 AliEMCALEMCGeometry.h:260
 AliEMCALEMCGeometry.h:261
 AliEMCALEMCGeometry.h:262
 AliEMCALEMCGeometry.h:263
 AliEMCALEMCGeometry.h:264
 AliEMCALEMCGeometry.h:265
 AliEMCALEMCGeometry.h:266
 AliEMCALEMCGeometry.h:267
 AliEMCALEMCGeometry.h:268
 AliEMCALEMCGeometry.h:269
 AliEMCALEMCGeometry.h:270
 AliEMCALEMCGeometry.h:271
 AliEMCALEMCGeometry.h:272
 AliEMCALEMCGeometry.h:273
 AliEMCALEMCGeometry.h:274
 AliEMCALEMCGeometry.h:275
 AliEMCALEMCGeometry.h:276
 AliEMCALEMCGeometry.h:277
 AliEMCALEMCGeometry.h:278
 AliEMCALEMCGeometry.h:279
 AliEMCALEMCGeometry.h:280
 AliEMCALEMCGeometry.h:281
 AliEMCALEMCGeometry.h:282
 AliEMCALEMCGeometry.h:283
 AliEMCALEMCGeometry.h:284
 AliEMCALEMCGeometry.h:285
 AliEMCALEMCGeometry.h:286
 AliEMCALEMCGeometry.h:287
 AliEMCALEMCGeometry.h:288
 AliEMCALEMCGeometry.h:289
 AliEMCALEMCGeometry.h:290
 AliEMCALEMCGeometry.h:291
 AliEMCALEMCGeometry.h:292
 AliEMCALEMCGeometry.h:293
 AliEMCALEMCGeometry.h:294