ROOT logo
#ifndef ALIPHOSEMCAGEOMETRY_H
#define ALIPHOSEMCAGEOMETRY_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//_________________________________________________________________________
// Geometry class  for PHOS : EMCA (Electromagnetic Calirometer)
// 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 "TObject.h"
class TObjArray ;

// --- AliRoot header files ---

class AliPHOSEMCAGeometry : public TObject {

public: 

  AliPHOSEMCAGeometry();
  //Compiler-generated copy ctor and copy-assignment operator _ARE_ OK.

  virtual ~AliPHOSEMCAGeometry(void) {}

  const Float_t * GetStripHalfSize()          const {return fStripHalfSize ;         }
  Float_t   GetStripWallWidthOut()      const {return fStripWallWidthOut ;     }
  const Float_t * GetAirCellHalfSize()        const {return fAirCellHalfSize ;       }
  const Float_t * GetWrappedHalfSize()        const {return fWrappedHalfSize ;       }
  Float_t   GetAirGapLed()              const {return fAirGapLed ;             }
  const Float_t * GetCrystalHalfSize()        const {return fCrystalHalfSize ;       }
  const Float_t * GetSupportPlateHalfSize()   const {return fSupportPlateHalfSize ;  }
  const Float_t * GetSupportPlateInHalfSize() const {return fSupportPlateInHalfSize ;}
  Float_t   GetSupportPlateThickness()  const { return fSupportPlateThickness ;}    

  const Float_t * GetPreampHalfSize()         const {return fPreampHalfSize ;        }
  const Float_t * GetAPDHalfSize()            const {return fPinDiodeHalfSize ;      }
  const Float_t * GetOuterThermoParams()      const {return  fOuterThermoParams ;    }
  const Float_t * GetCoolerHalfSize()         const {return fCoolerHalfSize ;        }
  const Float_t * GetAirGapHalfSize()         const {return fAirGapHalfSize;         }
  const Float_t * GetInnerThermoHalfSize()    const {return  fInnerThermoHalfSize ;  }
  const Float_t * GetAlCoverParams()          const {return fAlCoverParams ;         }
  const Float_t * GetFiberGlassHalfSize()     const {return fFiberGlassHalfSize ;    }
  const Float_t * GetWarmAlCoverHalfSize()    const {return fWarmAlCoverHalfSize ;   }
  const Float_t * GetWarmThermoHalfSize()     const {return fWarmThermoHalfSize ;    }
  const Float_t * GetTSupport1HalfSize()      const {return fTSupport1HalfSize ;     }
  const Float_t * GetTSupport2HalfSize()      const {return fTSupport2HalfSize ;     }
  const Float_t * GetTCables1HalfSize()       const {return fTCables1HalfSize ;      }
  const Float_t * GetTCables2HalfSize()       const {return fTCables2HalfSize ;      }
  Float_t   GetTSupportDist()           const {return fTSupportDist ;          }
  const Float_t * GetFrameXHalfSize()         const {return fFrameXHalfSize ;        }
  const Float_t * GetFrameZHalfSize()         const {return fFrameZHalfSize ;        }
  const Float_t * GetFrameXPosition()         const {return fFrameXPosition ;        }
  const Float_t * GetFrameZPosition()         const {return fFrameZPosition ;        }
  const Float_t * GetFGupXHalfSize()          const {return fFGupXHalfSize ;         }
  const Float_t * GetFGupXPosition()          const {return fFGupXPosition ;         }
  const Float_t * GetFGupZHalfSize()          const {return fFGupZHalfSize ;         }
  const Float_t * GetFGupZPosition()          const {return fFGupZPosition ;         }
  const Float_t * GetFGlowXHalfSize()         const {return fFGlowXHalfSize ;        }
  const Float_t * GetFGlowXPosition()         const {return fFGlowXPosition ;        }
  const Float_t * GetFGlowZHalfSize()         const {return fFGlowZHalfSize ;        }
  const Float_t * GetFGlowZPosition()         const {return fFGlowZPosition ;        }
  const Float_t * GetFEEAirHalfSize()         const {return fFEEAirHalfSize ;        }
  const Float_t * GetFEEAirPosition()         const {return fFEEAirPosition ;        }
  const Float_t * GetEMCParams()              const {return fEMCParams ;             }

  Float_t    GetIPtoCrystalSurface()     const {return fIPtoCrystalSurface ;   }
  Float_t    GetIPtoOuterCoverDistance() const {return fIPtoOuterCoverDistance;}
  Float_t    GetCrystalSize(Int_t index) const {return 2.*fCrystalHalfSize[index] ; }

  Int_t     GetNCellsXInStrip() const { return fNCellsXInStrip;}
  Int_t     GetNCellsZInStrip() const { return fNCellsZInStrip;}
  Int_t     GetNStripX()        const { return fNStripX ;      }
  Int_t     GetNStripZ()        const { return fNStripZ ;      }
  Int_t     GetNTSuppots()      const { return fNTSupports;    }
  Int_t     GetNPhi()           const { return fNPhi ;         }
  Int_t     GetNZ()             const { return fNZ ;           }
 
private:

  Float_t fStripHalfSize[3]   ;        // Strip unit size/2
  Float_t fAirCellHalfSize[3] ;        // geometry parameter
  Float_t fWrappedHalfSize[3] ;        // geometry parameter
  Float_t fSupportPlateHalfSize[3] ;   // geometry parameter
  Float_t fSupportPlateInHalfSize[3] ; // geometry parameter
  Float_t fCrystalHalfSize[3] ;        // crystal size/2
  Float_t fAirGapLed ;                 // geometry parameter
  Float_t fStripWallWidthOut ;         // Side to another strip  
  Float_t fStripWallWidthIn ;          // geometry parameter
  Float_t fTyvecThickness ;            // geometry parameter
  Float_t fTSupport1HalfSize[3] ;      // geometry parameter
  Float_t fTSupport2HalfSize[3] ;      // geometry parameter
  Float_t fPreampHalfSize[3] ;         // geometry parameter
  Float_t fPinDiodeHalfSize[3] ;       // Size of the PIN Diode 

  Float_t fOuterThermoParams[4] ;      // geometry parameter
  Float_t fCoolerHalfSize[3] ;         // geometry parameter
  Float_t fAirGapHalfSize[3] ;         // geometry parameter
  Float_t fInnerThermoHalfSize[3] ;    // geometry parameter
  Float_t fAlCoverParams[4] ;          // geometry parameter
  Float_t fFiberGlassHalfSize[3] ;     // geometry parameter

  Float_t fInnerThermoWidthX ;         // geometry parameter
  Float_t fInnerThermoWidthY ;         // geometry parameter
  Float_t fInnerThermoWidthZ ;         // geometry parameter
  Float_t fAirGapWidthX ;              // geometry parameter
  Float_t fAirGapWidthY ;              // geometry parameter
  Float_t fAirGapWidthZ ;              // geometry parameter
  Float_t fCoolerWidthX ;              // geometry parameter
  Float_t fCoolerWidthY ;              // geometry parameter
  Float_t fCoolerWidthZ ;              // geometry parameter
  Float_t fAlCoverThickness ;          // geometry parameter
  Float_t fOuterThermoWidthXUp ;       // geometry parameter
  Float_t fOuterThermoWidthXLow;       // geometry parameter
  Float_t fOuterThermoWidthY ;         // geometry parameter
  Float_t fOuterThermoWidthZ ;         // geometry parameter
  Float_t fAlFrontCoverX  ;            // geometry parameter
  Float_t fAlFrontCoverZ  ;            // geometry parameter
  Float_t fFiberGlassSup2X ;           // geometry parameter
  Float_t fFiberGlassSup1X ;           // geometry parameter
  Float_t fFrameHeight ;               // geometry parameter
  Float_t fFrameThickness ;            // geometry parameter
  Float_t fAirSpaceFeeX ;              // geometry parameter
  Float_t fAirSpaceFeeZ ;              // geometry parameter
  Float_t fAirSpaceFeeY ;              // geometry parameter
  Float_t fTCables2HalfSize[3] ;       // geometry parameter
  Float_t fTCables1HalfSize[3] ;       // geometry parameter
  Float_t fWarmUpperThickness ;        // geometry parameter
  Float_t fWarmBottomThickness ;       // geometry parameter
  Float_t fWarmAlCoverWidthX ;         // geometry parameter
  Float_t fWarmAlCoverWidthY ;         // geometry parameter
  Float_t fWarmAlCoverWidthZ ;         // geometry parameter
  Float_t fWarmAlCoverHalfSize[3] ;    // geometry parameter
  Float_t fWarmThermoHalfSize[3] ;     // geometry parameter
  Float_t fFiberGlassSup1Y ;           // geometry parameter
  Float_t fFiberGlassSup2Y ;           // geometry parameter
  Float_t fTSupportDist ;              // geometry parameter
  Float_t fTSupport1Thickness ;        // geometry parameter
  Float_t fTSupport2Thickness ;        // geometry parameter
  Float_t fTSupport1Width ;            // geometry parameter
  Float_t fTSupport2Width ;            // geometry parameter
  Float_t fFrameXHalfSize[3] ;         // geometry parameter
  Float_t fFrameZHalfSize[3] ;         // geometry parameter
  Float_t fFrameXPosition[3] ;         // geometry parameter
  Float_t fFrameZPosition[3] ;         // geometry parameter
  Float_t fFGupXHalfSize[3] ;          // geometry parameter
  Float_t fFGupXPosition[3] ;          // geometry parameter
  Float_t fFGupZHalfSize[3] ;          // geometry parameter
  Float_t fFGupZPosition[3] ;          // geometry parameter
  Float_t fFGlowXHalfSize[3] ;         // geometry parameter
  Float_t fFGlowXPosition[3] ;         // geometry parameter
  Float_t fFGlowZHalfSize[3] ;         // geometry parameter
  Float_t fFGlowZPosition[3] ;         // geometry parameter
  Float_t fFEEAirHalfSize[3] ;         // geometry parameter
  Float_t fFEEAirPosition[3] ;         // geometry parameter
  Float_t fEMCParams[4] ;              // geometry parameter
  Float_t fIPtoOuterCoverDistance ;    // Distances from interaction point to outer cover 
  Float_t fIPtoCrystalSurface ;        // Distances from interaction point to Xtal surface

  Float_t fSupportPlateThickness ;     // Thickness of the Aluminium support plate for Strip   

  Int_t  fNCellsXInStrip ;             // Number of cells in a strip unit in X
  Int_t  fNCellsZInStrip ;             // Number of cells in a strip unit in Z
  Int_t  fNStripX ;                    // Number of strip units in X
  Int_t  fNStripZ ;                    // Number of strip units in Z
  Int_t  fNTSupports ;                 // geometry parameter
  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 

} ;

#endif // AliPHOSEMCAGEOMETRY_H
 AliPHOSEMCAGeometry.h:1
 AliPHOSEMCAGeometry.h:2
 AliPHOSEMCAGeometry.h:3
 AliPHOSEMCAGeometry.h:4
 AliPHOSEMCAGeometry.h:5
 AliPHOSEMCAGeometry.h:6
 AliPHOSEMCAGeometry.h:7
 AliPHOSEMCAGeometry.h:8
 AliPHOSEMCAGeometry.h:9
 AliPHOSEMCAGeometry.h:10
 AliPHOSEMCAGeometry.h:11
 AliPHOSEMCAGeometry.h:12
 AliPHOSEMCAGeometry.h:13
 AliPHOSEMCAGeometry.h:14
 AliPHOSEMCAGeometry.h:15
 AliPHOSEMCAGeometry.h:16
 AliPHOSEMCAGeometry.h:17
 AliPHOSEMCAGeometry.h:18
 AliPHOSEMCAGeometry.h:19
 AliPHOSEMCAGeometry.h:20
 AliPHOSEMCAGeometry.h:21
 AliPHOSEMCAGeometry.h:22
 AliPHOSEMCAGeometry.h:23
 AliPHOSEMCAGeometry.h:24
 AliPHOSEMCAGeometry.h:25
 AliPHOSEMCAGeometry.h:26
 AliPHOSEMCAGeometry.h:27
 AliPHOSEMCAGeometry.h:28
 AliPHOSEMCAGeometry.h:29
 AliPHOSEMCAGeometry.h:30
 AliPHOSEMCAGeometry.h:31
 AliPHOSEMCAGeometry.h:32
 AliPHOSEMCAGeometry.h:33
 AliPHOSEMCAGeometry.h:34
 AliPHOSEMCAGeometry.h:35
 AliPHOSEMCAGeometry.h:36
 AliPHOSEMCAGeometry.h:37
 AliPHOSEMCAGeometry.h:38
 AliPHOSEMCAGeometry.h:39
 AliPHOSEMCAGeometry.h:40
 AliPHOSEMCAGeometry.h:41
 AliPHOSEMCAGeometry.h:42
 AliPHOSEMCAGeometry.h:43
 AliPHOSEMCAGeometry.h:44
 AliPHOSEMCAGeometry.h:45
 AliPHOSEMCAGeometry.h:46
 AliPHOSEMCAGeometry.h:47
 AliPHOSEMCAGeometry.h:48
 AliPHOSEMCAGeometry.h:49
 AliPHOSEMCAGeometry.h:50
 AliPHOSEMCAGeometry.h:51
 AliPHOSEMCAGeometry.h:52
 AliPHOSEMCAGeometry.h:53
 AliPHOSEMCAGeometry.h:54
 AliPHOSEMCAGeometry.h:55
 AliPHOSEMCAGeometry.h:56
 AliPHOSEMCAGeometry.h:57
 AliPHOSEMCAGeometry.h:58
 AliPHOSEMCAGeometry.h:59
 AliPHOSEMCAGeometry.h:60
 AliPHOSEMCAGeometry.h:61
 AliPHOSEMCAGeometry.h:62
 AliPHOSEMCAGeometry.h:63
 AliPHOSEMCAGeometry.h:64
 AliPHOSEMCAGeometry.h:65
 AliPHOSEMCAGeometry.h:66
 AliPHOSEMCAGeometry.h:67
 AliPHOSEMCAGeometry.h:68
 AliPHOSEMCAGeometry.h:69
 AliPHOSEMCAGeometry.h:70
 AliPHOSEMCAGeometry.h:71
 AliPHOSEMCAGeometry.h:72
 AliPHOSEMCAGeometry.h:73
 AliPHOSEMCAGeometry.h:74
 AliPHOSEMCAGeometry.h:75
 AliPHOSEMCAGeometry.h:76
 AliPHOSEMCAGeometry.h:77
 AliPHOSEMCAGeometry.h:78
 AliPHOSEMCAGeometry.h:79
 AliPHOSEMCAGeometry.h:80
 AliPHOSEMCAGeometry.h:81
 AliPHOSEMCAGeometry.h:82
 AliPHOSEMCAGeometry.h:83
 AliPHOSEMCAGeometry.h:84
 AliPHOSEMCAGeometry.h:85
 AliPHOSEMCAGeometry.h:86
 AliPHOSEMCAGeometry.h:87
 AliPHOSEMCAGeometry.h:88
 AliPHOSEMCAGeometry.h:89
 AliPHOSEMCAGeometry.h:90
 AliPHOSEMCAGeometry.h:91
 AliPHOSEMCAGeometry.h:92
 AliPHOSEMCAGeometry.h:93
 AliPHOSEMCAGeometry.h:94
 AliPHOSEMCAGeometry.h:95
 AliPHOSEMCAGeometry.h:96
 AliPHOSEMCAGeometry.h:97
 AliPHOSEMCAGeometry.h:98
 AliPHOSEMCAGeometry.h:99
 AliPHOSEMCAGeometry.h:100
 AliPHOSEMCAGeometry.h:101
 AliPHOSEMCAGeometry.h:102
 AliPHOSEMCAGeometry.h:103
 AliPHOSEMCAGeometry.h:104
 AliPHOSEMCAGeometry.h:105
 AliPHOSEMCAGeometry.h:106
 AliPHOSEMCAGeometry.h:107
 AliPHOSEMCAGeometry.h:108
 AliPHOSEMCAGeometry.h:109
 AliPHOSEMCAGeometry.h:110
 AliPHOSEMCAGeometry.h:111
 AliPHOSEMCAGeometry.h:112
 AliPHOSEMCAGeometry.h:113
 AliPHOSEMCAGeometry.h:114
 AliPHOSEMCAGeometry.h:115
 AliPHOSEMCAGeometry.h:116
 AliPHOSEMCAGeometry.h:117
 AliPHOSEMCAGeometry.h:118
 AliPHOSEMCAGeometry.h:119
 AliPHOSEMCAGeometry.h:120
 AliPHOSEMCAGeometry.h:121
 AliPHOSEMCAGeometry.h:122
 AliPHOSEMCAGeometry.h:123
 AliPHOSEMCAGeometry.h:124
 AliPHOSEMCAGeometry.h:125
 AliPHOSEMCAGeometry.h:126
 AliPHOSEMCAGeometry.h:127
 AliPHOSEMCAGeometry.h:128
 AliPHOSEMCAGeometry.h:129
 AliPHOSEMCAGeometry.h:130
 AliPHOSEMCAGeometry.h:131
 AliPHOSEMCAGeometry.h:132
 AliPHOSEMCAGeometry.h:133
 AliPHOSEMCAGeometry.h:134
 AliPHOSEMCAGeometry.h:135
 AliPHOSEMCAGeometry.h:136
 AliPHOSEMCAGeometry.h:137
 AliPHOSEMCAGeometry.h:138
 AliPHOSEMCAGeometry.h:139
 AliPHOSEMCAGeometry.h:140
 AliPHOSEMCAGeometry.h:141
 AliPHOSEMCAGeometry.h:142
 AliPHOSEMCAGeometry.h:143
 AliPHOSEMCAGeometry.h:144
 AliPHOSEMCAGeometry.h:145
 AliPHOSEMCAGeometry.h:146
 AliPHOSEMCAGeometry.h:147
 AliPHOSEMCAGeometry.h:148
 AliPHOSEMCAGeometry.h:149
 AliPHOSEMCAGeometry.h:150
 AliPHOSEMCAGeometry.h:151
 AliPHOSEMCAGeometry.h:152
 AliPHOSEMCAGeometry.h:153
 AliPHOSEMCAGeometry.h:154
 AliPHOSEMCAGeometry.h:155
 AliPHOSEMCAGeometry.h:156
 AliPHOSEMCAGeometry.h:157
 AliPHOSEMCAGeometry.h:158
 AliPHOSEMCAGeometry.h:159
 AliPHOSEMCAGeometry.h:160
 AliPHOSEMCAGeometry.h:161
 AliPHOSEMCAGeometry.h:162
 AliPHOSEMCAGeometry.h:163
 AliPHOSEMCAGeometry.h:164
 AliPHOSEMCAGeometry.h:165
 AliPHOSEMCAGeometry.h:166
 AliPHOSEMCAGeometry.h:167
 AliPHOSEMCAGeometry.h:168
 AliPHOSEMCAGeometry.h:169
 AliPHOSEMCAGeometry.h:170
 AliPHOSEMCAGeometry.h:171
 AliPHOSEMCAGeometry.h:172
 AliPHOSEMCAGeometry.h:173
 AliPHOSEMCAGeometry.h:174
 AliPHOSEMCAGeometry.h:175
 AliPHOSEMCAGeometry.h:176
 AliPHOSEMCAGeometry.h:177
 AliPHOSEMCAGeometry.h:178