TRD1, 12 SM, 110 degree as default
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALGeometryOfflineTrd1.h
CommitLineData
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
16class TBrowser;
17class TString;
18class TVector2;
19class TVector3;
20class TObjArray;
21class AliEMCALGeometry;
22class AliEMCALShishKebabTrd1Module;
23// --- ROOT system ---
24// --- AliRoot header files ---
25
26class 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
33 virtual ~AliEMCALGeometryOfflineTrd1() { /* nothing */ };
34 static AliEMCALGeometryOfflineTrd1* GetInstance();
35 // positon in SuperModule
d87bd045 36 TVector3& PosInSuperModule(const int nSupMod, const int nTower, const int nIphi, const int nIeta);
1963b290 37
38 private:
39 AliEMCALGeometryOfflineTrd1();
40 void Init();
41
42 static AliEMCALGeometryOfflineTrd1* fgGeomOfflineTrd1; //!
43 AliEMCALGeometry *fGeometry; //!
44
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; //!
52
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; //!
60 public:
61 // One Super Module
62 void PositionInSuperModule(const int iphi, const int ieta, double &lphi, double &leta);
d87bd045 63 void PositionInSuperModule(const int nSupMod, const int nTower, const int nIphi, const int nIeta, double &lphi, double &leta);
1963b290 64 // Position towers(cells)
65 TVector3* CellPosition(int absId); // from 0 to fGeometry->GetNCells()
66 // Global System
d87bd045 67 TRotation* Rotation(Int_t module); // module change from 1 to 12;
1963b290 68
69 // service methods
70 void PrintSuperModule(); // *MENU*
71 void PrintCell(Int_t absId=1); // *MENU*
72 virtual void Browse(TBrowser* b);
73 virtual Bool_t IsFolder() const;
74
75 ClassDef(AliEMCALGeometryOfflineTrd1, 0) // EMCAL geometry for offline
76};
77
78#endif // ALIEMCALGEOMETRYOFFLINETRD1_H