]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSEMCAGeometry.h
Coding convention obeyed
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEMCAGeometry.h
index bd339a799b8f8a620f6e370bbbc62474df700618..bc83eb5c49188c2767f073f9444499ce6ba0d141 100644 (file)
@@ -7,14 +7,17 @@
 
 //_________________________________________________________________________
 // Geometry class  for PHOS : EMCA (Electromagnetic Calirometer)
-//                  
-//*-- Author:   Yves Schutz (Subatech)
-//    Modified: Yuri Kharlov (IHEP, Protvino)
-//    15 September 2000
+// Its data members provide geometry parametrization of EMCA
+// which can be changed in the constructor only.
+// Author:   Yves Schutz (Subatech)
+// Modified: Yuri Kharlov (IHEP, Protvino)
+// 15 September 2000
 
-// --- ROOT system ---
+#include <assert.h> 
 
-#include "TObjArray.h"
+// --- ROOT system ---
+#include "TObject.h"
+class TObjArray ;
 
 // --- AliRoot header files ---
 
@@ -23,79 +26,164 @@ class AliPHOSEMCAGeometry : public TObject {
 public: 
 
            AliPHOSEMCAGeometry();
+           AliPHOSEMCAGeometry(const AliPHOSEMCAGeometry & cpv) {
+             // cpy ctor requested by Coding Convention but not yet needed
+             assert(0==1) ;
+           } 
   virtual ~AliPHOSEMCAGeometry(void) {}
 
-  Float_t    GetAirFilledBoxSize(Int_t index)     const { 
-    return fAirFilledBoxSize[index] ;}
-  Float_t    GetCrystalHolderThickness(void)      const { 
-    return fCrystalHolderThickness ; } 
-  Float_t    GetCrystalSize(Int_t index)          const { 
-    return fXtlSize[index] ; }
-  Float_t    GetCrystalSupportHeight(void)        const { 
-    return fCrystalSupportHeight ; } 
-  Float_t    GetCrystalWrapThickness(void)        const { 
-    return fCrystalWrapThickness;}
-  Float_t    GetGapBetweenCrystals(void)          const { 
-    return fGapBetweenCrystals ; }
+  AliPHOSEMCAGeometry & operator = (const AliPHOSEMCAGeometry  & rvalue) {
+    // assignement operator requested by coding convention but not needed
+    assert(0==1) ;
+    return *this ; 
+  }
+
+  Float_t * GetStripHalfSize()   {return fStripHalfSize ;}
+  Float_t   GetStripWallWidthOut() const {return fStripWallWidthOut ;}
+  Float_t * GetAirCellHalfSize() {return fAirCellHalfSize ;}
+  Float_t * GetWrappedHalfSize() {return fWrappedHalfSize ;}
+  Float_t   GetAirGapLed() const {return fAirGapLed ;}
+  Float_t * GetCrystalHalfSize() {return fCrystalHalfSize ;}
+  Float_t * GetSupportPlateHalfSize()   {return fSupportPlateHalfSize ;}
+  Float_t * GetSupportPlateInHalfSize() {return fSupportPlateInHalfSize ;}
+  Float_t   GetSupportPlateThickness(void) const { return fSupportPlateThickness ; }    
+
+  Float_t * GetPreampHalfSize() {return fPreampHalfSize ;}
+  Float_t * GetAPDHalfSize(void) {return fPinDiodeHalfSize ; }
+  Float_t * GetOuterThermoParams(void) {return  fOuterThermoParams ; }
+  Float_t * GetCoolerHalfSize(void) {return fCoolerHalfSize ;}
+  Float_t * GetAirGapHalfSize(void) {return fAirGapHalfSize; }
+  Float_t * GetInnerThermoHalfSize(void) {return  fInnerThermoHalfSize ; }
+  Float_t * GetAlCoverParams() {return fAlCoverParams ; }
+  Float_t * GetFiberGlassHalfSize() {return fFiberGlassHalfSize ; }
+  Float_t * GetWarmAlCoverHalfSize() {return fWarmAlCoverHalfSize ;}
+  Float_t * GetWarmThermoHalfSize() {return fWarmThermoHalfSize ;}
+  Float_t * GetTSupport1HalfSize() {return fTSupport1HalfSize ;}
+  Float_t * GetTSupport2HalfSize() {return fTSupport2HalfSize ;}
+  Float_t * GetTCables1HalfSize() {return fTCables1HalfSize ; }
+  Float_t * GetTCables2HalfSize() {return fTCables2HalfSize ; }
+  Float_t   GetTSupportDist() const {return fTSupportDist ; }
+  Float_t * GetFrameXHalfSize() {return fFrameXHalfSize ;}
+  Float_t * GetFrameZHalfSize() {return fFrameZHalfSize ;}
+  Float_t * GetFrameXPosition() {return fFrameXPosition ;}
+  Float_t * GetFrameZPosition() {return fFrameZPosition ;}
+  Float_t * GetFGupXHalfSize()  {return fFGupXHalfSize ; }
+  Float_t * GetFGupXPosition()  {return fFGupXPosition ; }
+  Float_t * GetFGupZHalfSize()  {return fFGupZHalfSize ; }
+  Float_t * GetFGupZPosition()  {return fFGupZPosition ; }
+  Float_t * GetFGlowXHalfSize()  {return fFGlowXHalfSize ; }
+  Float_t * GetFGlowXPosition()  {return fFGlowXPosition ; }
+  Float_t * GetFGlowZHalfSize()  {return fFGlowZHalfSize ; }
+  Float_t * GetFGlowZPosition()  {return fFGlowZPosition ; }
+  Float_t * GetFEEAirHalfSize()  {return fFEEAirHalfSize ; }
+  Float_t * GetFEEAirPosition()  {return fFEEAirPosition ; }
+  Float_t * GetEMCParams() {return fEMCParams ;}
+
   Float_t    GetIPtoCrystalSurface(void)          const { 
     return fIPtoCrystalSurface ; }
   Float_t    GetIPtoOuterCoverDistance(void)      const { 
     return fIPtoOuterCoverDistance ; }
-  Float_t    GetLowerThermoPlateThickness(void)   const { 
-    return fLowerThermoPlateThickness ; }
-  Float_t    GetLowerTextolitPlateThickness(void) const { 
-    return fLowerTextolitPlateThickness ; }
-  Float_t    GetModuleBoxThickness(void)          const { 
-    return fModuleBoxThickness ; }
-  Int_t      GetNPhi(void)                        const { 
-    return fNPhi ; }
-  Int_t      GetNZ(void)                          const { 
-    return fNZ ; }
-  Float_t    GetOuterBoxSize(Int_t index)         const { 
-    return fOuterBoxSize[index] ;    }
-  Float_t    GetOuterBoxThickness(Int_t index)    const { 
-    return fOuterBoxThickness[index] ; } 
-  Float_t    GetPinDiodeSize(Int_t index)         const { 
-    return fPinDiodeSize[index] ; }
-  Float_t    GetSecondUpperPlateThickness(void)   const { 
-    return fSecondUpperPlateThickness ; }
-  Float_t    GetSupportPlateThickness(void)       const { 
-    return fSupportPlateThickness ; }    
-  Float_t    GetTextolitBoxSize(Int_t index)      const { 
-    return fTextolitBoxSize[index] ; }
-  Float_t    GetTextolitBoxThickness(Int_t index) const { 
-    return fTextolitBoxThickness[index]; } 
-  Float_t    GetUpperPlateThickness(void)         const { 
-    return fUpperPlateThickness ; }
-  Float_t    GetUpperCoolingPlateThickness(void)  const { 
-    return fUpperCoolingPlateThickness ; }
+  Float_t    GetCrystalSize(Int_t index)  const {return 2.*fCrystalHalfSize[index] ; }
+
+  
+  Int_t     GetNCellsInStrip() const { return fNCellsInStrip;}
+  Int_t     GetNStripX()       const { return fNStripX ; }
+  Int_t     GetNStripZ()       const { return fNStripZ ; }
+  Int_t     GetNTSuppots()     const { return fNTSupports; }
+  Int_t     GetNPhi(void)      const { return fNPhi ; }
+  Int_t     GetNZ(void)        const { return fNZ ; }
+
  
 private:
 
-  Float_t fAirFilledBoxSize[3] ;          // Air filled box containing one module
-  Float_t fAirThickness[3] ;              // Space filled with air between the module box and the Textolit box
-  Float_t fCrystalSupportHeight ;         // Height of the support of the crystal    
-  Float_t fCrystalWrapThickness ;         // Thickness of Tyvek wrapping the crystal
-  Float_t fCrystalHolderThickness ;       // Titanium holder of the crystal
-  Float_t fGapBetweenCrystals ;           // Total Gap between two adjacent crystals 
+  Float_t fStripHalfSize[3]   ;
+  Float_t fAirCellHalfSize[3] ;
+  Float_t fWrappedHalfSize[3] ;
+  Float_t fSupportPlateHalfSize[3] ;
+  Float_t fSupportPlateInHalfSize[3] ;
+  Float_t fCrystalHalfSize[3] ;
+  Float_t fAirGapLed ;
+  Float_t fStripWallWidthOut ; // Side to another strip  
+  Float_t fStripWallWidthIn ; 
+  Float_t fTyvecThickness ; 
+  Float_t fTSupport1HalfSize[3] ;
+  Float_t fTSupport2HalfSize[3] ;
+  Float_t fPreampHalfSize[3] ;
+  Float_t fPinDiodeHalfSize[3] ;              // Size of the PIN Diode 
+
+  Float_t fOuterThermoParams[4] ; 
+  Float_t fCoolerHalfSize[3] ; 
+  Float_t fAirGapHalfSize[3] ;
+  Float_t fInnerThermoHalfSize[3] ;
+  Float_t fAlCoverParams[4] ;
+  Float_t fFiberGlassHalfSize[3] ;
+
+
+  Float_t fInnerThermoWidthX ;
+  Float_t fInnerThermoWidthY ;
+  Float_t fInnerThermoWidthZ ;
+  Float_t fAirGapWidthX ;
+  Float_t fAirGapWidthY ;
+  Float_t fAirGapWidthZ ;
+  Float_t fCoolerWidthX ;
+  Float_t fCoolerWidthY ;
+  Float_t fCoolerWidthZ ;
+  Float_t fAlCoverThickness ;
+  Float_t fOuterThermoWidthXUp ;
+  Float_t fOuterThermoWidthXLow;
+  Float_t fOuterThermoWidthY ;
+  Float_t fOuterThermoWidthZ ;
+  Float_t fAlFrontCoverX  ;
+  Float_t fAlFrontCoverZ  ; 
+  Float_t fFiberGlassSup2X ;
+  Float_t fFiberGlassSup1X ; 
+  Float_t fFrameHeight ; 
+  Float_t fFrameThickness ; 
+  Float_t fAirSpaceFeeX ;
+  Float_t fAirSpaceFeeZ ;
+  Float_t fAirSpaceFeeY ;
+  Float_t fTCables2HalfSize[3] ; 
+  Float_t fTCables1HalfSize[3] ; 
+  Float_t fWarmUpperThickness ;
+  Float_t fWarmBottomThickness ;
+  Float_t fWarmAlCoverWidthX ;
+  Float_t fWarmAlCoverWidthY ;
+  Float_t fWarmAlCoverWidthZ ;
+  Float_t fWarmAlCoverHalfSize[3] ;
+  Float_t fWarmThermoHalfSize[3] ;
+  Float_t fFiberGlassSup1Y ;
+  Float_t fFiberGlassSup2Y ;
+  Float_t fTSupportDist ;
+  Float_t fTSupport1Thickness ;
+  Float_t fTSupport2Thickness ;
+  Float_t fTSupport1Width ;
+  Float_t fTSupport2Width ;
+  Float_t fFrameXHalfSize[3] ;
+  Float_t fFrameZHalfSize[3] ;
+  Float_t fFrameXPosition[3] ;
+  Float_t fFrameZPosition[3] ;
+  Float_t fFGupXHalfSize[3] ;
+  Float_t fFGupXPosition[3] ;
+  Float_t fFGupZHalfSize[3] ;
+  Float_t fFGupZPosition[3] ;
+  Float_t fFGlowXHalfSize[3] ;
+  Float_t fFGlowXPosition[3] ;
+  Float_t fFGlowZHalfSize[3] ;
+  Float_t fFGlowZPosition[3] ;
+  Float_t fFEEAirHalfSize[3] ;
+  Float_t fFEEAirPosition[3] ;
+  Float_t fEMCParams[4] ;
   Float_t fIPtoOuterCoverDistance ;       // Distances from interaction point to outer cover 
   Float_t fIPtoCrystalSurface ;           // Distances from interaction point to Xtal surface
-  Float_t fModuleBoxThickness ;           // Thickness of the thermo insulating box containing one crystals module 
-  Float_t fLowerTextolitPlateThickness ;  // Thickness of lower textolit plate
-  Float_t fLowerThermoPlateThickness ;    // Thickness of lower thermo insulating plate
-  Int_t   fNPhi ;                         // Number of crystal units in X (phi) direction
-  Int_t   fNZ ;                           // Number of crystal units in Z direction
-  Float_t fOuterBoxSize[3] ;              // Size of the outer  thermo insulating foam box
-  Float_t fOuterBoxThickness[3] ;         // Thickness of the outer thermo insulating foam box
-  Float_t fPinDiodeSize[3] ;              // Size of the PIN Diode 
-  TObjArray *  fRotMatrixArray ;          // Liste of rotation matrices (one per phos module)
-  Float_t fSecondUpperPlateThickness ;    // Thickness of  upper polystyrene foam plate
-  Float_t fSupportPlateThickness ;        // Thickness of the Aluminium support plate  
-  Float_t fUpperCoolingPlateThickness ;   // Thickness of the upper cooling plate 
-  Float_t fUpperPlateThickness ;          // Thickness of the uper thermo insulating foam plate 
-  Float_t fTextolitBoxSize[3] ;           // Size of the Textolit box inside the insulating foam box
-  Float_t fTextolitBoxThickness[3] ;      // Thicknesses of th Textolit box
-  Float_t fXtlSize[3] ;                   // PWO4 crystal dimensions
+
+  Float_t fSupportPlateThickness ;        // Thickness of the Aluminium support plate for Strip   
+
+  Int_t  fNCellsInStrip ;
+  Int_t  fNStripX ;
+  Int_t  fNStripZ ;
+  Int_t  fNTSupports ;
+  Int_t  fNPhi ;                         // Number of crystal units in X (phi) direction
+  Int_t  fNZ ;                           // Number of crystal units in Z direction
 
   ClassDef(AliPHOSEMCAGeometry,1)         // EMCA geometry class