saving progress on geometry cleanup
authorjklay <jklay@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 24 Mar 2008 23:25:39 +0000 (23:25 +0000)
committerjklay <jklay@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 24 Mar 2008 23:25:39 +0000 (23:25 +0000)
EMCAL/AliEMCALClusterizerv1.cxx
EMCAL/AliEMCALGeometry.cxx
EMCAL/AliEMCALGeometry.h
EMCAL/AliEMCALRawUtils.cxx
EMCAL/AliEMCALReconstructor.cxx
EMCAL/AliEMCALTrigger.cxx
EMCAL/AliEMCALv0.cxx
EMCAL/MakeEMCALFullMisAlignment.C
EMCAL/MakeEMCALResMisAlignment.C
EMCAL/MakeEMCALZeroMisAlignment.C

index 43c971e..090b8af 100644 (file)
@@ -332,7 +332,7 @@ void AliEMCALClusterizerv1::Init()
   if (rl->GetAliRun() && rl->GetAliRun()->GetDetector("EMCAL"))
     fGeom = dynamic_cast<AliEMCAL*>(rl->GetAliRun()->GetDetector("EMCAL"))->GetGeometry();
   else 
-    fGeom =  AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaulGeometryName());
+    fGeom =  AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName());
 
   AliDebug(1,Form("geom 0x%x",fGeom));
 
index 9a6814a..b7d9a24 100644 (file)
@@ -84,39 +84,45 @@ Char_t*            AliEMCALGeometry::fgDefaultGeometryName = "SHISH_77_TRD1_2X2_
 
 AliEMCALGeometry::AliEMCALGeometry() 
   : AliGeometry(),
-    fGeoName(0),fArrayOpts(0),fAlFrontThick(0.),fECPbRadThickness(0.),fECScintThick(0.),
+    fGeoName(0),fArrayOpts(0),fNAdditionalOpts(0),fECPbRadThickness(0.),fECScintThick(0.),
     fNECLayers(0),fArm1PhiMin(0.),fArm1PhiMax(0.),fArm1EtaMin(0.),fArm1EtaMax(0.),fIPDistance(0.),
-    fShellThickness(0.),fZLength(0.),fGap2Active(0.),fNZ(0),fNPhi(0),fSampling(0.),fNumberOfSuperModules(0),
-    fSteelFrontThick(0.),fFrontSteelStrip(0.),fLateralSteelStrip(0.),fPassiveScintThick(0.),fPhiModuleSize(0.),
-    fEtaModuleSize(0.),fPhiTileSize(0.),fEtaTileSize(0.),fLongModuleSize(0.),fNPhiSuperModule(0),fNPHIdiv(0),fNETAdiv(0),
-    fNCells(0),fNCellsInSupMod(0),fNCellsInModule(0),fNTRUEta(0),fNTRUPhi(0),
-    fNCellsInTRUEta(0), fNCellsInTRUPhi(0), fTrd1Angle(0.),f2Trd1Dx2(0.),
+    fShellThickness(0.),fZLength(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.),fNPhiSuperModule(0),
+    fNPHIdiv(0),fNETAdiv(0), fNCells(0),fNCellsInSupMod(0),fNCellsInModule(0),fNTRUEta(0),
+    fNTRUPhi(0), fNCellsInTRUEta(0), fNCellsInTRUPhi(0), fTrd1Angle(0.),f2Trd1Dx2(0.),
     fPhiGapForSM(0.),fKey110DEG(0),fPhiBoundariesOfSM(0), fPhiCentersOfSM(0),fEtaMaxOfTRD1(0),
-    fTrd2AngleY(0.),f2Trd2Dy2(0.),fEmptySpace(0.),fTubsR(0.),fTubsTurnAngle(0.),fCentersOfCellsEtaDir(0),
-    fCentersOfCellsXDir(0),fCentersOfCellsPhiDir(0),fEtaCentersOfCells(0),fPhiCentersOfCells(0),
-    fShishKebabTrd1Modules(0), fNAdditionalOpts(0),
-    fILOSS(-1), fIHADR(-1) 
+    fCentersOfCellsEtaDir(0), fCentersOfCellsXDir(0),fCentersOfCellsPhiDir(0),
+    fEtaCentersOfCells(0),fPhiCentersOfCells(0),fShishKebabTrd1Modules(0),
+    fILOSS(-1), fIHADR(-1),
+    //obsolete member data
+    fAlFrontThick(0.), fGap2Active(0.), fSteelFrontThick(0.), fTrd2AngleY(0.),
+    f2Trd2Dy2(0.), fEmptySpace(0.), fTubsR(0.), fTubsTurnAngle(0.)
 { 
   // default ctor only for internal usage (singleton)
-  // must be kept public for root persistency purposes, but should never be called by the outside world    
+  // must be kept public for root persistency purposes, 
+  // but should never be called by the outside world    
+
   //  CreateListOfTrd1Modules();
   AliDebug(2, "AliEMCALGeometry : default ctor ");
 }
 //______________________________________________________________________
 AliEMCALGeometry::AliEMCALGeometry(const Text_t* name, const Text_t* title) 
   : AliGeometry(name, title),
-    fGeoName(0),fArrayOpts(0),fAlFrontThick(0.),fECPbRadThickness(0.),fECScintThick(0.),
+    fGeoName(0),fArrayOpts(0),fNAdditionalOpts(0),fECPbRadThickness(0.),fECScintThick(0.),
     fNECLayers(0),fArm1PhiMin(0.),fArm1PhiMax(0.),fArm1EtaMin(0.),fArm1EtaMax(0.),fIPDistance(0.),
-    fShellThickness(0.),fZLength(0.),fGap2Active(0.),fNZ(0),fNPhi(0),fSampling(0.),fNumberOfSuperModules(0),
-    fSteelFrontThick(0.),fFrontSteelStrip(0.),fLateralSteelStrip(0.),fPassiveScintThick(0.),fPhiModuleSize(0.),
-    fEtaModuleSize(0.),fPhiTileSize(0.),fEtaTileSize(0.),fLongModuleSize(0.),fNPhiSuperModule(0),fNPHIdiv(0),fNETAdiv(0),
-    fNCells(0),fNCellsInSupMod(0),fNCellsInModule(0),fNTRUEta(0),fNTRUPhi(0),
-    fNCellsInTRUEta(0), fNCellsInTRUPhi(0), fTrd1Angle(0.),f2Trd1Dx2(0.),
+    fShellThickness(0.),fZLength(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.),fNPhiSuperModule(0),
+    fNPHIdiv(0),fNETAdiv(0), fNCells(0),fNCellsInSupMod(0),fNCellsInModule(0),fNTRUEta(0),
+    fNTRUPhi(0), fNCellsInTRUEta(0), fNCellsInTRUPhi(0), fTrd1Angle(0.),f2Trd1Dx2(0.),
     fPhiGapForSM(0.),fKey110DEG(0),fPhiBoundariesOfSM(0), fPhiCentersOfSM(0), fEtaMaxOfTRD1(0),
-    fTrd2AngleY(0.),f2Trd2Dy2(0.),fEmptySpace(0.),fTubsR(0.),fTubsTurnAngle(0.),fCentersOfCellsEtaDir(0),
-    fCentersOfCellsXDir(0),fCentersOfCellsPhiDir(0),fEtaCentersOfCells(0),fPhiCentersOfCells(0),
-    fShishKebabTrd1Modules(0),fNAdditionalOpts(0),
-    fILOSS(-1), fIHADR(-1) 
+    fCentersOfCellsEtaDir(0),fCentersOfCellsXDir(0),fCentersOfCellsPhiDir(0),
+    fEtaCentersOfCells(0),fPhiCentersOfCells(0),fShishKebabTrd1Modules(0),
+    fILOSS(-1), fIHADR(-1), 
+    //obsolete member data
+    fAlFrontThick(0.), fGap2Active(0.), fSteelFrontThick(0.), fTrd2AngleY(0.),
+    f2Trd2Dy2(0.), fEmptySpace(0.), fTubsR(0.), fTubsTurnAngle(0.)
 {
   // ctor only for internal usage (singleton)
   AliDebug(2, Form("AliEMCALGeometry(%s,%s) ", name,title));
@@ -135,7 +141,7 @@ AliEMCALGeometry::AliEMCALGeometry(const AliEMCALGeometry& geom)
   : AliGeometry(geom),
     fGeoName(geom.fGeoName),
     fArrayOpts(geom.fArrayOpts),
-    fAlFrontThick(geom.fAlFrontThick),
+    fNAdditionalOpts(geom.fNAdditionalOpts),
     fECPbRadThickness(geom.fECPbRadThickness),
     fECScintThick(geom.fECScintThick),
     fNECLayers(geom.fNECLayers),
@@ -146,12 +152,10 @@ AliEMCALGeometry::AliEMCALGeometry(const AliEMCALGeometry& geom)
     fIPDistance(geom.fIPDistance),
     fShellThickness(geom.fShellThickness),
     fZLength(geom.fZLength),
-    fGap2Active(geom.fGap2Active),
     fNZ(geom.fNZ),
     fNPhi(geom.fNPhi),
     fSampling(geom.fSampling),
     fNumberOfSuperModules(geom.fNumberOfSuperModules),
-    fSteelFrontThick(geom.fSteelFrontThick),
     fFrontSteelStrip(geom.fFrontSteelStrip),
     fLateralSteelStrip(geom.fLateralSteelStrip),
     fPassiveScintThick(geom.fPassiveScintThick),
@@ -177,19 +181,22 @@ AliEMCALGeometry::AliEMCALGeometry(const AliEMCALGeometry& geom)
     fPhiBoundariesOfSM(geom.fPhiBoundariesOfSM),
     fPhiCentersOfSM(geom.fPhiCentersOfSM),
     fEtaMaxOfTRD1(geom.fEtaMaxOfTRD1),
-    fTrd2AngleY(geom.fTrd2AngleY),
-    f2Trd2Dy2(geom.f2Trd2Dy2),
-    fEmptySpace(geom.fEmptySpace),
-    fTubsR(geom.fTubsR),
-    fTubsTurnAngle(geom.fTubsTurnAngle),
     fCentersOfCellsEtaDir(geom.fCentersOfCellsEtaDir),
     fCentersOfCellsXDir(geom.fCentersOfCellsXDir),
     fCentersOfCellsPhiDir(geom.fCentersOfCellsPhiDir),
     fEtaCentersOfCells(geom.fEtaCentersOfCells),
     fPhiCentersOfCells(geom.fPhiCentersOfCells),
     fShishKebabTrd1Modules(geom.fShishKebabTrd1Modules),
-    fNAdditionalOpts(geom.fNAdditionalOpts),
-    fILOSS(geom.fILOSS), fIHADR(geom.fIHADR) 
+    fILOSS(geom.fILOSS), fIHADR(geom.fIHADR),
+    //obsolete member data
+    fAlFrontThick(geom.fAlFrontThick),
+    fGap2Active(geom.fGap2Active),
+    fSteelFrontThick(geom.fSteelFrontThick),
+    fTrd2AngleY(geom.fTrd2AngleY),
+    f2Trd2Dy2(geom.f2Trd2Dy2),
+    fEmptySpace(geom.fEmptySpace),
+    fTubsR(geom.fTubsR),
+    fTubsTurnAngle(geom.fTubsTurnAngle)
 {
   //copy ctor
 }
@@ -228,7 +235,6 @@ void AliEMCALGeometry::Init(void){
   fKey110DEG = 0;
   if(fGeoName.Contains("110DEG") || fGeoName.Contains("CURRENT")) fKey110DEG = 1; // for GetAbsCellId
   fShishKebabTrd1Modules = 0;
-  fTrd2AngleY = f2Trd2Dy2 = fEmptySpace = fTubsR = fTubsTurnAngle = 0;
 
   fNZ             = 114;       // granularity along Z (eta) 
   fNPhi           = 168;       // granularity in phi (azimuth)
@@ -240,13 +246,15 @@ void AliEMCALGeometry::Init(void){
   fPhiGapForSM    = 0.;         // cm, only for final TRD1 geometry
 
   // geometry
+  //JLK: Change this to a check on allowable geometry names
+  // the end of the statement closes with an else that throws a Fatal
+  // exception for undefined geometry
   if(fGeoName.Contains("SHISH")){ // Only shahslyk now
     // 7-sep-05; integration issue
     fArm1PhiMin     = 80.0;    // 60  -> 80
     fArm1PhiMax     = 180.0;   // 180 -> 190
 
     fNumberOfSuperModules = 10; // 12 = 6 * 2 (6 in phi, 2 in Z);
-    fSteelFrontThick = 2.54;    //  9-sep-04
     fIPDistance      = 460.0;
     fFrontSteelStrip = fPassiveScintThick = 0.0; // 13-may-05
     fLateralSteelStrip = 0.025; // before MAY 2005 
@@ -254,17 +262,13 @@ void AliEMCALGeometry::Init(void){
     fPhiTileSize = fEtaTileSize      = 5.52; // (11.4-5.52*2)/2. = 0.18 cm (wall thickness)
     fNPhi            = 14;
     fNZ              = 30;
-    fAlFrontThick    = fGap2Active = 0;
     fNPHIdiv = fNETAdiv = 2;
 
     fNECLayers       = 62;
     fECScintThick    = fECPbRadThickness = 0.2;
     fSampling        = 1.;  // 30-aug-04 - should be calculated
-    if(fGeoName.Contains("TWIST")) { // all about EMCAL module
-      fNZ             = 27;  // 16-sep-04
-    } else if(fGeoName.Contains("TRD")) {
+    if(fGeoName.Contains("TRD")) {
       fIPDistance      = 428.0;  //  11-may-05
-      fSteelFrontThick = 0.0;    // 3.17 -> 0.0; 28-mar-05 : no stell plate
       fNPhi            = 12;
       fSampling       = 12.327;
       fPhiModuleSize = fEtaModuleSize = 12.26;
@@ -275,7 +279,7 @@ void AliEMCALGeometry::Init(void){
       if(fGeoName.Contains("TRD1")) {       // 30-jan-05
        // for final design
         fPhiGapForSM    = 2.;         // cm, only for final TRD1 geometry
-        if(fGeoName.Contains("MAY05") || fGeoName.Contains("WSUC") || fGeoName.Contains("FINAL") || fGeoName.Contains("CURRENT")){
+        if(fGeoName.Contains("WSUC") || fGeoName.Contains("FINAL")){
           fNumberOfSuperModules = 12; // 20-may-05
           if(fGeoName.Contains("WSUC")) fNumberOfSuperModules = 1; // 27-may-05
           fNECLayers     = 77;       // (13-may-05 from V.Petrov)
@@ -288,7 +292,7 @@ void AliEMCALGeometry::Init(void){
           fNZ                = 24;
           fTrd1Angle         = 1.5;  // 1.3 or 1.5
 
-          if(fGeoName.Contains("FINAL") || fGeoName.Contains("CURRENT")) { // 9-sep-05
+          if(fGeoName.Contains("FINAL")) { // 9-sep-05
             fNumberOfSuperModules = 10;
             if(GetKey110DEG()) {
               fNumberOfSuperModules = 12;// last two modules have size 10 degree in phi (180<phi<190)
@@ -296,30 +300,12 @@ void AliEMCALGeometry::Init(void){
            }
             if(fGeoName.Contains("FINAL")) {
               fPhiModuleSize = 12.26 - fPhiGapForSM / Float_t(fNPhi); // first assumption
-           } else if(fGeoName.Contains("CURRENT")) {
-              fECScintThick      = 0.176; // 10% of weight reduction
-              fECPbRadThickness  = 0.144; //
-              fLateralSteelStrip = 0.015; // 0.015cm  = 0.15mm (Oct 30, from Fred)
-              fPhiModuleSize     = 12.00;
-              fPhiGapForSM       = (12.26 - fPhiModuleSize)*fNPhi; // have to check
            }
             fEtaModuleSize = fPhiModuleSize;
-            if(fGeoName.Contains("HUGE")) fNECLayers *= 3; // 28-oct-05 for analysing leakage    
           }
        }
       }
       fNPHIdiv = fNETAdiv  = 2;   // 13-oct-04 - division again
-      if(fGeoName.Contains("3X3")) {   // 23-nov-04
-        fNPHIdiv = fNETAdiv  = 3;
-      } else if(fGeoName.Contains("4X4")) {
-        fNPHIdiv = fNETAdiv  = 4;
-      } else if(fGeoName.Contains("1X1")) {
-        fNPHIdiv = fNETAdiv  = 1;
-      }
-    }
-    if(fGeoName.Contains("25")){
-      fNECLayers     = 25;
-      fECScintThick  = fECPbRadThickness = 0.5;
     }
     if(fGeoName.Contains("WSUC")){ // 18-may-05 - about common structure
       fShellThickness = 30.;       // should be change 
@@ -339,7 +325,6 @@ void AliEMCALGeometry::Init(void){
     if(GetKey110DEG()) fNCells -= fNCellsInSupMod;
 
     fLongModuleSize = fNECLayers*(fECScintThick + fECPbRadThickness);
-    if(fGeoName.Contains("MAY05")) fLongModuleSize += (fFrontSteelStrip + fPassiveScintThick);
 
     // 30-sep-04
     if(fGeoName.Contains("TRD")) {
@@ -347,25 +332,20 @@ void AliEMCALGeometry::Init(void){
     }
   } else Fatal("Init", "%s is an undefined geometry!", fGeoName.Data()) ; 
 
+  //JLK: The following options are true for all geometries
+
   fNPhiSuperModule = fNumberOfSuperModules/2;
   if(fNPhiSuperModule<1) fNPhiSuperModule = 1;
 
-  fShellThickness = fAlFrontThick + fGap2Active + fNECLayers*GetECScintThick()+(fNECLayers-1)*GetECPbRadThick();
-  if(fGeoName.Contains("SHISH")) {
-    fShellThickness = fSteelFrontThick + fLongModuleSize;
-    if(fGeoName.Contains("TWIST")) { // 13-sep-04
-      fShellThickness  = TMath::Sqrt(fLongModuleSize*fLongModuleSize + fPhiModuleSize*fEtaModuleSize);
-      fShellThickness += fSteelFrontThick;
-    } else if(fGeoName.Contains("TRD")) { // 1-oct-04
-      fShellThickness  = TMath::Sqrt(fLongModuleSize*fLongModuleSize + f2Trd1Dx2*f2Trd1Dx2);
-      fShellThickness += fSteelFrontThick;
-      // Local coordinates
-      fParSM[0] = GetShellThickness()/2.;        
-      fParSM[1] = GetPhiModuleSize() * GetNPhi()/2.;
-      fParSM[2] = 350./2.;
-    }
+  fShellThickness = fLongModuleSize;
+  if(fGeoName.Contains("TRD")) { // 1-oct-04
+    fShellThickness  = TMath::Sqrt(fLongModuleSize*fLongModuleSize + f2Trd1Dx2*f2Trd1Dx2);
+    // Local coordinates
+    fParSM[0] = GetShellThickness()/2.;        
+    fParSM[1] = GetPhiModuleSize() * GetNPhi()/2.;
+    fParSM[2] = 350./2.;
   }
-
+  
   fZLength        = 2.*ZFromEtaR(fIPDistance+fShellThickness,fArm1EtaMax); // Z coverage
   fEnvelop[0]     = fIPDistance; // mother volume inner radius
   fEnvelop[1]     = fIPDistance + fShellThickness; // mother volume outer r.
@@ -418,18 +398,8 @@ void AliEMCALGeometry::PrintGeometry()
   printf("                fSampling %5.2f \n",  fSampling );
   if(fGeoName.Contains("SHISH")){
     printf(" fIPDistance       %6.3f cm \n", fIPDistance);
-    if(fSteelFrontThick>0.) 
-    printf(" fSteelFrontThick  %6.3f cm \n", fSteelFrontThick);
     printf(" fNPhi %i   |  fNZ %i \n", fNPhi, fNZ);
     printf(" fNCellsInModule %i : fNCellsInSupMod %i : fNCells %i\n",fNCellsInModule, fNCellsInSupMod, fNCells);
-    if(fGeoName.Contains("MAY05")){
-      printf(" fFrontSteelStrip         %6.4f cm (thickness of front steel strip)\n", 
-      fFrontSteelStrip);
-      printf(" fLateralSteelStrip       %6.4f cm (thickness of lateral steel strip)\n", 
-      fLateralSteelStrip);
-      printf(" fPassiveScintThick  %6.4f cm (thickness of front passive Sc tile)\n",
-      fPassiveScintThick);
-    }
     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);
index d0a3dbd..0699c83 100644 (file)
@@ -50,68 +50,59 @@ public:
     Fatal("operator =", "not implemented");
     return *this;
   };
-  static Char_t* GetDefaulGeometryName() {return fgDefaultGeometryName;}
+
+  AliEMCALGeometry(); // default ctor only for internal usage (singleton)
+
+  //////////
+  // General
+  //
+  Bool_t  IsInitialized(void) const { return fgInit ; }
+  static Char_t* GetDefaultGeometryName() {return fgDefaultGeometryName;}
   void PrintGeometry();                                           //*MENU*  
   void PrintCellIndexes(Int_t absId=0, int pri=0, char *tit="");  //*MENU*
   virtual void Browse(TBrowser* b);
   virtual Bool_t  IsFolder() const;
-
-  void GetCellPhiEtaIndexInSModuleFromTRUIndex(Int_t itru, Int_t iphitru, Int_t ietatru, Int_t &ietaSM, Int_t &iphiSM) const ; // Tranforms Eta-Phi Cell index in TRU into Eta-Phi index in Super Module
   
+  //////////////////////////
+  // Global geometry methods
+  //
   void GetGlobal(const Double_t *loc, Double_t *glob, int ind) const;
   void GetGlobal(const TVector3 &vloc, TVector3 &vglob, int ind) const;
   void GetGlobal(Int_t absId, Double_t glob[3]) const;
   void GetGlobal(Int_t absId, TVector3 &vglob) const;
-  // for a given tower index absId returns eta and phi of gravity center of tower.
-  void EtaPhiFromIndex(Int_t absId, Double_t &eta, Double_t &phi) const;
-  void EtaPhiFromIndex(Int_t absId, Float_t &eta, Float_t &phi) const;
-  // 
-  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;
-  Bool_t SuperModuleNumberFromEtaPhi(Double_t eta, Double_t phi, Int_t &nSupMod) const;
-
-  Bool_t GetAbsCellIdFromEtaPhi(Double_t eta,Double_t phi, Int_t &absId) const;
-
+  //
   virtual void GetGlobal(const AliRecPoint *rp, TVector3 &vglob) const;
-  virtual void GetGlobal(const AliRecPoint *rp, TVector3 & gpos, TMatrixF & /* gmat */) const
-               {GetGlobal(rp,gpos); }
+  virtual void GetGlobal(const AliRecPoint *rp, TVector3 & gpos, TMatrixF & /* gmat */) 
+    const {GetGlobal(rp,gpos); }
   virtual void GetGlobalEMCAL(const AliEMCALRecPoint *rp, TVector3 &vglob) const;
-  virtual void GetGlobalEMCAL(const AliEMCALRecPoint *rp, TVector3 & gpos, TMatrixF & /* gmat */) const
-               {GetGlobalEMCAL(rp,gpos); }
-  
-  virtual Bool_t Impact(const TParticle *) const {return kTRUE;}
+  virtual void GetGlobalEMCAL(const AliEMCALRecPoint *rp, TVector3 & gpos, TMatrixF & /* gmat */) 
+    const {GetGlobalEMCAL(rp,gpos); }
 
-  Bool_t IsInEMCAL(Double_t x, Double_t y, Double_t z) const;
-  // General
-  Bool_t  IsInitialized(void) const { return fgInit ; }
+  /////////////
+  // TRD1 stuff
+  void    CreateListOfTrd1Modules();
+  TList  *GetShishKebabTrd1Modules() const {return fShishKebabTrd1Modules;}
+  AliEMCALShishKebabTrd1Module *GetShishKebabModule(Int_t neta) const;
+
+  //////////////////////////////////////
   // Return EMCAL geometrical parameters
-  // geometry
+  //
   Char_t* GetNameOfEMCALEnvelope() const {return "XEN1";}
-  Float_t GetAlFrontThickness() const { return fAlFrontThick;}
   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 GetIP2ECASection() const { return ( GetIPDistance() + GetAlFrontThickness() + GetGap2Active() ) ; }   
   Float_t GetEnvelop(Int_t index) const { return fEnvelop[index] ; }  
   Float_t GetShellThickness() const { return fShellThickness ; }
   Float_t GetZLength() const { return fZLength ; } 
-  Float_t GetGap2Active() const {return  fGap2Active ;}
-  Float_t GetDeltaEta() const {return (fArm1EtaMax-fArm1EtaMin)/
-                                      ((Float_t)fNZ);}
-  Float_t GetDeltaPhi() const {return (fArm1PhiMax-fArm1PhiMin)/
-                                      ((Float_t)fNPhi);}
   Int_t   GetNECLayers() const {return fNECLayers ;}
   Int_t   GetNZ() const {return fNZ ;}
   Int_t   GetNEta() const {return fNZ ;}
   Int_t   GetNPhi() const {return fNPhi ;}
-  Int_t   GetNTowers() const {return fNPhi * fNZ ;}
   Float_t GetECPbRadThick()const {return fECPbRadThickness;}
   Float_t GetECScintThick() const {return fECScintThick;}
   Float_t GetSampling() const {return fSampling ; } 
-  //  Bool_t IsInECA(Int_t index) const { if ( (index > 0 && (index <= GetNZ() * GetNPhi()))) return kTRUE; else return kFALSE ;}
-
   Int_t   GetNumberOfSuperModules() const {return fNumberOfSuperModules;}
   Float_t GetfPhiGapForSuperModules() const {return fPhiGapForSM;}
   Float_t GetPhiModuleSize() const  {return fPhiModuleSize;}
@@ -125,34 +116,35 @@ public:
   Int_t   GetNPHIdiv() const {return fNPHIdiv ;}
   Int_t   GetNETAdiv() const {return fNETAdiv ;}
   Int_t   GetNCells()  const {return fNCells;}
-
-  Int_t   GetNTRU() const    {return fNTRUEta*fNTRUPhi ; }  
+  Float_t GetLongModuleSize() const {return fLongModuleSize;}
+  Float_t GetTrd1Angle() const {return fTrd1Angle;}
+  Float_t Get2Trd1Dx2()  const {return f2Trd1Dx2;}
   Int_t   GetNTRUEta() const {return fNTRUEta ; }  
   Int_t   GetNTRUPhi() const {return fNTRUPhi ; }  
-
-  Int_t   GetNCellsInTRU() const    {return fNCellsInTRUEta*fNCellsInTRUPhi; }  
   Int_t   GetNCellsInTRUEta() const {return fNCellsInTRUEta ; }  
   Int_t   GetNCellsInTRUPhi() const {return fNCellsInTRUPhi ; }  
-
-  Float_t GetSteelFrontThickness() const { return fSteelFrontThick;}
-  Float_t GetLongModuleSize() const {return fLongModuleSize;}
-
-  Float_t GetTrd1Angle() const {return fTrd1Angle;}
-  Float_t Get2Trd1Dx2()  const {return f2Trd1Dx2;}
-  Float_t GetTrd2AngleY()const {return fTrd2AngleY;}
-  Float_t Get2Trd2Dy2()  const {return f2Trd2Dy2;}
-  Float_t GetTubsR()     const {return fTubsR;}
-  Float_t GetTubsTurnAngle() const {return fTubsTurnAngle;}
-
-  // TRD1 staff
-  void    CreateListOfTrd1Modules();
-  TList  *GetShishKebabTrd1Modules() const {return fShishKebabTrd1Modules;}
-  AliEMCALShishKebabTrd1Module *GetShishKebabModule(Int_t neta) const;
-
+  Int_t   GetNCellsInSupMod() const {return fNCellsInSupMod;}
+  Int_t   GetNCellsInModule()  const {return fNCellsInModule; }
+  Int_t   GetKey110DEG()      const {return fKey110DEG;}
+  Int_t   GetILOSS() const {return fILOSS;}
+  Int_t   GetIHADR() const {return fIHADR;}
+  //
+  Int_t   GetNTRU() const    {return fNTRUEta*fNTRUPhi ; }  
+  Int_t   GetNCellsInTRU() const    {return fNCellsInTRUEta*fNCellsInTRUPhi; }  
+  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;
-
   Float_t *GetSuperModulesPars() {return fParSM;}
+  //
+  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;
+  //
+  virtual Bool_t Impact(const TParticle *) const {return kTRUE;}
+  Bool_t IsInEMCAL(Double_t x, Double_t y, Double_t z) const;
 
+  ////////////////////////////////////////
   // May 31, 2006; ALICE numbering scheme: 
   // see ALICE-INT-2003-038: ALICE Coordinate System and Software Numbering Convention
   // All indexes are stared from zero now.
@@ -172,33 +164,63 @@ public:
   //
   //  iphi    - phi index of tower(cell) in SM  
   //  ieta    - eta index of tower(cell) in SM  
+  //
+  // for a given tower index absId returns eta and phi of gravity center of tower.
+  void EtaPhiFromIndex(Int_t absId, Double_t &eta, Double_t &phi) const;
+  void EtaPhiFromIndex(Int_t absId, Float_t &eta, Float_t &phi) const;
+  // 
+  // Tranforms Eta-Phi Cell index in TRU into Eta-Phi index in Super Module
+  void GetCellPhiEtaIndexInSModuleFromTRUIndex(Int_t itru, Int_t iphitru, Int_t ietatru, 
+                                              Int_t &ietaSM, Int_t &iphiSM) const ; 
+  Bool_t GetAbsCellIdFromEtaPhi(Double_t eta,Double_t phi, Int_t &absId) const;
+  Bool_t SuperModuleNumberFromEtaPhi(Double_t eta, Double_t phi, Int_t &nSupMod) const;
   Int_t   GetAbsCellId(Int_t nSupMod, Int_t nModule, Int_t nIphi, Int_t nIeta) const;
   Bool_t  CheckAbsCellId(Int_t absId) const;
-  Bool_t  GetCellIndex(Int_t absId, Int_t &nSupMod, Int_t &nModule, Int_t &nIphi, Int_t &nIeta) const;
+  Bool_t  GetCellIndex(Int_t absId, Int_t &nSupMod, Int_t &nModule, Int_t &nIphi, 
+                      Int_t &nIeta) const;
   // Local coordinate of Super Module 
-  void    GetModulePhiEtaIndexInSModule(Int_t nSupMod, Int_t nModule, Int_t &iphim, Int_t &ietam) const;
+  void    GetModulePhiEtaIndexInSModule(Int_t nSupMod, Int_t nModule, Int_t &iphim, 
+                                       Int_t &ietam) const;
   void    GetCellPhiEtaIndexInSModule(Int_t nSupMod, Int_t nModule, Int_t nIphi, Int_t nIeta,
                                       Int_t &iphi, Int_t &ieta) const ;
   Int_t   GetSuperModuleNumber(Int_t absId)  const;
   Int_t   GetNumberOfModuleInPhiDirection(Int_t nSupMod)  const
   {
-    // inline function
     if(fKey110DEG == 1 && nSupMod>=10) return fNPhi/2;
     else                               return fNPhi;
   }
   // From cell indexes to abs cell id
   void    GetModuleIndexesFromCellIndexesInSModule(Int_t nSupMod, Int_t iphi, Int_t ieta, 
-         Int_t &iphim, Int_t &ietam, Int_t &nModule) const;
+                                             Int_t &iphim, Int_t &ietam, Int_t &nModule) const;
   Int_t   GetAbsCellIdFromCellIndexes(Int_t nSupMod, Int_t iphi, Int_t ieta) const;
+
   // Methods for AliEMCALRecPoint - Feb 19, 2006
   Bool_t   RelPosCellInSModule(Int_t absId, Double_t &xr, Double_t &yr, Double_t &zr) const;
   Bool_t   RelPosCellInSModule(Int_t absId, Double_t loc[3]) const;
   Bool_t   RelPosCellInSModule(Int_t absId, TVector3 &vloc) const;
   //  Methods for AliEMCALRecPoint with taking into account energy of rec.point - Jul 30. 2007
-  Bool_t RelPosCellInSModule(Int_t absId,Double_t distEff,Double_t &xr,Double_t &yr,Double_t & zr) const; 
-  Bool_t RelPosCellInSModule(Int_t absId,Int_t maxAbsId,Double_t distEff,Double_t &xr,Double_t &yr,Double_t &zr) const;
+  Bool_t RelPosCellInSModule(Int_t absId,Double_t distEff,Double_t &xr,Double_t &yr,
+                            Double_t & zr) const; 
+  Bool_t RelPosCellInSModule(Int_t absId,Int_t maxAbsId,Double_t distEff,Double_t &xr,
+                            Double_t &yr,Double_t &zr) const;
 
-  // ---
+  ///////////////////////////////
+  //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 Etaset 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));
   }
@@ -206,30 +228,32 @@ public:
     // pseudorapidity and r=sqrt(x*x+y*y).
     return r/TMath::Tan(AngleFromEta(eta));
   }
-  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 Etaset 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) ; }
-
-  Int_t GetNCellsInSupMod() const {return fNCellsInSupMod;}
-  Int_t GetNCellsInModule()  const {return fNCellsInModule; }
-  Int_t GetKey110DEG()      const {return fKey110DEG;}
-  Int_t GetILOSS() const {return fILOSS;}
-  Int_t GetIHADR() const {return fIHADR;}
-
-  AliEMCALGeometry(); // default ctor only for internal usage (singleton)
+  //////////////////////////////////////////////////
+  // Obsolete methods to be thrown out when feasible
+  Float_t GetAlFrontThickness() const { return fAlFrontThick;}
+  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() ) ; }   
+  //////////////////////////////////////////////////
 
 protected:
-  AliEMCALGeometry(const Text_t* name, const Text_t* title);// ctor only for internal usage (singleton)
+
+  // ctor only for internal usage (singleton)
+  AliEMCALGeometry(const Text_t* name, const Text_t* title);
 
   void Init(void);                             // initializes the parameters of EMCAL
   void CheckAdditionalOptions();        //
   void DefineSamplingFraction();        // Jun 5, 2006
   
 private:
+
+  //Member data
   static AliEMCALGeometry * fgGeom;    // pointer to the unique instance of the singleton
   static Bool_t  fgInit;               // Tells if geometry has been succesfully set up.
   static Char_t* fgDefaultGeometryName; // Default name of geometry
@@ -237,8 +261,9 @@ private:
   TString fGeoName;                     //geometry name
 
   TObjArray *fArrayOpts;                //! array of geometry options
+  char *fAdditionalOpts[6];  //! some additional options for the geometry type and name
+  int  fNAdditionalOpts;     //! size of additional options parameter
 
-  Float_t fAlFrontThick;               // Thickness of the front Al face of the support box  
   Float_t fECPbRadThickness;           // cm, Thickness of the Pb radiators
   Float_t fECScintThick;               // cm, Thickness of the scintillators
   Int_t   fNECLayers;                  // number of scintillator layers
@@ -253,14 +278,12 @@ private:
   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 fGap2Active;                 // Gap between the envelop and the active material
   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 fSteelFrontThick;             // Thickness of the front stell face of the support box - 9-sep-04
   Float_t fFrontSteelStrip;              // 13-may-05
   Float_t fLateralSteelStrip;            // 13-may-05
   Float_t fPassiveScintThick;            // 13-may-05
@@ -290,13 +313,6 @@ private:
   TArrayD fPhiBoundariesOfSM;            // phi boundaries of SM in rad; size is fNumberOfSuperModules;
   TArrayD fPhiCentersOfSM;                // phi of centers of SMl size is fNumberOfSuperModules/2
   Float_t fEtaMaxOfTRD1;                 // max eta in case of TRD1 geometry (see AliEMCALShishKebabTrd1Module)
-  // 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
   // 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)
@@ -309,12 +325,25 @@ private:
   // Local coordinates of SM for TRD1
   Float_t     fParSM[3];       // SM sizes as in GEANT (TRD1)
 
-  char *fAdditionalOpts[6];  //! some additional options for the geometry type and name
-  int  fNAdditionalOpts;     //! size of additional options parameter
-
   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 fAlFrontThick;               // Thickness of the front Al face of the support box  
+  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(AliEMCALGeometry, 13) // EMCAL geometry class 
 };
 
index e30a960..349148f 100644 (file)
@@ -109,7 +109,7 @@ AliEMCALRawUtils::AliEMCALRawUtils()
     fGeom = dynamic_cast<AliEMCAL*>(rl->GetAliRun()->GetDetector("EMCAL"))->GetGeometry();
   } else {
     AliInfo(Form("Using default geometry in raw reco"));
-    fGeom =  AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaulGeometryName());
+    fGeom =  AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName());
   }
 
   if(!fGeom) AliFatal(Form("Could not get geometry!"));
index 71773f7..32ddad5 100644 (file)
@@ -69,7 +69,7 @@ AliEMCALReconstructor::AliEMCALReconstructor()
     fGeom = dynamic_cast<AliEMCAL*>(rl->GetAliRun()->GetDetector("EMCAL"))->GetGeometry();
   } else {
     AliInfo(Form("Using default geometry in reconstruction"));
-    fGeom =  AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaulGeometryName());
+    fGeom =  AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName());
   }
 
   if(!fGeom) AliFatal(Form("Could not get geometry!"));
index c61bc5e..de10649 100644 (file)
@@ -642,7 +642,7 @@ void AliEMCALTrigger::Trigger()
   if (runLoader->GetAliRun() && runLoader->GetAliRun()->GetDetector("EMCAL"))
     fGeom = dynamic_cast<AliEMCAL*>(runLoader->GetAliRun()->GetDetector("EMCAL"))->GetGeometry();
   if (fGeom == 0)
-    fGeom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaulGeometryName());
+    fGeom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName());
 
   if (fGeom==0)
     AliFatal("Did not get geometry from EMCALLoader");
index 1a82ec2..755a8d7 100644 (file)
@@ -362,7 +362,7 @@ void AliEMCALv0::CreateGeometry()
     }
 
     if(gn.Contains("SHISH")){
-      // COMPACT, TWIST, or TRD1
+      // COMPACT, TRD1
       AliDebug(2,Form("Shish-Kebab geometry : %s", GetTitle())); 
       CreateShishKebabGeometry();
     }
@@ -400,7 +400,7 @@ void AliEMCALv0::Init(void)
 // 24-aug-04 by PAI
 void AliEMCALv0::CreateShishKebabGeometry()
 {  
-  // TWIST, TRD1
+  // TRD1
   AliEMCALGeometry * g = GetGeometry(); 
   TString gn(g->GetName()); gn.ToUpper(); 
   // see AliModule::fFIdTmedArr
@@ -442,25 +442,13 @@ void AliEMCALv0::CreateShishKebabGeometry()
     } 
     printf(" Number of Pb tiles in SCM2 %i \n", nr);
   } else if(gn.Contains("TRD1")) { // TRD1 - 30-sep-04
-    if(gn.Contains("MAY05")){
-      Double_t dzTmp = g->GetFrontSteelStrip()+g->GetPassiveScintThick();
-      parSCM0[0] = fParEMOD[0] + tanTmp*dzTmp; // dx1
-      parSCM0[1] = fParEMOD[1];                // dx2
-      parSCM0[2] = fParEMOD[2];                // dy
-      for(int i=0; i<3; i++) parSCM0[i] -= g->GetLateralSteelStrip();
-      parSCM0[3] = fParEMOD[3] - dzTmp/2.; // dz
-
-      gMC->Gsvolu("SCM0", "TRD1", fIdTmedArr[kIdAIR], parSCM0, 4);
-      gMC->Gspos("SCM0", 1, "EMOD", 0., 0., dzTmp/2., 0, "ONLY") ;
-    } else { // before MAY 2005
-      //      double wallThickness = g->GetPhiModuleSize()/2. -  g->GetPhiTileSize(); // Need check
-      double wallThickness = g->GetPhiModuleSize()/g->GetNPHIdiv() -  g->GetPhiTileSize();
-      for(int i=0; i<3; i++) parSCM0[i] = fParEMOD[i] - wallThickness;
-      parSCM0[3] = fParEMOD[3];
-      gMC->Gsvolu("SCM0", "TRD1", fIdTmedArr[kIdAIR], parSCM0, 4);
-      gMC->Gspos("SCM0", 1, "EMOD", 0., 0., 0., 0, "ONLY") ;
-    }
-
+    //      double wallThickness = g->GetPhiModuleSize()/2. -  g->GetPhiTileSize(); // Need check
+    double wallThickness = g->GetPhiModuleSize()/g->GetNPHIdiv() -  g->GetPhiTileSize();
+    for(int i=0; i<3; i++) parSCM0[i] = fParEMOD[i] - wallThickness;
+    parSCM0[3] = fParEMOD[3];
+    gMC->Gsvolu("SCM0", "TRD1", fIdTmedArr[kIdAIR], parSCM0, 4);
+    gMC->Gspos("SCM0", 1, "EMOD", 0., 0., 0., 0, "ONLY") ;
+    
     if(g->GetNPHIdiv()==2 && g->GetNETAdiv()==2) {
     // Division to tile size - 1-oct-04
       AliDebug(2,Form(" Divide SCM0 on y-axis %i\n", g->GetNETAdiv()));
@@ -512,16 +500,6 @@ void AliEMCALv0::CreateShishKebabGeometry()
         } 
         AliDebug(2,Form(" Number of Pb tiles in SCMX %i \n", nr));
       }
-    } else if(g->GetNPHIdiv()==3 && g->GetNETAdiv()==3) {
-      printf(" before AliEMCALv0::Trd1Tower3X3() : parSCM0");
-      for(int i=0; i<4; i++) printf(" %7.4f ", parSCM0[i]);
-      printf("\n"); 
-      Trd1Tower3X3(parSCM0);
-    } else if(g->GetNPHIdiv()==1 && g->GetNETAdiv()==1) {
-      // no division in SCM0
-      Trd1Tower1X1(parSCM0);
-    } else if(g->GetNPHIdiv()==4 && g->GetNETAdiv()==4) {
-      Trd1Tower4X4();
     }
   }
 }
@@ -564,9 +542,7 @@ void AliEMCALv0::CreateSmod(const char* mother)
     fSmodPar2 = par[2];
     nphism   =  g->GetNumberOfSuperModules();
   } else {
-    if     (gn.Contains("TWIST")) {
-      par[2] += 0.4;      // for 27 division
-    } else if(gn.Contains("TRD")) {
+    if(gn.Contains("TRD")) {
       par[2]  = 350./2.; // 11-oct-04 - for 26 division
       if(gn.Contains("TRD1")) {
         AliDebug(2,Form(" par[0] %7.2f (old) \n",  par[0]));
@@ -597,7 +573,6 @@ void AliEMCALv0::CreateSmod(const char* mother)
   }
 
   int nr=0, nrsmod=0, i0=0;
-  if(gn.Contains("TEST")) {nphism = 1;} // just only 2 super modules;
 
   // Turn whole super module
   for(int i=i0; i<nphism; i++) {
@@ -633,7 +608,7 @@ void AliEMCALv0::CreateSmod(const char* mother)
       AliDebug(3, Form(" %s : %2i fIdRotm %3i phi %6.1f(%5.3f) xpos %7.2f ypos %7.2f zpos %7.2f : i %i \n", 
                       smName.Data(), nr, fIdRotm, phi, phiRad, xpos, ypos, zpos, i));
       // 2th module in z-direction;
-      if(gn.Contains("TWIST") || gn.Contains("TRD")) {
+      if(gn.Contains("TRD")) {
       // turn arround X axis; 0<phi<360
         double phiy = 90. + phi + 180.;
         if(phiy>=360.) phiy -= 360.;
@@ -661,12 +636,7 @@ void AliEMCALv0::CreateEmod(const char* mother, const char* child)
   Double_t trd1Angle = g->GetTrd1Angle()*TMath::DegToRad(), tanTrd1 = TMath::Tan(trd1Angle/2.);
   int nr=0;
   fIdRotm=0;
-  if(!gn.Contains("TRD")) { // standard module
-    par[0] = (fSampleWidth*g->GetNECLayers())/2.; 
-    par[1] = par[2] = g->GetPhiModuleSize()/2.;
-    gMC->Gsvolu(child, "BOX", fIdTmedArr[kIdSTEEL], par, 3);
-
-  } else if (gn.Contains("TRD1")){ // TRD1 system coordinate iz differnet
+  if (gn.Contains("TRD1")){ // TRD1 system coordinate iz differnet
     if(strcmp(mother,"SMOD")==0) {
       fParEMOD[0] = g->GetEtaModuleSize()/2.;   // dx1
       fParEMOD[1] = g->Get2Trd1Dx2()/2.;        // dx2
@@ -687,31 +657,7 @@ void AliEMCALv0::CreateEmod(const char* mother, const char* child)
   }
 
   nr   = 0;
-  if(gn.Contains("TWIST")) { // 13-sep-04
-    fShishKebabModules = new TList;
-    AliEMCALShishKebabModule *mod=0, *mTmp; // current module
-    for(int iz=0; iz<g->GetNZ(); iz++) {
-      //for(int iz=0; iz<4; iz++) {
-      if(iz==0) {
-        mod    = new AliEMCALShishKebabModule();
-        fIdRotm = 0;
-      } else {
-        mTmp = new AliEMCALShishKebabModule(*mod);
-        mod  = mTmp;
-        Double_t  angle = mod->GetThetaInDegree();
-        AliMatrix(fIdRotm, angle,0., 90.0,90.0, 90.-angle, 180.);
-      }
-      fShishKebabModules->Add(mod);
-
-      xpos = mod->GetPosXfromR() + g->GetSteelFrontThickness() - fSmodPar0;
-      zpos = mod->GetPosZ() - fSmodPar2;
-      for(int iy=0; iy<g->GetNPhi(); iy++) {
-        ypos = g->GetPhiModuleSize()*(2*iy+1 - g->GetNPhi())/2.;
-        gMC->Gspos(child, ++nr, mother, xpos, ypos, zpos, fIdRotm, "ONLY") ;
-       //        printf(" %3i(%2i,2i) xpos %7.2f ypos %7.2f zpos %7.2f \n", nr,iy,iz, xpos, ypos, zpos);
-      }
-    }    
-  } else if(gn.Contains("TRD")) { // 30-sep-04; 27-jan-05 - as for TRD1
+  if(gn.Contains("TRD")) { // 30-sep-04; 27-jan-05 - as for TRD1
     // X->Z(0, 0); Y->Y(90, 90); Z->X(90, 0)
     AliEMCALShishKebabTrd1Module *mod=0; // current module
 
@@ -772,64 +718,9 @@ void AliEMCALv0::CreateEmod(const char* mother, const char* child)
   AliDebug(2,Form(" Number of modules in Super Module(%s) %i \n", mother, nr));
 }
 
-void AliEMCALv0::Trd1Tower3X3(const double *parSCM0)
+void AliEMCALv0::Trd1Tower3X3(const double* /*parSCM0*/)
 {
-  // Started Dec 8,2004 by PAI
-  // Fixed Nov 13,2006
-  printf(" AliEMCALv0::Trd1Tower3X3() : parSCM0");
-  for(int i=0; i<4; i++) printf(" %7.4f ", parSCM0[i]);
-  printf("\n"); 
-  // Nov 10, 2006 - different name of SCMX
-  double parTRAP[11], *dummy=0;
-  AliEMCALGeometry * g = GetGeometry(); 
-  TString gn(g->GetName()), scmx; 
-  gn.ToUpper(); 
- // Division to tile size 
-  AliDebug(2,Form("Trd1Tower3X3() : Divide SCM0 on y-axis %i", g->GetNETAdiv()));
-  gMC->Gsdvn("SCMY","SCM0", g->GetNETAdiv(), 2); // y-axis
-  double dx1=parSCM0[0], dx2=parSCM0[1], dy=parSCM0[2], dz=parSCM0[3];
-  double ndiv=3., xpos=0.0;
-  // should be defined once
-  gMC->Gsvolu("PBTI", "BOX", fIdTmedArr[kIdPB], dummy, 0);
-  for(int ix=1; ix<=3; ix++) { // 3X3
-    scmx = "SCX"; // Nov 10,2006 
-    // ix=1
-    parTRAP[0] = dz;
-    double xCentBot = 2.*dx1/3.;
-    double xCentTop = 2.*(dx2/4. + dx1/12.);
-    parTRAP[1] = TMath::ATan2((xCentTop-xCentBot),2.*dz)*TMath::RadToDeg(); // theta
-    parTRAP[2] = 0.;           // phi
-    // bottom
-    parTRAP[3] = dy/ndiv;      // H1
-    parTRAP[4] = dx1/ndiv;     // BL1
-    parTRAP[5] = parTRAP[4];   // TL1
-    parTRAP[6] = 0.0;          // ALP1
-    // top
-    parTRAP[7] = dy/ndiv;      // H2
-    parTRAP[8] = dx2/2 - dx1/6.;// BL2
-    parTRAP[9] = parTRAP[8];   // TL2
-    parTRAP[10]= 0.0;          // ALP2
-    xpos = (xCentBot+xCentTop)/2.;
-
-    if      (ix==3) {
-      parTRAP[1] = -parTRAP[1];
-      xpos = -xpos;
-    } else if(ix==2) { // central part is box but we treat as trapesoid due to numbering
-      parTRAP[1] = 0.;
-      parTRAP[8] = dx1/ndiv;     // BL2
-      parTRAP[9] = parTRAP[8];   // TL2
-      xpos = 0.0;
-    }
-    AliDebug(2,Form(" ** TRAP ** xpos %9.3f\n", xpos));
-    for(int i=0; i<11; i++) AliDebug(2,Form(" par[%2.2i] %9.4f\n", i, parTRAP[i]));
-
-    scmx += ix;
-    gMC->Gsvolu(scmx.Data(), "TRAP", fIdTmedArr[kIdSC], parTRAP, 11);
-    gMC->Gspos(scmx.Data(), 1, "SCMY", xpos, 0.0, 0.0, 0, "ONLY") ;
-
-    PbInTrap(parTRAP, scmx);
-  }
-  AliDebug(2,Form("Trd1Tower3X3()", "Ver. 1.0 : was tested."));
+  AliDebug(2,Form("Trd1Tower3X3()", "Obsolete"));
 }
 
 // 8-dec-04 by PAI
@@ -871,79 +762,15 @@ void AliEMCALv0::Trd1Tower4X4()
  // Not ready yet
 }
 
-void AliEMCALv0::Trd1Tower1X1(double *parSCM0)
+void AliEMCALv0::Trd1Tower1X1(double* /*parSCM0*/)
 {
-  // Started Nov 22,2006 by PAI
-  AliDebug(1," AliEMCALv0::Trd1Tower1X1() : parSCM0");
-  for(int i=0; i<4; i++) printf(" %7.4f ", parSCM0[i]);
-  printf("\n"); 
-
-  // No division - keeping the same volume logic 
-  // and as consequence the same abs is scheme
-  AliDebug(2,"Trd1Tower1X1() : Create SCMX(SCMY) as SCM0");
-
-  gMC->Gsvolu("SCMY", "TRD1", fIdTmedArr[kIdAIR], parSCM0, 4);
-  gMC->Gspos("SCMY", 1, "SCM0", 0.0, 0.0, 0.0, 0, "ONLY");
-  gMC->Gsvolu("SCMX", "TRD1", fIdTmedArr[kIdSC], parSCM0, 4);
-  gMC->Gspos("SCMX", 1, "SCMY", 0.0, 0.0, 0.0, 0, "ONLY");
-
-  // should be defined once
-  double *dummy=0;
-  gMC->Gsvolu("PBTI", "BOX", fIdTmedArr[kIdPB], dummy, 0);
-
-  PbInTrd1(parSCM0, "SCMX");
-
-  AliDebug(1,"Trd1Tower1X1() : Ver. 0.1 : was tested.");
-}
-
-void AliEMCALv0::PbInTrd1(double *parTrd1, TString n)
-{
- // see PbInTrap(const double parTrd1[11], TString n)
-  static int nr=0, ndeb=2;
-  AliDebug(ndeb,Form(" Pb tiles : nrstart %i\n", nr));
-  AliEMCALGeometry * g = GetGeometry(); 
-
-  double par[3];
-  //  double fSampleWidth = double(g->GetECPbRadThick()+g->GetECScintThick());
-  double xpos = 0.0, ypos = 0.0;
-  double zpos = -fSampleWidth*g->GetNECLayers()/2. + g->GetECPbRadThick()/2.;
-  double coef = (parTrd1[1] -  parTrd1[0]) / (2.*parTrd1[3]);
-
-  par[1] = parTrd1[2];              // y 
-  par[2] = g->GetECPbRadThick()/2.; // z
-
-  for(int iz=0; iz<g->GetNECLayers(); iz++){
-    par[0] = parTrd1[0] + coef*fSampleWidth*iz;
-    gMC->Gsposp("PBTI", ++nr, n.Data(), xpos, ypos, zpos, 0, "ONLY", par, 3) ;
-    AliDebug(2,Form(" %i xpos %9.3f zpos %9.3f par[0] %9.3f |", iz+1, xpos, zpos, par[0]));
-    zpos += fSampleWidth;
-    if(iz%2>0) printf("\n");
-  } 
-  AliDebug(ndeb,Form(" Number of Pb tiles in SCMX %i coef %9.7f ", nr, coef));
-  AliDebug(ndeb,Form(" PbInTrd1 Ver. 0.1 : was tested."));
+  AliDebug(2,Form("Trd1Tower1X1()", "Obsolete"));
 }
 
 // 3-feb-05
-void AliEMCALv0::Scm0InTrd2(const AliEMCALGeometry * g, const Double_t emodPar[5], Double_t parSCM0[5])
+void AliEMCALv0::Scm0InTrd2(const AliEMCALGeometry* /*g*/, const Double_t* /*emodPar[5]*/, Double_t* /*parSCM0[5]*/)
 {
-  // Passive material inside the detector
-  double wallThickness = g->GetPhiModuleSize()/2. -  g->GetPhiTileSize(); //Need check
-  AliDebug(2,Form(" wall thickness %7.5f \n", wallThickness));
-  for(int i=0; i<4; i++) { // on pictures sometimes I can not see 0 -> be carefull!!
-    parSCM0[i] = emodPar[i] - wallThickness;
-    AliDebug(2,Form(" %i parSCMO %7.3f emodPar %7.3f : dif %7.3f \n", 
-                   i, parSCM0[i],emodPar[i], parSCM0[i]-emodPar[i]));
-  }
-  parSCM0[4] = emodPar[4];
-  gMC->Gsvolu("SCM0", "TRD2", fIdTmedArr[kIdSC], parSCM0, 5); // kIdAIR -> kIdSC
-  gMC->Gspos("SCM0", 1, "EMOD", 0., 0., 0., 0, "ONLY") ;
-  // Division 
-  if(g->GetNPHIdiv()==2 && g->GetNETAdiv()==2) {
-    Division2X2InScm0(g, parSCM0);
-  } else {
-    Info("Scm0InTrd2"," no division SCM0 in this geometry |%s|\n", g->GetName());
-    assert(0);
-  }
+  AliDebug(2,Form("Scm0InTrd2()", "Obsolete"));
 }
 
 void AliEMCALv0::Division2X2InScm0(const AliEMCALGeometry * g, const Double_t parSCM0[5])
@@ -1027,101 +854,15 @@ void AliEMCALv0::Division2X2InScm0(const AliEMCALGeometry * g, const Double_t pa
 } 
 
 // 4-feb-05 by PAI
-void AliEMCALv0::PbInTrapForTrd2(const double *parTRAP, TString name)
+void AliEMCALv0::PbInTrapForTrd2(const double* /*parTRAP*/, TString /*name*/)
 {
- // TRD2 cases
-  Double_t *dummy=0;
-  TString pbShape("BOX"), pbtiChonly("ONLY");
-  if(name=="SCM0") {
-    pbShape    = "TRD2";
-    //    pbtiChonly = "MANY";
-  }
-  gMC->Gsvolu("PBTI", pbShape.Data(), fIdTmedArr[kIdPB], dummy, 0);
-
-  int nr=0;
-  Info("PbInTrapForTrd2"," Pb tiles inside %s: shape %s :pbtiChonly %s\n nrstart %i\n", 
-  name.Data(), pbShape.Data(), pbtiChonly.Data(), nr);
-  AliEMCALGeometry * g = GetGeometry(); 
-
-  double par[5], parPB[5], parSC[5];
-  //double fSampleWidth = double(g->GetECPbRadThick()+g->GetECScintThick());
-  double xpos = 0.0, ypos = 0.0;
-  double zpos = -fSampleWidth*g->GetNECLayers()/2. + g->GetECPbRadThick()/2.;
-  if(name == "SCMX") { // common trapezoid - 11 parameters
-    double coef = (parTRAP[8] -  parTRAP[4]) / (2.*parTRAP[0]);
-    double xCenterSCMX =  (parTRAP[4] +  parTRAP[8])/2.; // the same for y
-    AliDebug(2,Form(" xCenterSCMX %8.5f : coef %8.7f \n", xCenterSCMX, coef));
-
-    par[2] = g->GetECPbRadThick()/2.; // z
-    for(int iz=0; iz<g->GetNECLayers(); iz++){
-      par[0] = parTRAP[4] + coef*fSampleWidth*iz;
-      par[1] = par[0];
-      xpos   = ypos = par[0] - xCenterSCMX;
-    //if(parTRAP[1] < 0.) xpos = -xpos;
-      gMC->Gsposp("PBTI", ++nr, name.Data(), xpos, ypos, zpos, 0, "ONLY", par, 3) ;
-      AliDebug(2,Form(" %2.2i xpos %8.5f zpos %6.3f par[0,1] %6.3f |", iz+1, xpos, zpos, par[0]));
-      if(iz%2>0) AliDebug(2,Form("\n"));
-      zpos += fSampleWidth;
-    } 
-    AliDebug(2,Form(" Number of Pb tiles in SCMX %i coef %9.7f \n", nr, coef));
-    AliDebug(2,Form(" par[1] %9.5f  par[2] %9.5f ypos %9.5f \n", par[1], par[2], ypos)); 
-  } else if(name == "SCM0") { // 1-mar-05 ; TRD2 - 5 parameters
-    AliDebug(2,Form(" SCM0 par = "));
-    for(int i=0; i<5; i++) AliDebug(2,Form(" %9.5f ", parTRAP[i]));
-    AliDebug(2,Form("\n zpos %f \n",zpos));
-
-    double tanx = (parTRAP[1] -  parTRAP[0]) / (2.*parTRAP[4]); //  tanx =  tany now
-    double tany = (parTRAP[3] -  parTRAP[2]) / (2.*parTRAP[4]), ztmp=0.;
-    parPB[4] = g->GetECPbRadThick()/2.;
-    parSC[2] = g->GetECScintThick()/2.;
-    for(int iz=0; iz<g->GetNECLayers(); iz++){
-      ztmp     = fSampleWidth*double(iz);
-      parPB[0] = parTRAP[0] + tanx*ztmp;
-      parPB[1] = parPB[0]   + tanx*g->GetECPbRadThick();
-      parPB[2] = parTRAP[2] + tany*ztmp;
-      parPB[3] = parPB[2]   + tany*g->GetECPbRadThick();
-      gMC->Gsposp("PBTI", ++nr, name.Data(), xpos, ypos, zpos, 0, pbtiChonly.Data(), parPB, 5) ;
-      AliDebug(2,Form("\n PBTI %2i | zpos %6.3f | par = ", nr, zpos));
-      /*
-      for(int i=0; i<5; i++) printf(" %9.5f ", parPB[i]);
-      // individual SC tile
-      parSC[0] = parPB[0];
-      parSC[1] = parPB[1];
-      gMC->Gsposp("SCTI", nr, name.Data(), xpos, ypos, zpos+g->GetECScintThick(), 
-      0, pbtiChonly.Data(), parSC, 3) ;
-      printf("\n SCTI     zpos %6.3f | par = ", zpos+g->GetECScintThick());
-      for(int i=0; i<3; i++) printf(" %9.5f ", parPB[i]);
-      */
-      zpos  += fSampleWidth;
-    }
-    AliDebug(2,Form("\n"));
-  }
-  Info("PbInTrapForTrd2", "Ver. 0.03 : was tested.");
+  AliDebug(2,Form("PbInTrapForTrd2()", "Obsolete"));
 }
 
 // 15-mar-05
-void AliEMCALv0::PbmoInTrd2(const AliEMCALGeometry * g, const Double_t emodPar[5], Double_t parPBMO[5])
+void AliEMCALv0::PbmoInTrd2(const AliEMCALGeometry* /*g*/, const Double_t* /*emodPar[5]*/, Double_t* /*parPBMO[5]*/)
 {
-  // Pb inside Trd2
-  Info("PbmoInTrd2"," started : geometry %s ", g->GetName());
-  double wallThickness = g->GetPhiModuleSize()/2. -  g->GetPhiTileSize();
-  AliDebug(2,Form(" wall thickness %7.5f \n", wallThickness));
-  for(int i=0; i<4; i++) {
-    parPBMO[i] = emodPar[i] - wallThickness;
-    AliDebug(2,Form(" %i parPBMO %7.3f emodPar %7.3f : dif %7.3f \n", 
-                   i, parPBMO[i],emodPar[i], parPBMO[i]-emodPar[i]));
-  }
-  parPBMO[4] = emodPar[4];
-  gMC->Gsvolu("PBMO", "TRD2", fIdTmedArr[kIdPB], parPBMO, 5);
-  gMC->Gspos("PBMO", 1, "EMOD", 0., 0., 0., 0, "ONLY") ;
-  // Division 
-  if(g->GetNPHIdiv()==2 && g->GetNETAdiv()==2) {
-    Division2X2InPbmo(g, parPBMO);
-    AliDebug(2,Form(" PBMO, division 2X2 | geometry |%s|\n", g->GetName()));
-  } else {
-    AliDebug(2,Form(" no division PBMO in this geometry |%s|\n", g->GetName()));
-    assert(0);
-  }
+  AliDebug(2,Form("PbmoInTrd2()", "Obsolete"));
 }
 
 void AliEMCALv0::Division2X2InPbmo(const AliEMCALGeometry * g, const Double_t parPBMO[5]) 
index fcaefcd..2796e39 100644 (file)
@@ -2,7 +2,7 @@ void MakeEMCALFullMisAlignment(){
   // Create TClonesArray of full misalignment objects for EMCAL
   //
   const char* macroname = "MakeEMCALFullMisAlignment.C";
-  const AliEMCALGeometry *emcalGeom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaulGeometryName(),"");
+  const AliEMCALGeometry *emcalGeom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName(),"");
   if(!emcalGeom) {
     Error("MakeEMCALFullMisAlignment","Cannot obtain AliEMCALGeometry singleton\n");
     return;
index a1f2c76..915bb33 100644 (file)
@@ -2,7 +2,7 @@ void MakeEMCALResMisAlignment(){
   // Create TClonesArray of residual misalignment objects for EMCAL
   //
   const char* macroname = "MakeEMCALResMisAlignment.C";
-  const AliEMCALGeometry *geom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaulGeometryName(),"");
+  const AliEMCALGeometry *geom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName(),"");
   if(!geom) {
     Error("MakeEMCALResMisAlignment","Cannot obtain AliEMCALGeometry singleton\n");
     return;
index 64b7c9a..3b32150 100644 (file)
@@ -2,7 +2,7 @@ void MakeEMCALZeroMisAlignment(){
   // Create TClonesArray of zero misalignment objects for EMCAL
   //
   const char* macroname = "MakeEMCALZeroMisAlignment.C";
-  const AliEMCALGeometry *geom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaulGeometryName(),"");
+  const AliEMCALGeometry *geom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName(),"");
   if(!geom) {
     Error("MakeEMCALZeroMisAlignment","Cannot obtain AliEMCALGeometry singleton\n");
     return;