flistTreeFrame attribute added; fCanvasWindow removed
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALGeometry.h
CommitLineData
2012850d 1#ifndef ALIEMCALGEOMETRY_H
2#define ALIEMCALGEOMETRY_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8//_________________________________________________________________________
9// Geometry class for EMCAL : singleton
10// EMCAL consists of a shell of Pb
11//
12//*-- Author: Yves Schutz (SUBATECH)
13
14#include <assert.h>
15
16// --- ROOT system ---
17
18class TObjArray ;
19class TVector3;
20class TMatrix ;
21
22// --- AliRoot header files ---
23
24#include "AliGeometry.h"
25
26
27class AliEMCALGeometry : public AliGeometry {
28
29public:
30
31 AliEMCALGeometry() {
32 // default ctor
33 // must be kept public for root persistency purposes, but should never be called by the outside world
34 } ;
35
36 AliEMCALGeometry(const AliEMCALGeometry & geom) {
37 // cpy ctor requested by Coding Convention but not yet needed
38 assert(0==1) ;
39 }
40
41 virtual ~AliEMCALGeometry(void) ;
42 static AliEMCALGeometry * GetInstance(const Text_t* name, const Text_t* title="") ;
43 static AliEMCALGeometry * GetInstance() ;
44
45 AliEMCALGeometry & operator = (const AliEMCALGeometry & rvalue) const {
46 // assignement operator requested by coding convention but not needed
47 assert(0==1) ;
48 return *(GetInstance()) ;
49 }
50 virtual void GetGlobal(const AliRecPoint *, TVector3 &, TMatrix &) const {}
51 virtual void GetGlobal(const AliRecPoint *, TVector3 &) const {}
52 // General
53
54 Bool_t IsInitialized(void) const { return fgInit ; }
55
56 // Return EMCA geometrical parameters
57
58 // geometry
59 const Float_t GetAirGap() const { return fAirGap ; }
60 const Float_t GetArm1PhiMin() const { return fArm1PhiMin ; }
61 const Float_t GetArm1PhiMax() const { return fArm1PhiMax ; }
62 const Float_t GetArm2PhiMin() const { return fArm2PhiMin ; }
63 const Float_t GetArm2PhiMax() const { return fArm2PhiMax ; }
64 const Float_t GetIPDistance() const { return fIPDistance ; }
65 const Float_t GetEnvelop(Int_t index) const { return fEnvelop[index] ; }
66 const Float_t GetShellThickness() const { return fShellThickness ; }
67 const Float_t GetZLength() const { return fZLength ; }
c23c27b1 68 const Float_t GetGap2Active() const {return fGap2Active ; }
2012850d 69 // material
70 const Float_t GetAmat() const { return fAmat ; }
71 const Float_t GetZmat() const { return fZmat ; }
72 const Float_t GetDmat() const { return fDmat ; }
73 const Float_t GetRmat() const { return fRmat ; }
74 const Float_t GetEmat() const { return fEmat ; }
75 const Float_t GetLmat() const { return fEmat * fRmat ; }
76
77protected:
78
79 AliEMCALGeometry(const Text_t* name, const Text_t* title="") : AliGeometry(name, title) {
80 // ctor only for internal usage (singleton)
81 Init() ;
82 }
83 void Init(void) ; // initializes the parameters of EMCAL
84
85private:
86
87 static AliEMCALGeometry * fgGeom ; // pointer to the unique instance of the singleton
88 static Bool_t fgInit ; // Tells if geometry has been succesfully set up
89
90 // geometry
91 Float_t fAirGap ; // Distance between envelop and active material
92 Float_t fArm1PhiMin ; // Minimum phi angle covered by Arm 1
93 Float_t fArm1PhiMax ; // Maximum phi angle covered by Arm 1
94 Float_t fArm2PhiMin ; // Minimum phi angle covered by Arm 2
95 Float_t fArm2PhiMax ; // Maximum phi angle covered by Arm 2
96 // It is assumed that Arm1 and Arm2 have the same following parameters
97 Float_t fEnvelop[3] ; // the GEANT TUB that contains the 2 arms
98 Float_t fIPDistance ; // Distance of the inner surface to the interaction point
99 Float_t fShellThickness ; // Total thickness in (x,y) direction
100 Float_t fZLength ; // Total length in z direction
c23c27b1 101 Float_t fGap2Active ; // Gap between the envelop and the active material
2012850d 102
103 //material
104 Float_t fAmat ; // average atomic weight of the active material
105 Float_t fZmat ; // average atomic number of the active material
106 Float_t fDmat ; // average density of the active material
107 Float_t fRmat ; // average radiation length of the active material
108 Float_t fEmat ; // thickness of the active material in radiation length units
109
110 ClassDef(AliEMCALGeometry,1) // EMCAL geometry class
111
112} ;
113
114#endif // AliEMCALGEOMETRY_H