#ifndef AliEveMultiView_H
#define AliEveMultiView_H
#include <TEveManager.h>
#include <TEveViewer.h>
#include <TGLViewer.h>
#include <TEveScene.h>
#include <TEveGeoShape.h>
#include <TEveProjectionManager.h>
#include <TEveProjectionAxes.h>
#include <TEveBrowser.h>
#include <TEveWindow.h>
class AliEveMultiView
{
public:
AliEveMultiView(Bool_t setMuonView = kFALSE);
virtual ~AliEveMultiView();
static AliEveMultiView* Instance();
void InitGeomGentle(TEveGeoShape* g3d, TEveGeoShape* grphi, TEveGeoShape* grhoz, TEveGeoShape* gmuon);
void InitGeomGentleTrd(TEveGeoShape* gtrd);
void InitGeomGentleMuon(TEveGeoShape* gmuon, Bool_t showRPhi, Bool_t showRhoZ, Bool_t showMuon);
void SetDepth(Float_t d);
void ImportGeomRPhi(TEveElement* el);
void ImportGeomRhoZ(TEveElement* el);
void ImportGeomMuon(TEveElement* el);
void ImportEventRPhi(TEveElement* el);
void ImportEventRhoZ(TEveElement* el);
void ImportEventMuon(TEveElement* el);
void DestroyEventRPhi();
void DestroyEventRhoZ();
void DestroyEventMuon();
void SetCenterRPhi(Double_t x, Double_t y, Double_t z);
void SetCenterRhoZ(Double_t x, Double_t y, Double_t z);
void SetCenterMuon(Double_t x, Double_t y, Double_t z);
void DestroyAllGeometries();
TEveViewer* Get3DView() { return f3DView; }
TEveViewer* GetRPhiView() { return fRPhiView; }
TEveViewer* GetRhoZView() { return fRhoZView; }
TEveViewer* GetMuonView() { return fMuonView; }
void SetMuonView(Bool_t set) { fIsMuonView = set; }
Bool_t IsMuonView() { return fIsMuonView; }
protected:
TEveProjectionManager *fRPhiMgr;
TEveProjectionManager *fRhoZMgr;
TEveProjectionManager *fMuonMgr;
TEveViewer *f3DView;
TEveViewer *fRPhiView;
TEveViewer *fRhoZView;
TEveViewer *fMuonView;
TEveScene *fRPhiGeomScene;
TEveScene *fRhoZGeomScene;
TEveScene *fMuonGeomScene;
TEveScene *fRPhiEventScene;
TEveScene *fRhoZEventScene;
TEveScene *fMuonEventScene;
TEveGeoShape *fGeomGentle;
TEveGeoShape *fGeomGentleRPhi;
TEveGeoShape *fGeomGentleRhoZ;
TEveGeoShape *fGeomGentleTrd;
TEveGeoShape *fGeomGentleMuon;
Bool_t fIsMuonView;
static AliEveMultiView* fgInstance;
private:
AliEveMultiView(const AliEveMultiView&);
AliEveMultiView& operator=(const AliEveMultiView&);
ClassDef(AliEveMultiView, 0);
};
#endif