]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSEMCAGeometry.cxx
Macro for checking the serial & bin number of the mounted manus
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEMCAGeometry.cxx
index fc8ccfaaf8d7f65060166d71b181c55ba4b18178..94ff4436ab2edd26000d7464edbd254b12bbe038 100644 (file)
 // Author   : Yves Schutz (SUBATECH)
 // Modified : Yuri Kharlov (IHEP, Protvino)
 // 13 September 2000
+// Modified : Dmitri Peressounko (RRC "Kurchatov Institute")
+// 6 August 2001
 
 // --- AliRoot header files ---
 
 #include "AliPHOSEMCAGeometry.h"
 
-ClassImp(AliPHOSEMCAGeometry) ;
+ClassImp(AliPHOSEMCAGeometry)
 
 //____________________________________________________________________________
-AliPHOSEMCAGeometry::AliPHOSEMCAGeometry()
+AliPHOSEMCAGeometry::AliPHOSEMCAGeometry():
+                     fAirGapLed(0.f),
+                     fStripWallWidthOut(0.f),
+                     fStripWallWidthIn(0.f),
+                     fTyvecThickness(0.f),
+                     fInnerThermoWidthX(0.f),
+                     fInnerThermoWidthY(0.f),
+                     fInnerThermoWidthZ(0.f),
+                     fAirGapWidthX(0.f),
+                     fAirGapWidthY(0.f),
+                     fAirGapWidthZ(0.f),
+                     fCoolerWidthX(0.f),
+                     fCoolerWidthY(0.f),
+                     fCoolerWidthZ(0.f),
+                     fAlCoverThickness(0.f),
+                     fOuterThermoWidthXUp(0.f),
+                     fOuterThermoWidthXLow(0.f),
+                     fOuterThermoWidthY(0.f),
+                     fOuterThermoWidthZ(0.f),
+                     fAlFrontCoverX(0.f),
+                     fAlFrontCoverZ(0.f),
+                     fFiberGlassSup2X(0.f),
+                     fFiberGlassSup1X(0.f),
+                     fFrameHeight(0.f),
+                     fFrameThickness(0.f),
+                     fAirSpaceFeeX(0.f),
+                     fAirSpaceFeeZ(0.f),
+                     fAirSpaceFeeY(0.f),
+                     fWarmUpperThickness(0.f),
+                     fWarmBottomThickness(0.f),
+                     fWarmAlCoverWidthX(0.f),
+                     fWarmAlCoverWidthY(0.f),
+                     fWarmAlCoverWidthZ(0.f),
+                     fFiberGlassSup1Y(0.f),
+                     fFiberGlassSup2Y(0.f),
+                     fTSupportDist(0.f),
+                     fTSupport1Thickness(0.f),
+                     fTSupport2Thickness(0.f),
+                     fTSupport1Width(0.f),
+                     fTSupport2Width(0.f),
+                     fIPtoOuterCoverDistance(0.f),
+                     fIPtoCrystalSurface(0.f),
+                     fSupportPlateThickness(0.f),
+                     fNCellsXInStrip(0),
+                     fNCellsZInStrip(0),
+                     fNStripX(0),
+                     fNStripZ(0),
+                     fNTSupports(0),
+                     fNPhi(0),
+                     fNZ(0)
 {
 
+
   // Initializes the EMC parameters
+  // Coordinate system chosen: x across beam, z along beam, y out of beam.
+  // Reference point for all volumes incide module is 
+  // center of module in x,z on the upper surface of support beam
 
-  fNPhi       = 64 ; 
-  fNZ         = 64 ; 
+  //Distance from IP to surface of the crystals
+  fIPtoCrystalSurface     = 460.0 ;    
 
-  fXtlSize[0] =  2.2 ;
-  fXtlSize[1] = 22.0 ;
-  fXtlSize[2] =  2.2 ;
 
-  // all these numbers coming next are subject to changes
+  //CRYSTAL
+
+  fCrystalHalfSize[0] =  2.2 /2 ;  //Half-Sizes of crystall
+  fCrystalHalfSize[1] = 18.0 /2 ;
+  fCrystalHalfSize[2] =  2.2 /2 ;
+
+  //APD + preamplifier
 
-  fOuterBoxThickness[0] = 2.5 ;
-  fOuterBoxThickness[1] = 5.0 ;      
-  fOuterBoxThickness[2] = 5.0 ;
-  
-  fUpperPlateThickness  = 4.0 ;
-  
-  fSecondUpperPlateThickness = 5.0 ; 
-  
-  fCrystalSupportHeight   = 6.95 ; 
-  fCrystalWrapThickness   = 0.01 ;
-  fCrystalHolderThickness = 0.005 ;
-  fModuleBoxThickness     = 2.0 ; 
-  fIPtoOuterCoverDistance = 447.0 ;      
-  fIPtoCrystalSurface     = 460.0 ;  
-  
   //fPinDiodeSize[0] = 1.71 ;   //Values of ame PIN diode  
-  //fPinDiodeSize[1] = 0.0280 ; // 0.0280 is the depth of active layer
+  //fPinDiodeSize[1] = 0.0280 ; // OHO 0.0280 is the depth of active layer
   //fPinDiodeSize[2] = 1.61 ;    
  
-  fPinDiodeSize[0] = 0.5000 ;    // APD 5 mm side
-  //fPinDiodeSize[1] = 0.0200 ;  // APD bulk thickness
-  fPinDiodeSize[1] = 0.0100 ;    // APD bulk thickness
-  //According to Y. M. (cms) is it 50 micrometer I use 100 micrometers
-  fPinDiodeSize[2] = 0.5000 ;    // APD 5 mm side 
-  fUpperCoolingPlateThickness   = 0.06 ; 
-  fSupportPlateThickness        = 10.0 ;
-  fLowerThermoPlateThickness    =  3.0 ; 
-  fLowerTextolitPlateThickness  =  1.0 ;
-  fGapBetweenCrystals           = 0.03 ;
-  
-  fTextolitBoxThickness[0] = 1.5 ;  
-  fTextolitBoxThickness[1] = 0.0 ;   
-  fTextolitBoxThickness[2] = 3.0 ; 
-  
-  fAirThickness[0] =  0.4   ;
-  fAirThickness[1] = 20.5175 ;  
-  fAirThickness[2] =  2.48   ;  
+  fPinDiodeHalfSize[0] = 0.5000 /2 ;    // APD 5 mm side
+  fPinDiodeHalfSize[1] = 0.0100 /2 ;    // APD bulk thickness
+  fPinDiodeHalfSize[2] = 0.5000 /2 ;    // APD 5 mm side 
+
+  fPreampHalfSize[0] = 1.5 / 2 ;       // Preamplifier
+  fPreampHalfSize[1] = 0.5 / 2 ;
+  fPreampHalfSize[2] = 1.5 / 2 ;
+
+  //Strip unit (8x2 crystals)
+
+  fNCellsXInStrip =  8 ;       //Number of crystals in strip unit along x-axis
+  fNCellsZInStrip =  2 ;       //Number of crystals in strip unit along z-axis
+  fNStripX        =  8 ;       //Number of strip units across along x-axis
+  fNStripZ        = 28 ;       //Number of strips along z-axis
+
+  fStripWallWidthOut = 0.01 ;  // Side to another strip  
+  fStripWallWidthIn  = 0.02 ;  // Side betveen crystals in one strip
+
+  fTyvecThickness = 0.0175 ;     //Thickness of the tyvec
+
+  fAirGapLed = 1.5 - 2 * fPreampHalfSize[1] - 2 * fPinDiodeHalfSize[1] ; // Air gap before crystalls for LED system
+                                           // Note, that Cell in Strip 1.5 longer then crystall
+
+  //---Now calculate thechnical sizes for GEANT implementation
+
+  fWrappedHalfSize[0] = (2*fTyvecThickness + 2*fCrystalHalfSize[0])/2 ;   //This will be size of crystall
+  fWrappedHalfSize[1] = fCrystalHalfSize[1] ;                             //wrapped into tyvec
+  fWrappedHalfSize[2] = (2*fTyvecThickness + 2*fCrystalHalfSize[2])/2 ;   //
+
+  fAirCellHalfSize[0] = fWrappedHalfSize[0] + 0.01;
+  fAirCellHalfSize[1] = (fAirGapLed + 2*fPreampHalfSize[1] + 
+                       2*fPinDiodeHalfSize[1] + 2*fWrappedHalfSize[1])/2 ;  //in strip
+  fAirCellHalfSize[2] = fWrappedHalfSize[2] + 0.01;
+
+  //  fSupportPlateHalfSize[0] = ( (fNCellsXInStrip-1)*fStripWallWidthIn + 2*fStripWallWidthOut + 
+  //                          fNCellsXInStrip * (2*fTyvecThickness + 2*fCrystalHalfSize[0]) )/2 ;
+  fSupportPlateHalfSize[0] = 18.04  /2 ;
+  fSupportPlateHalfSize[1] =   6.0  /2 ;
+//  fSupportPlateHalfSize[2] = ( (fNCellsZInStrip-1)*fStripWallWidthIn + 2*fStripWallWidthOut +
+//                            fNCellsZInStrip * (2*fTyvecThickness + 2*fCrystalHalfSize[2]) )/2;
+  fSupportPlateHalfSize[2] =  4.51  /2 ;
+  fSupportPlateThickness = 0.3 ;  
+  fSupportPlateInHalfSize[0] = fSupportPlateHalfSize[0] ;                         //Half-sizes of the air
+  fSupportPlateInHalfSize[1] = fSupportPlateHalfSize[1]-fSupportPlateThickness ;  //box in the support plate
+  fSupportPlateInHalfSize[2] = fSupportPlateHalfSize[2]-fSupportPlateThickness/2 ;
+
+  fStripHalfSize[0]= fSupportPlateHalfSize[0] ;  
+  fStripHalfSize[1]= ( 2*fSupportPlateHalfSize[1] + 2*fAirCellHalfSize[1] )/2;      
+  fStripHalfSize[2]= fSupportPlateHalfSize[2] ;
+
+  // ------- Inner hermoinsulation ---------------
+  fInnerThermoWidthX = 2.0 ;         // Width of the innerthermoinsulation across the beam
+  fInnerThermoWidthY = 2.0 ;         // Width of the upper cover of innerthermoinsulation 
+  fInnerThermoWidthZ = 2.0 ;         // Width of the innerthermoinsulation along the beam
+
+  fInnerThermoHalfSize[0] = (2 * fStripHalfSize[0] * fNStripX + 2 * fInnerThermoWidthX ) /2 ;
+  fInnerThermoHalfSize[1] = (2 * fStripHalfSize[1] + fInnerThermoWidthY ) /2 ; 
+  fInnerThermoHalfSize[2] = (2 * fStripHalfSize[2] * fNStripZ + 2 * fInnerThermoWidthZ ) /2 ;
+
+  // ------- Air gap between inner thermoinsulation and passive coller ---------
+
+  fAirGapWidthX = 0.2 ;         // Width of the air gap across the beam
+  fAirGapWidthY = 0.2 ;         // Width of the upper air gap
+  fAirGapWidthZ = 0.2 ;         // Width of the air gap along the beam
+
+  fAirGapHalfSize[0] = (2 * fInnerThermoHalfSize[0] + 2 * fAirGapWidthX ) /2 ;
+  fAirGapHalfSize[1] = (2 * fInnerThermoHalfSize[1] +     fAirGapWidthY ) /2 ; 
+  fAirGapHalfSize[2] = (2 * fInnerThermoHalfSize[2] + 2 * fAirGapWidthZ ) /2 ;
   
-  Float_t xtalModulePhiSize =  fNPhi * ( fXtlSize[0] + 2 * fGapBetweenCrystals ) ; 
-  Float_t xtalModuleZSize   =  fNZ   * ( fXtlSize[2] + 2 * fGapBetweenCrystals ) ;
+  // ------- Passive Cooler ------------------------
+
+  fCoolerWidthX = 2.0 ;         // Width of the passive coller across the beam 
+  fCoolerWidthY = 0.3 ;         // Width of the upper cover of cooler
+  fCoolerWidthZ = 2.0 ;         // Width of the passive cooler along the beam
+
+  fCoolerHalfSize[0] = (2 * fAirGapHalfSize[0] + 2 * fCoolerWidthX ) /2 ; 
+  fCoolerHalfSize[1] = (2 * fAirGapHalfSize[1] +     fCoolerWidthY ) /2 ; 
+  fCoolerHalfSize[2] = (2 * fAirGapHalfSize[2] + 2 * fCoolerWidthZ ) /2 ; 
+
+  // ------- Outer thermoinsulation and Al cover -------------------------------
   
-  // The next dimensions are calculated from the above parameters
+  fAlCoverThickness = 0.1 ;   //Thickness of the Al cover of the module  
+
+  fOuterThermoWidthXUp  = 156.0 - fAlCoverThickness ; 
+                                  //width of the upper surface of the PHOS module accross the beam 
+  fOuterThermoWidthY    = 6.0 ;   // with of the upper cover of outer thermoinsulation
+  fOuterThermoWidthZ    = 6.0 ;   //width of the thermoinsulation along the beam 
+
+  fAlFrontCoverX = 6.0 ;   //Width of Al strip around fiberglass window: across
+  fAlFrontCoverZ = 6.0 ;   //and along the beam
+
+
+  // Calculate distance from IP to upper cover
+  fIPtoOuterCoverDistance = fIPtoCrystalSurface - fAirGapLed - fInnerThermoWidthY - fAirGapWidthY - 
+                            fCoolerWidthY - fOuterThermoWidthY - fAlCoverThickness ; 
+
+  Float_t tanA = fOuterThermoWidthXUp / (2.*fIPtoOuterCoverDistance) ; 
+                  // tan(a) where A = angle between IP to center and IP to side across beam
+
+  fOuterThermoWidthXLow = fOuterThermoWidthXUp + 
+                          2 * (2* fCoolerHalfSize[1] + fOuterThermoWidthY) * tanA  
+                          - fAlCoverThickness ; 
+                          //width of the lower surface of the COOL section accross the beam 
+
+
+  fOuterThermoParams[0] = fOuterThermoWidthXUp / 2 ;   // half-length along x at the z surface positioned at -DZ; 
+  fOuterThermoParams[1] = fOuterThermoWidthXLow/ 2 ;   // half-length along x at the z surface positioned at +DZ; 
+  fOuterThermoParams[2] = ( 2 * fCoolerHalfSize[2] + 2 * fOuterThermoWidthZ ) / 2 ;
+                                                       // `half-length along the y-axis' in out case this is z axis 
+  fOuterThermoParams[3] = ( 2* fCoolerHalfSize[1] + fOuterThermoWidthY) /2 ;    
+                                                       // `half-length along the z-axis' in our case this is y axis 
+
+  fAlCoverParams[0] = fOuterThermoParams[0] + fAlCoverThickness ;
+  fAlCoverParams[1] = fOuterThermoParams[1] + fAlCoverThickness ;
+  fAlCoverParams[2] = fOuterThermoParams[2] + fAlCoverThickness ;
+  fAlCoverParams[3] = fOuterThermoParams[3] + fAlCoverThickness /2 ;
+
+
+  fFiberGlassHalfSize[0] = fAlCoverParams[0] - fAlFrontCoverX  ;
+  fFiberGlassHalfSize[1] = fAlCoverParams[2] - fAlFrontCoverZ  ; //Note, here other ref. system
+  fFiberGlassHalfSize[2] = fAlCoverThickness / 2 ;
+
+
+  //============Now warm section======================
+  //Al Cover 
+  fWarmAlCoverWidthX = 2 * fAlCoverParams[1] ;  //Across beam
+  fWarmAlCoverWidthY = 159.0 ;                  //along beam
+
+  //T-support
+  fTSupport1Thickness = 3.5 ; 
+  fTSupport2Thickness = 5.0 ; 
+  fTSupport1Width =  10.6 ;
+  fTSupport2Width = 3.1 ;
+  fNTSupports = fNStripX + 1 ;
+  fTSupportDist = 7.48 ;
+
+  //Air space for FEE
+  fAirSpaceFeeX = 148.6 ;   //Across beam
+  fAirSpaceFeeY = 135.0 ;   //along beam
+  fAirSpaceFeeZ =  19.0 ;   //out of beam
+
+  //thermoinsulation
+  fWarmBottomThickness = 4.0 ;
+  fWarmUpperThickness  = 4.0 ;
+
+  //Frame 
+  fFrameThickness = 5.0 ;
+  fFrameHeight    = 15.0 ;
+
+  //Fiberglass support
+  fFiberGlassSup1X = 6.0 ;
+  fFiberGlassSup1Y = 4.0 + fWarmUpperThickness ; 
+
+  fFiberGlassSup2X = 3.0 ;
+  fFiberGlassSup2Y = fFrameHeight ;
+
+  //Now calculate Half-sizes
+
+  fWarmAlCoverWidthZ = fAirSpaceFeeZ + fWarmBottomThickness + fWarmUpperThickness +  
+                       fTSupport1Thickness + fTSupport2Thickness ;
+
+
+  fWarmAlCoverHalfSize[0] = fWarmAlCoverWidthX / 2 ;
+  fWarmAlCoverHalfSize[1] = fWarmAlCoverWidthY / 2 ;
+  fWarmAlCoverHalfSize[2] = fWarmAlCoverWidthZ / 2 ;
+
   
-  fOuterBoxSize[0] =  xtalModulePhiSize + 2 * ( fAirThickness[0] + fModuleBoxThickness
-                                               + fTextolitBoxThickness[0] + fOuterBoxThickness[0] ) ; 
-  fOuterBoxSize[1] = ( fXtlSize[1] + fCrystalSupportHeight + fCrystalWrapThickness + fCrystalHolderThickness )
-    + 2 * (fAirThickness[1] +  fModuleBoxThickness + fTextolitBoxThickness[1] + fOuterBoxThickness[1] ) ;
-  fOuterBoxSize[2] =  xtalModuleZSize   + 2 * ( fAirThickness[2] + fModuleBoxThickness 
-                                               + fTextolitBoxThickness[2] + fOuterBoxThickness[2] ) ; 
+  fWarmThermoHalfSize[0] = fWarmAlCoverHalfSize[0] - fAlCoverThickness ; 
+  fWarmThermoHalfSize[1] = fWarmAlCoverHalfSize[1] - fAlCoverThickness ; 
+  fWarmThermoHalfSize[2] = fWarmAlCoverHalfSize[2] - fAlCoverThickness /2 ; 
+
+
+  //T-support
+  fTSupport1HalfSize[0] =  fTSupport1Width /2 ;   //Across beam
+  fTSupport1HalfSize[1] =  (fAirSpaceFeeY + 2*fFiberGlassSup1X) /2 ;    //along beam
+  fTSupport1HalfSize[2] =  fTSupport1Thickness  /2;    //out of beam
+
+  fTSupport2HalfSize[0] = fTSupport2Width /2;               //Across beam  
+  fTSupport2HalfSize[1] = fTSupport1HalfSize[1] ; //along beam
+  fTSupport2HalfSize[2] = fTSupport2Thickness /2; //out of beam
+
+  //cables
+  fTCables1HalfSize[0] = (2*fTSupport1HalfSize[0]*fNTSupports + (fNTSupports-1)* fTSupportDist) / 2 ; //Across beam
+  fTCables1HalfSize[1] = fTSupport1HalfSize[1] ;    //along beam
+  fTCables1HalfSize[2] = fTSupport1HalfSize[2] ;    //out of beam
+
+  fTCables2HalfSize[0] = fTCables1HalfSize[0]  ; //Across beam
+  fTCables2HalfSize[1] = fTSupport2HalfSize[1] ; //along beam
+  fTCables2HalfSize[2] = fTSupport2HalfSize[2] ; //out of beam
+
+  //frame: we define two frames along beam ...Z and across beam ...X
+  fFrameXHalfSize[0] = (fAirSpaceFeeX + 2 * fFiberGlassSup2X + 2* fFrameThickness) /2 ;
+  fFrameXHalfSize[1] = fFrameThickness /2 ;
+  fFrameXHalfSize[2] = fFrameHeight    /2 ;
+
+  fFrameXPosition[0] = 0 ;
+  fFrameXPosition[1] = fAirSpaceFeeY /2 + fFiberGlassSup2X + fFrameXHalfSize[1] ;
+  fFrameXPosition[2] = fWarmThermoHalfSize[2] - fFrameHeight/ 2 - fWarmBottomThickness ;
+    
+  fFrameZHalfSize[0] = fFrameThickness /2 ;
+  fFrameZHalfSize[1] = (fAirSpaceFeeY + 2 * fFiberGlassSup2X) /2 ;
+  fFrameZHalfSize[2] = fFrameHeight    /2 ;
+
+  fFrameZPosition[0] = fAirSpaceFeeX /2 + fFiberGlassSup2X + fFrameZHalfSize[0] ;
+  fFrameZPosition[1] = 0 ;
+  fFrameZPosition[2] = fWarmThermoHalfSize[2] - fFrameHeight/ 2 - fWarmBottomThickness ;
+
+  //Fiberglass support define 4 fiber glass supports 2 along Z  and 2 along X
   
-  fTextolitBoxSize[0]  = fOuterBoxSize[0] - 2 * fOuterBoxThickness[0] ;
-  fTextolitBoxSize[1]  = fOuterBoxSize[1] -  fOuterBoxThickness[1] - fUpperPlateThickness ;
-  fTextolitBoxSize[2]  = fOuterBoxSize[2] - 2 * fOuterBoxThickness[2] ;
+  fFGupXHalfSize[0] = fFrameXHalfSize[0] ;
+  fFGupXHalfSize[1] = fFiberGlassSup1X /2 ;
+  fFGupXHalfSize[2] = fFiberGlassSup1Y /2;
+
+  fFGupXPosition[0] = 0 ;
+  fFGupXPosition[1] = fAirSpaceFeeY /2 + fFGupXHalfSize[1] ;
+  fFGupXPosition[2] = fWarmThermoHalfSize[2] - fFrameHeight - fWarmBottomThickness - fFGupXHalfSize[2] ; 
+
+  fFGupZHalfSize[0] = fFiberGlassSup1X /2 ;
+  fFGupZHalfSize[1] = fAirSpaceFeeY /2 ;
+  fFGupZHalfSize[2] = fFiberGlassSup1Y /2;
+
+  fFGupZPosition[0] = fAirSpaceFeeX /2 + fFGupZHalfSize[0] ;
+  fFGupZPosition[1] = 0 ;
+  fFGupZPosition[2] = fWarmThermoHalfSize[2] - fFrameHeight - fWarmBottomThickness - fFGupXHalfSize[2] ; 
+
+  fFGlowXHalfSize[0] = fFrameXHalfSize[0] - 2*fFrameZHalfSize[0] ;
+  fFGlowXHalfSize[1] = fFiberGlassSup2X /2 ;
+  fFGlowXHalfSize[2] = fFrameXHalfSize[2] ;
+
+  fFGlowXPosition[0] = 0 ;
+  fFGlowXPosition[1] = fAirSpaceFeeY /2 + fFGlowXHalfSize[1] ;
+  fFGlowXPosition[2] = fWarmThermoHalfSize[2] - fWarmBottomThickness - fFGlowXHalfSize[2] ; 
+
+  fFGlowZHalfSize[0] = fFiberGlassSup2X /2 ;
+  fFGlowZHalfSize[1] = fAirSpaceFeeY /2 ;
+  fFGlowZHalfSize[2] = fFrameZHalfSize[2] ;
+
+  fFGlowZPosition[0] = fAirSpaceFeeX /2 + fFGlowZHalfSize[0] ;
+  fFGlowZPosition[1] = 0 ;
+  fFGlowZPosition[2] = fWarmThermoHalfSize[2] - fWarmBottomThickness - fFGlowXHalfSize[2] ; 
+
+
+  // --- Air Gap for FEE ----
+
+  fFEEAirHalfSize[0] =  fAirSpaceFeeX /2 ;
+  fFEEAirHalfSize[1] =  fAirSpaceFeeY /2;
+  fFEEAirHalfSize[2] =  fAirSpaceFeeZ /2;
+
+  fFEEAirPosition[0] = 0 ;
+  fFEEAirPosition[1] = 0 ;
+  fFEEAirPosition[2] = fWarmThermoHalfSize[2] - fWarmBottomThickness - fFEEAirHalfSize[2] ;
+
+  // --- Calculate the oveol dimentions of the EMC module
   
-  fAirFilledBoxSize[0] =  fTextolitBoxSize[0] - 2 * fTextolitBoxThickness[0] ; 
-  fAirFilledBoxSize[1] =  fTextolitBoxSize[1] - fSecondUpperPlateThickness ; 
-  fAirFilledBoxSize[2] =  fTextolitBoxSize[2] - 2 * fTextolitBoxThickness[2] ; 
-  fRotMatrixArray = 0; 
+  fEMCParams[3] = fAlCoverParams[3] + fWarmAlCoverHalfSize[2] ; //Size out of beam
+  fEMCParams[0] = fAlCoverParams[0] ; //Upper size across the beam
+  fEMCParams[1] = (fAlCoverParams[1] - fAlCoverParams[0])*fEMCParams[3]/fAlCoverParams[3] 
+                 + fAlCoverParams[0]  ; //Lower size across the beam
+  fEMCParams[2] = fWarmAlCoverHalfSize[1] ;                     // Size along the beam
+
+  fNPhi = fNStripX * fNCellsXInStrip ;    //number of crystals across the beam
+  fNZ   = fNStripZ * fNCellsZInStrip ;    //number of crystals along the beam
 }
-//____________________________________________________________________________
+