Discard STAR type geometry before MDC
authorpavlinov <pavlinov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Feb 2006 17:14:28 +0000 (17:14 +0000)
committerpavlinov <pavlinov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Feb 2006 17:14:28 +0000 (17:14 +0000)
EMCAL/AliEMCALGeometry.cxx
EMCAL/AliEMCALGeometry.h
EMCAL/AliEMCALShishKebabModule.cxx
EMCAL/AliEMCALShishKebabModule.h
EMCAL/AliEMCALShishKebabTrd1Module.cxx
EMCAL/AliEMCALShishKebabTrd1Module.h
EMCAL/AliEMCALv0.cxx
EMCAL/AliEMCALv0.h
EMCAL/AliEMCALv2.cxx
EMCAL/AliEMCALv2.h

index 0109df6..469d48d 100644 (file)
 //     and  : Yves Schutz (SUBATECH)
 //     and  : Jennifer Klay (LBL)
 //     SHASHLYK : Aleksei Pavlinov (WSU)
+//     SuperModules -> module(or tower) -> cell
 
 // --- AliRoot header files ---
 #include <TMath.h>
 #include <TVector3.h>
+#include <TRegexp.h>
+#include <TObjArray.h>
+#include <TObjString.h>
 
 // -- ALICE Headers.
 //#include "AliConst.h"
@@ -44,6 +48,12 @@ AliEMCALGeometry *AliEMCALGeometry::fgGeom = 0;
 Bool_t            AliEMCALGeometry::fgInit = kFALSE;
 TString name; // contains name of geometry
 
+char *additionalOpts[]={"nl=",   // number of sampling layers
+                      "pbTh=", // cm, Thickness of the Pb
+                      "scTh="  // cm, Thickness of the Sc
+};
+int  nAdditionalOpts = sizeof(additionalOpts) / sizeof(char*);
+
 //______________________________________________________________________
 AliEMCALGeometry::~AliEMCALGeometry(void){
     // dtor
@@ -51,7 +61,7 @@ AliEMCALGeometry::~AliEMCALGeometry(void){
 
 //______________________________________________________________________
 Bool_t AliEMCALGeometry::AreInSameTower(Int_t id1, Int_t id2) const {
-  // Find out whether two hits are in the same tower
+  // Find out whether two hits are in the same tower - have to be change
   Int_t idmax = TMath::Max(id1, id2) ; 
   Int_t idmin = TMath::Min(id1, id2) ;
   if ( ((idmax - GetNZ() * GetNPhi()) == idmin ) || 
@@ -70,7 +80,8 @@ void AliEMCALGeometry::Init(void){
   // New geometry: EMCAL_55_25
   // 24-aug-04 for shish-kebab
   // SHISH_25 or SHISH_62
-  // 11-oct-05 - correction for final design
+  // 11-oct-05   - correction for pre final design
+  // Feb 06,2006 - decrease the weight of EMCAL
   fgInit = kFALSE; // Assume failed until proven otherwise.
   name   = GetName();
   name.ToUpper();
@@ -87,20 +98,7 @@ void AliEMCALGeometry::Init(void){
   fPhiGapForSM    = 0.;         // cm, only for final TRD1 geometry
 
   // geometry
-  if (name == "EMCAL_55_25") {
-    fECPbRadThickness  = 0.5;  // cm, Thickness of the Pb radiators
-    fECScintThick      = 0.5;  // cm, Thickness of the scintillator
-    fNECLayers         = 25;   // number of scintillator layers
-    
-    fSampling          = 13.1;  // calculated with Birk's law implementation
-    fAlFrontThick      = 3.5;  // cm, Thickness of front Al layer
-    fGap2Active        = 1.0;  // cm, Gap between Al and 1st Scintillator
-  }
-  else if( name == "G56_2_55_19" || name == "EMCAL_5655_21" || name == "G56_2_55_19_104_14"|| name == "G65_2_64_19" || name == "EMCAL_6564_21"){
-    Fatal("Init", "%s is an old geometry! Please update your Config file", name.Data()) ;
-  }
-  else if(name.Contains("SHISH")){
+  if(name.Contains("SHISH")){ // Only shahslyk now
     // 7-sep-05; integration issue
     fArm1PhiMin     = 80.0;    // 60  -> 80
     fArm1PhiMax     = 180.0;   // 180 -> 190
@@ -190,6 +188,9 @@ void AliEMCALGeometry::Init(void){
       fShellThickness = 30.; // should be change 
       fNPhi = fNZ = 4; 
     }
+
+    CheckAditionalOptions();
+
     // constant for transition absid <--> indexes
     fNCellsInTower  = fNPHIdiv*fNETAdiv;
     fNCellsInSupMod = fNCellsInTower*fNPhi*fNZ;
@@ -206,10 +207,7 @@ void AliEMCALGeometry::Init(void){
         f2Trd2Dy2 = fPhiModuleSize + 2.*fLongModuleSize*TMath::Tan(fTrd2AngleY*TMath::DegToRad()/2.);
       }
     }
-  }
-  else
-    Fatal("Init", "%s is an undefined geometry!", name.Data()) ; 
-                
+  } else Fatal("Init", "%s is an undefined geometry!", name.Data()) ; 
 
   fNPhiSuperModule = fNumberOfSuperModules/2;
   if(fNPhiSuperModule<1) fNPhiSuperModule = 1;
@@ -250,9 +248,10 @@ void AliEMCALGeometry::Init(void){
        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(" fLongModuleSize   %6.3f cm \n", fLongModuleSize);
+      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 );
     }
     if(name.Contains("TRD")) {
@@ -276,6 +275,49 @@ void AliEMCALGeometry::Init(void){
 }
 
 //______________________________________________________________________
+
+void AliEMCALGeometry::CheckAditionalOptions()
+{ // Feb 06,2006
+  fArrayOpts = new TObjArray;
+  Int_t nopt = ParseString(name, *fArrayOpts);
+  if(nopt==1) { // no aditional option(s)
+    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<nAdditionalOpts; j++) {
+      TString opt = additionalOpts[j];
+      if(addOpt.Contains(opt,TString::kIgnoreCase)) {
+         indj = j;
+        break;
+      }
+    }
+    if(indj<0) {
+      printf("<E> option |%s| unavailable : ** look to the file AliEMCALGeometry.h **\n", 
+      addOpt.Data());
+      assert(0);
+    } else {
+      printf("<I> option |%s| is valid : number %i : |%s|\n", 
+            addOpt.Data(), indj, additionalOpts[indj]);
+      if       (addOpt.Contains("NL=",TString::kIgnoreCase))   {// number of sampling layers
+        sscanf(addOpt.Data(),"NL=%i", &fNECLayers);
+        printf(" fNECLayers %i (new) \n", fNECLayers);
+      } else if(addOpt.Contains("PBTH=",TString::kIgnoreCase)) {//Thickness of the Pb
+        sscanf(addOpt.Data(),"PBTH=%f", &fECPbRadThickness);
+      } else if(addOpt.Contains("SCTH=",TString::kIgnoreCase)) {//Thickness of the Sc
+        sscanf(addOpt.Data(),"SCTH=%f", &fECScintThick);
+      }
+    }
+  }
+}
+
+//______________________________________________________________________
 AliEMCALGeometry *  AliEMCALGeometry::GetInstance(){ 
   // Returns the pointer of the unique instance
   
@@ -312,6 +354,7 @@ AliEMCALGeometry* AliEMCALGeometry::GetInstance(const Text_t* name,
     return rv; 
 }
 
+// These methods are obsolete but use in AliEMCALRecPoint - keep it now
 //______________________________________________________________________
 Int_t AliEMCALGeometry::TowerIndex(Int_t ieta,Int_t iphi) const {
   // Returns the tower index number from the based on the Z and Phi
@@ -592,6 +635,7 @@ Bool_t AliEMCALGeometry::IsInEMCAL(Double_t x, Double_t y, Double_t z) const {
   }
   return 0;
 }
+// ==
 
 //
 // == Shish-kebab cases ==
@@ -682,3 +726,20 @@ int &iphi, int &ieta)
   // iphi - have to change from 1 to fNPhi*fNPHIdiv
   iphi  = (iphit-1)*fNPHIdiv + nIphi;     // y(module) =  y(SM) 
 }
+// Service routine 
+int  AliEMCALGeometry::ParseString(const TString &topt, TObjArray &Opt)
+{ // Feb 06, 2006
+  Ssiz_t begin, index, end, end2;
+  begin = index = end = end2 = 0;
+  TRegexp separator("[^ ;,\\t\\s/]+");
+  while ( (begin < topt.Length()) && (index != kNPOS) ) {
+    // loop over given options
+    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();
+}
index 60aad85..2a7cc8f 100644 (file)
 //                  
 //*-- Author: Sahal Yacoob (LBL / UCT)
 //*--   and : Yves Schutz (Subatech)
-
-//#include <assert.h> 
+//*--   and : Aleksei Pavlinov (WSU) - shashlyk staff
 
 // --- ROOT system ---
 class TString ;
-class TObjArray ;
+class TObjArray;
 class TVector3 ;
 class TParticle ; 
 
 // --- AliRoot header files ---
-
 #include "AliGeometry.h"
 
 class AliEMCALGeometry : public AliGeometry {
@@ -48,7 +46,7 @@ public:
   Bool_t IsInEMCAL(Double_t x, Double_t y, Double_t z) const;
   // General
   Bool_t  IsInitialized(void) const { return fgInit ; }
-       // Return EMCA geometrical parameters
+  // Return EMCAL geometrical parameters
   // geometry
   Float_t GetAlFrontThickness() const { return fAlFrontThick;}
   Float_t GetArm1PhiMin() const { return fArm1PhiMin ; }
@@ -60,7 +58,7 @@ public:
   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 GetGap2Active() const {return  fGap2Active ;}
   Float_t GetDeltaEta() const {return (fArm1EtaMax-fArm1EtaMin)/
                                       ((Float_t)fNZ);}
   Float_t GetDeltaPhi() const {return (fArm1PhiMax-fArm1PhiMin)/
@@ -112,6 +110,7 @@ public:
     // pseudorapidity and r=sqrt(x*x+y*y).
     return r/TMath::Tan(AngleFromEta(eta));
   }
+  // These methods are obsolete but use in AliEMCALRecPoint - keep it now
   Int_t TowerIndex(Int_t iz,Int_t iphi) const; // returns tower index
        // returns tower indexs iz, iphi.
   void TowerIndexes(Int_t index,Int_t &iz,Int_t &iphi) const;
@@ -126,6 +125,7 @@ public:
   void PosInAlice(const Int_t *relid, Float_t &theta, Float_t &phi) const ;
   void PosInAlice(Int_t absid, Float_t &theta, Float_t &phi) const ;
   Bool_t AbsToRelNumbering(Int_t AbsId, Int_t *relid) const;
+  // --
   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 SetSampling(Float_t samp) { fSampling = samp; printf("SetSampling: Sampling factor set to %f", fSampling) ; }
@@ -140,12 +140,14 @@ protected:
     Init();
   };
   void Init(void);                             // initializes the parameters of EMCAL
+  void CheckAditionalOptions();              //
   
 private:
   static AliEMCALGeometry * fgGeom;    // pointer to the unique instance of the singleton
   static Bool_t fgInit;                        // Tells if geometry has been succesfully set up.
-  Float_t fAlFrontThick;               // Thickness of the front Al face of the support box
-  
+  TObjArray *fArrayOpts;                //! array of geometry options
+
+  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
@@ -182,7 +184,7 @@ private:
   //
   Int_t   fNCells;                       // number of cells in calo
   Int_t   fNCellsInSupMod;               // number cell in super module
-  Int_t   fNCellsInTower;                // number cell in tower
+  Int_t   fNCellsInTower;                // number cell in tower(or module)
   // TRD1 options - 30-sep-04
   Float_t fTrd1Angle;                    // angle in x-z plane (in degree) 
   Float_t f2Trd1Dx2;                     // 2*dx2 for TRD1
@@ -195,8 +197,10 @@ private:
   // Super module as TUBS
   Float_t fTubsR;                        // radius of tubs 
   Float_t fTubsTurnAngle;                // turn angle of tubs in degree
+  // Service routine 
+  static int ParseString(const TString &topt, TObjArray &Opt);
 
-  ClassDef(AliEMCALGeometry,9) // EMCAL geometry class 
-    };
+  ClassDef(AliEMCALGeometry,10) // EMCAL geometry class 
+  };
 
 #endif // AliEMCALGEOMETRY_H
index d804819..ac55008 100644 (file)
@@ -162,15 +162,15 @@ Bool_t AliEMCALShishKebabModule::GetParameters()
   fga = (Double_t)fgGeometry->GetPhiModuleSize();
   fgb = (Double_t)fgGeometry->GetLongModuleSize();
   fgr = (Double_t)(fgGeometry->GetIPDistance() + fgGeometry->GetSteelFrontThickness());
-  Print(0);
+  PrintShish(0);
   return kTRUE;
 }
 
 // service methods
-void AliEMCALShishKebabModule::Print(int pri) const
+void AliEMCALShishKebabModule::PrintShish(int pri) const
 {
   if(pri>=0) {
-    Info("Print()", " a %7.2f | b %7.2f | r %7.2f ", fga, fgb, fgr);
+    Info("PrintShish()", " a %7.2f | b %7.2f | r %7.2f ", fga, fgb, fgr);
     printf(" fTheta %f : %5.2f : cos(theta) %f\n", fTheta, GetThetaInDegree(),TMath::Cos(fTheta)); 
     if(pri>0) {
       printf("%i %s | theta %f -> %f\n", GetUniqueID(), GetName(), fTheta, fOK.Phi());
index 962ab51..596e93a 100644 (file)
@@ -49,7 +49,7 @@ class AliEMCALShishKebabModule : public TNamed {
   Double_t fA;  // parameters of line = y = A*z + B
   Double_t fB;  // 
   // service methods
-  void Print(int pri=1) const;  // *MENU*
+  void PrintShish(int pri=1) const;  // *MENU*
  protected:
   // size of SK module
   Double_t fTheta; // theta for SK module
index 94d6381..d988b3e 100644 (file)
@@ -130,15 +130,15 @@ Bool_t AliEMCALShishKebabTrd1Module::GetParameters()
   fgr        = (Double_t)fgGeometry->GetIPDistance();
   if(!sn.Contains("TRD2")) fgr += fgGeometry->GetSteelFrontThickness();
   fga2       = Double_t(fgGeometry->Get2Trd1Dx2());
-  Print(0);
+  PrintShish(0);
   return kTRUE;
 }
 
 // service methods
-void AliEMCALShishKebabTrd1Module::Print(int pri) const
+void AliEMCALShishKebabTrd1Module::PrintShish(int pri) const
 {
   if(pri>=0) {
-    Info("Print()", "\n a %7.3f:%7.3f | b %7.2f | r %7.2f \n TRD1 angle %7.6f(%5.2f) | tanBetta %7.6f", 
+    Info("PrintShish()", "\n a %7.3f:%7.3f | b %7.2f | r %7.2f \n TRD1 angle %7.6f(%5.2f) | tanBetta %7.6f", 
     fga, fga2, fgb, fgr, fgangle, fgangle*TMath::RadToDeg(), fgtanBetta);
     printf(" fTheta %f : %5.2f : cos(theta) %f\n", 
     fTheta, GetThetaInDegree(),TMath::Cos(fTheta)); 
index 0184e26..a97015c 100644 (file)
@@ -43,7 +43,7 @@ class AliEMCALShishKebabTrd1Module : public TNamed {
   Double_t GetTanBetta() {return fgtanBetta;}
   Double_t Getb()        {return fgb;}
   // service methods
-  void Print(int pri=1) const;  // *MENU*
+  void PrintShish(int pri=1) const;  // *MENU*
 
   // geometry info
   static AliEMCALGeometry *fgGeometry; //!
index b9d2953..e8c9350 100644 (file)
 //*-- and   : Sahal Yacoob (LBL / UCT)
 //          : Aleksei Pavlinov (WSU)     SHASHLYK
 
-// This Version of AliEMCALv0 reduces the number of volumes placed in XEN1 (the envelope) to less than five hundred
-// The Envelope is Placed in Alice, And the Aluminium layer. Mini envelopes (XU) are then placed in XEN1.
-// Each mini envelope contains 1 scintillator, and 1 lead layer, except the last one which contains just one scintillator layer.
-// At the moment I cannot place the 36 and above layers in the mini envelopes so all layers are still placed in XEN1
-
-
 // --- ROOT system ---
 
 #include "TNode.h"
@@ -48,7 +42,6 @@
 
 #include "AliEMCALShishKebabModule.h"
 #include "AliEMCALShishKebabTrd1Module.h"
-//#include <TGeant3.h> // can not include - I don't know why
 
 // --- Standard library ---
 
@@ -69,7 +62,6 @@ Int_t *idtmed=0, idrotm=0;
 double sampleWidth=0.;
 double parEMOD[5], smodPar0=0., smodPar1=0., smodPar2=0.;
 
-
 //______________________________________________________________________
 AliEMCALv0::AliEMCALv0(const char *name, const char *title):
   AliEMCAL(name,title)
@@ -264,9 +256,6 @@ void AliEMCALv0::CreateGeometry()
   //| |    XUNLayer : XPST (ECAL e = GetECScintThick()  | |
   //|  -------------------------------------------------  |
 
-    Float_t etamin,etamax;
-    Float_t *dum=0;
-
     AliEMCALGeometry * geom = GetGeometry() ; 
     TString gn(geom->GetName());
     gn.ToUpper(); 
@@ -334,173 +323,9 @@ void AliEMCALv0::CreateGeometry()
     }
 
     if(gn.Contains("SHISH")){
-      // Compact and twist
+      // COMPACT, TWIST, TRD2 or TRD1
       CreateShishKebabGeometry();
-      return;
     }
-
-    if (AliLog::GetGlobalDebugLevel()>=2) {
-      printf("CreateGeometry: XEN1 = %f, %f\n", envelopA[5], envelopA[6]); 
-      printf("CreateGeometry: XU0 = %f, %f\n", envelopA[5], envelopA[6]); 
-    }
-
-    // Create mini-envelopes which will contain the Tower scintillator-radiator
-    
-    TString label ;
-    
-    envelopA[5] = envelopA[5] + geom->GetGap2Active() // we are at the first scintllator
-      + geom->GetAlFrontThickness();                  // rmin at z1
-    envelopA[6] = envelopA[5] ;
-
-
-    Int_t i ; 
-
-    Int_t nLayers = geom->GetNECLayers();
-
-    for (i = 0; i < (nLayers-1); i++ ){
-       label = "XU" ;
-       label += i ;
-       Float_t tseg ; 
-       tseg = geom->GetECScintThick()+geom->GetECPbRadThick();       // thickness of scintillator+Pb in E Cal
-       envelopA[5] = envelopA[6] ;                                   // rmin at z1
-       envelopA[4] = geom->ZFromEtaR(envelopA[5] + tseg,
-                                     geom->GetArm1EtaMin());         // z coordinate 1
-       envelopA[7] = geom->ZFromEtaR(envelopA[5] + tseg,
-                                     geom->GetArm1EtaMax());         // z coordinate 2
-       envelopA[6] = envelopA[5] + tseg ;                            // rmax at z1
-       envelopA[8] = envelopA[5] ;                                   // radii are the same.
-       envelopA[9] = envelopA[6] ;                                   // radii are the same.
-       gMC->Gsvolu(label.Data(), "PGON", idtmed[1599], envelopA, 10);// Polygone filled with air 
-
-       // Position XUi in XEN1
-       
-       gMC->Gspos(label.Data(), 1, "XEN1", 0.0, 0.0, 0.0, idrotm, "ONLY") ;
-
-       if (AliLog::GetGlobalDebugLevel() >= 2)
-         printf("CreateGeometry: XU%d = %f, %f\n", i, envelopA[5], envelopA[6]); 
-
-    } // end  i
-  
-    // Create one mini-envelope which will contain the last scintillator XU(nlayers-1) because there is one more scintillator than Pb layer XU(nlayers-1)
-
-    label = "XU" ;
-    label += i ;
-    envelopA[5] = envelopA[6] ;                                   // rmin at z1
-    envelopA[4] = geom->ZFromEtaR(envelopA[5] + geom->GetECScintThick(),
-                                 geom->GetArm1EtaMin());         // z coordinate 1
-    envelopA[7] = geom->ZFromEtaR(envelopA[5] + geom->GetECScintThick(),
-                                 geom->GetArm1EtaMax());         // z coordinate 2
-    envelopA[6] = envelopA[5] + geom->GetECScintThick() ;         // rmax at z1
-    envelopA[8] = envelopA[5] ;                                   // radii are the same.
-    envelopA[9] = envelopA[6] ;                                   // radii are the same.
-
-    gMC->Gsvolu(label.Data(), "PGON", idtmed[1599], envelopA, 10); // Polygone filled with air
-
-    // Position the last minienvelope in XEN1
-  
-    gMC->Gspos(label.Data(), 1, "XEN1", 0.0, 0.0, 0.0, idrotm, "ONLY") ;
-    
-    if(AliLog::GetGlobalDebugLevel() >= 2) 
-    printf("CreateGeometry: XEN%d = %f, %f\n", i, envelopA[5], envelopA[6]);
-  
-    // Create the shapes of active material (LEAD/Aluminium/Scintillator)
-    // to be placed
-    Float_t envelopB[10]; // First Layer of Aluminium
-    Float_t envelopC[10]; // Scintillator Layers
-    Float_t envelopD[10]; // Lead Layers
-
-    envelopC[0] = envelopD[0] = envelopB[0] = envelopA[0] ;  // starting position in Phi
-    envelopC[1] = envelopD[1] = envelopB[1] = envelopA[1] ;  // angular range in phi          
-    envelopC[2] = envelopD[2] = envelopB[2] = envelopA[2] ;  // number of sections in Phi
-    envelopC[3] = envelopD[3] = envelopB[3] = envelopA[3] ;  // 2 z coordinates
-
-    Float_t dist = geom->GetEnvelop(0) + geom->GetAlFrontThickness() + geom->GetGap2Active() ; 
-    envelopB[4] = geom->ZFromEtaR(dist,
-                                 geom->GetArm1EtaMin());   // z co-ordinate 1
-    envelopB[5] = geom->GetEnvelop(0) ;                     // rmin at z1
-    envelopB[6] = envelopB[5] + geom->GetAlFrontThickness();// rmax at z1
-    envelopB[7] = geom->ZFromEtaR(dist,
-                                 geom->GetArm1EtaMax());   // z co-ordinate 2
-    envelopB[8] = envelopB[5] ;                             // radii are the same.
-    envelopB[9] = envelopB[6] ;                             // radii are the same.
-
-    // Define active volumes completely
-    
-    gMC->Gsvolu("XALU", "PGON", idtmed[1602], envelopB, 10); // PGON filled with Al
-    
-    gMC->Gspos("XALU", 1, "XEN1", 0.0, 0.0, 0.0 , idrotm, "ONLY") ; // Position Aluminium Layer in XEN1
-
-    gMC->Gsvolu("XPST", "PGON", idtmed[1601], dum, 0);      // PGON filled with Scintillator (shape to be defined by GSPOSP)
-  
-    gMC->Gsvolu("XPBX", "PGON", idtmed[1600], dum, 0);      // PGON filled with Lead (shape to be defined by GSPOSP)
-  
-    //gMC->Gsvolu("XCUX", "PGON", idtmed[1603], dum, 0);      // PGON filled with Copper (shape to be defined by GSPOSP)
-
-    gMC->Gsdvn("XPHI", "XPST", geom->GetNPhi(), 2);         // Divide eta section of scintillators into phi segments.
-    // Position alternatively scintillator and  Lead Layers in XUi.
-
-    envelopD[6] = envelopB[6] + geom->GetGap2Active() ;// gap between Al layer and XU0
-    
-    for (int i = 0; i < nLayers; i++ ){
-      label = "XU" ;
-      label += i  ; // we will place one layer in each mini envelope)  
-
-      Float_t scthick ; // scintillator thickness 
-      scthick = geom->GetECScintThick() ;
-
-      envelopC[5] = envelopD[6] ;           //rmin
-      envelopC[6] = envelopC[5] + scthick ; //rmax
-      envelopC[8] = envelopC[5] ;           //rmin
-      envelopC[9] = envelopC[6] ;           //rmax
-
-      if(AliLog::GetGlobalDebugLevel() >= 2 ) 
-       printf("CreateGeometry: volume = %s, name = XPST thickness = %f deb = %f/%f fin = %f/%f", label.Data(), scthick, envelopC[5], envelopC[8], envelopC[6], envelopC[9]) ; 
-
-      for (int j =0; j < (geom->GetNEta()) ; j++){
-       etamin = geom->GetArm1EtaMin()+
-         (j*geom->GetDeltaEta());
-       etamax = geom->GetArm1EtaMin()+
-         ((j+1)*geom->GetDeltaEta());
-       envelopC[4] = geom->ZFromEtaR(envelopC[5],etamin); //z begin  
-       envelopC[7] = geom->ZFromEtaR(envelopC[5],etamax);// z end 
-       
-       gMC->Gsposp("XPST",1+j+i*(geom->GetNEta()), label.Data(), 
-                   0.0, 0.0, 0.0 , idrotm, "ONLY", envelopC, 10); // Position and define layer
-      } // end for j
-      
-       Float_t radthick ; // radiator thickness 
-       TString radname ;  // radiator name
-       radthick = geom->GetECPbRadThick();
-       radname  =  "XPBX" ; 
-
-       if ( i < nLayers -1 ) { // except for the last XU which contains only one scintillator layer 
-
-         envelopD[5] = envelopC[6] ; //rmin
-         envelopD[8] = envelopD[5] ; //rmin
-         envelopD[6] = envelopD[5] + radthick ; // rmax
-         envelopD[9] = envelopD[6] ; //rmax
-         
-         if(AliLog::GetGlobalDebugLevel() >= 2 ) 
-           printf("CreateGeometry: volume = %s, name = %s thickness = %f deb = %f/%f fin = %f/%f", label.Data(), radname.Data(), radthick, envelopD[5], envelopD[8], envelopD[6], envelopD[9]) ; 
-
-         for (int j =0; j < (geom->GetNEta()) ; j++){
-           etamin = geom->GetArm1EtaMin()+
-             (j*geom->GetDeltaEta());
-           etamax = geom->GetArm1EtaMin()+
-             ((j+1)*geom->GetDeltaEta());
-           envelopD[4] = geom->ZFromEtaR(envelopD[5],etamin);//z begin  
-           envelopD[7] = geom->ZFromEtaR(envelopD[5],etamax);// z end
-           
-           // Position and Define Layer
-           
-           gMC->Gsposp(radname.Data(),1+j+i*(geom->GetNEta()), label.Data(), 
-                       0.0, 0.0, 0.0 , idrotm, "ONLY", envelopD, 10);
-            } // end for j
-         } // if not last layer
-    }  // for i
 }
 
 //______________________________________________________________________
@@ -790,7 +615,7 @@ void AliEMCALv0::CreateSmod(const char* mother)
       printf(" idrotm %3i phi %6.1f(%5.3f) xpos %7.2f ypos %7.2f zpos %7.2f \n", 
       idrotm, phi, phiRad, xpos, ypos, zpos);
       nr++;
-    } else {
+    } else { // TRD1 
       TString smName("SMOD"); // 12-oct-05
       if(i==5 && gn.Contains("110DEG")) {
         smName = "SM10";
index daacf23..39ef9d7 100644 (file)
@@ -11,7 +11,6 @@
 //*-- Author: Yves Schutz (SUBATECH)
 //*-- and   : Sahal Yacoob (LBL / UCT) 
 //          : Aleksei Pavlinov (WSU)     SHASHLYK
-//#include <assert.h>
 
 // --- ROOT system ---
 
@@ -75,11 +74,11 @@ class AliEMCALv0 : public AliEMCAL {
   TList  *GetShishKebabModules() {return fShishKebabModules;}
   AliEMCALShishKebabTrd1Module *GetShishKebabModule(const Int_t neta=0);
  private:
-  TList *fShishKebabModules; //! list of modules for twist geometries
+  TList *fShishKebabModules; //! list of modules
   
  protected:
 
-  ClassDef(AliEMCALv0,3)  // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees 
+  ClassDef(AliEMCALv0,3) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees 
     
     };
     
index 53a7314..3a08bd3 100644 (file)
@@ -60,7 +60,6 @@ AliEMCALv2::AliEMCALv2():AliEMCALv1(), fGeometry(0){
 AliEMCALv2::AliEMCALv2(const char *name, const char *title): AliEMCALv1(name,title) {
     // Standard Creator.
 
-  //    fGeant3 = (TGeant3*)gMC;
     fHits= new TClonesArray("AliEMCALHit",1000);
     gAlice->GetMCApp()->AddHitList(fHits);
 
@@ -268,8 +267,6 @@ void AliEMCALv2::FinishEvent()
 
 Double_t AliEMCALv2::GetDepositEnergy(int print)
 { // 23-mar-05 - for testing
-  cout<<"AliEMCALv2::GetDepositEnergy() : fHits "<<fHits<<endl; 
-  if(fHits == 0) return 0.;
   if(fHits == 0) return 0.;
   AliEMCALHit  *hit=0;
   Double_t de=0.;
@@ -278,6 +275,7 @@ Double_t AliEMCALv2::GetDepositEnergy(int print)
     de += hit->GetEnergy();
   }
   if(print>0) {
+    cout<<"AliEMCALv2::GetDepositEnergy() : fHits "<<fHits<<endl; 
     printf(" #hits %i de %f \n", fHits->GetEntries(), de);
     if(print>1) {
       printf(" #primary particles %i\n", gAlice->GetHeader()->GetNprimary()); 
@@ -539,37 +537,3 @@ void AliEMCALv2::TestIndexTransition(int pri, int idmax)
   }
   printf(" Good decoding %i : %i <- #cells \n", nGood, fGeometry->GetNCells());
 }
-
-/* try to draw hits
- gMC->Gsatt("*","seen",0);
- gMC->Gsatt("scm0","seen",5);
- g3->Gdrawc("alic", 1,   2.0, 12., -125, 0.3, 0.3);
-*/
-//void AliEMCALv2::Gdaxis(float x0, float y0, float z0, float <axsiz) {gdaxis_(x0,y0,z0,axsiz);}
-
-/*
-
-void AliEMCALv2::RemapTrackHitIDs(Int_t *map) {
-  // remap track index numbers for primary and parent indices
-  // (Called by AliStack::PurifyKine)
-  if (Hits()==0)
-    return;
-  TIter hit_it(Hits());
-  Int_t i_hit=0;
-  while (AliEMCALHit *hit=dynamic_cast<AliEMCALHit*>(hit_it()) ) {
-    if (map[hit->GetIparent()]==-99)
-      cout << "Remapping, found -99 for parent id " << hit->GetIparent() << ", " << map[hit->GetIparent()] << ", i_hit " << i_hit << endl;
-    hit->SetIparent(map[hit->GetIparent()]);
-    if (map[hit->GetPrimary()]==-99)
-      cout << "Remapping, found -99 for primary id " << hit->GetPrimary() << ", " << map[hit->GetPrimary()] << ", i_hit " << i_hit << endl;
-    hit->SetPrimary(map[hit->GetPrimary()]);
-    i_hit++;
-  }
-}
-
-void AliEMCALv2::FinishPrimary() {
-  fCurPrimary=-1;
-  fCurParent=-1;
-  fCurTrack=-1;
-}
-*/
index 7ffe7e9..1c220a4 100644 (file)
@@ -45,11 +45,6 @@ public:
   // Gives the version number 
   virtual Int_t  IsVersion(void) const {return 2;}
   virtual const TString Version(void)const {return TString("v2");}
-  //  virtual void RemapTrackHitIDs(Int_t *map);
-  //virtual void FinishPrimary();
-  // virtual void SetTimeCut(Float_t tc){ fTimeCut = tc;}
-  // virtual Float_t GetTimeCut(){return fTimeCut;}
-  // assignement operator requested by coding convention but not needed  
   AliEMCALv2 & operator = (const AliEMCALv1 & /*rvalue*/){
     Fatal("operator =", "not implemented") ;  
     return *this;}