#include <TObjArray.h>
#include <TObjString.h>
#include <TRegexp.h>
#include "AliLog.h"
#include "AliEMCALEMCGeometry.h"
#include <cassert>
ClassImp(AliEMCALEMCGeometry)
Bool_t AliEMCALEMCGeometry::fgInit = kFALSE;
const Char_t* AliEMCALEMCGeometry::fgkDefaultGeometryName = "EMCAL_COMPLETE12SMV1";
AliEMCALEMCGeometry::AliEMCALEMCGeometry()
: TNamed(),
fGeoName(0),fEMCSMSystem(0x0),fArrayOpts(0),fNAdditionalOpts(0),fECPbRadThickness(0.),fECScintThick(0.),
fNECLayers(0),fArm1PhiMin(0.),fArm1PhiMax(0.),fArm1EtaMin(0.),fArm1EtaMax(0.),fIPDistance(0.),
fShellThickness(0.),fZLength(0.),fDCALInnerEdge(0.),fDCALPhiMin(0),fDCALPhiMax(0),fEMCALPhiMax(0),
fDCALStandardPhiMax(0),fDCALInnerExtandedEta(0),fNZ(0),fNPhi(0),fSampling(0.),fNumberOfSuperModules(0),
fFrontSteelStrip(0.),fLateralSteelStrip(0.),fPassiveScintThick(0.),fPhiModuleSize(0.),
fEtaModuleSize(0.),fPhiTileSize(0.),fEtaTileSize(0.),fLongModuleSize(0.),fPhiSuperModule(0),fNPhiSuperModule(0),
fNPHIdiv(0),fNETAdiv(0), fNCells(0),fNCellsInSupMod(0),fNCellsInModule(0),
fNTRUEta(0), fNTRUPhi(0), fNModulesInTRUEta(0), fNModulesInTRUPhi(0), fNEtaSubOfTRU(0), fNTotalTRU(0),
fTrd1Angle(0.),f2Trd1Dx2(0.),fPhiGapForSM(0.),fKey110DEG(0),fnSupModInDCAL(0),fPhiBoundariesOfSM(0),
fPhiCentersOfSM(0),fPhiCentersOfSMSec(0),fEtaMaxOfTRD1(0),fTrd1AlFrontThick(0.0), fTrd1BondPaperThick(0.),
fCentersOfCellsEtaDir(0), fCentersOfCellsXDir(0),fCentersOfCellsPhiDir(0),
fEtaCentersOfCells(0),fPhiCentersOfCells(0),fShishKebabTrd1Modules(0),
fParSM(), fILOSS(-1), fIHADR(-1),
fGap2Active(0.), fSteelFrontThick(0.), fTrd2AngleY(0.),
f2Trd2Dy2(0.), fEmptySpace(0.), fTubsR(0.), fTubsTurnAngle(0.)
{
fParSM[0]=0; fParSM[1]=0; fParSM[2]=0;
fEnvelop[0] = 0; fEnvelop[1] = 0; fEnvelop[2] = 0;
for(Int_t i = 0; i < 6; i++) fkAdditionalOpts[i] = "";
AliDebug(2, "AliEMCALEMCGeometry : default ctor ");
}
AliEMCALEMCGeometry::AliEMCALEMCGeometry(const Text_t* name, const Text_t* title,
const Text_t* mcname, const Text_t* mctitle ) :
TNamed(name,title),
fGeoName(0),fEMCSMSystem(0x0),fArrayOpts(0),fNAdditionalOpts(0),fECPbRadThickness(0.),fECScintThick(0.),
fNECLayers(0),fArm1PhiMin(0.),fArm1PhiMax(0.),fArm1EtaMin(0.),fArm1EtaMax(0.),fIPDistance(0.),
fShellThickness(0.),fZLength(0.),fDCALInnerEdge(0.),fDCALPhiMin(0),fDCALPhiMax(0),fEMCALPhiMax(0),
fDCALStandardPhiMax(0),fDCALInnerExtandedEta(0),fNZ(0),fNPhi(0),fSampling(0.),fNumberOfSuperModules(0),
fFrontSteelStrip(0.),fLateralSteelStrip(0.),fPassiveScintThick(0.),fPhiModuleSize(0.),
fEtaModuleSize(0.),fPhiTileSize(0.),fEtaTileSize(0.),fLongModuleSize(0.),fPhiSuperModule(0),fNPhiSuperModule(0),
fNPHIdiv(0),fNETAdiv(0), fNCells(0),fNCellsInSupMod(0),fNCellsInModule(0),
fNTRUEta(0), fNTRUPhi(0), fNModulesInTRUEta(0), fNModulesInTRUPhi(0), fNEtaSubOfTRU(0), fNTotalTRU(0),
fTrd1Angle(0.),f2Trd1Dx2(0.),fPhiGapForSM(0.),fKey110DEG(0),fnSupModInDCAL(0),fPhiBoundariesOfSM(0),
fPhiCentersOfSM(0),fPhiCentersOfSMSec(0),fEtaMaxOfTRD1(0),fTrd1AlFrontThick(0.0), fTrd1BondPaperThick(0.),
fCentersOfCellsEtaDir(0),fCentersOfCellsXDir(0),fCentersOfCellsPhiDir(0),
fEtaCentersOfCells(0),fPhiCentersOfCells(0),fShishKebabTrd1Modules(0),
fParSM(),fILOSS(-1), fIHADR(-1),
fGap2Active(0.), fSteelFrontThick(0.), fTrd2AngleY(0.),
f2Trd2Dy2(0.), fEmptySpace(0.), fTubsR(0.), fTubsTurnAngle(0.)
{
AliDebug(2, Form("AliEMCALEMCGeometry(%s,%s,%s,%s) ", name,title,mcname,mctitle));
Init(mcname,mctitle);
if (AliDebugLevel()>=2) {
PrintGeometry();
}
}
AliEMCALEMCGeometry::AliEMCALEMCGeometry(const AliEMCALEMCGeometry& geom)
: TNamed(geom),
fGeoName(geom.fGeoName),
fEMCSMSystem(geom.fEMCSMSystem),
fArrayOpts(geom.fArrayOpts),
fNAdditionalOpts(geom.fNAdditionalOpts),
fECPbRadThickness(geom.fECPbRadThickness),
fECScintThick(geom.fECScintThick),
fNECLayers(geom.fNECLayers),
fArm1PhiMin(geom.fArm1PhiMin),
fArm1PhiMax(geom.fArm1PhiMax),
fArm1EtaMin(geom.fArm1EtaMin),
fArm1EtaMax(geom.fArm1EtaMax),
fIPDistance(geom.fIPDistance),
fShellThickness(geom.fShellThickness),
fZLength(geom.fZLength),
fDCALInnerEdge(geom.fDCALInnerEdge),
fDCALPhiMin(geom.fDCALPhiMin),
fDCALPhiMax(geom.fDCALPhiMax),
fEMCALPhiMax(geom.fEMCALPhiMax),
fDCALStandardPhiMax(geom.fDCALStandardPhiMax),
fDCALInnerExtandedEta(geom.fDCALInnerExtandedEta),
fNZ(geom.fNZ),
fNPhi(geom.fNPhi),
fSampling(geom.fSampling),
fNumberOfSuperModules(geom.fNumberOfSuperModules),
fFrontSteelStrip(geom.fFrontSteelStrip),
fLateralSteelStrip(geom.fLateralSteelStrip),
fPassiveScintThick(geom.fPassiveScintThick),
fPhiModuleSize(geom.fPhiModuleSize),
fEtaModuleSize(geom.fEtaModuleSize),
fPhiTileSize(geom.fPhiTileSize),
fEtaTileSize(geom.fEtaTileSize),
fLongModuleSize(geom.fLongModuleSize),
fPhiSuperModule(geom.fPhiSuperModule),
fNPhiSuperModule(geom.fNPhiSuperModule),
fNPHIdiv(geom.fNPHIdiv),
fNETAdiv(geom.fNETAdiv),
fNCells(geom.fNCells),
fNCellsInSupMod(geom.fNCellsInSupMod),
fNCellsInModule(geom.fNCellsInModule),
fNTRUEta(geom.fNTRUEta),
fNTRUPhi(geom.fNTRUPhi),
fNModulesInTRUEta(geom.fNModulesInTRUEta),
fNModulesInTRUPhi(geom.fNModulesInTRUPhi),
fNEtaSubOfTRU(geom.fNEtaSubOfTRU),
fNTotalTRU(geom.fNTotalTRU),
fTrd1Angle(geom.fTrd1Angle),
f2Trd1Dx2(geom.f2Trd1Dx2),
fPhiGapForSM(geom.fPhiGapForSM),
fKey110DEG(geom.fKey110DEG),
fnSupModInDCAL(geom.fnSupModInDCAL),
fPhiBoundariesOfSM(geom.fPhiBoundariesOfSM),
fPhiCentersOfSM(geom.fPhiCentersOfSM),
fPhiCentersOfSMSec(geom.fPhiCentersOfSMSec),
fEtaMaxOfTRD1(geom.fEtaMaxOfTRD1),
fTrd1AlFrontThick(geom.fTrd1AlFrontThick),
fTrd1BondPaperThick(geom.fTrd1BondPaperThick),
fCentersOfCellsEtaDir(geom.fCentersOfCellsEtaDir),
fCentersOfCellsXDir(geom.fCentersOfCellsXDir),
fCentersOfCellsPhiDir(geom.fCentersOfCellsPhiDir),
fEtaCentersOfCells(geom.fEtaCentersOfCells),
fPhiCentersOfCells(geom.fPhiCentersOfCells),
fShishKebabTrd1Modules(geom.fShishKebabTrd1Modules),
fILOSS(geom.fILOSS), fIHADR(geom.fIHADR),
fGap2Active(geom.fGap2Active),
fSteelFrontThick(geom.fSteelFrontThick),
fTrd2AngleY(geom.fTrd2AngleY),
f2Trd2Dy2(geom.f2Trd2Dy2),
fEmptySpace(geom.fEmptySpace),
fTubsR(geom.fTubsR),
fTubsTurnAngle(geom.fTubsTurnAngle)
{
fParSM[0]=geom.fParSM[0];
fParSM[1]=geom.fParSM[1];
fParSM[2]=geom.fParSM[2];
fEnvelop[0] = geom.fEnvelop[0];
fEnvelop[1] = geom.fEnvelop[1];
fEnvelop[2] = geom.fEnvelop[2];
for(Int_t i = 0; i < 6; i++) fkAdditionalOpts[i] = geom.fkAdditionalOpts[i];
}
AliEMCALEMCGeometry::~AliEMCALEMCGeometry(void){
delete fEMCSMSystem;
}
void AliEMCALEMCGeometry::Init(const Text_t* mcname, const Text_t* mctitle){
fkAdditionalOpts[0] = "nl=";
fkAdditionalOpts[1] = "pbTh=";
fkAdditionalOpts[2] = "scTh=";
fkAdditionalOpts[3] = "latSS=";
fkAdditionalOpts[4] = "allILOSS=";
fkAdditionalOpts[5] = "allIHADR=";
fNAdditionalOpts = sizeof(fkAdditionalOpts) / sizeof(char*);
fgInit = kFALSE;
fGeoName = GetName();
fGeoName.ToUpper();
if(fGeoName.Contains("SHISH_77_TRD1_2X2_FINAL_110DEG")) {
if(fGeoName.Contains("PBTH=0.144") && fGeoName.Contains("SCTH=0.176")) {
fGeoName = "EMCAL_COMPLETE";
} else {
fGeoName = "EMCAL_PDC06";
}
}
if(fGeoName.Contains("WSUC")) fGeoName = "EMCAL_WSUC";
if(!( fGeoName.Contains("EMCAL_PDC06")
|| fGeoName.Contains("EMCAL_WSUC")
|| fGeoName.Contains("EMCAL_COMPLETE")
|| fGeoName.Contains("EMCAL_COMPLETEV1")
|| fGeoName.Contains("EMCAL_COMPLETE12SMV1")
|| fGeoName.Contains("EMCAL_FIRSTYEAR")
|| fGeoName.Contains("EMCAL_FIRSTYEARV1") )) {
Fatal("Init", "%s is an undefined geometry!", fGeoName.Data()) ;
}
fKey110DEG = 0;
if( fGeoName.Contains("COMPLETE")
|| fGeoName.Contains("PDC06")
|| fGeoName.Contains("12SM")) fKey110DEG = 1;
if(fGeoName.Contains("COMPLETEV1")) fKey110DEG = 0;
fShishKebabTrd1Modules = 0;
fnSupModInDCAL = 0;
if(fGeoName.Contains("DCAL_DEV")){
fnSupModInDCAL = 10;
} else if(fGeoName.Contains("DCAL_8SM")){
fnSupModInDCAL = 8;
} else if(fGeoName.Contains("DCAL")){
fnSupModInDCAL = 6;
}
fNumberOfSuperModules = 12;
fNPhi = 12;
fNZ = 24;
fNPHIdiv = fNETAdiv = 2;
fArm1PhiMin = 80.0;
fArm1PhiMax = 200.0;
fArm1EtaMin = -0.7;
fArm1EtaMax = +0.7;
fIPDistance = 428.0;
fPhiGapForSM = 2.;
fFrontSteelStrip = 0.025;
fPassiveScintThick = 0.8;
fLateralSteelStrip = 0.01;
fTrd1Angle = 1.5;
fSampling = 1.;
fNECLayers = 77;
fECScintThick = 0.176;
fECPbRadThickness = 0.144;
fPhiModuleSize = 12.26 - fPhiGapForSM / Float_t(fNPhi);
fEtaModuleSize = fPhiModuleSize;
fZLength = 700.;
fPhiSuperModule = 20. ;
fDCALInnerEdge = fIPDistance * TMath::Tan( fTrd1Angle * 8.* TMath::DegToRad());
CheckAdditionalOptions();
if(fGeoName.Contains("PDC06")){
fECScintThick = fECPbRadThickness = 0.16;
CheckAdditionalOptions();
}
if(fGeoName.Contains("WSUC")){
fNumberOfSuperModules = 2;
fNPhi = fNZ = 4;
fTrd1AlFrontThick = 1.0;
fTrd1BondPaperThick = 0.01;
fPhiModuleSize = 12.0;
fEtaModuleSize = fPhiModuleSize;
fLateralSteelStrip = 0.015;
CheckAdditionalOptions();
}
if(fGeoName.Contains("FIRSTYEAR")){
fNumberOfSuperModules = 4;
fArm1PhiMax = 120.0;
CheckAdditionalOptions();
}
if(fGeoName.Contains("FIRSTYEARV1") || fGeoName.Contains("COMPLETEV1") || fGeoName.Contains("COMPLETE12SMV1") ){
fTrd1AlFrontThick = 1.0;
fTrd1BondPaperThick = 0.01;
fPhiModuleSize = 12.0;
fEtaModuleSize = fPhiModuleSize;
fLateralSteelStrip = 0.015;
if(fGeoName.Contains("COMPLETEV1"))
{
fNumberOfSuperModules = 10;
fArm1PhiMax = 180.0;
}
else if (fGeoName.Contains("COMPLETE12SMV1"))
{
fNumberOfSuperModules = 12;
fArm1PhiMax = 200.0;
}
if (fGeoName.Contains("DCAL"))
{
fNumberOfSuperModules = 12 + fnSupModInDCAL;
fArm1PhiMax = 320.0;
if(fGeoName.Contains("DCAL_8SM")) fArm1PhiMax = 340.0;
else if(fGeoName.Contains("DCAL_DEV")) fArm1PhiMin = 40.0;
fDCALPhiMin = fArm1PhiMax - 10.*fnSupModInDCAL;
}
CheckAdditionalOptions();
}
fEMCSMSystem = new Int_t[fNumberOfSuperModules];
Int_t iSM = 0;
if(fGeoName.Contains("WSUC") ){
for(int i = 0; i<2; i++){
fEMCSMSystem[iSM] = kEMCAL_Standard;
iSM++;
}
} else if(fGeoName.Contains("FIRSTYEAR") ){
for(int i = 0; i<4; i++){
fEMCSMSystem[iSM] = kEMCAL_Standard;
iSM++;
}
} else if( fGeoName.Contains("PDC06")
|| fGeoName.Contains("COMPLETE") ){
for(int i = 0; i<10; i++){
fEMCSMSystem[iSM] = kEMCAL_Standard;
iSM++;
}
}
if(fKey110DEG && fGeoName.Contains("12SM") ){
for(int i = 0; i<2; i++){
fEMCSMSystem[iSM] = kEMCAL_Half;
if(fGeoName.Contains("12SMV1") ){
fEMCSMSystem[iSM] = kEMCAL_3rd;
}
iSM++;
}
}
if(fnSupModInDCAL && fGeoName.Contains("DCAL")){
if(fGeoName.Contains("8SM")) {
for(int i = 0; i<fnSupModInDCAL-2; i++){
fEMCSMSystem[iSM] = kDCAL_Standard;
iSM++;
}
for(int i = 0; i<2; i++){
fEMCSMSystem[iSM] = kDCAL_Ext;
iSM++;
}
} else {
for(int i = 0; i<fnSupModInDCAL; i++){
fEMCSMSystem[iSM] = kDCAL_Standard;
iSM++;
}
}
}
fNCellsInModule = fNPHIdiv*fNETAdiv;
fNCellsInSupMod = fNCellsInModule*fNPhi*fNZ;
fNCells = 0;
for( int i=0; i<fNumberOfSuperModules; i++) {
if( GetSMType(i) == kEMCAL_Standard) fNCells += fNCellsInSupMod ;
else if( GetSMType(i) == kEMCAL_Half) fNCells += fNCellsInSupMod/2 ;
else if( GetSMType(i) == kEMCAL_3rd) fNCells += fNCellsInSupMod/3 ;
else if( GetSMType(i) == kDCAL_Standard) fNCells += 2*fNCellsInSupMod/3 ;
else if( GetSMType(i) == kDCAL_Ext) fNCells += fNCellsInSupMod/3 ;
else AliError(Form("Uknown SuperModule Type !!"));
}
fNPhiSuperModule = fNumberOfSuperModules/2;
if(fNPhiSuperModule < 1) fNPhiSuperModule = 1;
fPhiTileSize = fPhiModuleSize/double(fNPHIdiv) - fLateralSteelStrip;
fEtaTileSize = fEtaModuleSize/double(fNETAdiv) - fLateralSteelStrip;
fLongModuleSize = fNECLayers*(fECScintThick + fECPbRadThickness);
if(fGeoName.Contains("V1")){
Double_t ws = fECScintThick + fECPbRadThickness + 2.*fTrd1BondPaperThick;
fLongModuleSize = fTrd1AlFrontThick + (ws*fNECLayers - fECPbRadThickness);
}
f2Trd1Dx2 = fEtaModuleSize + 2.*fLongModuleSize*TMath::Tan(fTrd1Angle*TMath::DegToRad()/2.);
if(!fGeoName.Contains("WSUC")) fShellThickness = TMath::Sqrt(fLongModuleSize*fLongModuleSize + f2Trd1Dx2*f2Trd1Dx2);
fEnvelop[0] = fIPDistance - 1.;
fEnvelop[1] = fIPDistance + fShellThickness + 1.;
fEnvelop[2] = fZLength + 2.;
fParSM[0] = GetShellThickness()/2.;
fParSM[1] = GetPhiModuleSize() * GetNPhi()/2.;
fParSM[2] = fZLength/4.;
fPhiBoundariesOfSM.Set(fNumberOfSuperModules);
fPhiCentersOfSM.Set(fNumberOfSuperModules/2);
fPhiCentersOfSMSec.Set(fNumberOfSuperModules/2);
Double_t kfSupermodulePhiWidth = fPhiSuperModule*TMath::DegToRad();
fPhiCentersOfSM[0] = (fArm1PhiMin + fPhiSuperModule/2.) * TMath::DegToRad();
fPhiCentersOfSMSec[0] = fPhiCentersOfSM[0];
fPhiBoundariesOfSM[0] = fPhiCentersOfSM[0] - TMath::ATan2(fParSM[1] , fIPDistance);
fPhiBoundariesOfSM[1] = fPhiCentersOfSM[0] + TMath::ATan2(fParSM[1] , fIPDistance);
if(fNumberOfSuperModules > 2) {
Int_t tmpSMType = GetSMType(2);
for(int i = 1; i<fNPhiSuperModule; i++) {
fPhiBoundariesOfSM[2*i] += fPhiBoundariesOfSM[2*i-2] + kfSupermodulePhiWidth;
if(tmpSMType == GetSMType(2*i)) {
fPhiBoundariesOfSM[2*i+1] += fPhiBoundariesOfSM[2*i-1] + kfSupermodulePhiWidth;
} else {
tmpSMType = GetSMType(2*i);
if( GetSMType(2*i) == kEMCAL_Standard) {
fPhiBoundariesOfSM[2*i+1] = fPhiBoundariesOfSM[2*i] + kfSupermodulePhiWidth;
} else if( GetSMType(2*i) == kEMCAL_Half) {
fPhiBoundariesOfSM[2*i+1] = fPhiBoundariesOfSM[2*i] + 2.*TMath::ATan2((fParSM[1])/2, fIPDistance);
} else if( GetSMType(2*i) == kEMCAL_3rd ) {
fPhiBoundariesOfSM[2*i+1] = fPhiBoundariesOfSM[2*i] + 2.*TMath::ATan2((fParSM[1])/3, fIPDistance);
} else if( GetSMType(2*i) == kDCAL_Standard ) {
fPhiBoundariesOfSM[2*i] = (fDCALPhiMin - fArm1PhiMin)*TMath::DegToRad() + fPhiBoundariesOfSM[0];
fPhiBoundariesOfSM[2*i+1] = (fDCALPhiMin - fArm1PhiMin)*TMath::DegToRad() + fPhiBoundariesOfSM[1];
} else if( GetSMType(2*i) == kDCAL_Ext) {
fPhiBoundariesOfSM[2*i+1] = fPhiBoundariesOfSM[2*i] + 2.*TMath::ATan2((fParSM[1])/3, fIPDistance);
}
}
fPhiCentersOfSM[i] = (fPhiBoundariesOfSM[2*i]+fPhiBoundariesOfSM[2*i+1])/2.;
fPhiCentersOfSMSec[i] = fPhiBoundariesOfSM[2*i] + TMath::ATan2(fParSM[1] , fIPDistance);
}
}
Double_t fInnerExtandedPhi = 1.102840997;
fDCALInnerExtandedEta = -TMath::Log(TMath::Tan( (TMath::Pi()/2. - 8*fTrd1Angle*TMath::DegToRad() + (TMath::Pi()/2 - fNZ*fTrd1Angle*TMath::DegToRad() - TMath::ATan(TMath::Exp(fArm1EtaMin))*2))/2.));
fEMCALPhiMax = fArm1PhiMin;
fDCALPhiMax = fDCALPhiMin;
for( Int_t i = 0; i < fNumberOfSuperModules; i+=2) {
if( GetSMType(i) == kEMCAL_Standard ) fEMCALPhiMax += 20.;
else if( GetSMType(i) == kEMCAL_Half ) fEMCALPhiMax += fPhiSuperModule/2. + fInnerExtandedPhi;
else if( GetSMType(i) == kEMCAL_3rd ) fEMCALPhiMax += fPhiSuperModule/3. + 4.0*fInnerExtandedPhi/3.0;
else if( GetSMType(i) == kDCAL_Standard ) {fDCALPhiMax += 20.; fDCALStandardPhiMax = fDCALPhiMax;}
else if( GetSMType(i) == kDCAL_Ext ) fDCALPhiMax += fPhiSuperModule/3. + 4.0*fInnerExtandedPhi/3.0;
else AliError("Unkown SM Type!!");
}
if(fNumberOfSuperModules == 12) {fEMCALPhiMax = fArm1PhiMax ;}
DefineSamplingFraction(mcname,mctitle);
fNTRUEta = 1;
fNTRUPhi = 3;
fNModulesInTRUEta = 24;
fNModulesInTRUPhi = 4;
fNEtaSubOfTRU = 6;
fNTotalTRU = 0;
for(Int_t i = 0; i < GetNumberOfSuperModules(); i++){
if( GetSMType(i) == kEMCAL_Standard) fNTotalTRU += 3;
else if( GetSMType(i) == kEMCAL_Half) fNTotalTRU += 1;
else if( GetSMType(i) == kEMCAL_3rd) fNTotalTRU += 1;
else if( GetSMType(i) == kDCAL_Standard) fNTotalTRU += 3;
else if( GetSMType(i) == kDCAL_Ext) fNTotalTRU += 1;
else {
AliError(Form("Uknown SuperModule Type !!"));
}
}
fgInit = kTRUE;
}
void AliEMCALEMCGeometry::PrintGeometry()
{
printf("\nInit: geometry of EMCAL named %s :\n", fGeoName.Data());
if(fArrayOpts) {
for(Int_t i=0; i<fArrayOpts->GetEntries(); i++){
TObjString *o = (TObjString*)fArrayOpts->At(i);
printf(" %i : %s \n", i, o->String().Data());
}
}
if(fGeoName.Contains("DCAL")) {
printf("Phi min of DCAL SuperModule: %7.1f, DCAL has %d SuperModule\n", fDCALPhiMin, fnSupModInDCAL);
printf("The DCAL inner edge is +- %7.1f\n", fDCALInnerEdge);
if(fGeoName.Contains("DCAL_8SM")) printf("DCAL has its 2 EXTENTION SM\n");
}
printf("Granularity: %d in eta and %d in phi\n", GetNZ(), GetNPhi()) ;
printf("Layout: phi = (%7.1f, %7.1f), eta = (%5.2f, %5.2f), IP = %7.2f -> for EMCAL envelope only\n",
GetArm1PhiMin(), GetArm1PhiMax(),GetArm1EtaMin(), GetArm1EtaMax(), GetIPDistance() );
printf( " ECAL : %d x (%f cm Pb, %f cm Sc) \n",
GetNECLayers(), GetECPbRadThick(), GetECScintThick() ) ;
printf(" fSampling %5.2f \n", fSampling );
printf(" fIPDistance %6.3f cm \n", fIPDistance);
printf(" fNPhi %i | fNZ %i \n", fNPhi, fNZ);
printf(" fNCellsInModule %i : fNCellsInSupMod %i : fNCells %i\n",fNCellsInModule, fNCellsInSupMod, fNCells);
printf(" X:Y module size %6.3f , %6.3f cm \n", fPhiModuleSize, fEtaModuleSize);
printf(" X:Y tile size %6.3f , %6.3f cm \n", fPhiTileSize, fEtaTileSize);
printf(" #of sampling layers %i(fNECLayers) \n", fNECLayers);
printf(" fLongModuleSize %6.3f cm \n", fLongModuleSize);
printf(" #supermodule in phi direction %i \n", fNPhiSuperModule );
printf(" supermodule width in phi direction %f \n", fPhiSuperModule );
printf(" fILOSS %i : fIHADR %i \n", fILOSS, fIHADR);
printf(" fTrd1Angle %7.4f\n", fTrd1Angle);
printf(" f2Trd1Dx2 %7.4f\n", f2Trd1Dx2);
printf(" fTrd1AlFrontThick %7.4f \n", fTrd1AlFrontThick);
printf(" fTrd1BondPaperThick %5.4f \n", fTrd1BondPaperThick);
printf("SM dimensions(TRD1) : dx %7.2f dy %7.2f dz %7.2f (SMOD, BOX)\n",
fParSM[0],fParSM[1],fParSM[2]);
printf(" fPhiGapForSM %7.4f cm (%7.4f <- phi size in degree)\n",
fPhiGapForSM, TMath::ATan2(fPhiGapForSM,fIPDistance)*TMath::RadToDeg());
if( fKey110DEG && !fGeoName.Contains("12SMV1") ) printf(" Last two modules have size 10 degree in phi (180<phi<190)\n");
if( fKey110DEG && fGeoName.Contains("12SMV1")) printf(" Last two modules have size 6.6 degree in phi (180<phi<186.6)\n");
printf(" phi SM boundaries \n");
for(int i=0; i<fPhiBoundariesOfSM.GetSize()/2.; i++) {
printf(" %i : %7.15f(%7.12f) -> %7.15f(%7.12f) : center %7.15f(%7.12f) \n", i,
fPhiBoundariesOfSM[2*i], fPhiBoundariesOfSM[2*i]*TMath::RadToDeg(),
fPhiBoundariesOfSM[2*i+1], fPhiBoundariesOfSM[2*i+1]*TMath::RadToDeg(),
fPhiCentersOfSM[i], fPhiCentersOfSM[i]*TMath::RadToDeg());
}
}
void AliEMCALEMCGeometry::CheckAdditionalOptions()
{
fArrayOpts = new TObjArray;
Int_t nopt = ParseString(fGeoName, *fArrayOpts);
if(nopt==1) {
fArrayOpts->Delete();
delete fArrayOpts;
fArrayOpts = 0;
return;
}
for(Int_t i=1; i<nopt; i++){
TObjString *o = (TObjString*)fArrayOpts->At(i);
TString addOpt = o->String();
Int_t indj=-1;
for(Int_t j=0; j<fNAdditionalOpts; j++) {
TString opt = fkAdditionalOpts[j];
if(addOpt.Contains(opt,TString::kIgnoreCase)) {
indj = j;
break;
}
}
if(indj<0) {
AliDebug(2,Form("<E> option |%s| unavailable : ** look to the file AliEMCALGeometry.h **\n",
addOpt.Data()));
assert(0);
} else {
AliDebug(2,Form("<I> option |%s| is valid : number %i : |%s|\n",
addOpt.Data(), indj, fkAdditionalOpts[indj]));
if (addOpt.Contains("NL=",TString::kIgnoreCase)) {
sscanf(addOpt.Data(),"NL=%i", &fNECLayers);
AliDebug(2,Form(" fNECLayers %i (new) \n", fNECLayers));
} else if(addOpt.Contains("PBTH=",TString::kIgnoreCase)) {
sscanf(addOpt.Data(),"PBTH=%f", &fECPbRadThickness);
} else if(addOpt.Contains("SCTH=",TString::kIgnoreCase)) {
sscanf(addOpt.Data(),"SCTH=%f", &fECScintThick);
} else if(addOpt.Contains("LATSS=",TString::kIgnoreCase)) {
sscanf(addOpt.Data(),"LATSS=%f", &fLateralSteelStrip);
AliDebug(2,Form(" fLateralSteelStrip %f (new) \n", fLateralSteelStrip));
} else if(addOpt.Contains("ILOSS=",TString::kIgnoreCase)) {
sscanf(addOpt.Data(),"ALLILOSS=%i", &fILOSS);
AliDebug(2,Form(" fILOSS %i \n", fILOSS));
} else if(addOpt.Contains("IHADR=",TString::kIgnoreCase)) {
sscanf(addOpt.Data(),"ALLIHADR=%i", &fIHADR);
AliDebug(2,Form(" fIHADR %i \n", fIHADR));
}
}
}
}
void AliEMCALEMCGeometry::DefineSamplingFraction(const Text_t* mcname, const Text_t* mctitle)
{
fSampling = 10.87;
if(fNECLayers == 69) {
fSampling = 12.55;
} else if(fNECLayers == 61) {
fSampling = 12.80;
} else if(fNECLayers == 77) {
if(fGeoName.Contains("V1")){
fSampling = 10.87;
} else if (fECScintThick>0.159 && fECScintThick<0.161) {
fSampling = 12.327;
} else if (fECScintThick>0.175 && fECScintThick<0.177) {
fSampling = 10.5;
} else if(fECScintThick>0.191 && fECScintThick<0.193) {
fSampling = 8.93;
}
}
TString mcName = mcname;
TString mcTitle = mctitle;
Float_t samplingFactorTranportModel = 1. ;
if (mcName.Contains("Geant3")) samplingFactorTranportModel = 1.;
else if(mcName.Contains("Fluka") ) samplingFactorTranportModel = 1.;
else if(mcName.Contains("Geant4")){
if(mcTitle.Contains("EMV")) samplingFactorTranportModel = 1.096;
else samplingFactorTranportModel = 0.86;
}
AliDebug(2,Form("MC modeler <%s>, Title <%s>: Sampling %f, model fraction with respect to G3 %f, final sampling %f \n",
mcName.Data(),mcTitle.Data(),fSampling,samplingFactorTranportModel,fSampling*samplingFactorTranportModel));
fSampling*=samplingFactorTranportModel;
}
Double_t AliEMCALEMCGeometry::GetPhiCenterOfSMSec(Int_t nsupmod) const
{
int i = nsupmod/2;
return fPhiCentersOfSMSec[i];
}
Double_t AliEMCALEMCGeometry::GetPhiCenterOfSM(Int_t nsupmod) const
{
int i = nsupmod/2;
return fPhiCentersOfSM[i];
}
Bool_t AliEMCALEMCGeometry::GetPhiBoundariesOfSM(Int_t nSupMod, Double_t &phiMin, Double_t &phiMax) const
{
static int i;
if(nSupMod<0 || nSupMod >12+fnSupModInDCAL-1) return kFALSE;
i = nSupMod/2;
phiMin = (Double_t)fPhiBoundariesOfSM[2*i];
phiMax = (Double_t)fPhiBoundariesOfSM[2*i+1];
return kTRUE;
}
Bool_t AliEMCALEMCGeometry::GetPhiBoundariesOfSMGap(Int_t nPhiSec, Double_t &phiMin, Double_t &phiMax) const
{
if(nPhiSec<0 || nPhiSec >5+fnSupModInDCAL/2-1) return kFALSE;
phiMin = fPhiBoundariesOfSM[2*nPhiSec+1];
phiMax = fPhiBoundariesOfSM[2*nPhiSec+2];
return kTRUE;
}
int AliEMCALEMCGeometry::ParseString(const TString &topt, TObjArray &Opt)
{
Ssiz_t begin, index, end, end2;
begin = index = end = end2 = 0;
TRegexp separator("[^ ;,\\t\\s/]+");
while ( (begin < topt.Length()) && (index != kNPOS) ) {
index = topt.Index(separator,&end,begin);
if (index >= 0 && end >= 1) {
TString substring(topt(index,end));
Opt.Add(new TObjString(substring.Data()));
}
begin += end+1;
}
return Opt.GetEntries();
}
AliEMCALEMCGeometry.cxx:1 AliEMCALEMCGeometry.cxx:2 AliEMCALEMCGeometry.cxx:3 AliEMCALEMCGeometry.cxx:4 AliEMCALEMCGeometry.cxx:5 AliEMCALEMCGeometry.cxx:6 AliEMCALEMCGeometry.cxx:7 AliEMCALEMCGeometry.cxx:8 AliEMCALEMCGeometry.cxx:9 AliEMCALEMCGeometry.cxx:10 AliEMCALEMCGeometry.cxx:11 AliEMCALEMCGeometry.cxx:12 AliEMCALEMCGeometry.cxx:13 AliEMCALEMCGeometry.cxx:14 AliEMCALEMCGeometry.cxx:15 AliEMCALEMCGeometry.cxx:16 AliEMCALEMCGeometry.cxx:17 AliEMCALEMCGeometry.cxx:18 AliEMCALEMCGeometry.cxx:19 AliEMCALEMCGeometry.cxx:20 AliEMCALEMCGeometry.cxx:21 AliEMCALEMCGeometry.cxx:22 AliEMCALEMCGeometry.cxx:23 AliEMCALEMCGeometry.cxx:24 AliEMCALEMCGeometry.cxx:25 AliEMCALEMCGeometry.cxx:26 AliEMCALEMCGeometry.cxx:27 AliEMCALEMCGeometry.cxx:28 AliEMCALEMCGeometry.cxx:29 AliEMCALEMCGeometry.cxx:30 AliEMCALEMCGeometry.cxx:31 AliEMCALEMCGeometry.cxx:32 AliEMCALEMCGeometry.cxx:33 AliEMCALEMCGeometry.cxx:34 AliEMCALEMCGeometry.cxx:35 AliEMCALEMCGeometry.cxx:36 AliEMCALEMCGeometry.cxx:37 AliEMCALEMCGeometry.cxx:38 AliEMCALEMCGeometry.cxx:39 AliEMCALEMCGeometry.cxx:40 AliEMCALEMCGeometry.cxx:41 AliEMCALEMCGeometry.cxx:42 AliEMCALEMCGeometry.cxx:43 AliEMCALEMCGeometry.cxx:44 AliEMCALEMCGeometry.cxx:45 AliEMCALEMCGeometry.cxx:46 AliEMCALEMCGeometry.cxx:47 AliEMCALEMCGeometry.cxx:48 AliEMCALEMCGeometry.cxx:49 AliEMCALEMCGeometry.cxx:50 AliEMCALEMCGeometry.cxx:51 AliEMCALEMCGeometry.cxx:52 AliEMCALEMCGeometry.cxx:53 AliEMCALEMCGeometry.cxx:54 AliEMCALEMCGeometry.cxx:55 AliEMCALEMCGeometry.cxx:56 AliEMCALEMCGeometry.cxx:57 AliEMCALEMCGeometry.cxx:58 AliEMCALEMCGeometry.cxx:59 AliEMCALEMCGeometry.cxx:60 AliEMCALEMCGeometry.cxx:61 AliEMCALEMCGeometry.cxx:62 AliEMCALEMCGeometry.cxx:63 AliEMCALEMCGeometry.cxx:64 AliEMCALEMCGeometry.cxx:65 AliEMCALEMCGeometry.cxx:66 AliEMCALEMCGeometry.cxx:67 AliEMCALEMCGeometry.cxx:68 AliEMCALEMCGeometry.cxx:69 AliEMCALEMCGeometry.cxx:70 AliEMCALEMCGeometry.cxx:71 AliEMCALEMCGeometry.cxx:72 AliEMCALEMCGeometry.cxx:73 AliEMCALEMCGeometry.cxx:74 AliEMCALEMCGeometry.cxx:75 AliEMCALEMCGeometry.cxx:76 AliEMCALEMCGeometry.cxx:77 AliEMCALEMCGeometry.cxx:78 AliEMCALEMCGeometry.cxx:79 AliEMCALEMCGeometry.cxx:80 AliEMCALEMCGeometry.cxx:81 AliEMCALEMCGeometry.cxx:82 AliEMCALEMCGeometry.cxx:83 AliEMCALEMCGeometry.cxx:84 AliEMCALEMCGeometry.cxx:85 AliEMCALEMCGeometry.cxx:86 AliEMCALEMCGeometry.cxx:87 AliEMCALEMCGeometry.cxx:88 AliEMCALEMCGeometry.cxx:89 AliEMCALEMCGeometry.cxx:90 AliEMCALEMCGeometry.cxx:91 AliEMCALEMCGeometry.cxx:92 AliEMCALEMCGeometry.cxx:93 AliEMCALEMCGeometry.cxx:94 AliEMCALEMCGeometry.cxx:95 AliEMCALEMCGeometry.cxx:96 AliEMCALEMCGeometry.cxx:97 AliEMCALEMCGeometry.cxx:98 AliEMCALEMCGeometry.cxx:99 AliEMCALEMCGeometry.cxx:100 AliEMCALEMCGeometry.cxx:101 AliEMCALEMCGeometry.cxx:102 AliEMCALEMCGeometry.cxx:103 AliEMCALEMCGeometry.cxx:104 AliEMCALEMCGeometry.cxx:105 AliEMCALEMCGeometry.cxx:106 AliEMCALEMCGeometry.cxx:107 AliEMCALEMCGeometry.cxx:108 AliEMCALEMCGeometry.cxx:109 AliEMCALEMCGeometry.cxx:110 AliEMCALEMCGeometry.cxx:111 AliEMCALEMCGeometry.cxx:112 AliEMCALEMCGeometry.cxx:113 AliEMCALEMCGeometry.cxx:114 AliEMCALEMCGeometry.cxx:115 AliEMCALEMCGeometry.cxx:116 AliEMCALEMCGeometry.cxx:117 AliEMCALEMCGeometry.cxx:118 AliEMCALEMCGeometry.cxx:119 AliEMCALEMCGeometry.cxx:120 AliEMCALEMCGeometry.cxx:121 AliEMCALEMCGeometry.cxx:122 AliEMCALEMCGeometry.cxx:123 AliEMCALEMCGeometry.cxx:124 AliEMCALEMCGeometry.cxx:125 AliEMCALEMCGeometry.cxx:126 AliEMCALEMCGeometry.cxx:127 AliEMCALEMCGeometry.cxx:128 AliEMCALEMCGeometry.cxx:129 AliEMCALEMCGeometry.cxx:130 AliEMCALEMCGeometry.cxx:131 AliEMCALEMCGeometry.cxx:132 AliEMCALEMCGeometry.cxx:133 AliEMCALEMCGeometry.cxx:134 AliEMCALEMCGeometry.cxx:135 AliEMCALEMCGeometry.cxx:136 AliEMCALEMCGeometry.cxx:137 AliEMCALEMCGeometry.cxx:138 AliEMCALEMCGeometry.cxx:139 AliEMCALEMCGeometry.cxx:140 AliEMCALEMCGeometry.cxx:141 AliEMCALEMCGeometry.cxx:142 AliEMCALEMCGeometry.cxx:143 AliEMCALEMCGeometry.cxx:144 AliEMCALEMCGeometry.cxx:145 AliEMCALEMCGeometry.cxx:146 AliEMCALEMCGeometry.cxx:147 AliEMCALEMCGeometry.cxx:148 AliEMCALEMCGeometry.cxx:149 AliEMCALEMCGeometry.cxx:150 AliEMCALEMCGeometry.cxx:151 AliEMCALEMCGeometry.cxx:152 AliEMCALEMCGeometry.cxx:153 AliEMCALEMCGeometry.cxx:154 AliEMCALEMCGeometry.cxx:155 AliEMCALEMCGeometry.cxx:156 AliEMCALEMCGeometry.cxx:157 AliEMCALEMCGeometry.cxx:158 AliEMCALEMCGeometry.cxx:159 AliEMCALEMCGeometry.cxx:160 AliEMCALEMCGeometry.cxx:161 AliEMCALEMCGeometry.cxx:162 AliEMCALEMCGeometry.cxx:163 AliEMCALEMCGeometry.cxx:164 AliEMCALEMCGeometry.cxx:165 AliEMCALEMCGeometry.cxx:166 AliEMCALEMCGeometry.cxx:167 AliEMCALEMCGeometry.cxx:168 AliEMCALEMCGeometry.cxx:169 AliEMCALEMCGeometry.cxx:170 AliEMCALEMCGeometry.cxx:171 AliEMCALEMCGeometry.cxx:172 AliEMCALEMCGeometry.cxx:173 AliEMCALEMCGeometry.cxx:174 AliEMCALEMCGeometry.cxx:175 AliEMCALEMCGeometry.cxx:176 AliEMCALEMCGeometry.cxx:177 AliEMCALEMCGeometry.cxx:178 AliEMCALEMCGeometry.cxx:179 AliEMCALEMCGeometry.cxx:180 AliEMCALEMCGeometry.cxx:181 AliEMCALEMCGeometry.cxx:182 AliEMCALEMCGeometry.cxx:183 AliEMCALEMCGeometry.cxx:184 AliEMCALEMCGeometry.cxx:185 AliEMCALEMCGeometry.cxx:186 AliEMCALEMCGeometry.cxx:187 AliEMCALEMCGeometry.cxx:188 AliEMCALEMCGeometry.cxx:189 AliEMCALEMCGeometry.cxx:190 AliEMCALEMCGeometry.cxx:191 AliEMCALEMCGeometry.cxx:192 AliEMCALEMCGeometry.cxx:193 AliEMCALEMCGeometry.cxx:194 AliEMCALEMCGeometry.cxx:195 AliEMCALEMCGeometry.cxx:196 AliEMCALEMCGeometry.cxx:197 AliEMCALEMCGeometry.cxx:198 AliEMCALEMCGeometry.cxx:199 AliEMCALEMCGeometry.cxx:200 AliEMCALEMCGeometry.cxx:201 AliEMCALEMCGeometry.cxx:202 AliEMCALEMCGeometry.cxx:203 AliEMCALEMCGeometry.cxx:204 AliEMCALEMCGeometry.cxx:205 AliEMCALEMCGeometry.cxx:206 AliEMCALEMCGeometry.cxx:207 AliEMCALEMCGeometry.cxx:208 AliEMCALEMCGeometry.cxx:209 AliEMCALEMCGeometry.cxx:210 AliEMCALEMCGeometry.cxx:211 AliEMCALEMCGeometry.cxx:212 AliEMCALEMCGeometry.cxx:213 AliEMCALEMCGeometry.cxx:214 AliEMCALEMCGeometry.cxx:215 AliEMCALEMCGeometry.cxx:216 AliEMCALEMCGeometry.cxx:217 AliEMCALEMCGeometry.cxx:218 AliEMCALEMCGeometry.cxx:219 AliEMCALEMCGeometry.cxx:220 AliEMCALEMCGeometry.cxx:221 AliEMCALEMCGeometry.cxx:222 AliEMCALEMCGeometry.cxx:223 AliEMCALEMCGeometry.cxx:224 AliEMCALEMCGeometry.cxx:225 AliEMCALEMCGeometry.cxx:226 AliEMCALEMCGeometry.cxx:227 AliEMCALEMCGeometry.cxx:228 AliEMCALEMCGeometry.cxx:229 AliEMCALEMCGeometry.cxx:230 AliEMCALEMCGeometry.cxx:231 AliEMCALEMCGeometry.cxx:232 AliEMCALEMCGeometry.cxx:233 AliEMCALEMCGeometry.cxx:234 AliEMCALEMCGeometry.cxx:235 AliEMCALEMCGeometry.cxx:236 AliEMCALEMCGeometry.cxx:237 AliEMCALEMCGeometry.cxx:238 AliEMCALEMCGeometry.cxx:239 AliEMCALEMCGeometry.cxx:240 AliEMCALEMCGeometry.cxx:241 AliEMCALEMCGeometry.cxx:242 AliEMCALEMCGeometry.cxx:243 AliEMCALEMCGeometry.cxx:244 AliEMCALEMCGeometry.cxx:245 AliEMCALEMCGeometry.cxx:246 AliEMCALEMCGeometry.cxx:247 AliEMCALEMCGeometry.cxx:248 AliEMCALEMCGeometry.cxx:249 AliEMCALEMCGeometry.cxx:250 AliEMCALEMCGeometry.cxx:251 AliEMCALEMCGeometry.cxx:252 AliEMCALEMCGeometry.cxx:253 AliEMCALEMCGeometry.cxx:254 AliEMCALEMCGeometry.cxx:255 AliEMCALEMCGeometry.cxx:256 AliEMCALEMCGeometry.cxx:257 AliEMCALEMCGeometry.cxx:258 AliEMCALEMCGeometry.cxx:259 AliEMCALEMCGeometry.cxx:260 AliEMCALEMCGeometry.cxx:261 AliEMCALEMCGeometry.cxx:262 AliEMCALEMCGeometry.cxx:263 AliEMCALEMCGeometry.cxx:264 AliEMCALEMCGeometry.cxx:265 AliEMCALEMCGeometry.cxx:266 AliEMCALEMCGeometry.cxx:267 AliEMCALEMCGeometry.cxx:268 AliEMCALEMCGeometry.cxx:269 AliEMCALEMCGeometry.cxx:270 AliEMCALEMCGeometry.cxx:271 AliEMCALEMCGeometry.cxx:272 AliEMCALEMCGeometry.cxx:273 AliEMCALEMCGeometry.cxx:274 AliEMCALEMCGeometry.cxx:275 AliEMCALEMCGeometry.cxx:276 AliEMCALEMCGeometry.cxx:277 AliEMCALEMCGeometry.cxx:278 AliEMCALEMCGeometry.cxx:279 AliEMCALEMCGeometry.cxx:280 AliEMCALEMCGeometry.cxx:281 AliEMCALEMCGeometry.cxx:282 AliEMCALEMCGeometry.cxx:283 AliEMCALEMCGeometry.cxx:284 AliEMCALEMCGeometry.cxx:285 AliEMCALEMCGeometry.cxx:286 AliEMCALEMCGeometry.cxx:287 AliEMCALEMCGeometry.cxx:288 AliEMCALEMCGeometry.cxx:289 AliEMCALEMCGeometry.cxx:290 AliEMCALEMCGeometry.cxx:291 AliEMCALEMCGeometry.cxx:292 AliEMCALEMCGeometry.cxx:293 AliEMCALEMCGeometry.cxx:294 AliEMCALEMCGeometry.cxx:295 AliEMCALEMCGeometry.cxx:296 AliEMCALEMCGeometry.cxx:297 AliEMCALEMCGeometry.cxx:298 AliEMCALEMCGeometry.cxx:299 AliEMCALEMCGeometry.cxx:300 AliEMCALEMCGeometry.cxx:301 AliEMCALEMCGeometry.cxx:302 AliEMCALEMCGeometry.cxx:303 AliEMCALEMCGeometry.cxx:304 AliEMCALEMCGeometry.cxx:305 AliEMCALEMCGeometry.cxx:306 AliEMCALEMCGeometry.cxx:307 AliEMCALEMCGeometry.cxx:308 AliEMCALEMCGeometry.cxx:309 AliEMCALEMCGeometry.cxx:310 AliEMCALEMCGeometry.cxx:311 AliEMCALEMCGeometry.cxx:312 AliEMCALEMCGeometry.cxx:313 AliEMCALEMCGeometry.cxx:314 AliEMCALEMCGeometry.cxx:315 AliEMCALEMCGeometry.cxx:316 AliEMCALEMCGeometry.cxx:317 AliEMCALEMCGeometry.cxx:318 AliEMCALEMCGeometry.cxx:319 AliEMCALEMCGeometry.cxx:320 AliEMCALEMCGeometry.cxx:321 AliEMCALEMCGeometry.cxx:322 AliEMCALEMCGeometry.cxx:323 AliEMCALEMCGeometry.cxx:324 AliEMCALEMCGeometry.cxx:325 AliEMCALEMCGeometry.cxx:326 AliEMCALEMCGeometry.cxx:327 AliEMCALEMCGeometry.cxx:328 AliEMCALEMCGeometry.cxx:329 AliEMCALEMCGeometry.cxx:330 AliEMCALEMCGeometry.cxx:331 AliEMCALEMCGeometry.cxx:332 AliEMCALEMCGeometry.cxx:333 AliEMCALEMCGeometry.cxx:334 AliEMCALEMCGeometry.cxx:335 AliEMCALEMCGeometry.cxx:336 AliEMCALEMCGeometry.cxx:337 AliEMCALEMCGeometry.cxx:338 AliEMCALEMCGeometry.cxx:339 AliEMCALEMCGeometry.cxx:340 AliEMCALEMCGeometry.cxx:341 AliEMCALEMCGeometry.cxx:342 AliEMCALEMCGeometry.cxx:343 AliEMCALEMCGeometry.cxx:344 AliEMCALEMCGeometry.cxx:345 AliEMCALEMCGeometry.cxx:346 AliEMCALEMCGeometry.cxx:347 AliEMCALEMCGeometry.cxx:348 AliEMCALEMCGeometry.cxx:349 AliEMCALEMCGeometry.cxx:350 AliEMCALEMCGeometry.cxx:351 AliEMCALEMCGeometry.cxx:352 AliEMCALEMCGeometry.cxx:353 AliEMCALEMCGeometry.cxx:354 AliEMCALEMCGeometry.cxx:355 AliEMCALEMCGeometry.cxx:356 AliEMCALEMCGeometry.cxx:357 AliEMCALEMCGeometry.cxx:358 AliEMCALEMCGeometry.cxx:359 AliEMCALEMCGeometry.cxx:360 AliEMCALEMCGeometry.cxx:361 AliEMCALEMCGeometry.cxx:362 AliEMCALEMCGeometry.cxx:363 AliEMCALEMCGeometry.cxx:364 AliEMCALEMCGeometry.cxx:365 AliEMCALEMCGeometry.cxx:366 AliEMCALEMCGeometry.cxx:367 AliEMCALEMCGeometry.cxx:368 AliEMCALEMCGeometry.cxx:369 AliEMCALEMCGeometry.cxx:370 AliEMCALEMCGeometry.cxx:371 AliEMCALEMCGeometry.cxx:372 AliEMCALEMCGeometry.cxx:373 AliEMCALEMCGeometry.cxx:374 AliEMCALEMCGeometry.cxx:375 AliEMCALEMCGeometry.cxx:376 AliEMCALEMCGeometry.cxx:377 AliEMCALEMCGeometry.cxx:378 AliEMCALEMCGeometry.cxx:379 AliEMCALEMCGeometry.cxx:380 AliEMCALEMCGeometry.cxx:381 AliEMCALEMCGeometry.cxx:382 AliEMCALEMCGeometry.cxx:383 AliEMCALEMCGeometry.cxx:384 AliEMCALEMCGeometry.cxx:385 AliEMCALEMCGeometry.cxx:386 AliEMCALEMCGeometry.cxx:387 AliEMCALEMCGeometry.cxx:388 AliEMCALEMCGeometry.cxx:389 AliEMCALEMCGeometry.cxx:390 AliEMCALEMCGeometry.cxx:391 AliEMCALEMCGeometry.cxx:392 AliEMCALEMCGeometry.cxx:393 AliEMCALEMCGeometry.cxx:394 AliEMCALEMCGeometry.cxx:395 AliEMCALEMCGeometry.cxx:396 AliEMCALEMCGeometry.cxx:397 AliEMCALEMCGeometry.cxx:398 AliEMCALEMCGeometry.cxx:399 AliEMCALEMCGeometry.cxx:400 AliEMCALEMCGeometry.cxx:401 AliEMCALEMCGeometry.cxx:402 AliEMCALEMCGeometry.cxx:403 AliEMCALEMCGeometry.cxx:404 AliEMCALEMCGeometry.cxx:405 AliEMCALEMCGeometry.cxx:406 AliEMCALEMCGeometry.cxx:407 AliEMCALEMCGeometry.cxx:408 AliEMCALEMCGeometry.cxx:409 AliEMCALEMCGeometry.cxx:410 AliEMCALEMCGeometry.cxx:411 AliEMCALEMCGeometry.cxx:412 AliEMCALEMCGeometry.cxx:413 AliEMCALEMCGeometry.cxx:414 AliEMCALEMCGeometry.cxx:415 AliEMCALEMCGeometry.cxx:416 AliEMCALEMCGeometry.cxx:417 AliEMCALEMCGeometry.cxx:418 AliEMCALEMCGeometry.cxx:419 AliEMCALEMCGeometry.cxx:420 AliEMCALEMCGeometry.cxx:421 AliEMCALEMCGeometry.cxx:422 AliEMCALEMCGeometry.cxx:423 AliEMCALEMCGeometry.cxx:424 AliEMCALEMCGeometry.cxx:425 AliEMCALEMCGeometry.cxx:426 AliEMCALEMCGeometry.cxx:427 AliEMCALEMCGeometry.cxx:428 AliEMCALEMCGeometry.cxx:429 AliEMCALEMCGeometry.cxx:430 AliEMCALEMCGeometry.cxx:431 AliEMCALEMCGeometry.cxx:432 AliEMCALEMCGeometry.cxx:433 AliEMCALEMCGeometry.cxx:434 AliEMCALEMCGeometry.cxx:435 AliEMCALEMCGeometry.cxx:436 AliEMCALEMCGeometry.cxx:437 AliEMCALEMCGeometry.cxx:438 AliEMCALEMCGeometry.cxx:439 AliEMCALEMCGeometry.cxx:440 AliEMCALEMCGeometry.cxx:441 AliEMCALEMCGeometry.cxx:442 AliEMCALEMCGeometry.cxx:443 AliEMCALEMCGeometry.cxx:444 AliEMCALEMCGeometry.cxx:445 AliEMCALEMCGeometry.cxx:446 AliEMCALEMCGeometry.cxx:447 AliEMCALEMCGeometry.cxx:448 AliEMCALEMCGeometry.cxx:449 AliEMCALEMCGeometry.cxx:450 AliEMCALEMCGeometry.cxx:451 AliEMCALEMCGeometry.cxx:452 AliEMCALEMCGeometry.cxx:453 AliEMCALEMCGeometry.cxx:454 AliEMCALEMCGeometry.cxx:455 AliEMCALEMCGeometry.cxx:456 AliEMCALEMCGeometry.cxx:457 AliEMCALEMCGeometry.cxx:458 AliEMCALEMCGeometry.cxx:459 AliEMCALEMCGeometry.cxx:460 AliEMCALEMCGeometry.cxx:461 AliEMCALEMCGeometry.cxx:462 AliEMCALEMCGeometry.cxx:463 AliEMCALEMCGeometry.cxx:464 AliEMCALEMCGeometry.cxx:465 AliEMCALEMCGeometry.cxx:466 AliEMCALEMCGeometry.cxx:467 AliEMCALEMCGeometry.cxx:468 AliEMCALEMCGeometry.cxx:469 AliEMCALEMCGeometry.cxx:470 AliEMCALEMCGeometry.cxx:471 AliEMCALEMCGeometry.cxx:472 AliEMCALEMCGeometry.cxx:473 AliEMCALEMCGeometry.cxx:474 AliEMCALEMCGeometry.cxx:475 AliEMCALEMCGeometry.cxx:476 AliEMCALEMCGeometry.cxx:477 AliEMCALEMCGeometry.cxx:478 AliEMCALEMCGeometry.cxx:479 AliEMCALEMCGeometry.cxx:480 AliEMCALEMCGeometry.cxx:481 AliEMCALEMCGeometry.cxx:482 AliEMCALEMCGeometry.cxx:483 AliEMCALEMCGeometry.cxx:484 AliEMCALEMCGeometry.cxx:485 AliEMCALEMCGeometry.cxx:486 AliEMCALEMCGeometry.cxx:487 AliEMCALEMCGeometry.cxx:488 AliEMCALEMCGeometry.cxx:489 AliEMCALEMCGeometry.cxx:490 AliEMCALEMCGeometry.cxx:491 AliEMCALEMCGeometry.cxx:492 AliEMCALEMCGeometry.cxx:493 AliEMCALEMCGeometry.cxx:494 AliEMCALEMCGeometry.cxx:495 AliEMCALEMCGeometry.cxx:496 AliEMCALEMCGeometry.cxx:497 AliEMCALEMCGeometry.cxx:498 AliEMCALEMCGeometry.cxx:499 AliEMCALEMCGeometry.cxx:500 AliEMCALEMCGeometry.cxx:501 AliEMCALEMCGeometry.cxx:502 AliEMCALEMCGeometry.cxx:503 AliEMCALEMCGeometry.cxx:504 AliEMCALEMCGeometry.cxx:505 AliEMCALEMCGeometry.cxx:506 AliEMCALEMCGeometry.cxx:507 AliEMCALEMCGeometry.cxx:508 AliEMCALEMCGeometry.cxx:509 AliEMCALEMCGeometry.cxx:510 AliEMCALEMCGeometry.cxx:511 AliEMCALEMCGeometry.cxx:512 AliEMCALEMCGeometry.cxx:513 AliEMCALEMCGeometry.cxx:514 AliEMCALEMCGeometry.cxx:515 AliEMCALEMCGeometry.cxx:516 AliEMCALEMCGeometry.cxx:517 AliEMCALEMCGeometry.cxx:518 AliEMCALEMCGeometry.cxx:519 AliEMCALEMCGeometry.cxx:520 AliEMCALEMCGeometry.cxx:521 AliEMCALEMCGeometry.cxx:522 AliEMCALEMCGeometry.cxx:523 AliEMCALEMCGeometry.cxx:524 AliEMCALEMCGeometry.cxx:525 AliEMCALEMCGeometry.cxx:526 AliEMCALEMCGeometry.cxx:527 AliEMCALEMCGeometry.cxx:528 AliEMCALEMCGeometry.cxx:529 AliEMCALEMCGeometry.cxx:530 AliEMCALEMCGeometry.cxx:531 AliEMCALEMCGeometry.cxx:532 AliEMCALEMCGeometry.cxx:533 AliEMCALEMCGeometry.cxx:534 AliEMCALEMCGeometry.cxx:535 AliEMCALEMCGeometry.cxx:536 AliEMCALEMCGeometry.cxx:537 AliEMCALEMCGeometry.cxx:538 AliEMCALEMCGeometry.cxx:539 AliEMCALEMCGeometry.cxx:540 AliEMCALEMCGeometry.cxx:541 AliEMCALEMCGeometry.cxx:542 AliEMCALEMCGeometry.cxx:543 AliEMCALEMCGeometry.cxx:544 AliEMCALEMCGeometry.cxx:545 AliEMCALEMCGeometry.cxx:546 AliEMCALEMCGeometry.cxx:547 AliEMCALEMCGeometry.cxx:548 AliEMCALEMCGeometry.cxx:549 AliEMCALEMCGeometry.cxx:550 AliEMCALEMCGeometry.cxx:551 AliEMCALEMCGeometry.cxx:552 AliEMCALEMCGeometry.cxx:553 AliEMCALEMCGeometry.cxx:554 AliEMCALEMCGeometry.cxx:555 AliEMCALEMCGeometry.cxx:556 AliEMCALEMCGeometry.cxx:557 AliEMCALEMCGeometry.cxx:558 AliEMCALEMCGeometry.cxx:559 AliEMCALEMCGeometry.cxx:560 AliEMCALEMCGeometry.cxx:561 AliEMCALEMCGeometry.cxx:562 AliEMCALEMCGeometry.cxx:563 AliEMCALEMCGeometry.cxx:564 AliEMCALEMCGeometry.cxx:565 AliEMCALEMCGeometry.cxx:566 AliEMCALEMCGeometry.cxx:567 AliEMCALEMCGeometry.cxx:568 AliEMCALEMCGeometry.cxx:569 AliEMCALEMCGeometry.cxx:570 AliEMCALEMCGeometry.cxx:571 AliEMCALEMCGeometry.cxx:572 AliEMCALEMCGeometry.cxx:573 AliEMCALEMCGeometry.cxx:574 AliEMCALEMCGeometry.cxx:575 AliEMCALEMCGeometry.cxx:576 AliEMCALEMCGeometry.cxx:577 AliEMCALEMCGeometry.cxx:578 AliEMCALEMCGeometry.cxx:579 AliEMCALEMCGeometry.cxx:580 AliEMCALEMCGeometry.cxx:581 AliEMCALEMCGeometry.cxx:582 AliEMCALEMCGeometry.cxx:583 AliEMCALEMCGeometry.cxx:584 AliEMCALEMCGeometry.cxx:585 AliEMCALEMCGeometry.cxx:586 AliEMCALEMCGeometry.cxx:587 AliEMCALEMCGeometry.cxx:588 AliEMCALEMCGeometry.cxx:589 AliEMCALEMCGeometry.cxx:590 AliEMCALEMCGeometry.cxx:591 AliEMCALEMCGeometry.cxx:592 AliEMCALEMCGeometry.cxx:593 AliEMCALEMCGeometry.cxx:594 AliEMCALEMCGeometry.cxx:595 AliEMCALEMCGeometry.cxx:596 AliEMCALEMCGeometry.cxx:597 AliEMCALEMCGeometry.cxx:598 AliEMCALEMCGeometry.cxx:599 AliEMCALEMCGeometry.cxx:600 AliEMCALEMCGeometry.cxx:601 AliEMCALEMCGeometry.cxx:602 AliEMCALEMCGeometry.cxx:603 AliEMCALEMCGeometry.cxx:604 AliEMCALEMCGeometry.cxx:605 AliEMCALEMCGeometry.cxx:606 AliEMCALEMCGeometry.cxx:607 AliEMCALEMCGeometry.cxx:608 AliEMCALEMCGeometry.cxx:609 AliEMCALEMCGeometry.cxx:610 AliEMCALEMCGeometry.cxx:611 AliEMCALEMCGeometry.cxx:612 AliEMCALEMCGeometry.cxx:613 AliEMCALEMCGeometry.cxx:614 AliEMCALEMCGeometry.cxx:615 AliEMCALEMCGeometry.cxx:616 AliEMCALEMCGeometry.cxx:617 AliEMCALEMCGeometry.cxx:618 AliEMCALEMCGeometry.cxx:619 AliEMCALEMCGeometry.cxx:620 AliEMCALEMCGeometry.cxx:621 AliEMCALEMCGeometry.cxx:622 AliEMCALEMCGeometry.cxx:623 AliEMCALEMCGeometry.cxx:624 AliEMCALEMCGeometry.cxx:625 AliEMCALEMCGeometry.cxx:626 AliEMCALEMCGeometry.cxx:627 AliEMCALEMCGeometry.cxx:628 AliEMCALEMCGeometry.cxx:629 AliEMCALEMCGeometry.cxx:630 AliEMCALEMCGeometry.cxx:631 AliEMCALEMCGeometry.cxx:632 AliEMCALEMCGeometry.cxx:633 AliEMCALEMCGeometry.cxx:634 AliEMCALEMCGeometry.cxx:635 AliEMCALEMCGeometry.cxx:636 AliEMCALEMCGeometry.cxx:637 AliEMCALEMCGeometry.cxx:638 AliEMCALEMCGeometry.cxx:639 AliEMCALEMCGeometry.cxx:640 AliEMCALEMCGeometry.cxx:641 AliEMCALEMCGeometry.cxx:642 AliEMCALEMCGeometry.cxx:643 AliEMCALEMCGeometry.cxx:644 AliEMCALEMCGeometry.cxx:645 AliEMCALEMCGeometry.cxx:646 AliEMCALEMCGeometry.cxx:647 AliEMCALEMCGeometry.cxx:648 AliEMCALEMCGeometry.cxx:649 AliEMCALEMCGeometry.cxx:650 AliEMCALEMCGeometry.cxx:651 AliEMCALEMCGeometry.cxx:652 AliEMCALEMCGeometry.cxx:653 AliEMCALEMCGeometry.cxx:654 AliEMCALEMCGeometry.cxx:655 AliEMCALEMCGeometry.cxx:656 AliEMCALEMCGeometry.cxx:657 AliEMCALEMCGeometry.cxx:658 AliEMCALEMCGeometry.cxx:659 AliEMCALEMCGeometry.cxx:660 AliEMCALEMCGeometry.cxx:661 AliEMCALEMCGeometry.cxx:662 AliEMCALEMCGeometry.cxx:663 AliEMCALEMCGeometry.cxx:664 AliEMCALEMCGeometry.cxx:665 AliEMCALEMCGeometry.cxx:666 AliEMCALEMCGeometry.cxx:667 AliEMCALEMCGeometry.cxx:668 AliEMCALEMCGeometry.cxx:669 AliEMCALEMCGeometry.cxx:670 AliEMCALEMCGeometry.cxx:671 AliEMCALEMCGeometry.cxx:672 AliEMCALEMCGeometry.cxx:673 AliEMCALEMCGeometry.cxx:674 AliEMCALEMCGeometry.cxx:675 AliEMCALEMCGeometry.cxx:676 AliEMCALEMCGeometry.cxx:677 AliEMCALEMCGeometry.cxx:678 AliEMCALEMCGeometry.cxx:679 AliEMCALEMCGeometry.cxx:680 AliEMCALEMCGeometry.cxx:681 AliEMCALEMCGeometry.cxx:682 AliEMCALEMCGeometry.cxx:683 AliEMCALEMCGeometry.cxx:684 AliEMCALEMCGeometry.cxx:685 AliEMCALEMCGeometry.cxx:686 AliEMCALEMCGeometry.cxx:687 AliEMCALEMCGeometry.cxx:688 AliEMCALEMCGeometry.cxx:689 AliEMCALEMCGeometry.cxx:690 AliEMCALEMCGeometry.cxx:691 AliEMCALEMCGeometry.cxx:692 AliEMCALEMCGeometry.cxx:693 AliEMCALEMCGeometry.cxx:694 AliEMCALEMCGeometry.cxx:695 AliEMCALEMCGeometry.cxx:696 AliEMCALEMCGeometry.cxx:697 AliEMCALEMCGeometry.cxx:698 AliEMCALEMCGeometry.cxx:699 AliEMCALEMCGeometry.cxx:700 AliEMCALEMCGeometry.cxx:701 AliEMCALEMCGeometry.cxx:702 AliEMCALEMCGeometry.cxx:703 AliEMCALEMCGeometry.cxx:704 AliEMCALEMCGeometry.cxx:705 AliEMCALEMCGeometry.cxx:706 AliEMCALEMCGeometry.cxx:707 AliEMCALEMCGeometry.cxx:708 AliEMCALEMCGeometry.cxx:709 AliEMCALEMCGeometry.cxx:710 AliEMCALEMCGeometry.cxx:711 AliEMCALEMCGeometry.cxx:712 AliEMCALEMCGeometry.cxx:713 AliEMCALEMCGeometry.cxx:714 AliEMCALEMCGeometry.cxx:715 AliEMCALEMCGeometry.cxx:716 AliEMCALEMCGeometry.cxx:717 AliEMCALEMCGeometry.cxx:718 AliEMCALEMCGeometry.cxx:719 AliEMCALEMCGeometry.cxx:720 AliEMCALEMCGeometry.cxx:721 AliEMCALEMCGeometry.cxx:722 AliEMCALEMCGeometry.cxx:723 AliEMCALEMCGeometry.cxx:724 AliEMCALEMCGeometry.cxx:725 AliEMCALEMCGeometry.cxx:726 AliEMCALEMCGeometry.cxx:727 AliEMCALEMCGeometry.cxx:728 AliEMCALEMCGeometry.cxx:729 AliEMCALEMCGeometry.cxx:730 AliEMCALEMCGeometry.cxx:731 AliEMCALEMCGeometry.cxx:732 AliEMCALEMCGeometry.cxx:733 AliEMCALEMCGeometry.cxx:734 AliEMCALEMCGeometry.cxx:735 AliEMCALEMCGeometry.cxx:736 AliEMCALEMCGeometry.cxx:737 AliEMCALEMCGeometry.cxx:738 AliEMCALEMCGeometry.cxx:739 AliEMCALEMCGeometry.cxx:740 AliEMCALEMCGeometry.cxx:741 AliEMCALEMCGeometry.cxx:742 AliEMCALEMCGeometry.cxx:743 AliEMCALEMCGeometry.cxx:744 AliEMCALEMCGeometry.cxx:745 AliEMCALEMCGeometry.cxx:746 AliEMCALEMCGeometry.cxx:747 AliEMCALEMCGeometry.cxx:748 AliEMCALEMCGeometry.cxx:749 AliEMCALEMCGeometry.cxx:750 AliEMCALEMCGeometry.cxx:751 AliEMCALEMCGeometry.cxx:752 AliEMCALEMCGeometry.cxx:753 AliEMCALEMCGeometry.cxx:754 AliEMCALEMCGeometry.cxx:755 AliEMCALEMCGeometry.cxx:756 AliEMCALEMCGeometry.cxx:757 AliEMCALEMCGeometry.cxx:758 AliEMCALEMCGeometry.cxx:759 AliEMCALEMCGeometry.cxx:760 AliEMCALEMCGeometry.cxx:761 AliEMCALEMCGeometry.cxx:762 AliEMCALEMCGeometry.cxx:763 AliEMCALEMCGeometry.cxx:764 AliEMCALEMCGeometry.cxx:765 AliEMCALEMCGeometry.cxx:766 AliEMCALEMCGeometry.cxx:767 AliEMCALEMCGeometry.cxx:768 AliEMCALEMCGeometry.cxx:769 AliEMCALEMCGeometry.cxx:770 AliEMCALEMCGeometry.cxx:771 AliEMCALEMCGeometry.cxx:772 AliEMCALEMCGeometry.cxx:773 AliEMCALEMCGeometry.cxx:774 AliEMCALEMCGeometry.cxx:775 AliEMCALEMCGeometry.cxx:776 AliEMCALEMCGeometry.cxx:777 AliEMCALEMCGeometry.cxx:778 AliEMCALEMCGeometry.cxx:779 AliEMCALEMCGeometry.cxx:780 AliEMCALEMCGeometry.cxx:781 AliEMCALEMCGeometry.cxx:782 AliEMCALEMCGeometry.cxx:783 AliEMCALEMCGeometry.cxx:784 AliEMCALEMCGeometry.cxx:785 AliEMCALEMCGeometry.cxx:786 AliEMCALEMCGeometry.cxx:787 AliEMCALEMCGeometry.cxx:788 AliEMCALEMCGeometry.cxx:789 AliEMCALEMCGeometry.cxx:790 AliEMCALEMCGeometry.cxx:791 AliEMCALEMCGeometry.cxx:792 AliEMCALEMCGeometry.cxx:793 AliEMCALEMCGeometry.cxx:794 AliEMCALEMCGeometry.cxx:795 AliEMCALEMCGeometry.cxx:796 AliEMCALEMCGeometry.cxx:797 AliEMCALEMCGeometry.cxx:798 AliEMCALEMCGeometry.cxx:799 AliEMCALEMCGeometry.cxx:800 AliEMCALEMCGeometry.cxx:801 AliEMCALEMCGeometry.cxx:802 AliEMCALEMCGeometry.cxx:803 AliEMCALEMCGeometry.cxx:804 AliEMCALEMCGeometry.cxx:805 AliEMCALEMCGeometry.cxx:806