Extra header added to the list
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveMultiView.h
1 // $Id$
2 // Author: Matevz Tadel 2009
3
4 /**************************************************************************
5  * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef AliEveMultiView_H
11 #define AliEveMultiView_H
12
13 #include <TEveManager.h>
14
15 #include <TEveViewer.h>
16 #include <TGLViewer.h>
17
18 #include <TEveScene.h>
19 #include <TEveGeoShape.h>
20
21 #include <TEveProjectionManager.h>
22 #include <TEveProjectionAxes.h>
23
24 #include <TEveBrowser.h>
25 #include <TEveWindow.h>
26
27 //______________________________________________________________________________
28 // Short description of AliEveMultiView
29 //
30
31 class AliEveMultiView
32 {
33 public:
34   AliEveMultiView(Bool_t setMuonView = kFALSE);
35   virtual ~AliEveMultiView();
36
37   static AliEveMultiView* Instance();
38
39   void InitGeomGentle(TEveGeoShape* g3d, TEveGeoShape* grphi, TEveGeoShape* grhoz, TEveGeoShape* gmuon);
40   void InitGeomGentleTrd(TEveGeoShape* gtrd);
41   void InitGeomGentleMuon(TEveGeoShape* gmuon, Bool_t showRPhi, Bool_t showRhoZ, Bool_t showMuon);
42
43   //-------------------------------------------------------------------------
44
45   void SetDepth(Float_t d);
46
47   //-------------------------------------------------------------------------
48
49   void ImportGeomRPhi(TEveElement* el);
50   void ImportGeomRhoZ(TEveElement* el);
51   void ImportGeomMuon(TEveElement* el);
52   void ImportEventRPhi(TEveElement* el);
53   void ImportEventRhoZ(TEveElement* el);
54   void ImportEventMuon(TEveElement* el);
55
56   void DestroyEventRPhi();
57   void DestroyEventRhoZ();
58   void DestroyEventMuon();
59
60   void SetCenterRPhi(Double_t x, Double_t y, Double_t z);
61   void SetCenterRhoZ(Double_t x, Double_t y, Double_t z);
62   void SetCenterMuon(Double_t x, Double_t y, Double_t z);
63
64   void DestroyAllGeometries();
65
66   //-------------------------------------------------------------------------
67
68   TEveViewer* Get3DView()   { return f3DView; }
69   TEveViewer* GetRPhiView() { return fRPhiView; }
70   TEveViewer* GetRhoZView() { return fRhoZView; }
71   TEveViewer* GetMuonView() { return fMuonView; }
72
73   void SetMuonView(Bool_t set) { fIsMuonView = set; }
74   Bool_t IsMuonView() { return fIsMuonView; }
75
76
77 protected:
78   TEveProjectionManager *fRPhiMgr; // Obvious meaning.
79   TEveProjectionManager *fRhoZMgr; // Obvious meaning.
80   TEveProjectionManager *fMuonMgr; // Obvious meaning.
81
82   TEveViewer            *f3DView;   // Obvious meaning.
83   TEveViewer            *fRPhiView; // Obvious meaning.
84   TEveViewer            *fRhoZView; // Obvious meaning.
85   TEveViewer            *fMuonView; // Obvious meaning.
86
87   TEveScene             *fRPhiGeomScene;  // Obvious meaning.
88   TEveScene             *fRhoZGeomScene;  // Obvious meaning.
89   TEveScene             *fMuonGeomScene;  // Obvious meaning.
90   TEveScene             *fRPhiEventScene; // Obvious meaning.
91   TEveScene             *fRhoZEventScene; // Obvious meaning.
92   TEveScene             *fMuonEventScene; // Obvious meaning.
93
94   TEveGeoShape          *fGeomGentle;     // Obvious meaning.
95   TEveGeoShape          *fGeomGentleRPhi; // Obvious meaning.
96   TEveGeoShape          *fGeomGentleRhoZ; // Obvious meaning.
97   TEveGeoShape          *fGeomGentleTrd;  // Obvious meaning.
98   TEveGeoShape          *fGeomGentleMuon; // Obvious meaning.
99
100   Bool_t                 fIsMuonView;
101
102   static AliEveMultiView* fgInstance;     // Obvious meaning.
103
104 private:
105   AliEveMultiView(const AliEveMultiView&);            // Not implemented
106   AliEveMultiView& operator=(const AliEveMultiView&); // Not implemented
107
108   ClassDef(AliEveMultiView, 0); // Multiple-views.
109 };
110
111 #endif