]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - JETAN/AliJetDummyGeo.h
add chamber map/status maker
[u/mrichter/AliRoot.git] / JETAN / AliJetDummyGeo.h
index 2d29bddf7c22a2c57298f28a56073a854fdc7042..418846ae8bc9c8b4081b0d0560223ad0de898a3a 100644 (file)
@@ -7,14 +7,15 @@
 //
 // Temporarily added to define part of the EMCal geometry
 // necessary for the jet finder
+// Magali.Estienne@cern.ch
 //
-
 #include <TObject.h>
 #include <TArrayD.h>
 #include <TMath.h>
 #include <TVector3.h>
 
 class TGeoMatrix;
+class AliJetDummyShishKebabTrd1Module;
 
 class AliJetDummyGeo : public TObject 
 {
@@ -23,9 +24,9 @@ class AliJetDummyGeo : public TObject
   AliJetDummyGeo(const AliJetDummyGeo& geom);
   virtual ~AliJetDummyGeo();
   static AliJetDummyGeo* GetInstance() {return new AliJetDummyGeo();}
-  static AliJetDummyGeo* GetInstance(char* /*name*/, char* /*title*/)
+  static AliJetDummyGeo* GetInstance(const char* /*name*/, const char* /*title*/)
     {return new AliJetDummyGeo();}
-  Char_t* GetNameOfEMCALEnvelope() const {return "XEN1";}
+  const Char_t* GetNameOfEMCALEnvelope() const {return "XEN1";}
   Float_t GetEnvelop(Int_t index) const { return fEnvelop[index];}
   Float_t AngleFromEta(Float_t eta) const { 
     // returns theta in radians for a given pseudorapidity
@@ -36,26 +37,32 @@ class AliJetDummyGeo : public TObject
     // pseudorapidity and r=sqrt(x*x+y*y).
     return r/TMath::Tan(AngleFromEta(eta));
   }
-  Int_t   GetNCells()     {return fNCells;}
-  Float_t GetPhiModuleSize() const  {return fPhiModuleSize;}
-  Float_t GetEtaModuleSize() const  {return fEtaModuleSize;}
-  Float_t GetShellThickness() const {return fShellThickness;}
-  Int_t   GetNPhi() const {return fNPhi;}
-  Int_t   GetNumberOfSuperModules() const {return fNumberOfSuperModules;}
-  Float_t GetArm1EtaMin() {return fArm1EtaMin;}
-  Float_t GetArm1EtaMax() {return fArm1EtaMax;}
-  Float_t GetArm1PhiMin() {return fArm1PhiMin;}
-  Float_t GetArm1PhiMax() {return fArm1PhiMax;}
-  void    EtaPhiFromIndex(Int_t /*id*/, Float_t& /*eta*/, Float_t& /*phi*/);
-  void    GetGlobal(const Double_t *loc, Double_t *glob, int ind) const;
+  Int_t   GetNCells()               const  {return fNCells;}
+  Float_t GetPhiModuleSize()        const  {return fPhiModuleSize;}
+  Float_t GetEtaModuleSize()        const  {return fEtaModuleSize;}
+  Float_t GetShellThickness()       const  {return fShellThickness;}
+  Float_t GetSteelFrontThickness()  const  {return fSteelFrontThick;}
+  Float_t GetLongModuleSize()       const  {return fLongModuleSize;}
+  Float_t GetTrd1Angle()            const  {return fTrd1Angle;}
+  Float_t Get2Trd1Dx2()             const  {return f2Trd1Dx2;}
+  Int_t   GetNPhi()                 const  {return fNPhi;}
+  Int_t   GetNZ()                   const  {return fNZ ;}
+  Int_t   GetNumberOfSuperModules() const  {return fNumberOfSuperModules;}
+  Float_t GetArm1EtaMin()           const  {return fArm1EtaMin;}
+  Float_t GetArm1EtaMax()           const  {return fArm1EtaMax;}
+  Float_t GetArm1PhiMin()           const  {return fArm1PhiMin;}
+  Float_t GetArm1PhiMax()           const  {return fArm1PhiMax;}
+  Float_t GetIPDistance()           const  {return fIPDistance;} 
+  void    EtaPhiFromIndex(Int_t id, Float_t& eta, Float_t& phi) const;
+  void    GetGlobal(const Double_t *loc, Double_t *glob, Int_t ind) const;
   void    GetGlobal(Int_t absId, Double_t glob[3]) const;
   void    GetGlobal(Int_t absId, TVector3 &vglob) const;
   Bool_t  RelPosCellInSModule(Int_t absId, Double_t loc[3]) const;
   Bool_t  RelPosCellInSModule(Int_t absId, Double_t &xr, Double_t &yr, Double_t &zr) 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;
-  void    GetCellPhiEtaIndexInSModule(Int_t nSupMod, Int_t nModule, Int_t nIphi, Int_t nIeta, int &iphi, int &ieta) const;
-  void    GetModulePhiEtaIndexInSModule(Int_t nSupMod, Int_t nModule,  int &iphim, int &ietam) const;
+  void    GetCellPhiEtaIndexInSModule(Int_t nSupMod, Int_t nModule, Int_t nIphi, Int_t nIeta, Int_t &iphi, Int_t &ieta) const;
+  void    GetModulePhiEtaIndexInSModule(Int_t nSupMod, Int_t nModule,  Int_t &iphim, Int_t &ietam) 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   GetAbsCellIdFromCellIndexes(Int_t nSupMod, Int_t iphi, Int_t ieta) const;
@@ -68,20 +75,27 @@ class AliJetDummyGeo : public TObject
     if(nSupMod>=10) return fNPhi/2;
     else            return fNPhi;
   }
+
+  void    CreateListOfTrd1Modules();
+  TList  *GetShishKebabTrd1Modules() const {return fShishKebabTrd1Modules;}
+  AliJetDummyShishKebabTrd1Module *GetShishKebabModule(Int_t neta);
+
   Bool_t  GetPhiBoundariesOfSMGap(Int_t nPhiSec, Double_t &phiMin, Double_t &phiMax) const;
   void    GetTransformationForSM();
-  Float_t GetSampling() {return fSampling;}
-
+  Float_t GetSampling() const {return fSampling;}
+ private:
+  AliJetDummyGeo &operator=(const AliJetDummyGeo &det);
+  
  protected:
-  Float_t fArm1PhiMin;                         // Minimum angular position of EMCAL in Phi (degrees)
-  Float_t fArm1PhiMax;                 // Maximum angular position of EMCAL in Phi (degrees)
   Float_t fArm1EtaMin;                 // Minimum pseudorapidity position of EMCAL in Eta
   Float_t fArm1EtaMax;                         // Maximum pseudorapidity position of EMCAL in Eta
-  Int_t   fNumberOfSuperModules;
+  Float_t fArm1PhiMin;                         // Minimum angular position of EMCAL in Phi (degrees)
+  Float_t fArm1PhiMax;                 // Maximum angular position of EMCAL in Phi (degrees)
+  Int_t   fNumberOfSuperModules;        // Number of supermodules
   Float_t fSteelFrontThick;             // Thickness of the front stell face of the support box - 9-sep-04
+  Float_t fLateralSteelStrip;           // 13-may-05
   Float_t fEnvelop[3];                 // the GEANT TUB for the detector 
   Float_t fIPDistance;                  // Radial Distance of the inner surface of the EMCAL
-  Float_t fZLength;                    // Total length in z direction
   Float_t fPhiGapForSM;                 // Gap betweeen supermodules in phi direction
   Int_t   fNPhi;                       // Number of Towers in the PHI direction  
   Int_t   fNZ;                         // Number of Towers in the Z direction
@@ -89,6 +103,8 @@ class AliJetDummyGeo : public TObject
   Float_t fEtaModuleSize;               // Eta -> Y
   Int_t   fNPHIdiv;                     // number phi divizion of module
   Int_t   fNETAdiv;                     // number eta divizion of module
+  Float_t fPhiTileSize;                 // Size of phi tile
+  Float_t fEtaTileSize;                 // Size of eta tile
   Int_t   fNECLayers;                   // number of scintillator layers
   Float_t fECScintThick;                // cm, Thickness of the scintillators
   Float_t fECPbRadThickness;            // cm, Thickness of the Pb radiators
@@ -100,6 +116,7 @@ class AliJetDummyGeo : public TObject
   Float_t fLongModuleSize;              // Size of long module
   Float_t f2Trd1Dx2;                    // 2*dx2 for TRD1
   Float_t fShellThickness;             // Total thickness in (x,y) direction
+  Float_t fZLength;                    // Total length in z direction
   Float_t fEtaMaxOfTRD1;                // max eta in case of TRD1 geometry (see AliEMCALShishKebabTrd1Module)
   Float_t fParSM[3];                    // SM sizes as in GEANT (TRD1)
   TArrayD fPhiBoundariesOfSM;           // phi boundaries of SM in rad; size is fNumberOfSuperModules;
@@ -111,7 +128,8 @@ class AliJetDummyGeo : public TObject
   TArrayD fEtaCentersOfCells;           // [fNEta*fNETAdiv*fNPhi*fNPHIdiv], positive direction (eta>0); 
                                         // eta depend from phi position; 
   TArrayD fPhiCentersOfCells;           // [fNPhi*fNPHIdiv] from center of SM (-10. < phi < +10.)
-
+  TList  *fShishKebabTrd1Modules;       //  List of modules
+  Int_t   fDebug;                       //  Debug flag 
   ClassDef(AliJetDummyGeo,1)
 };