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 */
8 //_________________________________________________________________________
9 // GeometryOfflineTrd1 class for EMCAL : singleton
10 //*-- Author: Aleksei Pavlinov (WSU)
14 #include <TRotation.h>
21 class AliEMCALGeometry;
22 class AliEMCALShishKebabTrd1Module;
23 // --- ROOT system ---
24 // --- AliRoot header files ---
26 class AliEMCALGeometryOfflineTrd1 : public TNamed {
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");
33 virtual ~AliEMCALGeometryOfflineTrd1() { /* nothing */ };
34 static AliEMCALGeometryOfflineTrd1* GetInstance();
35 // positon in SuperModule
36 TVector3& PosInSuperModule(int nSupMod, int nTower, int nIphi, int nIeta);
39 AliEMCALGeometryOfflineTrd1();
42 static AliEMCALGeometryOfflineTrd1* fgGeomOfflineTrd1; //!
43 AliEMCALGeometry *fGeometry; //!
45 Int_t fMaxInEta; //! max module in ETA direction
46 AliEMCALShishKebabTrd1Module* fTrd1Modules[26]; //!
47 // positon in SuperModule
48 Int_t fSMMaxEta; // = 2*fMaxInEta(52 now)
49 TVector2* fSMPositionEta; //! array of TVector2 [fSMMaxEta]
50 TArrayD fSMPositionPhi; //! [24] now; start from 0;
51 Double_t fShiftOnPhi; //!
53 Int_t fNPhiSuperModule; //! number phi position for super modules
54 TRotation fSuperModuleRotationZ[6]; //!
55 TString fNameSuperModuleRotationZ[6]; //!
56 TRotation fSuperModuleRotationX; //!
57 TRotation fSuperModuleRotation[12]; //!
58 // position of cells in global coordinate system
59 TObjArray *fXYZofCells; //!
62 void PositionInSuperModule(int iphi, int ieta, double &lphi, double &leta);
63 void PositionInSuperModule(int nSupMod, int nTower, int nIphi, int nIeta, double &lphi, double &leta);
64 // Position towers(cells)
65 TVector3* CellPosition(int absId); // from 0 to fGeometry->GetNCells()
67 TRotation* Rotation(Int_t module); // module change from 1 to 12;
70 void PrintSuperModule(); // *MENU*
71 void PrintCell(Int_t absId=1); // *MENU*
72 virtual void Browse(TBrowser* b);
73 virtual Bool_t IsFolder() const;
75 ClassDef(AliEMCALGeometryOfflineTrd1, 0) // EMCAL geometry for offline
78 #endif // ALIEMCALGEOMETRYOFFLINETRD1_H