]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSEMCAGeometry.cxx
FMD geometry with pad and SDigits
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEMCAGeometry.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 //_________________________________________________________________________
19 // Geometry class  for PHOS : EMCA (Electromagnetic Calorimeter)  
20 // Its data members provide geometry parametrization of EMCA
21 // which can be changed in the constructor only.
22 // Author   : Yves Schutz (SUBATECH)
23 // Modified : Yuri Kharlov (IHEP, Protvino)
24 // 13 September 2000
25
26 // --- AliRoot header files ---
27
28 #include "AliPHOSEMCAGeometry.h"
29
30 ClassImp(AliPHOSEMCAGeometry) ;
31
32 //____________________________________________________________________________
33 AliPHOSEMCAGeometry::AliPHOSEMCAGeometry()
34 {
35
36   // Initializes the EMC parameters
37
38   fNPhi       = 64 ; 
39   fNZ         = 64 ; 
40
41   fXtlSize[0] =  2.2 ;
42   fXtlSize[1] = 22.0 ;
43   fXtlSize[2] =  2.2 ;
44
45   // all these numbers coming next are subject to changes
46
47   fOuterBoxThickness[0] = 2.5 ;
48   fOuterBoxThickness[1] = 5.0 ;      
49   fOuterBoxThickness[2] = 5.0 ;
50   
51   fUpperPlateThickness  = 4.0 ;
52   
53   fSecondUpperPlateThickness = 5.0 ; 
54   
55   fCrystalSupportHeight   = 6.95 ; 
56   fCrystalWrapThickness   = 0.01 ;
57   fCrystalHolderThickness = 0.005 ;
58   fModuleBoxThickness     = 2.0 ; 
59   fIPtoOuterCoverDistance = 447.0 ;      
60   fIPtoCrystalSurface     = 460.0 ;  
61   
62   fPinDiodeSize[0] = 1.71 ;   //Values given by Odd Harald feb 2000  
63   fPinDiodeSize[1] = 0.0280 ; // 0.0280 is the depth of active layer in the silicon     
64   fPinDiodeSize[2] = 1.61 ;    
65   
66   fUpperCoolingPlateThickness   = 0.06 ; 
67   fSupportPlateThickness        = 10.0 ;
68   fLowerThermoPlateThickness    =  3.0 ; 
69   fLowerTextolitPlateThickness  =  1.0 ;
70   fGapBetweenCrystals           = 0.03 ;
71   
72   fTextolitBoxThickness[0] = 1.5 ;  
73   fTextolitBoxThickness[1] = 0.0 ;   
74   fTextolitBoxThickness[2] = 3.0 ; 
75   
76   fAirThickness[0] =  0.4   ;
77   fAirThickness[1] = 20.5175 ;  
78   fAirThickness[2] =  2.48   ;  
79   
80   Float_t xtalModulePhiSize =  fNPhi * ( fXtlSize[0] + 2 * fGapBetweenCrystals ) ; 
81   Float_t xtalModuleZSize   =  fNZ   * ( fXtlSize[2] + 2 * fGapBetweenCrystals ) ;
82   
83   // The next dimensions are calculated from the above parameters
84   
85   fOuterBoxSize[0] =  xtalModulePhiSize + 2 * ( fAirThickness[0] + fModuleBoxThickness
86                                                 + fTextolitBoxThickness[0] + fOuterBoxThickness[0] ) ; 
87   fOuterBoxSize[1] = ( fXtlSize[1] + fCrystalSupportHeight + fCrystalWrapThickness + fCrystalHolderThickness )
88     + 2 * (fAirThickness[1] +  fModuleBoxThickness + fTextolitBoxThickness[1] + fOuterBoxThickness[1] ) ;
89   fOuterBoxSize[2] =  xtalModuleZSize   + 2 * ( fAirThickness[2] + fModuleBoxThickness 
90                                                 + fTextolitBoxThickness[2] + fOuterBoxThickness[2] ) ; 
91   
92   fTextolitBoxSize[0]  = fOuterBoxSize[0] - 2 * fOuterBoxThickness[0] ;
93   fTextolitBoxSize[1]  = fOuterBoxSize[1] -  fOuterBoxThickness[1] - fUpperPlateThickness ;
94   fTextolitBoxSize[2]  = fOuterBoxSize[2] - 2 * fOuterBoxThickness[2] ;
95   
96   fAirFilledBoxSize[0] =  fTextolitBoxSize[0] - 2 * fTextolitBoxThickness[0] ; 
97   fAirFilledBoxSize[1] =  fTextolitBoxSize[1] - fSecondUpperPlateThickness ; 
98   fAirFilledBoxSize[2] =  fTextolitBoxSize[2] - 2 * fTextolitBoxThickness[2] ; 
99   
100 }
101 //____________________________________________________________________________