]>
Commit | Line | Data |
---|---|---|
1963b290 | 1 | #ifndef ALIEMCALGEOMETRYOFFLINETRD1_H |
2 | #define ALIEMCALGEOMETRYOFFLINETRD1_H | |
3 | /* Copyright(c) 1998-2004, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | //_________________________________________________________________________ | |
9 | // GeometryOfflineTrd1 class for EMCAL : singleton | |
10 | //*-- Author: Aleksei Pavlinov (WSU) | |
11 | ||
12 | #include <TNamed.h> | |
13 | #include <TArrayD.h> | |
14 | #include <TRotation.h> | |
15 | ||
16 | class TBrowser; | |
17 | class TString; | |
18 | class TVector2; | |
19 | class TVector3; | |
20 | class TObjArray; | |
21 | class AliEMCALGeometry; | |
22 | class AliEMCALShishKebabTrd1Module; | |
23 | // --- ROOT system --- | |
24 | // --- AliRoot header files --- | |
25 | ||
26 | class AliEMCALGeometryOfflineTrd1 : public TNamed { | |
27 | public: | |
28 | AliEMCALGeometryOfflineTrd1(const AliEMCALGeometryOfflineTrd1& geom):TNamed(geom.GetName(),geom.GetTitle()) { | |
29 | // cpy ctor requested by Coding Convention but not yet needed | |
30 | Fatal("Cpy ctor", "Not implemented"); | |
31 | } | |
32 | ||
14ce0a6e | 33 | //assignment operator for coding convention |
34 | const AliEMCALGeometryOfflineTrd1 & operator = (const AliEMCALGeometryOfflineTrd1 &) {return *this;} | |
35 | ||
1963b290 | 36 | virtual ~AliEMCALGeometryOfflineTrd1() { /* nothing */ }; |
37 | static AliEMCALGeometryOfflineTrd1* GetInstance(); | |
38 | // positon in SuperModule | |
eb0b1051 | 39 | TVector3& PosInSuperModule(int nSupMod, int nTower, int nIphi, int nIeta); |
1963b290 | 40 | |
14ce0a6e | 41 | public: |
42 | // One Super Module | |
43 | void PositionInSuperModule(int iphi, int ieta, double &lphi, double &leta); | |
44 | void PositionInSuperModule(int nSupMod, int nTower, int nIphi, int nIeta, double &lphi, double &leta); | |
45 | // Position towers(cells) | |
46 | TVector3* CellPosition(int absId); // from 0 to fGeometry->GetNCells() | |
47 | // Global System | |
48 | TRotation* Rotation(Int_t module); // module change from 1 to 12; | |
49 | ||
50 | // service methods | |
51 | void PrintSuperModule(); // *MENU* | |
52 | void PrintCell(Int_t absId=1); // *MENU* | |
53 | virtual void Browse(TBrowser* b); | |
54 | virtual Bool_t IsFolder() const; | |
55 | ||
1963b290 | 56 | private: |
57 | AliEMCALGeometryOfflineTrd1(); | |
58 | void Init(); | |
59 | ||
60 | static AliEMCALGeometryOfflineTrd1* fgGeomOfflineTrd1; //! | |
61 | AliEMCALGeometry *fGeometry; //! | |
62 | ||
63 | Int_t fMaxInEta; //! max module in ETA direction | |
64 | AliEMCALShishKebabTrd1Module* fTrd1Modules[26]; //! | |
65 | // positon in SuperModule | |
66 | Int_t fSMMaxEta; // = 2*fMaxInEta(52 now) | |
67 | TVector2* fSMPositionEta; //! array of TVector2 [fSMMaxEta] | |
68 | TArrayD fSMPositionPhi; //! [24] now; start from 0; | |
69 | Double_t fShiftOnPhi; //! | |
70 | ||
71 | Int_t fNPhiSuperModule; //! number phi position for super modules | |
72 | TRotation fSuperModuleRotationZ[6]; //! | |
73 | TString fNameSuperModuleRotationZ[6]; //! | |
74 | TRotation fSuperModuleRotationX; //! | |
75 | TRotation fSuperModuleRotation[12]; //! | |
76 | // position of cells in global coordinate system | |
77 | TObjArray *fXYZofCells; //! | |
1963b290 | 78 | |
79 | ClassDef(AliEMCALGeometryOfflineTrd1, 0) // EMCAL geometry for offline | |
80 | }; | |
81 | ||
82 | #endif // ALIEMCALGEOMETRYOFFLINETRD1_H |