+ // default ctor
+ // must be kept public for root persistency purposes, but should never be called by the outside world
+ fEnvelop[0] = 0.;
+ fEnvelop[1] = 0.;
+ fEnvelop[2] = 0.;
+ fParSM[0] = 0.;
+ fParSM[1] = 0.;
+ fParSM[2] = 0.;
+ for (Int_t i=0;i<AliEMCALGeoParams::fgkEMCALModules;i++)
+ fkSModuleMatrix[i]=0 ;
+
+ for (Int_t i = 0; i < 48; i++)
+ for (Int_t j = 0; j < 124; j++) fFastOR2DMap[i][j] = -1;
+}
+
+//____________________________________________________________________________
+AliEMCALGeometry::AliEMCALGeometry(const AliEMCALGeometry & geo)
+ : TNamed(geo),
+ fEMCGeometry(geo.fEMCGeometry),fGeoName(geo.fGeoName),fEMCSMSystem(geo.fEMCSMSystem),
+ fKey110DEG(geo.fKey110DEG),fnSupModInDCAL(geo.fnSupModInDCAL),fNCellsInSupMod(geo.fNCellsInSupMod),fNETAdiv(geo.fNETAdiv),fNPHIdiv(geo.fNPHIdiv),
+ fNCellsInModule(geo.fNCellsInModule),fPhiBoundariesOfSM(geo.fPhiBoundariesOfSM),fPhiCentersOfSM(geo.fPhiCentersOfSM),
+ fPhiCentersOfSMSec(geo.fPhiCentersOfSMSec),fPhiCentersOfCells(geo.fPhiCentersOfCells),fCentersOfCellsEtaDir(geo.fCentersOfCellsEtaDir),
+ fCentersOfCellsPhiDir(geo.fCentersOfCellsPhiDir),fEtaCentersOfCells(geo.fEtaCentersOfCells),
+ fNCells(geo.fNCells),fNPhi(geo.fNPhi),fCentersOfCellsXDir(geo.fCentersOfCellsXDir),fArm1EtaMin(geo.fArm1EtaMin),
+ fArm1EtaMax(geo.fArm1EtaMax),fArm1PhiMin(geo.fArm1PhiMin),fArm1PhiMax(geo.fArm1PhiMax),fEtaMaxOfTRD1(geo.fEtaMaxOfTRD1),
+ fDCALPhiMin(geo.fDCALPhiMin),fDCALPhiMax(geo.fDCALPhiMax),fEMCALPhiMax(geo.fEMCALPhiMax),fDCALStandardPhiMax(geo.fDCALStandardPhiMax),
+ fDCALInnerExtandedEta(geo.fDCALInnerExtandedEta),fShishKebabTrd1Modules(geo.fShishKebabTrd1Modules),fPhiModuleSize(geo.fPhiModuleSize),
+ fEtaModuleSize(geo.fEtaModuleSize),fPhiTileSize(geo.fPhiTileSize),fEtaTileSize(geo.fEtaTileSize),fNZ(geo.fNZ),
+ fIPDistance(geo.fIPDistance),fLongModuleSize(geo.fLongModuleSize),fShellThickness(geo.fShellThickness),
+ fZLength(geo.fZLength),fSampling(geo.fSampling),fUseExternalMatrices(geo.fUseExternalMatrices)
+{
+ // Copy constarctor
+ fEnvelop[0] = geo.fEnvelop[0];
+ fEnvelop[1] = geo.fEnvelop[1];
+ fEnvelop[2] = geo.fEnvelop[2];
+ fParSM[0] = geo.fParSM[0];
+ fParSM[1] = geo.fParSM[1];
+ fParSM[2] = geo.fParSM[2];
+ for (Int_t i=0;i<AliEMCALGeoParams::fgkEMCALModules;i++)
+ fkSModuleMatrix[i]=0 ;
+
+ for (Int_t i = 0; i < 48; i++)
+ for (Int_t j = 0; j < 124; j++) fFastOR2DMap[i][j] = geo.fFastOR2DMap[i][j];
+}
+
+//____________________________________________________________________________
+AliEMCALGeometry::AliEMCALGeometry(const Text_t* name, const Text_t* title,
+ const Text_t* mcname, const Text_t* mctitle)
+ : TNamed(name, title),
+ fEMCGeometry(0x0),fGeoName(0),fEMCSMSystem(0x0),
+ fKey110DEG(0),fnSupModInDCAL(0),fNCellsInSupMod(0),fNETAdiv(0),fNPHIdiv(0),
+ fNCellsInModule(0),fPhiBoundariesOfSM(0x0),fPhiCentersOfSM(0x0),
+ fPhiCentersOfSMSec(0x0),fPhiCentersOfCells(0x0),fCentersOfCellsEtaDir(0x0),
+ fCentersOfCellsPhiDir(0x0),fEtaCentersOfCells(0x0),
+ fNCells(0),fNPhi(0),fCentersOfCellsXDir(0x0),fArm1EtaMin(0),
+ fArm1EtaMax(0),fArm1PhiMin(0),fArm1PhiMax(0),fEtaMaxOfTRD1(0),
+ fDCALPhiMin(0),fDCALPhiMax(0),fEMCALPhiMax(0),fDCALStandardPhiMax(0),
+ fDCALInnerExtandedEta(0),fShishKebabTrd1Modules(0),fPhiModuleSize(0.),
+ fEtaModuleSize(0.),fPhiTileSize(0.),fEtaTileSize(0.),fNZ(0),
+ fIPDistance(0.),fLongModuleSize(0.),fShellThickness(0.),
+ fZLength(0.),fSampling(0.), fUseExternalMatrices(kFALSE)
+{
+ // ctor only for normal usage
+
+ fEMCGeometry = new AliEMCALEMCGeometry(name,title,mcname,mctitle);
+ fGeoName = fEMCGeometry->GetGeoName();
+ fEMCSMSystem = fEMCGeometry->GetEMCSystem();
+ fKey110DEG = fEMCGeometry->GetKey110DEG();
+ fnSupModInDCAL = fEMCGeometry->GetnSupModInDCAL();
+ fNCellsInSupMod = fEMCGeometry->GetNCellsInSupMod();
+ fNETAdiv = fEMCGeometry->GetNETAdiv();
+ fNPHIdiv = fEMCGeometry->GetNPHIdiv();
+ fNCellsInModule = fNPHIdiv*fNETAdiv;
+ static int i=0;
+ Int_t nSMod = fEMCGeometry->GetNumberOfSuperModules();
+ fPhiBoundariesOfSM.Set(nSMod);
+ fPhiCentersOfSM.Set(nSMod/2);
+ fPhiCentersOfSMSec.Set(nSMod/2);
+ for(Int_t sm=0; sm<nSMod; sm++) {
+ i = sm/2;
+ fEMCGeometry->GetPhiBoundariesOfSM(sm,fPhiBoundariesOfSM[2*i],fPhiBoundariesOfSM[2*i+1]);
+ }