Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BesClient Class Reference

#include <BesClient.h>

List of all members.

Public Member Functions

virtual void AutoDisplayEvent ()
virtual void AutoDisplayEvent ()
virtual void AutoDisplayEventCommand ()
virtual void AutoDisplayEventCommand ()
virtual void AutoRotate ()
virtual void AutoRotate ()
virtual void AutoRotateCommand ()
virtual void AutoRotateCommand ()
 BesClient (const TGWindow *p, const char *title, UInt_t width, UInt_t height, Option_t *option="", Int_t argc=0, char **argv=0)
 BesClient (const TGWindow *p, const char *title, UInt_t width, UInt_t height, Option_t *option="", Int_t argc=0, char **argv=0)
virtual void ChangeFocus ()
virtual void ChangeFocus ()
virtual void CloseWindow ()
virtual void CloseWindow ()
virtual void CreateCanvas ()
virtual void CreateCanvas ()
virtual void CreateDisplayModeBar ()
virtual void CreateDisplayModeBar ()
virtual void CreateHorizontalRuler ()
virtual void CreateHorizontalRuler ()
virtual void CreateMainFrame ()
virtual void CreateMainFrame ()
virtual void CreateMenuBar ()
virtual void CreateMenuBar ()
virtual void CreateStatusBar ()
virtual void CreateStatusBar ()
virtual void CreateTabs ()
virtual void CreateTabs ()
virtual void CreateTitleBar ()
virtual void CreateTitleBar ()
virtual void CreateToolBar ()
virtual void CreateToolBar ()
virtual void CreateUpButtonBar ()
virtual void CreateUpButtonBar ()
virtual void CreateWidget (const char *title, UInt_t width, UInt_t height)
virtual void CreateWidget (const char *title, UInt_t width, UInt_t height)
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py, TObject *sel)
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py, TObject *sel)
virtual void ExecuteReturn ()
virtual void ExecuteReturn ()
virtual Bool_t FileExists (TString fname)
virtual Bool_t FileExists (TString fname)
virtual Bool_t FirstEvent ()
virtual Bool_t FirstEvent ()
Long64_t GetBesEventNo ()
Long64_t GetBesEventNo ()
Long64_t GetBesRunNo ()
Long64_t GetBesRunNo ()
virtual Bool_t GetEvent (Long64_t i)
virtual Bool_t GetEvent (Long64_t i)
Int_t GetEventPlaySpeed ()
Int_t GetEventPlaySpeed ()
virtual Pixmap_t GetPic (const char *file)
virtual Pixmap_t GetPic (const char *file)
virtual Bool_t GetRecEvent ()
virtual Bool_t GetRecEvent ()
Int_t GetRotateFPS ()
Int_t GetRotateFPS ()
Double_t GetRotateSpeed ()
Double_t GetRotateSpeed ()
Double_t GetRotateStep ()
Double_t GetRotateStep ()
virtual void GoHome ()
virtual void GoHome ()
virtual void HandleButtons (Int_t id=-1)
virtual void HandleButtons (Int_t id=-1)
virtual void HandleError (const char *msg)
virtual void HandleError (const char *msg)
virtual void HandleEventList (TGListTreeItem *entry, Int_t btn)
virtual void HandleEventList (TGListTreeItem *entry, Int_t btn)
virtual void HandleInfoBar (const char *msg)
virtual void HandleInfoBar (const char *msg)
virtual void HandleMenu (Int_t id)
virtual void HandleMenu (Int_t id)
virtual void HandleSliders (Int_t id)
virtual void HandleSliders (Int_t id)
virtual void HandleStatusBar (const char *msg)
virtual void HandleStatusBar (const char *msg)
virtual void HandleViewOptionMenu (Int_t id)
virtual void HandleViewOptionMenu (Int_t id)
virtual void Help ()
virtual void Help ()
virtual void InitConnections ()
virtual void InitConnections ()
virtual void InitLocal ()
virtual void InitLocal ()
virtual void InitParameter ()
virtual void InitParameter ()
virtual void LoadGeoFile ()
virtual void LoadGeoFile ()
virtual void LoadMyConfig ()
virtual void LoadMyConfig ()
virtual Bool_t NextEvent ()
virtual Bool_t NextEvent ()
virtual void OpenEventFile (TString filename)
virtual void OpenEventFile ()
virtual void OpenEventFile (TString filename)
virtual void OpenEventFile ()
virtual void OpenGeoFile (TString filename)
virtual void OpenGeoFile (TString filename)
virtual void OpenGL ()
virtual void OpenGL ()
virtual Bool_t PrevEvent ()
virtual Bool_t PrevEvent ()
virtual void RotateClockWise (int clockwise)
virtual void RotateClockWise (int clockwise)
virtual void RotatePhi (int pn)
virtual void RotatePhi (int pn)
virtual void RotatePsi (int pn)
virtual void RotatePsi (int pn)
virtual void RotateTheta (int pn)
virtual void RotateTheta (int pn)
virtual void SaveGeoAs ()
virtual void SaveGeoAs ()
virtual void SaveMyConfig ()
virtual void SaveMyConfig ()
virtual void SavePicAs ()
virtual void SavePicAs ()
virtual void SavePicAsPS ()
virtual void SavePicAsPS ()
virtual void SetAllDisplayModeButtonUnHL ()
virtual void SetAllDisplayModeButtonUnHL ()
virtual void SetHome ()
virtual void SetHome ()
virtual void SetRange (Double_t &input, Double_t min, Double_t max)
virtual void SetRange (Double_t &input, Double_t min, Double_t max)
void SetRotateSpeed ()
void SetRotateSpeed ()
void SetRotateStep ()
void SetRotateStep ()
virtual void SetState (Int_t id=-1)
virtual void SetState (Int_t id=-1)
virtual void Show ()
virtual void Show ()
virtual void UpdateAllView ()
virtual void UpdateAllView ()
virtual void UpdateBesInputFields ()
virtual void UpdateBesInputFields ()
virtual void UpdateCurrentPad ()
virtual void UpdateCurrentPad ()
virtual void UpdateStatus ()
virtual void UpdateStatus ()
virtual void X3D ()
virtual void X3D ()
virtual ~BesClient ()
virtual ~BesClient ()

Private Member Functions

void SetMdcQMatch (Bool_t input)
void SetMdcQMatch (Bool_t input)
void SetMdcTMatch (Bool_t input)
void SetMdcTMatch (Bool_t input)
void SetTofQMatch (Bool_t input)
void SetTofQMatch (Bool_t input)
void SetTofTMatch (Bool_t input)
void SetTofTMatch (Bool_t input)

Private Attributes

TRecEmcShoweremcshower
TRecEmcShoweremcshower
Bool_t f_bossMode
TString f_evtFile
TString f_evtFile_1
TString f_geoFile
Int_t f_pid
runStatus f_runStatus
Bool_t fAutoDisplayEvent
TTimer * fAutoDisplayEventTimer
TTimer * fAutoDisplayEventTimer
TGCompositeFrame * fAutoFrame
TGCompositeFrame * fAutoFrame
Bool_t fAutoRotate
Int_t fAutoRotateClockWise
Int_t fAutoRotatePhi
Int_t fAutoRotatePsi
Int_t fAutoRotateTheta
TTimer * fAutoRotateTimer
TTimer * fAutoRotateTimer
TGCompositeFrame * fAutoTextFrame
TGCompositeFrame * fAutoTextFrame
TGLabel * fAutoTextLabel
TGLabel * fAutoTextLabel
TGHorizontalFrame * fBesEventFrame
TGHorizontalFrame * fBesEventFrame
Long64_t fBesEventNo
TGLabel * fBesLabelEvent
TGLabel * fBesLabelEvent
TGLabel * fBesLabelRun
TGLabel * fBesLabelRun
TGHorizontalFrame * fBesRunFrame
TGHorizontalFrame * fBesRunFrame
Long64_t fBesRunNo
TString fBesVisPath
TCanvas * fCanvas
TCanvas * fCanvas
TGCheckButton * fChkBtnAutoRotate
TGCheckButton * fChkBtnAutoRotate
TGCheckButton * fChkBtnAxis
TGCheckButton * fChkBtnAxis
TGCheckButton * fChkBtnBeamPipe
TGCheckButton * fChkBtnBeamPipe
TGCheckButton * fChkBtnEmcBarrel
TGCheckButton * fChkBtnEmcBarrel
TGCheckButton * fChkBtnEmcEast
TGCheckButton * fChkBtnEmcEast
TGCheckButton * fChkBtnEmcGlobal
TGCheckButton * fChkBtnEmcGlobal
TGCheckButton * fChkBtnEmcHitsBarrel
TGCheckButton * fChkBtnEmcHitsBarrel
TGCheckButton * fChkBtnEmcHitsEast
TGCheckButton * fChkBtnEmcHitsEast
TGCheckButton * fChkBtnEmcHitsGlobal
TGCheckButton * fChkBtnEmcHitsGlobal
TGCheckButton * fChkBtnEmcHitsSide
TGCheckButton * fChkBtnEmcHitsSide
TGCheckButton * fChkBtnEmcHitsWest
TGCheckButton * fChkBtnEmcHitsWest
TGCheckButton * fChkBtnEmcSide
TGCheckButton * fChkBtnEmcSide
TGCheckButton * fChkBtnEmcWest
TGCheckButton * fChkBtnEmcWest
TGCheckButton * fChkBtnHeaderGlobal
TGCheckButton * fChkBtnHeaderGlobal
TGCheckButton * fChkBtnMdcGlobal
TGCheckButton * fChkBtnMdcGlobal
TGCheckButton * fChkBtnMdcHitsGlobal
TGCheckButton * fChkBtnMdcHitsGlobal
TGCheckButton * fChkBtnMdcQMatchGlobal
TGCheckButton * fChkBtnMdcQMatchGlobal
TGCheckButton * fChkBtnMdcTMatchGlobal
TGCheckButton * fChkBtnMdcTMatchGlobal
TGCheckButton * fChkBtnMdcTubes
TGCheckButton * fChkBtnMdcTubes
TGCheckButton * fChkBtnMdcWires
TGCheckButton * fChkBtnMdcWires
TGCheckButton * fChkBtnMucBarrel
TGCheckButton * fChkBtnMucBarrel
TGCheckButton * fChkBtnMucEast
TGCheckButton * fChkBtnMucEast
TGCheckButton * fChkBtnMucGlobal
TGCheckButton * fChkBtnMucGlobal
TGCheckButton * fChkBtnMucHitsBarrel
TGCheckButton * fChkBtnMucHitsBarrel
TGCheckButton * fChkBtnMucHitsEast
TGCheckButton * fChkBtnMucHitsEast
TGCheckButton * fChkBtnMucHitsGlobal
TGCheckButton * fChkBtnMucHitsGlobal
TGCheckButton * fChkBtnMucHitsWest
TGCheckButton * fChkBtnMucHitsWest
TGCheckButton * fChkBtnMucStrips
TGCheckButton * fChkBtnMucStrips
TGCheckButton * fChkBtnMucWest
TGCheckButton * fChkBtnMucWest
TGCheckButton * fChkBtnTofBarrel
TGCheckButton * fChkBtnTofBarrel
TGCheckButton * fChkBtnTofEast
TGCheckButton * fChkBtnTofEast
TGCheckButton * fChkBtnTofGlobal
TGCheckButton * fChkBtnTofGlobal
TGCheckButton * fChkBtnTofHitsBarrel
TGCheckButton * fChkBtnTofHitsBarrel
TGCheckButton * fChkBtnTofHitsEast
TGCheckButton * fChkBtnTofHitsEast
TGCheckButton * fChkBtnTofHitsGlobal
TGCheckButton * fChkBtnTofHitsGlobal
TGCheckButton * fChkBtnTofHitsWest
TGCheckButton * fChkBtnTofHitsWest
TGCheckButton * fChkBtnTofQMatchGlobal
TGCheckButton * fChkBtnTofQMatchGlobal
TGCheckButton * fChkBtnTofTMatchGlobal
TGCheckButton * fChkBtnTofTMatchGlobal
TGCheckButton * fChkBtnTofWest
TGCheckButton * fChkBtnTofWest
TGCheckButton * fChkBtnTracksEmc
TGCheckButton * fChkBtnTracksEmc
TGCheckButton * fChkBtnTracksExt
TGCheckButton * fChkBtnTracksExt
TGCheckButton * fChkBtnTracksGlobal
TGCheckButton * fChkBtnTracksGlobal
TGCheckButton * fChkBtnTracksMdc
TGCheckButton * fChkBtnTracksMdc
TGCheckButton * fChkBtnTracksMuc
TGCheckButton * fChkBtnTracksMuc
TGCheckButton * fChkBtnTracksTof
TGCheckButton * fChkBtnTracksTof
TGCheckButton * fChkBtnZRPlaneOnXY
TGCheckButton * fChkBtnZRPlaneOnXY
Long64_t fCurrentEvent
BesGPictureButtonfCursorButton [kNCursorState]
BesGPictureButtonfCursorButton [kNCursorState]
TDigiEventfDigiEvent
TDigiEventfDigiEvent
BesVisDisplayfDisplay
BesVisDisplayfDisplay
TGCompositeFrame * fDisplayModeBarFrame
TGCompositeFrame * fDisplayModeBarFrame
TGLayoutHints * fDisplayModeBarItemLayout
TGLayoutHints * fDisplayModeBarItemLayout
BesGPictureButtonfDisplayModeButton [kNDisplayMode]
BesGPictureButtonfDisplayModeButton [kNDisplayMode]
TGLayoutHints * fECLayout
TGLayoutHints * fECLayout
TRootEmbeddedCanvas * fEmbeddedCanvas
TRootEmbeddedCanvas * fEmbeddedCanvas
BesEventfEvent
BesEventfEvent
TGCompositeFrame * fEventControlFrame
TGCompositeFrame * fEventControlFrame
TGCompositeFrame * fEventControlTextFrame
TGCompositeFrame * fEventControlTextFrame
TGLabel * fEventControlTextLabel
TGLabel * fEventControlTextLabel
TGCompositeFrame * fEventDownFrame
TGCompositeFrame * fEventDownFrame
TFile * fEventFile
TFile * fEventFile
TGCompositeFrame * fEventListContentFrame
TGCompositeFrame * fEventListContentFrame
TGCompositeFrame * fEventListFrame
TGCompositeFrame * fEventListFrame
TGCompositeFrame * fEventListTextFrame
TGCompositeFrame * fEventListTextFrame
TGLabel * fEventListTextLabel
TGLabel * fEventListTextLabel
TGListTree * fEventListTree
TGListTree * fEventListTree
TGCanvas * fEventListView
TGCanvas * fEventListView
TGCompositeFrame * fEventNavFrame
TGCompositeFrame * fEventNavFrame
TGCompositeFrame * fEventPlayButtonFrame
TGCompositeFrame * fEventPlayButtonFrame
TGHSlider * fEventPlaySlider
TGHSlider * fEventPlaySlider
Int_t fEventPlaySpeed
TGCompositeFrame * fEventPlaySpeedFrame
TGCompositeFrame * fEventPlaySpeedFrame
TGLabel * fEventPlaySpeedLabel
TGLabel * fEventPlaySpeedLabel
TGCompositeFrame * fEventPlayTextFrame
TGCompositeFrame * fEventPlayTextFrame
TGLabel * fEventPlayTextLabel
TGLabel * fEventPlayTextLabel
TTree * fEventTree
TTree * fEventTree
TEvtHeaderfEvtHeader
TEvtHeaderfEvtHeader
BesGPictureButtonfFirstEventButton
BesGPictureButtonfFirstEventButton
BesGPictureButtonfFishEyeViewButton
BesGPictureButtonfFishEyeViewButton
TGGroupFrame * fFrameAutoRotate
TGGroupFrame * fFrameAutoRotate
TGGroupFrame * fFrameHeader
TGGroupFrame * fFrameHeader
TGGroupFrame * fFrameHits
TGGroupFrame * fFrameHits
TGGroupFrame * fFrameMagnetic
TGGroupFrame * fFrameMagnetic
TGGroupFrame * fFrameMdcMatch
TGGroupFrame * fFrameMdcMatch
TGGroupFrame * fFrameOthers
TGGroupFrame * fFrameOthers
TGGroupFrame * fFrameSubDetector
TGGroupFrame * fFrameSubDetector
TGGroupFrame * fFrameTofMatch
TGGroupFrame * fFrameTofMatch
TGGroupFrame * fFrameTracks
TGGroupFrame * fFrameTracks
TFile * fGeoFile
TFile * fGeoFile
TGeometry * fGeometry
TGeometry * fGeometry
BesGPictureButtonfGoHomeButton
BesGPictureButtonfGoHomeButton
BesGPictureButtonfHelpButton
BesGPictureButtonfHelpButton
Double_t fHomeX [3]
Double_t fHomeY [3]
TGListTreeItem * fItem
TGListTreeItem * fItem
TGLayoutHints * fLayout
TGLayoutHints * fLayout
BesGPictureButtonfLoadGeoFileButton
BesGPictureButtonfLoadGeoFileButton
BesGPictureButtonfLoadMyConfigButton
BesGPictureButtonfLoadMyConfigButton
TGHorizontalFrame * fMainFrame
TGHorizontalFrame * fMainFrame
BesGMenuBarfMenuBar
BesGMenuBarfMenuBar
TGLayoutHints * fMenuBarFirstItemLayout
TGLayoutHints * fMenuBarFirstItemLayout
TGLayoutHints * fMenuBarItemLayout
TGLayoutHints * fMenuBarItemLayout
TGLayoutHints * fMenuBarLastItemLayout
TGLayoutHints * fMenuBarLastItemLayout
TGLayoutHints * fMenuBarLayout
TGLayoutHints * fMenuBarLayout
TGPopupMenu * fMenuEdit
TGPopupMenu * fMenuEdit
TGPopupMenu * fMenuFile
TGPopupMenu * fMenuFile
TGPopupMenu * fMenuHelp
TGPopupMenu * fMenuHelp
TGPopupMenu * fMenuView
TGPopupMenu * fMenuView
TGPopupMenu * fMenuViewOptionEmc
TGPopupMenu * fMenuViewOptionEmc
TGPopupMenu * fMenuViewOptionEmcHits
TGPopupMenu * fMenuViewOptionEmcHits
TGPopupMenu * fMenuViewOptionFull3D
TGPopupMenu * fMenuViewOptionFull3D
TGPopupMenu * fMenuViewOptionHeader
TGPopupMenu * fMenuViewOptionHeader
TGPopupMenu * fMenuViewOptionMdc
TGPopupMenu * fMenuViewOptionMdc
TGPopupMenu * fMenuViewOptionMdcHits
TGPopupMenu * fMenuViewOptionMdcHits
TGPopupMenu * fMenuViewOptionMuc
TGPopupMenu * fMenuViewOptionMuc
TGPopupMenu * fMenuViewOptionMucHits
TGPopupMenu * fMenuViewOptionMucHits
TGPopupMenu * fMenuViewOptionOthers
TGPopupMenu * fMenuViewOptionOthers
TGPopupMenu * fMenuViewOptionTof
TGPopupMenu * fMenuViewOptionTof
TGPopupMenu * fMenuViewOptionTofHits
TGPopupMenu * fMenuViewOptionTofHits
TGPopupMenu * fMenuViewOptionTracks
TGPopupMenu * fMenuViewOptionTracks
Double_t fMoveFactor
BesGPictureButtonfNextEventButton
BesGPictureButtonfNextEventButton
TGNumberEntry * fNumEntryEventNo
TGNumberEntry * fNumEntryEventNo
TGNumberEntry * fNumEntryEventPlaySpeed
TGNumberEntry * fNumEntryEventPlaySpeed
TGNumberEntry * fNumEntryMagnetic
TGNumberEntry * fNumEntryMagnetic
TGNumberEntry * fNumEntryRotateFPS
TGNumberEntry * fNumEntryRotateFPS
TGNumberEntryField * fNumEntryRotateSpeed
TGNumberEntryField * fNumEntryRotateSpeed
TGNumberEntryField * fNumEntryRotateStep
TGNumberEntryField * fNumEntryRotateStep
TGNumberEntry * fNumEntryRunNo
TGNumberEntry * fNumEntryRunNo
BesGPictureButtonfOpenEventFileButton
BesGPictureButtonfOpenEventFileButton
BesGPictureButtonfOpenGLButton
BesGPictureButtonfOpenGLButton
BesGPictureButtonfParallelViewButton
BesGPictureButtonfParallelViewButton
BesGPictureButtonfPerspectiveViewButton
BesGPictureButtonfPerspectiveViewButton
BesGPictureButtonfPlayEventButton
BesGPictureButtonfPlayEventButton
BesGPictureButtonfPrevEventButton
BesGPictureButtonfPrevEventButton
TRecTrackEventfRecEvent_1
TRecTrackEventfRecEvent_1
BesGPictureButtonfRefreshButton
BesGPictureButtonfRefreshButton
BesGPictureButtonfResetAllButton
BesGPictureButtonfResetAllButton
BesGPictureButtonfResetCurrentButton
BesGPictureButtonfResetCurrentButton
Int_t fRotateFPS
TGCompositeFrame * fRotateFPSFrame
TGCompositeFrame * fRotateFPSFrame
TGLabel * fRotateFPSLabel
TGLabel * fRotateFPSLabel
Double_t fRotateSpeed
TGCompositeFrame * fRotateSpeedFrame
TGCompositeFrame * fRotateSpeedFrame
TGLabel * fRotateSpeedLabel
TGLabel * fRotateSpeedLabel
Double_t fRotateStep
TGCompositeFrame * fRotateStepFrame
TGCompositeFrame * fRotateStepFrame
TGLabel * fRotateStepLabel
TGLabel * fRotateStepLabel
TGLabel * fRotateStepUnitLabel
TGLabel * fRotateStepUnitLabel
TGListTreeItem * fRunItem
TGListTreeItem * fRunItem
BesGPictureButtonfSaveGeoAsButton
BesGPictureButtonfSaveGeoAsButton
BesGPictureButtonfSaveMyConfigButton
BesGPictureButtonfSaveMyConfigButton
BesGPictureButtonfSavePicAsButton
BesGPictureButtonfSavePicAsButton
BesGPictureButtonfSavePicAsPSButton
BesGPictureButtonfSavePicAsPSButton
BesGPictureButtonfSetHomeButton
BesGPictureButtonfSetHomeButton
BesGPictureButtonfShowAxisButton
BesGPictureButtonfShowAxisButton
BesGPictureButtonfShowInfoButton
BesGPictureButtonfShowInfoButton
TGStatusBar * fStatusBar
TGStatusBar * fStatusBar
BesGPictureButtonfSwitchDisplayModeButton
BesGPictureButtonfSwitchDisplayModeButton
BesGPictureButtonfSwitchPadButton
BesGPictureButtonfSwitchPadButton
TGTab * fTabs
TGTab * fTabs
TGHorizontalFrame * fTitleFrame
TGHorizontalFrame * fTitleFrame
TGLayoutHints * fToolBarFirstItemLayout
TGLayoutHints * fToolBarFirstItemLayout
TGCompositeFrame * fToolBarFrame
TGCompositeFrame * fToolBarFrame
TGLayoutHints * fToolBarItemLayout
TGLayoutHints * fToolBarItemLayout
TGLayoutHints * fToolBarLastItemLayout
TGLayoutHints * fToolBarLastItemLayout
BesGPictureButtonfToolButtonSplitter [kNToolSplitter]
BesGPictureButtonfToolButtonSplitter [kNToolSplitter]
TGLayoutHints * fUpButtonBarFirstItemLayout
TGLayoutHints * fUpButtonBarFirstItemLayout
TGCompositeFrame * fUpButtonBarFrame
TGCompositeFrame * fUpButtonBarFrame
TGLayoutHints * fUpButtonBarItemLayout
TGLayoutHints * fUpButtonBarItemLayout
TGLayoutHints * fUpButtonBarLastItemLayout
TGLayoutHints * fUpButtonBarLastItemLayout
BesGPictureButtonfUpButtonSplitter [kNUpSplitter]
BesGPictureButtonfUpButtonSplitter [kNUpSplitter]
TGVerticalFrame * fV1
TGVerticalFrame * fV1
TGCompositeFrame * fViewAngleFrame
TGCompositeFrame * fViewAngleFrame
TGCompositeFrame * fViewAnglePhiFrame
TGCompositeFrame * fViewAnglePhiFrame
TGLabel * fViewAnglePhiLabel
TGLabel * fViewAnglePhiLabel
BesGPictureButtonfViewAnglePhiMinusButton
BesGPictureButtonfViewAnglePhiMinusButton
TGNumberEntryField * fViewAnglePhiNumber
TGNumberEntryField * fViewAnglePhiNumber
BesGPictureButtonfViewAnglePhiPlusButton
BesGPictureButtonfViewAnglePhiPlusButton
TGVSlider * fViewAnglePhiSlider
TGVSlider * fViewAnglePhiSlider
TGCompositeFrame * fViewAnglePsiFrame
TGCompositeFrame * fViewAnglePsiFrame
TGLabel * fViewAnglePsiLabel
TGLabel * fViewAnglePsiLabel
BesGPictureButtonfViewAnglePsiMinusButton
BesGPictureButtonfViewAnglePsiMinusButton
TGNumberEntryField * fViewAnglePsiNumber
TGNumberEntryField * fViewAnglePsiNumber
BesGPictureButtonfViewAnglePsiPlusButton
BesGPictureButtonfViewAnglePsiPlusButton
TGVSlider * fViewAnglePsiSlider
TGVSlider * fViewAnglePsiSlider
TGCompositeFrame * fViewAngleThetaFrame
TGCompositeFrame * fViewAngleThetaFrame
TGLabel * fViewAngleThetaLabel
TGLabel * fViewAngleThetaLabel
BesGPictureButtonfViewAngleThetaMinusButton
BesGPictureButtonfViewAngleThetaMinusButton
TGNumberEntryField * fViewAngleThetaNumber
TGNumberEntryField * fViewAngleThetaNumber
BesGPictureButtonfViewAngleThetaPlusButton
BesGPictureButtonfViewAngleThetaPlusButton
TGVSlider * fViewAngleThetaSlider
TGVSlider * fViewAngleThetaSlider
BesGPictureButtonfViewClockWiseButton
BesGPictureButtonfViewClockWiseButton
TGCompositeFrame * fViewContent1Frame
TGCompositeFrame * fViewContent1Frame
TGCompositeFrame * fViewContent2Frame
TGCompositeFrame * fViewContent2Frame
TGCompositeFrame * fViewContent3Frame
TGCompositeFrame * fViewContent3Frame
TGCompositeFrame * fViewContentFrame
TGCompositeFrame * fViewContentFrame
BesGPictureButtonfViewCounterClockWiseButton
BesGPictureButtonfViewCounterClockWiseButton
Int_t fViewer3DMode
TGCompositeFrame * fViewFrame
TGCompositeFrame * fViewFrame
BesGPictureButtonfViewMoveCenterButton
BesGPictureButtonfViewMoveCenterButton
BesGPictureButtonfViewMoveDownButton
BesGPictureButtonfViewMoveDownButton
BesGPictureButtonfViewMoveLeftButton
BesGPictureButtonfViewMoveLeftButton
BesGPictureButtonfViewMoveRightButton
BesGPictureButtonfViewMoveRightButton
BesGPictureButtonfViewMoveUpButton
BesGPictureButtonfViewMoveUpButton
Double_t fViewPhiPreStep
BesGPictureButtonfViewResetAngleButton
BesGPictureButtonfViewResetAngleButton
TGCompositeFrame * fViewTextFrame
TGCompositeFrame * fViewTextFrame
TGLabel * fViewTextLabel
TGLabel * fViewTextLabel
Double_t fViewThetaPreStep
TList * fWidgets
TList * fWidgets
Int_t fWindowHeight
Int_t fWindowWidth
BesGPictureButtonfX3DButton
BesGPictureButtonfX3DButton
BesGPictureButtonfZoomInButton
BesGPictureButtonfZoomInButton
BesGPictureButtonfZoomOutButton
BesGPictureButtonfZoomOutButton
TGNumberEntryField * fZoomRatioNumber
TGNumberEntryField * fZoomRatioNumber
BesGPictureButtonfZoomRatioPercentButton
BesGPictureButtonfZoomRatioPercentButton
TRecMdcHitmdchit
TRecMdcHitmdchit
TRecMucTrackmuctrk
TRecMucTrackmuctrk
TRecMdcTrackrecTrack1
TRecMdcTrackrecTrack1
TRecTofTracktofTrack
TRecTofTracktofTrack

Static Private Attributes

const int kNCursorState = 2
const int kNDisplayMode = 5
const int kNToolSplitter = 4
const int kNUpSplitter = 4


Constructor & Destructor Documentation

BesClient::BesClient const TGWindow *  p,
const char *  title,
UInt_t  width,
UInt_t  height,
Option_t *  option = "",
Int_t  argc = 0,
char **  argv = 0
 

00130                                                                                              :
00131         TGMainFrame(p, width, height) {
00132 
00133     //
00134     // BesClient default contructor
00135     if ( gDebug ) cout << "BesClient ctor called" << endl;
00136 
00138     //acquire.sem_num = 0;
00139     //acquire.sem_op = -1;
00140     //acquire.sem_flg = SEM_UNDO;
00141 
00143     //release.sem_num = 0;
00144     //release.sem_op = 1;
00145     //release.sem_flg = SEM_UNDO;
00146     //recdis = NULL;
00147     recTrack1 = NULL;
00148     mdchit = NULL;
00149     tofTrack = NULL;
00150     muctrk = NULL;
00151     emcshower = NULL;
00152     //  fRecEvent_1 =0;
00153 
00154 
00155     fEventTree  = 0;
00156 
00157     // init parameters
00158     this->InitParameter();
00159 
00160     // init local variables
00161     this->InitLocal();
00162 
00163     // Create toplevel widget
00164     this->CreateWidget(title, fWindowWidth, fWindowHeight);
00165 
00166     // connections to messaging queues
00167     this->InitConnections();
00168 
00169     this->SetBackgroundPixmap(GetPic("background.gif"));
00170 
00171     f_bossMode = false;
00172     int optchar;
00173     static char optstring[] = "g:e:B:";
00174     opterr = 0;
00175     fEventFile = NULL;
00176 
00177     // detail information about getopt can be get by man order in shell
00178     while ((optchar = getopt(argc, argv, optstring)) != -1)
00179         switch (optchar) {
00180         case 'g':
00181             f_geoFile = optarg;
00182             cout << "Load Geometry file with arguments" << endl;
00183             cout << "Geofile: " << f_geoFile << endl;
00184             break;
00185         case 'e':
00186             f_evtFile = optarg;
00187             cout << "Load Event file with argments" << endl;
00188             cout << "Evtfile: " << f_evtFile << endl;
00189             break;
00190         case 'B':
00191             f_bossMode = true;
00192             f_pid = atoi(optarg);
00193             cout << "Run in the Boss Framework: " << f_bossMode << endl;
00194             cout << "parent pid: " << f_pid << endl;
00195             break;
00196         case '?':
00197             cout << "Found an option that was not in optstring!" << endl;
00198         }
00199     if (optind < argc)
00200         cout << "Left off at: " << argv[optind] << endl;
00201 
00202     this->LoadGeoFile();
00203 
00204     if ( f_bossMode == false){
00205         if ( f_evtFile.Length() != 0){
00206             this->OpenEventFile(f_evtFile);
00207             //  this->GetEvent(0);
00208         }
00209     }
00210     else if (f_bossMode == true){
00211         fAutoDisplayEvent = kTRUE;
00212         f_runStatus = RUN_SMOOTH;
00213         cout << "Load event file: " << f_evtFile << endl;
00214         fCurrentEvent = 0;
00215         this->GetRecEvent();
00216     }
00217 
00218     this->UpdateStatus();
00219 }

BesClient::~BesClient  )  [virtual]
 

00223                       {
00224     //
00225     // BesClient standard destructor
00226     if ( gDebug ) {
00227         cout << "BesClient dtor called" << endl;
00228     }
00229 
00230     fWidgets->Delete();
00231     delete fWidgets;
00232 }

BesClient::BesClient const TGWindow *  p,
const char *  title,
UInt_t  width,
UInt_t  height,
Option_t *  option = "",
Int_t  argc = 0,
char **  argv = 0
 

virtual BesClient::~BesClient  )  [virtual]
 


Member Function Documentation

virtual void BesClient::AutoDisplayEvent  )  [virtual]
 

void BesClient::AutoDisplayEvent  )  [virtual]
 

03686 {
03687   //if (fEventTree) {
03688   fAutoDisplayEvent = !fAutoDisplayEvent;
03689   std::cout << "(AutoDisplayEvent)fAutoDisplayEvent: " << fAutoDisplayEvent << std::endl;
03690   if (fAutoDisplayEventTimer) {
03691     if (fAutoDisplayEvent) {
03692       fPlayEventButton->SetPicture(gClient->GetPicture("ButtonEventStop.gif"));
03693       fAutoDisplayEventTimer->TurnOn();
03694     }
03695     else {
03696       fPlayEventButton->SetPicture(gClient->GetPicture("ButtonEventPlay.gif"));
03697       fAutoDisplayEventTimer->TurnOff();
03698     }
03699   }
03700   //}
03701 
03702   /*
03703      fAutoDisplayEvent = kTRUE;
03704      if (gDebug) cout << "Into AutoDisplayEvent(), fAutoDisplayEvent = " << fAutoDisplayEvent << " fEventPlaySpeed " << fEventPlaySpeed << endl;
03705 
03706      if (fAutoDisplayEventTimer) fAutoDisplayEventTimer->TurnOn();
03707      */
03708 }

virtual void BesClient::AutoDisplayEventCommand  )  [virtual]
 

void BesClient::AutoDisplayEventCommand  )  [virtual]
 

03713 {
03714   NextEvent();
03715   UpdateBesInputFields();
03716 }

virtual void BesClient::AutoRotate  )  [virtual]
 

void BesClient::AutoRotate  )  [virtual]
 

03721 {
03722   fAutoRotate = !fAutoRotate;
03723 
03724   if (!fAutoRotate) {
03725     fAutoRotateClockWise = 0;
03726     fAutoRotateTheta = 0;
03727     fAutoRotatePhi   = 0;
03728     fAutoRotatePsi   = 0;
03729   }
03730 
03731   if (fAutoRotateTimer) {
03732     if (fAutoRotate) fAutoRotateTimer->TurnOn();
03733     else fAutoRotateTimer->TurnOff();
03734   }
03735 }

virtual void BesClient::AutoRotateCommand  )  [virtual]
 

void BesClient::AutoRotateCommand  )  [virtual]
 

03740 {
03741   if (fAutoRotateClockWise != 0) {
03742     RotateClockWise(fAutoRotateClockWise);
03743   }
03744 
03745   if (fAutoRotateTheta != 0) {
03746     RotateTheta(fAutoRotateTheta);
03747   }
03748 
03749   if (fAutoRotatePhi != 0) {
03750     RotatePhi(fAutoRotatePhi);
03751   }
03752 
03753   if (fAutoRotatePsi != 0) {
03754     RotatePsi(fAutoRotatePsi);
03755   }
03756 
03757   /*
03758      Int_t iret;
03759      if (fDisplay->GetPadXY()->GetView()) {
03760      fDisplay->GetPadXY()->GetView()->SetView(fDisplay->GetPadXY()->GetView()->GetLongitude()+fRotateStep,
03761      fDisplay->GetPadXY()->GetView()->GetLatitude(),
03762      fDisplay->GetPadXY()->GetView()->GetPsi(), iret);
03763      fDisplay->GetPadXY()->Modified();
03764      fDisplay->GetPadXY()->Update();
03765      }
03766      if (fDisplay->GetPadZR()->GetView()) {
03767      fDisplay->GetPadZR()->GetView()->SetView(fDisplay->GetPadZR()->GetView()->GetLongitude()+fRotateStep,
03768      fDisplay->GetPadZR()->GetView()->GetLatitude(),
03769      fDisplay->GetPadZR()->GetView()->GetPsi(), iret);
03770      fDisplay->GetPadZR()->Modified();
03771      fDisplay->GetPadZR()->Update();
03772      }
03773      */
03774 
03775   UpdateCurrentPad();
03776   UpdateBesInputFields();
03777 }

virtual void BesClient::ChangeFocus  )  [virtual]
 

void BesClient::ChangeFocus  )  [virtual]
 

05207                               {
05208     //
05209     // change focus on pressed tab
05210     if (gDebug) cout << "BesClient::ChangeFocus called!" << endl;
05211 
05212     if ( gTQSender == fNumEntryRunNo->GetNumberEntry() ) {
05213       fNumEntryEventNo->GetNumberEntry()->SelectAll();
05214       fNumEntryEventNo->GetNumberEntry()->SetFocus();
05215     }
05216     else if ( gTQSender == fNumEntryEventPlaySpeed->GetNumberEntry() ) {
05217       fNumEntryEventPlaySpeed->GetNumberEntry()->SelectAll();
05218       fNumEntryEventPlaySpeed->GetNumberEntry()->SetFocus();
05219     }
05220     else if ( gTQSender == fNumEntryMagnetic->GetNumberEntry() ) {
05221       fNumEntryMagnetic->GetNumberEntry()->SelectAll();
05222       fNumEntryMagnetic->GetNumberEntry()->SetFocus();
05223     }
05224   }

virtual void BesClient::CloseWindow  )  [virtual]
 

void BesClient::CloseWindow  )  [virtual]
 

03305                             {
03306     //
03307     // Got close message for this MainFrame. Calls parent CloseWindow())
03308     // (which destroys the window) and terminate the application.
03309     // The close message is generated by the window manager when its close
03310     // window menu item is selected.
03311     TGMainFrame::CloseWindow();
03312     gApplication->Terminate(0);  // 0 = OK
03313 }

virtual void BesClient::CreateCanvas  )  [virtual]
 

void BesClient::CreateCanvas  )  [virtual]
 

01047                              {
01048     //
01049     // Create the embedded canvas
01050     // Create embedded canvas
01051     fECLayout =  new TGLayoutHints( kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0);
01052     fEmbeddedCanvas = new TRootEmbeddedCanvas(0, fMainFrame, fMainFrame->GetWidth()/4*3-12, fMainFrame->GetHeight()-46);
01053     Int_t wid = fEmbeddedCanvas->GetCanvasWindowId();
01054     fCanvas = new TCanvas("BesVis", fEmbeddedCanvas->GetWidth(), fEmbeddedCanvas->GetHeight()-10, wid);
01055     fEmbeddedCanvas->AdoptCanvas(fCanvas);
01056     fCanvas->cd();
01057 
01058     fDisplay = new BesVisDisplay("BESIII Event Display");
01059     fDisplay->SetCanvas(fCanvas);
01060     fDisplay->Init();
01061 
01062 }

virtual void BesClient::CreateDisplayModeBar  )  [virtual]
 

void BesClient::CreateDisplayModeBar  )  [virtual]
 

00810                                      {
00811 
00812     fDisplayModeBarFrame = new TGCompositeFrame(this, 300, 16, kHorizontalFrame);
00813     fDisplayModeBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 0, 0);
00814 
00815     fDisplayModeButton[0] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayMode2DST.gif"), kM_Button_DisplayMode2D);
00816     fDisplayModeButton[1] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayModeXY.gif"),  kM_Button_DisplayModeXY);
00817     fDisplayModeButton[2] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayModeZR.gif"),  kM_Button_DisplayModeZR);
00818     fDisplayModeButton[3] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayMode3D.gif"),  kM_Button_DisplayMode3D);
00819     fDisplayModeButton[4] = new BesGPictureButton(fDisplayModeBarFrame, gClient->GetPicture("DisplayModeAll.gif"), kM_Button_DisplayModeAll);
00820 
00821     fDisplayModeButton[0]->SetState(true);
00822     fDisplayModeButton[1]->SetState(false);
00823     fDisplayModeButton[2]->SetState(false);
00824     fDisplayModeButton[3]->SetState(false);
00825     fDisplayModeButton[4]->SetState(false);
00826 
00827     fDisplayModeButton[0]->SetPictureHL(gClient->GetPicture("DisplayMode2DHL.gif"));
00828     fDisplayModeButton[1]->SetPictureHL(gClient->GetPicture("DisplayModeXYHL.gif"));
00829     fDisplayModeButton[2]->SetPictureHL(gClient->GetPicture("DisplayModeZRHL.gif"));
00830     fDisplayModeButton[3]->SetPictureHL(gClient->GetPicture("DisplayMode3DHL.gif"));
00831     fDisplayModeButton[4]->SetPictureHL(gClient->GetPicture("DisplayModeAllHL.gif"));
00832 
00833     fDisplayModeButton[0]->SetToolTipText("XY+ZR view");
00834     fDisplayModeButton[1]->SetToolTipText("XY view");
00835     fDisplayModeButton[2]->SetToolTipText("ZR view");
00836     fDisplayModeButton[3]->SetToolTipText("3D view");
00837     fDisplayModeButton[4]->SetToolTipText("All view");
00838 
00839     Int_t width = 16, height = 16;
00840     for (Int_t i = 0; i < kNDisplayMode; i++) {
00841         fDisplayModeButton[i]->SetState(kButtonUp);
00842         fDisplayModeButton[i]->SetHeight(height);
00843         fDisplayModeButton[i]->SetWidth(width);
00844         fDisplayModeButton[i]->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00845         fDisplayModeBarFrame->AddFrame(fDisplayModeButton[i], fDisplayModeBarItemLayout);
00846     }
00847 }

virtual void BesClient::CreateHorizontalRuler  )  [virtual]
 

void BesClient::CreateHorizontalRuler  )  [virtual]
 

00308                                       {
00309     //
00310     // Add horizontal ruler
00311     // cout << " horizontal ruler" << endl;
00312     fLayout = new TGLayoutHints(kLHintsExpandX, 2, 2, 0, 0);
00313     fWidgets->Add(fLayout);
00314     this->AddFrame(new TGHorizontal3DLine(this), fLayout);
00315 }

virtual void BesClient::CreateMainFrame  )  [virtual]
 

void BesClient::CreateMainFrame  )  [virtual]
 

01009                                 {
01010     //
01011     // Create main frame containing a tab list,
01012     // the canvas and a toolbar
01013     fMainFrame = new TGHorizontalFrame(this, this->GetWidth(), this->GetHeight()-26);
01014 
01015     // This vertical frame is needed for splitter
01016     fV1 = new TGVerticalFrame(fMainFrame, 250, fMainFrame->GetHeight(), kFixedWidth);
01017 
01018     // Create display tabs
01019     CreateCanvas();
01020 
01021     // Create control tabs
01022     CreateTabs();
01023 
01024     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 0, 2, 0, 0);
01025     fWidgets->Add(fLayout);
01026     fV1->AddFrame(fTabs, fLayout);
01027 
01028     // Configure Splitter
01029     //   fV1->Resize(fTabs->GetWidth(), fV1->GetDefaultHeight());
01030 
01031     fMainFrame->AddFrame(fEmbeddedCanvas, fECLayout);
01032 
01033     fLayout = new TGLayoutHints(kLHintsRight | kLHintsExpandY);
01034     fWidgets->Add(fLayout);
01035     fMainFrame->AddFrame(fV1, fLayout);
01036 
01037     TGVSplitter *VSplitter = new TGVSplitter(fMainFrame);
01038     VSplitter->SetFrame(fV1, kFALSE);
01039     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsExpandY);
01040     fWidgets->Add(fLayout);
01041     fMainFrame->AddFrame(VSplitter, fLayout);
01042 }

virtual void BesClient::CreateMenuBar  )  [virtual]
 

void BesClient::CreateMenuBar  )  [virtual]
 

00319                               {
00320     //
00321     // Create the menu bar and popup menus
00322 
00323     // Layouts
00324     fMenuBarFirstItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft,
00325             30, 0, 1, 2);
00326     fMenuBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft,
00327                                            20, 0, 1, 2);
00328     fMenuBarLastItemLayout = new TGLayoutHints(kLHintsTop | kLHintsRight,
00329             20, 20, 1, 2);
00330 
00331     //const TGPicture *label2 = gClient->GetPicture("popMenuLabel2.gif");
00332     const TGPicture *viewGeometryIcon = gClient->GetPicture("viewGeometry.gif");
00333     //const TGPicture *normalPopupEntryIcon = gClient->GetPicture("normalPopupEntry1.gif");
00334 
00335     //
00336     // File menu
00337     // =========
00338     fMenuFile = new TGPopupMenu(gClient->GetRoot());
00339     //fMenuFile->SetBackgroundPixmap(GetPic("2.gif"));
00340     fMenuFile->AddEntry("Load &Geometry File...", kM_File_LoadGeo);
00341     fMenuFile->AddEntry("&Save Geometry as...", kM_File_SaveGeoAs);
00342     fMenuFile->AddEntry("Load &Event File...", kM_File_OpenEvent);
00343     fMenuFile->AddEntry("Save &Picture as...", kM_File_SavePicAs);
00344     fMenuFile->AddSeparator();
00345     fMenuFile->AddEntry("&Quit BesVis",   kM_File_Exit);
00346 
00347     //
00348     // Edit menu
00349     // =========
00350     fMenuEdit = new TGPopupMenu(gClient->GetRoot());
00351     //fMenuEdit->SetBackgroundPixmap(GetPic("popMenuBorder.gif"));
00352     fMenuEdit->AddEntry("&Editor", kM_Edit_Editor);
00353 
00354     //
00355     // View-Option Header menu
00356     // =======================
00357     fMenuViewOptionHeader = new TGPopupMenu(gClient->GetRoot());
00358     fMenuViewOptionHeader->AddEntry("Show Header",kM_Header_On);
00359 
00360     //
00361     // View-Option Mdc menu
00362     // ====================
00363     fMenuViewOptionMdc = new TGPopupMenu(gClient->GetRoot());
00364     fMenuViewOptionMdc->AddEntry("Global", kM_Mdc_Global);
00365     fMenuViewOptionMdc->AddEntry("Tube",   kM_Mdc_Tubes);
00366     fMenuViewOptionMdc->AddEntry("Wires",  kM_Mdc_Wires);
00367     //
00368     // View-Option Tof menu
00369     // ====================
00370     fMenuViewOptionTof = new TGPopupMenu(gClient->GetRoot());
00371     fMenuViewOptionTof->AddEntry("Global", kM_Tof_Global);
00372     fMenuViewOptionTof->AddEntry("East",   kM_Tof_East);
00373     fMenuViewOptionTof->AddEntry("Barrel", kM_Tof_Barrel);
00374     fMenuViewOptionTof->AddEntry("West",   kM_Tof_West);
00375     //
00376     // View-Option Emc menu
00377     // ====================
00378     fMenuViewOptionEmc = new TGPopupMenu(gClient->GetRoot());
00379     fMenuViewOptionEmc->AddEntry("Global", kM_Emc_Global);
00380     fMenuViewOptionEmc->AddEntry("East",   kM_Emc_East);
00381     fMenuViewOptionEmc->AddEntry("Barrel", kM_Emc_Barrel);
00382     fMenuViewOptionEmc->AddEntry("West",   kM_Emc_West);
00383     fMenuViewOptionEmc->AddEntry("Side",   kM_Emc_Side);
00384     //
00385     // View-Option Muc menu
00386     // ====================
00387     fMenuViewOptionMuc = new TGPopupMenu(gClient->GetRoot());
00388     fMenuViewOptionMuc->AddEntry("Global", kM_Muc_Global);
00389     fMenuViewOptionMuc->AddEntry("East",   kM_Muc_East);
00390     fMenuViewOptionMuc->AddEntry("Barrel", kM_Muc_Barrel);
00391     fMenuViewOptionMuc->AddEntry("West",   kM_Muc_West);
00392     fMenuViewOptionMuc->AddEntry("Strips", kM_Muc_Strips);
00393     //
00394     // View-Option Full3D menu
00395     // ====================
00396     fMenuViewOptionFull3D = new TGPopupMenu(gClient->GetRoot());
00397     fMenuViewOptionFull3D->AddEntry("Mdc", kM_Full3D_Mdc);
00398     fMenuViewOptionFull3D->AddEntry("Tof", kM_Full3D_Tof);
00399     fMenuViewOptionFull3D->AddEntry("Emc", kM_Full3D_Emc);
00400     fMenuViewOptionFull3D->AddEntry("Muc", kM_Full3D_Muc);
00401     //
00402     // View-Option Others menu
00403     // ====================
00404     fMenuViewOptionOthers = new TGPopupMenu(gClient->GetRoot());
00405     fMenuViewOptionOthers->AddEntry("BeamPipe",    kM_BeamPipe);
00406     fMenuViewOptionOthers->AddEntry("ZRPlaneOnXY", kM_ZRPlaneOnXY);
00407     fMenuViewOptionOthers->AddEntry("Axis",        kM_Axis);
00408 
00409     //
00410     // View-Option Mdc Hits menu
00411     // ====================
00412     fMenuViewOptionMdcHits = new TGPopupMenu(gClient->GetRoot());
00413     fMenuViewOptionMdcHits->AddEntry("Hits",kM_MdcHits_Hits);
00414     //
00415     // View-Option Tof Hits menu
00416     // =========================
00417     fMenuViewOptionTofHits = new TGPopupMenu(gClient->GetRoot());
00418     fMenuViewOptionTofHits->AddEntry("Global Hits", kM_TofHits_Global);
00419     fMenuViewOptionTofHits->AddEntry("East   Hits", kM_TofHits_East);
00420     fMenuViewOptionTofHits->AddEntry("Barrel Hits", kM_TofHits_Barrel);
00421     fMenuViewOptionTofHits->AddEntry("West   Hits", kM_TofHits_West);
00422     //
00423     // View-Option Emc Hits menu
00424     // =========================
00425     fMenuViewOptionEmcHits = new TGPopupMenu(gClient->GetRoot());
00426     fMenuViewOptionEmcHits->AddEntry("Global Hits", kM_EmcHits_Global);
00427     fMenuViewOptionEmcHits->AddEntry("East   Hits", kM_EmcHits_East);
00428     fMenuViewOptionEmcHits->AddEntry("Barrel Hits", kM_EmcHits_Barrel);
00429     fMenuViewOptionEmcHits->AddEntry("West   Hits", kM_EmcHits_West);
00430     fMenuViewOptionEmcHits->AddEntry("Side   Hits", kM_EmcHits_Side);
00431     //
00432     // View-Option Muc Hits menu
00433     // =========================
00434     fMenuViewOptionMucHits = new TGPopupMenu(gClient->GetRoot());
00435     fMenuViewOptionMucHits->AddEntry("Global Hits", kM_MucHits_Global);
00436     fMenuViewOptionMucHits->AddEntry("East   Hits", kM_MucHits_East);
00437     fMenuViewOptionMucHits->AddEntry("Barrel Hits", kM_MucHits_Barrel);
00438     fMenuViewOptionMucHits->AddEntry("West   Hits", kM_MucHits_West);
00439     //
00440     // View-Option Tracks menu
00441     // =========================
00442     fMenuViewOptionTracks = new TGPopupMenu(gClient->GetRoot());
00443     fMenuViewOptionTracks->AddEntry("Global ", kM_Tracks_Global);
00444     fMenuViewOptionTracks->AddEntry("Mdc ", kM_Tracks_Mdc);
00445     fMenuViewOptionTracks->AddEntry("Tof ", kM_Tracks_Tof);
00446     fMenuViewOptionTracks->AddEntry("Emc ", kM_Tracks_Emc);
00447     fMenuViewOptionTracks->AddEntry("Muc ", kM_Tracks_Muc);
00448     fMenuViewOptionTracks->AddEntry("Ext ", kM_Tracks_Ext);
00449 
00450     //
00451     // View menu
00452     // =========
00453     fMenuView = new TGPopupMenu(gClient->GetRoot());
00454     //fMenuView->SetBackgroundPixmap(GetPic("2.gif"));
00455     fMenuView->AddLabel("General");
00456     fMenuView->AddSeparator();
00457     fMenuView->AddPopup("Header",fMenuViewOptionHeader);
00458     fMenuView->AddSeparator();
00459     fMenuView->AddLabel("Detector", viewGeometryIcon);
00460     fMenuView->AddSeparator();
00461     fMenuView->AddPopup("Mdc",fMenuViewOptionMdc);
00462     fMenuView->AddPopup("Tof",fMenuViewOptionTof);
00463     fMenuView->AddPopup("Emc",fMenuViewOptionEmc);
00464     fMenuView->AddPopup("Muc",fMenuViewOptionMuc);
00465     fMenuView->AddPopup("Full3D",fMenuViewOptionFull3D);
00466     fMenuView->AddPopup("Others",fMenuViewOptionOthers);
00467     fMenuView->AddSeparator();
00468     //fMenuView->AddLabel("DST");
00469     fMenuView->AddLabel("REC");
00470     fMenuView->AddSeparator();
00471     fMenuView->AddPopup("Mdc Hits",fMenuViewOptionMdcHits);
00472     fMenuView->AddPopup("Tof Hits",fMenuViewOptionTofHits);
00473     fMenuView->AddPopup("Emc Hits",fMenuViewOptionEmcHits);
00474     fMenuView->AddPopup("Muc Hits",fMenuViewOptionMucHits);
00475     fMenuView->AddPopup("Tracks",fMenuViewOptionTracks);
00476     fMenuView->AddSeparator();
00477     fMenuView->AddLabel("Special Views");
00478     fMenuView->AddSeparator();
00479     //fMenuView->AddEntry("View with X3D", kM_View_X3D, 0, normalPopupEntryIcon);
00480     fMenuView->AddEntry("View with X3D", kM_View_X3D);
00481     fMenuView->AddEntry("View with OpenGL", kM_View_OpenGL);
00482 
00483     //
00484     // Help menu
00485     // =========
00486     fMenuHelp = new TGPopupMenu(gClient->GetRoot());
00487     //fMenuHelp->SetBackgroundPixmap(GetPic("popMenuBorder.gif"));
00488     fMenuHelp->AddEntry("Help &Content", kM_Help_Content);
00489     fMenuHelp->AddSeparator();
00490     fMenuHelp->AddEntry("About", kM_Help_About);
00491 
00492     // Create the menubar and add popup menus
00493     fMenuBar = new BesGMenuBar(this, 1, 1, kHorizontalFrame);
00494     fMenuBar->SetBackgroundPixmap(GetPic("MenuBarBckgnd.gif"));
00495 
00496     fMenuBar->AddPopup("&File", fMenuFile, fMenuBarFirstItemLayout);
00497     //fMenuBar->AddPopup("&Edit", fMenuEdit, fMenuBarItemLayout); // dont show edit
00498     fMenuBar->AddPopup("&View", fMenuView, fMenuBarItemLayout);
00499     fMenuBar->AddPopup("&Help", fMenuHelp, fMenuBarLastItemLayout);
00500 
00501     fMenuBar->GetMenuTitle(0)->SetPicture(GetPic("MenuFile.gif"));
00502     fMenuBar->GetMenuTitle(0)->SetPictureHL(GetPic("MenuFileHL.gif"));
00503     fMenuBar->GetMenuTitle(1)->SetPicture(GetPic("MenuView.gif"));
00504     fMenuBar->GetMenuTitle(1)->SetPictureHL(GetPic("MenuViewHL.gif"));
00505     fMenuBar->GetMenuTitle(2)->SetPicture(GetPic("MenuHelp.gif"));
00506     fMenuBar->GetMenuTitle(2)->SetPictureHL(GetPic("MenuHelpHL.gif"));
00507 
00508     //
00509     // Connect menu buttons to actions. Menu button messages are
00510     // handled by the main frame (i.e. "this") HandleMenu() method., kHorizontalFrame);
00511     fMenuFile->Connect("Activated(Int_t)","BesClient",this,"HandleMenu(Int_t)");
00512     fMenuEdit->Connect("Activated(Int_t)","BesClient",this,"HandleMenu(Int_t)");
00513     fMenuHelp->Connect("Activated(Int_t)","BesClient",this,"HandleMenu(Int_t)");
00514     fMenuView->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00515     fMenuViewOptionHeader->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00516     fMenuViewOptionMdc->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00517     fMenuViewOptionTof->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00518     fMenuViewOptionEmc->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00519     fMenuViewOptionMuc->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00520     fMenuViewOptionFull3D->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00521     fMenuViewOptionOthers->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00522     fMenuViewOptionMdcHits->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00523     fMenuViewOptionTofHits->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00524     fMenuViewOptionEmcHits->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00525     fMenuViewOptionMucHits->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00526     fMenuViewOptionTracks->Connect("Activated(Int_t)","BesClient",this,"HandleViewOptionMenu(Int_t)");
00527 
00528     /*
00529       TASImage *asImage = new TASImage("013.gif");
00530       Pixmap_t pic1 = asImage->GetPixmap();
00531       //asImage->Draw();
00532       Pixmap_t pic1 = gVirtualX->ReadGIF(0, 0, "013.gif");
00533       fMenuBar->SetBackgroundPixmap(pic1);
00534     */
00535 
00536     //fMenuBar->SetBackgroundPixmap(GetPic("background.gif"));
00537 
00538     /*
00539     TList *fMenuTitleList = fMenuBar->GetList();
00540     cout << "Menu title size " << fMenuTitleList->GetSize() << endl;
00541     for (Int_t iTitle = 0; iTitle < fMenuTitleList->GetSize(); iTitle++) {
00542       cout << ((TGMenuTitle*)fMenuTitleList->At(iTitle))->GetName() << endl;
00543      TGFrameElement *el = (TGFrameElement *)fMenuTitleList->At(iTitle);
00544      TGMenuTitle    *t = (TGMenuTitle *)el->fFrame;
00545      t->SetBackgroundPixmap(GetPic("test.gif"));
00546      cout << t->GetName() << endl;
00547      t->SetBackgroundColor(kBlack);
00548      if (iTitle == 0) {
00549        //t->SetHeight(10);
00550        t->SetForegroundColor(kWhite);
00551      }
00552      }
00553     */
00554 }

virtual void BesClient::CreateStatusBar  )  [virtual]
 

void BesClient::CreateStatusBar  )  [virtual]
 

00991                                 {
00992     //
00993     // Create status bar
00994     Int_t nPart = 3;
00995     Int_t parts[] = {40, 50, 10};
00996     fStatusBar = new TGStatusBar(this, this->GetWidth(), 20, kHorizontalFrame);
00997     fStatusBar->SetParts(parts, nPart);
00998     fStatusBar->SetBackgroundPixmap(GetPic("StatusBarBckgnd.gif"));
00999     for (Int_t iPart = 0; iPart < nPart; iPart++) {
01000         fStatusBar->GetBarPart(iPart)->SetBackgroundPixmap(GetPic("StatusBarBckgnd.gif"));
01001     }
01002 
01003     // Set text
01004     fStatusBar->SetText("Ready", 0);
01005 }

virtual void BesClient::CreateTabs  )  [virtual]
 

void BesClient::CreateTabs  )  [virtual]
 

01066                            {
01067 
01068     //
01069     // Create tabs for event list and geometry check button lists
01070     fTabs = new TGTab(fV1, fV1->GetWidth(), fV1->GetHeight());
01071     //cout << "Tab width " << fV1->GetWidth() << " height " << fV1->GetHeight() << endl;
01072     //fTabs->SetBackgroundPixmap(GetPic("2.gif"));
01073 
01074     TGCompositeFrame *tf = 0;
01075     Int_t h, charw, w;
01076 
01077     //
01078     // "View" tab
01079     // ================
01080     tf = fTabs->AddTab("View");
01081     tf->SetBackgroundPixmap(GetPic("8.gif"));
01082 
01083     //
01084     // frame for auto control
01085     // ===================
01086     fAutoFrame = new TGCompositeFrame(tf, tf->GetWidth(), tf->GetHeight(), kVerticalFrame);
01087     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX , 15, 15, 15, 10);
01088     fWidgets->Add(fLayout);
01089     tf->AddFrame(fAutoFrame, fLayout);
01090     fAutoFrame->SetBackgroundPixmap(GetPic("AutoFrameBckgnd.gif"));
01091 
01092     // lable "Auto control"
01093     fAutoTextFrame = new TGCompositeFrame(fAutoFrame, fAutoFrame->GetWidth(), 30, kHorizontalFrame);
01094     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 0, 0, 0, 0);
01095     fWidgets->Add(fLayout);
01096     fAutoFrame->AddFrame(fAutoTextFrame, fLayout);
01097     fAutoTextFrame->SetBackgroundPixmap(GetPic("AutoControlBckgnd.gif"));
01098 
01099     fAutoTextLabel = new TGLabel(fAutoTextFrame,"Auto Control  ");
01100     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft | kLHintsExpandX , 2, 73, 4, 0);
01101     fWidgets->Add(fLayout);
01102     fAutoTextFrame->AddFrame(fAutoTextLabel, fLayout);
01103     fAutoTextLabel->SetBackgroundPixmap(GetPic("AutoControlBckgnd.gif"));
01104 
01105     // --- Auto rotate ---
01106     fFrameAutoRotate = new TGGroupFrame(fAutoFrame, "");
01107     fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 0, 0);
01108     //fLayout = new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5);
01109     fWidgets->Add(fLayout);
01110     fAutoFrame->AddFrame(fFrameAutoRotate, fLayout);
01111 
01112     // "Auto"
01113     fChkBtnAutoRotate = new TGCheckButton(fFrameAutoRotate, "Auto", kM_Button_AutoRotate);
01114     fLayout = new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 2);
01115     fFrameAutoRotate->AddFrame(fChkBtnAutoRotate, fLayout);
01116     fChkBtnAutoRotate->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01117 
01118     // rotate speed
01119     fRotateSpeedFrame = new TGCompositeFrame(fFrameAutoRotate, fFrameAutoRotate->GetWidth()-20, 30, kHorizontalFrame);
01120     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop, 0, 0, 2, 2);
01121     fWidgets->Add(fLayout);
01122     fFrameAutoRotate->AddFrame(fRotateSpeedFrame, fLayout);
01123 
01124     // input of rotate speed
01125     fNumEntryRotateSpeed = new TGNumberEntryField( fRotateSpeedFrame, kM_Button_RotateSpeed,
01126             this->GetRotateSpeed(),
01127             (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 1 );
01128     h = fNumEntryRotateSpeed->GetDefaultHeight();
01129     charw = fNumEntryRotateSpeed->GetCharWidth("0123456");
01130     w = charw * TMath::Abs(4) / 10 + 8 + 2 * h / 3; // 4 is digit width
01131     fNumEntryRotateSpeed->Resize(w, h);
01132 
01133     //fNumEntryRotateSpeed = new TGNumberEntry(fRotateSpeedFrame,this->GetRotateSpeed(), 5 ,kM_Button_RotateSpeed,(TGNumberFormat::EStyle) 1,(TGNumberFormat::EAttribute) 1);
01134     fNumEntryRotateSpeed->SetHeight(20);
01135     fNumEntryRotateSpeed->SetNumber(this->GetRotateSpeed());
01136     fNumEntryRotateSpeed->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01137     fNumEntryRotateSpeed->Connect("TabPressed","BesClient",this,"ChangeFocus()");
01138     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 2, 2);
01139     fWidgets->Add(fLayout);
01140     fRotateSpeedFrame->AddFrame(fNumEntryRotateSpeed, fLayout);
01141 
01142     // label " deg/sec "
01143     fRotateSpeedLabel = new TGLabel(fRotateSpeedFrame," deg/sec   ");
01144     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 2, 4, 2, 2);
01145     fWidgets->Add(fLayout);
01146     fRotateSpeedFrame->AddFrame(fRotateSpeedLabel, fLayout);
01147 
01148     // rotate FPS
01149     fRotateFPSFrame = new TGCompositeFrame(fFrameAutoRotate, fFrameAutoRotate->GetWidth()-20, 30, kHorizontalFrame);
01150     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop, 0, 0, 2, 2);
01151     fWidgets->Add(fLayout);
01152     fFrameAutoRotate->AddFrame(fRotateFPSFrame, fLayout);
01153 
01154     // input of rotate speed
01155     fNumEntryRotateFPS = new TGNumberEntry(fRotateFPSFrame,this->GetRotateFPS(), 3, kM_Button_RotateFPS,(TGNumberFormat::EStyle) 0,(TGNumberFormat::EAttribute) 1);
01156     fNumEntryRotateFPS->SetHeight(20);
01157     fNumEntryRotateFPS->SetNumber(this->GetRotateFPS());
01158     fNumEntryRotateFPS->GetNumberEntry()->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01159     fNumEntryRotateFPS->GetNumberEntry()->Connect("TabPressed","BesClient",this,"ChangeFocus()");
01160     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 2, 2);
01161     fWidgets->Add(fLayout);
01162     fRotateFPSFrame->AddFrame(fNumEntryRotateFPS, fLayout);
01163 
01164     // label " fps "
01165     fRotateFPSLabel = new TGLabel(fRotateFPSFrame,"  fps       ");
01166     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 2, 4, 2, 2);
01167     fWidgets->Add(fLayout);
01168     fRotateFPSFrame->AddFrame(fRotateFPSLabel, fLayout);
01169 
01170 
01171     //
01172     // frame for view control
01173     // ===================
01174     fViewFrame = new TGCompositeFrame(tf, tf->GetWidth(), tf->GetHeight(), kVerticalFrame);
01175     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX , 15, 15, 15, 10);
01176     fWidgets->Add(fLayout);
01177     tf->AddFrame(fViewFrame, fLayout);
01178     fViewFrame->SetBackgroundPixmap(GetPic("ViewFrameBckgnd.gif"));
01179 
01180     // lable "View control"
01181     fViewTextFrame = new TGCompositeFrame(fViewFrame, fViewFrame->GetWidth(), 30, kHorizontalFrame);
01182     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 0, 0, 0, 0);
01183     fWidgets->Add(fLayout);
01184     fViewFrame->AddFrame(fViewTextFrame, fLayout);
01185     fViewTextFrame->SetBackgroundPixmap(GetPic("ViewControlBckgnd.gif"));
01186 
01187     fViewTextLabel = new TGLabel(fViewTextFrame,"View Control  ");
01188     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft | kLHintsExpandX , 2, 73, 4, 4);
01189     fWidgets->Add(fLayout);
01190     fViewTextFrame->AddFrame(fViewTextLabel, fLayout);
01191     fViewTextLabel->SetBackgroundPixmap(GetPic("ViewControlBckgnd.gif"));
01192 
01193 
01194     // rotate step
01195     fRotateStepFrame = new TGCompositeFrame(fViewFrame, fViewFrame->GetWidth()-20, 30, kHorizontalFrame);
01196     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop, 0, 0, 8, 5);
01197     fWidgets->Add(fLayout);
01198     fViewFrame->AddFrame(fRotateStepFrame, fLayout);
01199 
01200     // label " Step: "
01201     fRotateStepLabel = new TGLabel(fRotateStepFrame," Step:");
01202     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 10, 2, 0, 0);
01203     fWidgets->Add(fLayout);
01204     fRotateStepFrame->AddFrame(fRotateStepLabel, fLayout);
01205 
01206     // input of rotate step
01207     fNumEntryRotateStep = new TGNumberEntryField( fRotateStepFrame, kM_Button_RotateStep,
01208             this->GetRotateStep(),
01209             (TGNumberFormat::EStyle) 2, (TGNumberFormat::EAttribute) 1 );
01210     h = fNumEntryRotateStep->GetDefaultHeight();
01211     charw = fNumEntryRotateStep->GetCharWidth("0123456");
01212     w = charw * TMath::Abs(5) / 10 + 8 + 2 * h / 3; // 5 is digit width
01213     fNumEntryRotateStep->Resize(w, h);
01214 
01215     fNumEntryRotateStep->SetHeight(20);
01216     fNumEntryRotateStep->SetNumber(this->GetRotateStep());
01217     fNumEntryRotateStep->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01218     fNumEntryRotateStep->Connect("TabPressed","BesClient",this,"ChangeFocus()");
01219     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 0, 0, 0);
01220     fWidgets->Add(fLayout);
01221     fRotateStepFrame->AddFrame(fNumEntryRotateStep, fLayout);
01222 
01223     // label " deg "
01224     fRotateStepUnitLabel = new TGLabel(fRotateStepFrame," deg ");
01225     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 0, 4, 0, 0);
01226     fWidgets->Add(fLayout);
01227     fRotateStepFrame->AddFrame(fRotateStepUnitLabel, fLayout);
01228 
01229     // frame ViewContent
01230     fViewContentFrame = new TGCompositeFrame(fViewFrame, fViewFrame->GetWidth(), fViewFrame->GetHeight()-30, kVerticalFrame);
01231     fLayout = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY , 0, 0, 0, 0);
01232     fWidgets->Add(fLayout);
01233     fViewFrame->AddFrame(fViewContentFrame, fLayout);
01234 
01235     // frame ViewContent Line1
01236     fViewContent1Frame = new TGCompositeFrame(fViewContentFrame, fViewFrame->GetWidth(), 39, kHorizontalFrame);
01237     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 0, 0, 3, 0);
01238     fWidgets->Add(fLayout);
01239     fViewContent1Frame->SetBackgroundPixmap(GetPic("ViewContent1Bckgnd.gif"));
01240     fViewContentFrame->AddFrame(fViewContent1Frame, fLayout);
01241 
01242     // button ViewCounterClockwise
01243     fViewCounterClockWiseButton = new BesGPictureButton(fViewContent1Frame,
01244             gClient->GetPicture("ViewCounterClockwise.gif"),
01245             kM_Button_ViewCounterClockWise);
01246     fViewCounterClockWiseButton->SetToolTipText("Rotate Counter Clockwise");
01247     fViewCounterClockWiseButton->SetHeight(37);
01248     fViewCounterClockWiseButton->SetWidth(37);
01249     fViewCounterClockWiseButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01250 
01251     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 5, 22, 0, 0);
01252     fWidgets->Add(fLayout);
01253     fViewContent1Frame->AddFrame(fViewCounterClockWiseButton, fLayout);
01254 
01255     // button ViewMoveUp
01256     fViewMoveUpButton = new BesGPictureButton(fViewContent1Frame,
01257             gClient->GetPicture("ViewMoveUp.gif"),
01258             kM_Button_ViewMoveUp);
01259     fViewMoveUpButton->SetToolTipText("Move Up");
01260     fViewMoveUpButton->SetHeight(20);
01261     fViewMoveUpButton->SetWidth(23);
01262     fViewMoveUpButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01263 
01264     fLayout = new TGLayoutHints(kLHintsBottom | kLHintsCenterX, 5, 5, 0, 0);
01265     fWidgets->Add(fLayout);
01266     fViewContent1Frame->AddFrame(fViewMoveUpButton, fLayout);
01267 
01268     // button ViewClockwise
01269     fViewClockWiseButton = new BesGPictureButton(fViewContent1Frame,
01270             gClient->GetPicture("ViewClockwise.gif"),
01271             kM_Button_ViewClockWise);
01272     fViewClockWiseButton->SetToolTipText("Rotate Clockwise");
01273     fViewClockWiseButton->SetHeight(37);
01274     fViewClockWiseButton->SetWidth(37);
01275     fViewClockWiseButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01276 
01277     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 22, 5, 0, 0);
01278     fWidgets->Add(fLayout);
01279     fViewContent1Frame->AddFrame(fViewClockWiseButton, fLayout);
01280 
01281     // frame ViewContent Line2
01282     fViewContent2Frame = new TGCompositeFrame(fViewContentFrame, fViewFrame->GetWidth(), 23, kHorizontalFrame);
01283     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 0, 0, 0, 0);
01284     fWidgets->Add(fLayout);
01285     fViewContent2Frame->SetBackgroundPixmap(GetPic("ViewContent2Bckgnd.gif"));
01286     fViewContentFrame->AddFrame(fViewContent2Frame, fLayout);
01287 
01288     // button ViewMoveLeft
01289     fViewMoveLeftButton = new BesGPictureButton(fViewContent2Frame,
01290             gClient->GetPicture("ViewMoveLeft.gif"),
01291             kM_Button_ViewMoveLeft);
01292     fViewMoveLeftButton->SetToolTipText("Move Left");
01293     fViewMoveLeftButton->SetHeight(23);
01294     fViewMoveLeftButton->SetWidth(23);
01295     fViewMoveLeftButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01296 
01297     fLayout = new TGLayoutHints(kLHintsBottom | kLHintsCenterX, 49, 2, 0, 0);
01298     fWidgets->Add(fLayout);
01299     fViewContent2Frame->AddFrame(fViewMoveLeftButton, fLayout);
01300 
01301     // button ViewMoveMoveCenter
01302     fViewMoveCenterButton = new BesGPictureButton(fViewContent2Frame,
01303             gClient->GetPicture("ViewMoveCenter.gif"),
01304             kM_Button_ViewMoveCenter);
01305     fViewMoveCenterButton->SetToolTipText("Move Center");
01306     fViewMoveCenterButton->SetHeight(13);
01307     fViewMoveCenterButton->SetWidth(13);
01308     fViewMoveCenterButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01309 
01310     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX, 0, 0, 0, 0);
01311     fWidgets->Add(fLayout);
01312     fViewContent2Frame->AddFrame(fViewMoveCenterButton, fLayout);
01313 
01314     // button ViewMoveRight
01315     fViewMoveRightButton = new BesGPictureButton(fViewContent2Frame,
01316             gClient->GetPicture("ViewMoveRight.gif"),
01317             kM_Button_ViewMoveRight);
01318     fViewMoveRightButton->SetToolTipText("Move Right");
01319     fViewMoveRightButton->SetHeight(23);
01320     fViewMoveRightButton->SetWidth(23);
01321     fViewMoveRightButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01322 
01323     fLayout = new TGLayoutHints(kLHintsBottom | kLHintsCenterX, 2, 49, 0, 0);
01324     fWidgets->Add(fLayout);
01325     fViewContent2Frame->AddFrame(fViewMoveRightButton, fLayout);
01326 
01327     // frame ViewContent Line3
01328     fViewContent3Frame = new TGCompositeFrame(fViewContentFrame, fViewFrame->GetWidth(), 32, kHorizontalFrame);
01329     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 0, 0, 0, 3);
01330     fWidgets->Add(fLayout);
01331     fViewContent3Frame->SetBackgroundPixmap(GetPic("ViewContent3Bckgnd.gif"));
01332     fViewContentFrame->AddFrame(fViewContent3Frame, fLayout);
01333 
01334     // button ViewMoveDown
01335     fViewMoveDownButton = new BesGPictureButton(fViewContent3Frame,
01336             gClient->GetPicture("ViewMoveDown.gif"),
01337             kM_Button_ViewMoveDown);
01338     fViewMoveDownButton->SetToolTipText("Move Down");
01339     fViewMoveDownButton->SetHeight(32);
01340     fViewMoveDownButton->SetWidth(23);
01341     fViewMoveDownButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01342 
01343     //fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX, 69, 69, 0, 0);
01344     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 69, 0, 0, 0);
01345     fWidgets->Add(fLayout);
01346     fViewContent3Frame->AddFrame(fViewMoveDownButton, fLayout);
01347 
01348     // reset angle button
01349     fViewResetAngleButton = new BesGPictureButton(fViewContent3Frame,
01350             gClient->GetPicture("ViewResetAngle.gif"),
01351             kM_Button_ViewResetAngle);
01352 
01353     fViewResetAngleButton->SetToolTipText("Reset Angles");
01354     fViewResetAngleButton->SetHeight(27);
01355     fViewResetAngleButton->SetWidth(27);
01356     fViewResetAngleButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01357 
01358     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 30, 0, 0, 0);
01359     fWidgets->Add(fLayout);
01360     fViewContent3Frame->AddFrame(fViewResetAngleButton, fLayout);
01361 
01362 
01363     // frame ViewAngle
01364     fViewAngleFrame = new TGCompositeFrame(fViewContentFrame, fViewContentFrame->GetWidth(), 50, kHorizontalFrame);
01365     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 4, 4, 0, 0);
01366     fWidgets->Add(fLayout);
01367     fViewContentFrame->AddFrame(fViewAngleFrame, fLayout);
01368 
01369     // frame ViewAngleTheta
01370     fViewAngleThetaFrame = new TGCompositeFrame(fViewAngleFrame, fViewAngleFrame->GetWidth(), 50, kVerticalFrame);
01371     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 3, 3, 3, 3);
01372     fWidgets->Add(fLayout);
01373     fViewAngleFrame->AddFrame(fViewAngleThetaFrame, fLayout);
01374 
01375     // button ViewAngleThetaMinus
01376     fViewAngleThetaMinusButton = new BesGPictureButton(fViewAngleThetaFrame,
01377             gClient->GetPicture("ViewAngleMinus.gif"),
01378             kM_Button_ViewAngleThetaMinus);
01379     fViewAngleThetaMinusButton->SetToolTipText("Theta -");
01380     fViewAngleThetaMinusButton->SetHeight(22);
01381     fViewAngleThetaMinusButton->SetWidth(22);
01382     fViewAngleThetaMinusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01383 
01384     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0);
01385     fWidgets->Add(fLayout);
01386     fViewAngleThetaFrame->AddFrame(fViewAngleThetaMinusButton, fLayout);
01387 
01388     // slider for ViewAngleTheta
01389     fViewAngleThetaSlider = new TGVSlider(fViewAngleThetaFrame, 120, kSlider2 | kScaleBoth, kM_Slider_ViewAngleTheta);
01390     fViewAngleThetaSlider->Connect("PositionChanged(Int_t)", "BesClient", this, "HandleSliders(Int_t)");
01391     fViewAngleThetaSlider->SetRange(0, 180);
01392     fViewAngleThetaSlider->SetPosition(0);
01393     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX | kLHintsExpandY, 5, 5, 0, 0);
01394     fWidgets->Add(fLayout);
01395     fViewAngleThetaFrame->AddFrame(fViewAngleThetaSlider, fLayout);
01396 
01397     // button ViewAngleThetaPlus
01398     fViewAngleThetaPlusButton = new BesGPictureButton(fViewAngleThetaFrame,
01399             gClient->GetPicture("ViewAnglePlus.gif"),
01400             kM_Button_ViewAngleThetaPlus);
01401     fViewAngleThetaPlusButton->SetToolTipText("Theta +");
01402     fViewAngleThetaPlusButton->SetHeight(22);
01403     fViewAngleThetaPlusButton->SetWidth(22);
01404     fViewAngleThetaPlusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01405 
01406     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0);
01407     fWidgets->Add(fLayout);
01408     fViewAngleThetaFrame->AddFrame(fViewAngleThetaPlusButton, fLayout);
01409 
01410     // number ViewAngleTheta
01411     //fViewAngleThetaNumber = new TGNumberEntry( fViewAngleThetaFrame, 0, 3, kM_Button_ViewAngleThetaNumber,
01412     //                                       (TGNumberFormat::EStyle) 6, (TGNumberFormat::EAttribute) 0 );
01413     fViewAngleThetaNumber = new TGNumberEntryField( fViewAngleThetaFrame, kM_Button_ViewAngleThetaNumber,
01414             fViewAngleThetaSlider->GetPosition(),
01415             (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 0 );
01416     fViewAngleThetaNumber->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01417     h = fViewAngleThetaNumber->GetDefaultHeight();
01418     charw = fViewAngleThetaNumber->GetCharWidth("0123456");
01419     w = charw * TMath::Abs(4) / 10 + 8 + 2 * h / 3; // 4 is digit width
01420     fViewAngleThetaNumber->Resize(w, h);
01421 
01422     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 0);
01423     fWidgets->Add(fLayout);
01424     fViewAngleThetaFrame->AddFrame(fViewAngleThetaNumber, fLayout);
01425 
01426     // label theta
01427     fViewAngleThetaLabel = new TGLabel(fViewAngleThetaFrame,"theta");
01428     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 2);
01429     fWidgets->Add(fLayout);
01430     fViewAngleThetaFrame->AddFrame(fViewAngleThetaLabel, fLayout);
01431 
01432     // frame ViewAnglePhi
01433     fViewAnglePhiFrame = new TGCompositeFrame(fViewAngleFrame, fViewAngleFrame->GetWidth(), 50, kVerticalFrame);
01434     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 3, 3, 3, 3);
01435     fWidgets->Add(fLayout);
01436     fViewAngleFrame->AddFrame(fViewAnglePhiFrame, fLayout);
01437 
01438     // button ViewAnglePhiMinus
01439     fViewAnglePhiMinusButton = new BesGPictureButton(fViewAnglePhiFrame,
01440             gClient->GetPicture("ViewAngleMinus.gif"),
01441             kM_Button_ViewAnglePhiMinus);
01442     fViewAnglePhiMinusButton->SetToolTipText("Phi -");
01443     fViewAnglePhiMinusButton->SetHeight(22);
01444     fViewAnglePhiMinusButton->SetWidth(22);
01445     fViewAnglePhiMinusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01446 
01447     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0);
01448     fWidgets->Add(fLayout);
01449     fViewAnglePhiFrame->AddFrame(fViewAnglePhiMinusButton, fLayout);
01450 
01451     // slider for ViewAnglePhi
01452     fViewAnglePhiSlider = new TGVSlider(fViewAnglePhiFrame, 120, kSlider2 | kScaleBoth, kM_Slider_ViewAnglePhi);
01453     fViewAnglePhiSlider->Connect("PositionChanged(Int_t)", "BesClient", this, "HandleSliders(Int_t)");
01454     fViewAnglePhiSlider->SetRange(0, 360);
01455     fViewAnglePhiSlider->SetPosition(0);
01456     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX | kLHintsExpandY, 5, 5, 0, 0);
01457     fWidgets->Add(fLayout);
01458     fViewAnglePhiFrame->AddFrame(fViewAnglePhiSlider, fLayout);
01459 
01460     // button ViewAnglePhiPlus
01461     fViewAnglePhiPlusButton = new BesGPictureButton(fViewAnglePhiFrame,
01462             gClient->GetPicture("ViewAnglePlus.gif"),
01463             kM_Button_ViewAnglePhiPlus);
01464     fViewAnglePhiPlusButton->SetToolTipText("Phi +");
01465     fViewAnglePhiPlusButton->SetHeight(22);
01466     fViewAnglePhiPlusButton->SetWidth(22);
01467     fViewAnglePhiPlusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01468 
01469     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0);
01470     fWidgets->Add(fLayout);
01471     fViewAnglePhiFrame->AddFrame(fViewAnglePhiPlusButton, fLayout);
01472 
01473     // number ViewAnglePhi
01474     //fViewAnglePhiNumber = new TGNumberEntry( fViewAnglePhiFrame, 0, 3, kM_Button_ViewAnglePhiNumber,
01475     //                                       (TGNumberFormat::EStyle) 6, (TGNumberFormat::EAttribute) 0 );
01476     fViewAnglePhiNumber = new TGNumberEntryField( fViewAnglePhiFrame, kM_Button_ViewAnglePhiNumber,
01477             fViewAnglePhiSlider->GetPosition(),
01478             (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 0 );
01479     fViewAnglePhiNumber->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01480     h = fViewAnglePhiNumber->GetDefaultHeight();
01481     charw = fViewAnglePhiNumber->GetCharWidth("0123456");
01482     w = charw * TMath::Abs(4) / 10 + 8 + 2 * h / 3; // 4 is digit width
01483     fViewAnglePhiNumber->Resize(w, h);
01484 
01485     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 0);
01486     fWidgets->Add(fLayout);
01487     fViewAnglePhiFrame->AddFrame(fViewAnglePhiNumber, fLayout);
01488 
01489     // label phi
01490     fViewAnglePhiLabel = new TGLabel(fViewAnglePhiFrame,"phi");
01491     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 2);
01492     fWidgets->Add(fLayout);
01493     fViewAnglePhiFrame->AddFrame(fViewAnglePhiLabel, fLayout);
01494 
01495     // frame ViewAnglePsi
01496     fViewAnglePsiFrame = new TGCompositeFrame(fViewAngleFrame, fViewAngleFrame->GetWidth(), 50, kVerticalFrame);
01497     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop , 3, 3, 3, 3);
01498     fWidgets->Add(fLayout);
01499     fViewAngleFrame->AddFrame(fViewAnglePsiFrame, fLayout);
01500 
01501     // button ViewAnglePsiMinus
01502     fViewAnglePsiMinusButton = new BesGPictureButton(fViewAnglePsiFrame,
01503             gClient->GetPicture("ViewAngleMinus.gif"),
01504             kM_Button_ViewAnglePsiMinus);
01505     fViewAnglePsiMinusButton->SetToolTipText("Psi -");
01506     fViewAnglePsiMinusButton->SetHeight(22);
01507     fViewAnglePsiMinusButton->SetWidth(22);
01508     fViewAnglePsiMinusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01509 
01510     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0);
01511     fWidgets->Add(fLayout);
01512     fViewAnglePsiFrame->AddFrame(fViewAnglePsiMinusButton, fLayout);
01513 
01514     // slider for ViewAnglePsi
01515     fViewAnglePsiSlider = new TGVSlider(fViewAnglePsiFrame, 120, kSlider2 | kScaleBoth, kM_Slider_ViewAnglePsi);
01516     fViewAnglePsiSlider->Connect("PositionChanged(Int_t)", "BesClient", this, "HandleSliders(Int_t)");
01517     fViewAnglePsiSlider->SetRange(0, 360);
01518     fViewAnglePsiSlider->SetPosition(270);
01519     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX | kLHintsExpandY, 5, 5, 0, 0);
01520     fWidgets->Add(fLayout);
01521     fViewAnglePsiFrame->AddFrame(fViewAnglePsiSlider, fLayout);
01522 
01523     // button ViewAnglePsiPlus
01524     fViewAnglePsiPlusButton = new BesGPictureButton(fViewAnglePsiFrame,
01525             gClient->GetPicture("ViewAnglePlus.gif"),
01526             kM_Button_ViewAnglePsiPlus);
01527     fViewAnglePsiPlusButton->SetToolTipText("Psi +");
01528     fViewAnglePsiPlusButton->SetHeight(22);
01529     fViewAnglePsiPlusButton->SetWidth(22);
01530     fViewAnglePsiPlusButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01531 
01532     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 0, 0);
01533     fWidgets->Add(fLayout);
01534     fViewAnglePsiFrame->AddFrame(fViewAnglePsiPlusButton, fLayout);
01535 
01536     // number ViewAnglePsi
01537     //fViewAnglePsiNumber = new TGNumberEntry( fViewAnglePsiFrame, 0, 3, kM_Button_ViewAnglePsiNumber,
01538     //                                       (TGNumberFormat::EStyle) 6, (TGNumberFormat::EAttribute) 0 );
01539     fViewAnglePsiNumber = new TGNumberEntryField( fViewAnglePsiFrame, kM_Button_ViewAnglePsiNumber,
01540             fViewAnglePsiSlider->GetPosition(),
01541             (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 0 );
01542     fViewAnglePsiNumber->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01543     h = fViewAnglePsiNumber->GetDefaultHeight();
01544     charw = fViewAnglePsiNumber->GetCharWidth("0123456");
01545     w = charw * TMath::Abs(4) / 10 + 8 + 2 * h / 3; // 4 is digit width
01546     fViewAnglePsiNumber->Resize(w, h);
01547 
01548     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 0);
01549     fWidgets->Add(fLayout);
01550     fViewAnglePsiFrame->AddFrame(fViewAnglePsiNumber, fLayout);
01551 
01552     // label psi
01553     fViewAnglePsiLabel = new TGLabel(fViewAnglePsiFrame,"psi");
01554     fLayout = new TGLayoutHints(kLHintsTop | kLHintsCenterX, 2, 2, 2, 2);
01555     fWidgets->Add(fLayout);
01556     fViewAnglePsiFrame->AddFrame(fViewAnglePsiLabel, fLayout);
01557 
01558     //
01559     // "Event" tab
01560     // ================
01561     tf = fTabs->AddTab("Event");
01562     tf->SetBackgroundPixmap(GetPic("8.gif"));
01563 
01564     //
01565     // frame for event control
01566     // =====================
01567     fEventControlFrame = new TGCompositeFrame(tf, tf->GetWidth(), tf->GetHeight(), kVerticalFrame);
01568     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX , 15, 15, 15, 10);
01569     fWidgets->Add(fLayout);
01570     tf->AddFrame(fEventControlFrame, fLayout);
01571     fEventControlFrame->SetBackgroundPixmap(GetPic("EventFrameBckgnd.gif"));
01572 
01573 
01574     // lable "Event control"
01575     fEventControlTextFrame = new TGCompositeFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 30, kHorizontalFrame);
01576     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 0, 0, 0, 0);
01577     fWidgets->Add(fLayout);
01578     fEventControlFrame->AddFrame(fEventControlTextFrame, fLayout);
01579     fEventControlTextFrame->SetBackgroundPixmap(GetPic("EventControlBckgnd.gif"));
01580 
01581     fEventControlTextLabel = new TGLabel(fEventControlTextFrame,"Event Control ");
01582     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft | kLHintsExpandX , 2, 73, 4, 4);
01583     fWidgets->Add(fLayout);
01584     fEventControlTextFrame->AddFrame(fEventControlTextLabel, fLayout);
01585     fEventControlTextLabel->SetBackgroundPixmap(GetPic("EventControlBckgnd.gif"));
01586 
01587     // input of run nr
01588     fBesRunFrame = new TGHorizontalFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 25);
01589     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsExpandX , 4, 4, 4, 4);
01590     fWidgets->Add(fLayout);
01591     fEventControlFrame->AddFrame(fBesRunFrame, fLayout);
01592     fBesRunFrame->SetBackgroundPixmap(GetPic("EventFrameBckgnd.gif"));
01593 
01594     fBesLabelRun = new TGLabel(fBesRunFrame, "Run : ");
01595     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 4, 4);
01596     fWidgets->Add(fLayout);
01597     fBesRunFrame->AddFrame(fBesLabelRun, fLayout);
01598 
01599     fNumEntryRunNo = new TGNumberEntry(fBesRunFrame,this->GetBesRunNo(),12,kM_Button_BesRun,(TGNumberFormat::EStyle) 0,(TGNumberFormat::EAttribute) 1); // 16 is ditits number in the entry
01600     fNumEntryRunNo->SetHeight(20);
01601     fNumEntryRunNo->SetNumber(this->GetBesRunNo());
01602     fNumEntryRunNo->GetNumberEntry()->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01603     fNumEntryRunNo->GetNumberEntry()->Connect("TabPressed","BesClient",this,"ChangeFocus()");
01604     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 4, 4, 4, 4);
01605     fWidgets->Add(fLayout);
01606     fBesRunFrame->AddFrame(fNumEntryRunNo, fLayout);
01607 
01608     // input of Event nr
01609     fBesEventFrame = new TGHorizontalFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 25);
01610     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsExpandX , 4, 4, 4, 4);
01611     fWidgets->Add(fLayout);
01612     fEventControlFrame->AddFrame(fBesEventFrame, fLayout);
01613 
01614     fBesLabelEvent = new TGLabel(fBesEventFrame, "Event : ");
01615     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 4, 4);
01616     fWidgets->Add(fLayout);
01617     fBesEventFrame->AddFrame(fBesLabelEvent, fLayout);
01618 
01619     fNumEntryEventNo = new TGNumberEntry(fBesEventFrame,this->GetBesEventNo(),12,kM_Button_BesEvent,(TGNumberFormat::EStyle) 0,(TGNumberFormat::EAttribute) 1);
01620     fNumEntryEventNo->SetHeight(20);
01621     fNumEntryEventNo->SetNumber(this->GetBesEventNo());
01622     fNumEntryEventNo->GetNumberEntry()->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01623     fNumEntryEventNo->GetNumberEntry()->Connect("TabPressed","BesClient",this,"ChangeFocus()");
01624     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 4, 4, 4, 4);
01625     fWidgets->Add(fLayout);
01626     fBesEventFrame->AddFrame(fNumEntryEventNo, fLayout);
01627 
01628     //
01629     // frame for event play
01630     // ====================
01631 
01632     // slider for event play
01633     fEventPlaySlider = new TGHSlider(fEventControlFrame, 40, kSlider1 | kScaleNo, kM_Slider_EventPlay);
01634     fEventPlaySlider->Connect("PositionChanged(Int_t)", "BesClient", this, "HandleSliders(Int_t)");
01635     fEventPlaySlider->SetRange(0, 100);
01636     fEventPlaySlider->SetPosition(0);
01637     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsCenterX | kLHintsExpandX, 5, 5, 5, 0);
01638     fWidgets->Add(fLayout);
01639     fEventControlFrame->AddFrame(fEventPlaySlider, fLayout);
01640 
01641     // event play buttons
01642     fEventPlayButtonFrame = new TGCompositeFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 30, kHorizontalFrame);
01643     //fEventNavFrame->SetBackgroundPixmap(GetPic("1.gif"));
01644     fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsTop, 2, 2, 2, 2);
01645     fWidgets->Add(fLayout);
01646     fEventControlFrame->AddFrame(fEventPlayButtonFrame, fLayout);
01647 
01648     // prev button
01649     fPrevEventButton = new BesGPictureButton(fEventPlayButtonFrame,
01650             gClient->GetPicture("ButtonEventPrev.gif"),
01651             kM_Button_PrevEvent);
01652     fPrevEventButton->SetToolTipText("Previous Event");
01653     fPrevEventButton->SetHeight(26);
01654     fPrevEventButton->SetWidth(25);
01655     fPrevEventButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01656 
01657     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 8, 0, 0, 4);
01658     fWidgets->Add(fLayout);
01659     fEventPlayButtonFrame->AddFrame(fPrevEventButton, fLayout);
01660 
01661     // next button
01662     fNextEventButton = new BesGPictureButton(fEventPlayButtonFrame,
01663             gClient->GetPicture("ButtonEventNext.gif"), kM_Button_NextEvent);
01664     fNextEventButton->SetToolTipText("Next Event");
01665     fNextEventButton->SetHeight(26);
01666     fNextEventButton->SetWidth(26);
01667     fNextEventButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01668 
01669     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 0, 10, 0, 4);
01670     fWidgets->Add(fLayout);
01671     fEventPlayButtonFrame->AddFrame(fNextEventButton, fLayout);
01672 
01673     // play button
01674     fPlayEventButton = new BesGPictureButton(fEventPlayButtonFrame,
01675             gClient->GetPicture("ButtonEventPlay.gif"),
01676             kM_Button_PlayEvent);
01677     fPlayEventButton->SetToolTipText("Play Event");
01678     fPlayEventButton->SetHeight(35);
01679     fPlayEventButton->SetWidth(34);
01680     fPlayEventButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01681 
01682     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 5, 0, 0, 4);
01683     fWidgets->Add(fLayout);
01684     fEventPlayButtonFrame->AddFrame(fPlayEventButton, fLayout);
01685 
01686     // first button
01687     fFirstEventButton = new BesGPictureButton(fEventPlayButtonFrame,
01688             gClient->GetPicture("ButtonEventReturn.gif"),
01689             kM_Button_FirstEvent);
01690     fFirstEventButton->SetToolTipText("First Event");
01691     fFirstEventButton->SetHeight(35);
01692     fFirstEventButton->SetWidth(25);
01693     fFirstEventButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
01694 
01695     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 0, 8, 0, 4);
01696     fWidgets->Add(fLayout);
01697     fEventPlayButtonFrame->AddFrame(fFirstEventButton, fLayout);
01698 
01699     // lable "Event Play"
01700     fEventPlayTextFrame = new TGCompositeFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 30, kHorizontalFrame);
01701     fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsTop, 2, 2, 2, 2);
01702     fWidgets->Add(fLayout);
01703     fEventControlFrame->AddFrame(fEventPlayTextFrame, fLayout);
01704 
01705     fEventPlayTextLabel = new TGLabel(fEventPlayTextFrame,"Prev,Next,Play/Stop,Return");
01706     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 5, 4, 2, 5);
01707     fWidgets->Add(fLayout);
01708     fEventPlayTextFrame->AddFrame(fEventPlayTextLabel, fLayout);
01709 
01710 
01711     // play speed
01712     fEventPlaySpeedFrame = new TGCompositeFrame(fEventControlFrame, fEventControlFrame->GetWidth(), 30, kHorizontalFrame);
01713     fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsTop, 4, 4, 4, 4);
01714     fWidgets->Add(fLayout);
01715     fEventControlFrame->AddFrame(fEventPlaySpeedFrame, fLayout);
01716 
01717     // input of speed
01718     fNumEntryEventPlaySpeed = new TGNumberEntry(fEventPlaySpeedFrame,(Double_t)this->GetEventPlaySpeed()/1000.0,4,
01719             kM_Button_EventPlaySpeed,
01720             (TGNumberFormat::EStyle) 1,(TGNumberFormat::EAttribute) 1);
01721     fNumEntryEventPlaySpeed->SetHeight(20);
01722     fNumEntryEventPlaySpeed->SetNumber(this->GetEventPlaySpeed()/1000.0);
01723     fNumEntryEventPlaySpeed->GetNumberEntry()->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
01724     fNumEntryEventPlaySpeed->GetNumberEntry()->Connect("TabPressed","BesClient",this,"ChangeFocus()");
01725     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 4, 4);
01726     fWidgets->Add(fLayout);
01727     fEventPlaySpeedFrame->AddFrame(fNumEntryEventPlaySpeed, fLayout);
01728 
01729     // label "Play Speed : "
01730     fEventPlaySpeedLabel = new TGLabel(fEventPlaySpeedFrame," sec/event ");
01731     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsRight, 2, 4, 4, 10);
01732     fWidgets->Add(fLayout);
01733     fEventPlaySpeedFrame->AddFrame(fEventPlaySpeedLabel, fLayout);
01734 
01735 
01736     /*
01737     //
01738     // frame for file list
01739     // ===================
01740     fEventListFrame = new TGCompositeFrame(tf, tf->GetWidth(), tf->GetHeight(), kVerticalFrame);
01741     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsBottom | kLHintsExpandX | kLHintsExpandY , 15, 15, 10, 200);
01742     fWidgets->Add(fLayout);
01743     //tf->AddFrame(fEventListFrame, fLayout);
01744     fEventListFrame->SetBackgroundPixmap(GetPic("12.gif"));
01745 
01746     // lable "File list"
01747     fEventListTextFrame = new TGCompositeFrame(fEventListFrame, fEventListFrame->GetWidth(), 30, kHorizontalFrame);
01748     fLayout = new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX, 0, 0, 0, 0);
01749     fWidgets->Add(fLayout);
01750     fEventListFrame->AddFrame(fEventListTextFrame, fLayout);
01751     fEventListTextFrame->SetBackgroundPixmap(GetPic("11.gif"));
01752 
01753     fEventListTextLabel = new TGLabel(fEventListTextFrame,"Event file list  ");
01754     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft | kLHintsExpandX , 2, 73, 4, 4);
01755     fWidgets->Add(fLayout);
01756     fEventListTextFrame->AddFrame(fEventListTextLabel, fLayout);
01757     fEventListTextLabel->SetBackgroundPixmap(GetPic("11.gif"));
01758 
01759     // frame EventListContent
01760     fEventListContentFrame = new TGCompositeFrame(fEventListFrame, fEventListFrame->GetWidth(), fEventListFrame->GetHeight()-30, kVerticalFrame);
01761     fLayout = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10);
01762     fWidgets->Add(fLayout);
01763     fEventListFrame->AddFrame(fEventListContentFrame, fLayout);
01764 
01765     fEventListView = new TGCanvas(fEventListContentFrame, 2, 2, kSunkenFrame | kDoubleBorder);
01766 
01767     fEventListTree = new TGListTree(fEventListView->GetViewPort(), 2, 2, kHorizontalFrame);
01768 
01769     fEventListView->SetContainer(fEventListTree);
01770     fEventListTree->SetCanvas(fEventListView);
01771     fLayout = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0);
01772     fWidgets->Add(fLayout);
01773     fEventListContentFrame->AddFrame(fEventListView, fLayout);
01774 
01775     // Connect event list tree
01776     fEventListTree->Connect("Clicked(TGListTreeItem*, Int_t)",
01777                 "BesClient", this,
01778             "HandleEventList(TGListTreeItem*, Int_t)");
01779 
01780     // init active tree item
01781     fItem = 0;
01782     fRunItem = 0;
01783     */
01784 
01785 
01786     // "Show DST Info" tab
01787     // ================
01788     tf = fTabs->AddTab("REC");
01789     //tf = fTabs->AddTab("DST");
01790     tf->SetBackgroundPixmap(GetPic("8.gif"));
01791 
01792     //Header
01793     fFrameHeader =new TGGroupFrame(tf, "Header");
01794     fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15);
01795     fWidgets->Add(fLayout);
01796     tf->AddFrame(fFrameHeader, fLayout);
01797     fChkBtnHeaderGlobal = new TGCheckButton(fFrameHeader, "Header", kM_Header_Global);
01798     fFrameHeader->AddFrame(fChkBtnHeaderGlobal);
01799     fChkBtnHeaderGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01800 
01801     // Hits
01802     fFrameHits = new TGGroupFrame(tf, "Hits");
01803     fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15);
01804     fWidgets->Add(fLayout);
01805     tf->AddFrame(fFrameHits, fLayout);
01806 
01807     fChkBtnMdcHitsGlobal  = new TGCheckButton(fFrameHits, "Mdc hits", kM_MdcHits_Global);
01808     fFrameHits->AddFrame(fChkBtnMdcHitsGlobal);
01809 
01810     fChkBtnTofHitsGlobal  = new TGCheckButton(fFrameHits, "Tof  hits", kM_TofHits_Global);
01811     fFrameHits->AddFrame(fChkBtnTofHitsGlobal);
01812 
01813     fChkBtnTofHitsEast  = new TGCheckButton(fFrameHits, " East ", kM_TofHits_East);
01814     fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0);
01815     fWidgets->Add(fLayout);
01816     fFrameHits->AddFrame(fChkBtnTofHitsEast, fLayout);
01817 
01818     fChkBtnTofHitsBarrel  = new TGCheckButton(fFrameHits, " Barrel ", kM_TofHits_Barrel);
01819     fFrameHits->AddFrame(fChkBtnTofHitsBarrel, fLayout);
01820 
01821     fChkBtnTofHitsWest  = new TGCheckButton(fFrameHits, " West ", kM_TofHits_West);
01822     fFrameHits->AddFrame(fChkBtnTofHitsWest, fLayout);
01823 
01824     fChkBtnEmcHitsGlobal  = new TGCheckButton(fFrameHits, "Emc hits", kM_EmcHits_Global);
01825     fFrameHits->AddFrame(fChkBtnEmcHitsGlobal);
01826 
01827     fChkBtnEmcHitsEast  = new TGCheckButton(fFrameHits, " East ", kM_EmcHits_East);
01828     fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0);
01829     fWidgets->Add(fLayout);
01830     fFrameHits->AddFrame(fChkBtnEmcHitsEast, fLayout);
01831 
01832     fChkBtnEmcHitsBarrel  = new TGCheckButton(fFrameHits, " Barrel ", kM_EmcHits_Barrel);
01833     fFrameHits->AddFrame(fChkBtnEmcHitsBarrel, fLayout);
01834 
01835     fChkBtnEmcHitsWest  = new TGCheckButton(fFrameHits, " West ", kM_EmcHits_West);
01836     fFrameHits->AddFrame(fChkBtnEmcHitsWest, fLayout);
01837 
01838     fChkBtnEmcHitsSide  = new TGCheckButton(fFrameHits, " Side ", kM_EmcHits_Side);
01839     fFrameHits->AddFrame(fChkBtnEmcHitsSide, fLayout);
01840 
01841     fChkBtnMucHitsGlobal  = new TGCheckButton(fFrameHits, "Muc hits", kM_MucHits_Global);
01842     fFrameHits->AddFrame(fChkBtnMucHitsGlobal);
01843 
01844     fChkBtnMucHitsEast  = new TGCheckButton(fFrameHits, " East ", kM_MucHits_East);
01845     fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0);
01846     fWidgets->Add(fLayout);
01847     fFrameHits->AddFrame(fChkBtnMucHitsEast, fLayout);
01848 
01849     fChkBtnMucHitsBarrel  = new TGCheckButton(fFrameHits, " Barrel ", kM_MucHits_Barrel);
01850     fFrameHits->AddFrame(fChkBtnMucHitsBarrel, fLayout);
01851 
01852     fChkBtnMucHitsWest  = new TGCheckButton(fFrameHits, " West ", kM_MucHits_West);
01853     fFrameHits->AddFrame(fChkBtnMucHitsWest, fLayout);
01854 
01855     fChkBtnMdcHitsGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01856     fChkBtnTofHitsGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01857     fChkBtnTofHitsEast  ->Connect("Clicked()", "BesClient", this, "SetState()");
01858     fChkBtnTofHitsBarrel->Connect("Clicked()", "BesClient", this, "SetState()");
01859     fChkBtnTofHitsWest  ->Connect("Clicked()", "BesClient", this, "SetState()");
01860     fChkBtnEmcHitsGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01861     fChkBtnEmcHitsEast  ->Connect("Clicked()", "BesClient", this, "SetState()");
01862     fChkBtnEmcHitsBarrel->Connect("Clicked()", "BesClient", this, "SetState()");
01863     fChkBtnEmcHitsWest  ->Connect("Clicked()", "BesClient", this, "SetState()");
01864     fChkBtnEmcHitsSide  ->Connect("Clicked()", "BesClient", this, "SetState()");
01865     fChkBtnMucHitsGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01866     fChkBtnMucHitsEast  ->Connect("Clicked()", "BesClient", this, "SetState()");
01867     fChkBtnMucHitsBarrel->Connect("Clicked()", "BesClient", this, "SetState()");
01868     fChkBtnMucHitsWest  ->Connect("Clicked()", "BesClient", this, "SetState()");
01869 
01870     // Tracks
01871     fFrameTracks = new TGGroupFrame(tf, "Tracks");
01872     fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15);
01873     fWidgets->Add(fLayout);
01874     tf->AddFrame(fFrameTracks, fLayout);
01875 
01876     fChkBtnTracksGlobal = new TGCheckButton(fFrameTracks, "Tracks", kM_Tracks_Global);
01877     fFrameTracks->AddFrame(fChkBtnTracksGlobal);
01878 
01879     fChkBtnTracksMdc = new TGCheckButton(fFrameTracks, " Mdc ", kM_Tracks_Mdc);
01880     fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0);
01881     fWidgets->Add(fLayout);
01882     fFrameTracks->AddFrame(fChkBtnTracksMdc, fLayout);
01883 
01884     fChkBtnTracksTof = new TGCheckButton(fFrameTracks, " Tof ", kM_Tracks_Tof);
01885     fFrameTracks->AddFrame(fChkBtnTracksTof, fLayout);
01886 
01887     fChkBtnTracksEmc = new TGCheckButton(fFrameTracks, " Emc ", kM_Tracks_Emc);
01888     fFrameTracks->AddFrame(fChkBtnTracksEmc, fLayout);
01889 
01890     fChkBtnTracksMuc = new TGCheckButton(fFrameTracks, " Muc ", kM_Tracks_Muc);
01891     fFrameTracks->AddFrame(fChkBtnTracksMuc, fLayout);
01892 
01893     fChkBtnTracksExt = new TGCheckButton(fFrameTracks, " Ext ", kM_Tracks_Ext);
01894     fFrameTracks->AddFrame(fChkBtnTracksExt, fLayout);
01895 
01896     fChkBtnTracksGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01897     fChkBtnTracksMdc->Connect("Clicked()", "BesClient", this, "SetState()");
01898     fChkBtnTracksTof->Connect("Clicked()", "BesClient", this, "SetState()");
01899     fChkBtnTracksEmc->Connect("Clicked()", "BesClient", this, "SetState()");
01900     fChkBtnTracksMuc->Connect("Clicked()", "BesClient", this, "SetState()");
01901     fChkBtnTracksExt->Connect("Clicked()", "BesClient", this, "SetState()");
01902 
01903     //
01904     // "Show Detector" tab
01905     // ===================
01906     tf = fTabs->AddTab("Detector");
01907     tf->SetBackgroundPixmap(GetPic("8.gif"));
01908     //tf->SetBackgroundPixmap(GetPic("3.gif"));
01909 
01910     fFrameSubDetector = new TGGroupFrame(tf, "Sub-Detector");
01911 
01912     // SubDetector
01913     fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15);
01914     fWidgets->Add(fLayout);
01915     tf->AddFrame(fFrameSubDetector, fLayout);
01916 
01917     // Mdc
01918     fChkBtnMdcGlobal  = new TGCheckButton(fFrameSubDetector, "Mdc", kM_Mdc_Global);
01919     fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0);
01920     fFrameSubDetector->AddFrame(fChkBtnMdcGlobal, fLayout);
01921     fChkBtnMdcGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01922 
01923     fChkBtnMdcTubes   = new TGCheckButton(fFrameSubDetector, "Tubes", kM_Mdc_Tubes);
01924     fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0);
01925     fFrameSubDetector->AddFrame(fChkBtnMdcTubes, fLayout);
01926     fChkBtnMdcTubes->Connect("Clicked()", "BesClient", this, "SetState()");
01927 
01928     fChkBtnMdcWires   = new TGCheckButton(fFrameSubDetector, "Wires", kM_Mdc_Wires);
01929     fFrameSubDetector->AddFrame(fChkBtnMdcWires, fLayout);
01930     fChkBtnMdcWires->Connect("Clicked()", "BesClient", this, "SetState()");
01931 
01932     // Tof
01933     fChkBtnTofGlobal   = new TGCheckButton(fFrameSubDetector, "Tof", kM_Tof_Global);
01934     fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0);
01935     fFrameSubDetector->AddFrame(fChkBtnTofGlobal, fLayout);
01936     fChkBtnTofGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01937 
01938     fChkBtnTofEast   = new TGCheckButton(fFrameSubDetector, "East EC", kM_Tof_East);
01939     fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0);
01940     fFrameSubDetector->AddFrame(fChkBtnTofEast, fLayout);
01941     fChkBtnTofEast->Connect("Clicked()", "BesClient", this, "SetState()");
01942 
01943     fChkBtnTofBarrel   = new TGCheckButton(fFrameSubDetector, "Barrel", kM_Tof_Barrel);
01944     fFrameSubDetector->AddFrame(fChkBtnTofBarrel, fLayout);
01945     fChkBtnTofBarrel->Connect("Clicked()", "BesClient", this, "SetState()");
01946 
01947     fChkBtnTofWest   = new TGCheckButton(fFrameSubDetector, "West EC", kM_Tof_West);
01948     fFrameSubDetector->AddFrame(fChkBtnTofWest, fLayout);
01949     fChkBtnTofWest->Connect("Clicked()", "BesClient", this, "SetState()");
01950 
01951     // Emc
01952     fChkBtnEmcGlobal   = new TGCheckButton(fFrameSubDetector, "Emc", kM_Emc_Global);
01953     fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0);
01954     fFrameSubDetector->AddFrame(fChkBtnEmcGlobal, fLayout);
01955     fChkBtnEmcGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01956 
01957     fChkBtnEmcEast   = new TGCheckButton(fFrameSubDetector, "East EC", kM_Emc_East);
01958     fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0);
01959     fFrameSubDetector->AddFrame(fChkBtnEmcEast, fLayout);
01960     fChkBtnEmcEast->Connect("Clicked()", "BesClient", this, "SetState()");
01961 
01962     fChkBtnEmcBarrel   = new TGCheckButton(fFrameSubDetector, "Barrel", kM_Emc_Barrel);
01963     fFrameSubDetector->AddFrame(fChkBtnEmcBarrel, fLayout);
01964     fChkBtnEmcBarrel->Connect("Clicked()", "BesClient", this, "SetState()");
01965 
01966     fChkBtnEmcWest   = new TGCheckButton(fFrameSubDetector, "West EC", kM_Emc_West);
01967     fFrameSubDetector->AddFrame(fChkBtnEmcWest, fLayout);
01968     fChkBtnEmcWest->Connect("Clicked()", "BesClient", this, "SetState()");
01969 
01970     fChkBtnEmcSide   = new TGCheckButton(fFrameSubDetector, "Side ", kM_Emc_Side);
01971     fFrameSubDetector->AddFrame(fChkBtnEmcSide, fLayout);
01972     fChkBtnEmcSide->Connect("Clicked()", "BesClient", this, "SetState()");
01973 
01974     // Muc
01975     fChkBtnMucGlobal   = new TGCheckButton(fFrameSubDetector, "Muc", kM_Muc_Global);
01976     fLayout = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0);
01977     fFrameSubDetector->AddFrame(fChkBtnMucGlobal, fLayout);
01978     fChkBtnMucGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
01979 
01980     fChkBtnMucEast   = new TGCheckButton(fFrameSubDetector, "East EC", kM_Muc_East);
01981     fLayout = new TGLayoutHints(kLHintsLeft, 20, 0, 0, 0);
01982     fFrameSubDetector->AddFrame(fChkBtnMucEast, fLayout);
01983     fChkBtnMucEast->Connect("Clicked()", "BesClient", this, "SetState()");
01984 
01985     fChkBtnMucBarrel   = new TGCheckButton(fFrameSubDetector, "Barrel", kM_Muc_Barrel);
01986     fFrameSubDetector->AddFrame(fChkBtnMucBarrel, fLayout);
01987     fChkBtnMucBarrel->Connect("Clicked()", "BesClient", this, "SetState()");
01988 
01989     fChkBtnMucWest   = new TGCheckButton(fFrameSubDetector, "West EC", kM_Muc_West);
01990     fFrameSubDetector->AddFrame(fChkBtnMucWest, fLayout);
01991     fChkBtnMucWest->Connect("Clicked()", "BesClient", this, "SetState()");
01992 
01993     fChkBtnMucStrips   = new TGCheckButton(fFrameSubDetector, "Strips", kM_Muc_Strips);
01994     fFrameSubDetector->AddFrame(fChkBtnMucStrips, fLayout);
01995     fChkBtnMucStrips->Connect("Clicked()", "BesClient", this, "SetState()");
01996 
01997     // Other parts
01998     fFrameOthers = new TGGroupFrame (tf, "Others");
01999     fLayout = new TGLayoutHints (kLHintsExpandX, 15, 15, 15, 15);
02000     fWidgets->Add(fLayout);
02001     tf->AddFrame (fFrameOthers, fLayout);
02002 
02003     fChkBtnBeamPipe = new TGCheckButton (fFrameOthers, "Beam Pipe", kM_BeamPipe);
02004     fFrameOthers->AddFrame (fChkBtnBeamPipe);
02005     fChkBtnBeamPipe->Connect("Clicked()", "BesClient", this, "SetState()");
02006 
02007     fChkBtnZRPlaneOnXY = new TGCheckButton (fFrameOthers, "ZR plane on XY", kM_ZRPlaneOnXY);
02008     fFrameOthers->AddFrame (fChkBtnZRPlaneOnXY);
02009     fChkBtnZRPlaneOnXY->Connect("Clicked()", "BesClient", this, "SetState()");
02010 
02011     fChkBtnAxis = new TGCheckButton (fFrameOthers, "Axis", kM_Axis);
02012     fFrameOthers->AddFrame (fChkBtnAxis);
02013     fChkBtnAxis->Connect("Clicked()", "BesClient", this, "SetState()");
02014 
02015     //
02016     // "Others" tab
02017     // ================
02018     tf = fTabs->AddTab("Others");
02019     tf->SetBackgroundPixmap(GetPic("8.gif"));
02020 
02021     //Mdc TQMatch
02022     fFrameMdcMatch =new TGGroupFrame(tf, "Mdc TQ Match");
02023     fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15);
02024     fWidgets->Add(fLayout);
02025     tf->AddFrame(fFrameMdcMatch, fLayout);
02026 
02027     fChkBtnMdcTMatchGlobal = new TGCheckButton(fFrameMdcMatch, "T Match", kM_Mdc_TMatch_Global);
02028     fChkBtnMdcTMatchGlobal->SetState(kButtonDown);
02029     //fChkBtnMdcTMatchGlobal->SetOn();
02030     fFrameMdcMatch->AddFrame(fChkBtnMdcTMatchGlobal);
02031     fChkBtnMdcTMatchGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
02032 
02033     fChkBtnMdcQMatchGlobal = new TGCheckButton(fFrameMdcMatch, "Q Match", kM_Mdc_QMatch_Global);
02034     fChkBtnMdcQMatchGlobal->SetState(kButtonDown);
02035     //fChkBtnMdcQMatchGlobal->SetOn();
02036     fFrameMdcMatch->AddFrame(fChkBtnMdcQMatchGlobal);
02037     fChkBtnMdcQMatchGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
02038 
02039     //Tof TQMatch
02040     fFrameTofMatch =new TGGroupFrame(tf, "Tof TQ Match");
02041     fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15);
02042     fWidgets->Add(fLayout);
02043     tf->AddFrame(fFrameTofMatch, fLayout);
02044 
02045     fChkBtnTofTMatchGlobal = new TGCheckButton(fFrameTofMatch, "T Match", kM_Tof_TMatch_Global);
02046     fChkBtnTofTMatchGlobal->SetState(kButtonDown);
02047     //fChkBtnTofTMatchGlobal->SetOn();
02048     fFrameTofMatch->AddFrame(fChkBtnTofTMatchGlobal);
02049     fChkBtnTofTMatchGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
02050 
02051     fChkBtnTofQMatchGlobal = new TGCheckButton(fFrameTofMatch, "Q Match", kM_Tof_QMatch_Global);
02052     fChkBtnTofQMatchGlobal->SetState(kButtonDown);
02053     //fChkBtnTofQMatchGlobal->SetOn();
02054     fFrameTofMatch->AddFrame(fChkBtnTofQMatchGlobal);
02055     fChkBtnTofQMatchGlobal->Connect("Clicked()", "BesClient", this, "SetState()");
02056 
02057     // Magnetic field
02058     fFrameMagnetic =new TGGroupFrame(tf, "Magnetic Field(Tesla)");
02059     fLayout = new TGLayoutHints(kLHintsExpandX, 15, 15, 15, 15);
02060     fWidgets->Add(fLayout);
02061     tf->AddFrame(fFrameMagnetic, fLayout);
02062 
02063     // input of Magnetic field
02064     fNumEntryMagnetic = new TGNumberEntry(fFrameMagnetic,
02065                                           1.0, 4,
02066                                           kM_Button_Magnetic,
02067                                           TGNumberFormat::kNESRealTwo,
02068                                           TGNumberFormat::kNEAAnyNumber);
02069     fNumEntryMagnetic->SetHeight(20);
02070     fNumEntryMagnetic->SetNumber(1.0);
02071     fNumEntryMagnetic->GetNumberEntry()
02072     ->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
02073     fNumEntryMagnetic->GetNumberEntry()
02074     ->Connect("TabPressed","BesClient",this,"ChangeFocus()");
02075     fLayout = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 4, 4, 4);
02076     fWidgets->Add(fLayout);
02077     fFrameMagnetic->AddFrame(fNumEntryMagnetic, fLayout);
02078 
02079 
02080     for (Int_t iTab = 0; iTab < fTabs->GetNumberOfTabs(); iTab++) {
02081         fTabs->GetTabTab(iTab)->SetBackgroundPixmap(GetPic("8.gif"));
02082     }
02083 }

virtual void BesClient::CreateTitleBar  )  [virtual]
 

void BesClient::CreateTitleBar  )  [virtual]
 

00981                                {
00982     //
00983     // Create the title bar
00984 
00985     // Create frame
00986     fTitleFrame = new TGHorizontalFrame(this, this->GetWidth(), 10);
00987 }

virtual void BesClient::CreateToolBar  )  [virtual]
 

void BesClient::CreateToolBar  )  [virtual]
 

00851                               {
00852 
00853     fToolBarFrame = new TGCompositeFrame(this, 300, 25, kHorizontalFrame);
00854     fToolBarFrame->SetBackgroundPixmap(GetPic("ToolButtonBarBckgnd.gif"));
00855 
00856     fToolBarFirstItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 10,  0, 1, 2);
00857     fToolBarItemLayout      = new TGLayoutHints(kLHintsTop | kLHintsLeft,  0,  0, 1, 2);
00858     fToolBarLastItemLayout  = new TGLayoutHints(kLHintsTop | kLHintsLeft,  0, 14, 1, 2);
00859 
00860     Int_t width = 23, height = 22;
00861     Int_t nToolSplitter = 0;
00862 
00863     // Tool Button Splitter
00864     for (Int_t i = 0; i < kNToolSplitter; i++) {
00865         fToolButtonSplitter[i] = new BesGPictureButton(fToolBarFrame,
00866                 gClient->GetPicture("ToolButtonSplitter.gif"));
00867         fToolButtonSplitter[i]->SetHeight(20);
00868         fToolButtonSplitter[i]->SetWidth(5);
00869         fToolButtonSplitter[i]->SetState(kButtonDisabled);
00870     }
00871 
00872     // Switch Pad
00873     fSwitchPadButton = new BesGPictureButton(fToolBarFrame,
00874             gClient->GetPicture("ButtonSwitchPad.gif"),
00875             kM_Button_SwitchPad);
00876     fSwitchPadButton->SetPictureHL(gClient->GetPicture("ButtonSwitchPadHL.gif"));
00877     fSwitchPadButton->SetToolTipText("Switch Among Pads");
00878     fSwitchPadButton->SetHeight(height);
00879     fSwitchPadButton->SetWidth(width);
00880     fSwitchPadButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00881     fToolBarFrame->AddFrame(fSwitchPadButton, fToolBarFirstItemLayout);
00882 
00883     // Tool Button Splitter
00884     fToolBarFrame->AddFrame(fToolButtonSplitter[nToolSplitter], fToolBarItemLayout);
00885     nToolSplitter++;
00886 
00887     // Show Info
00888     fShowInfoButton = new BesGPictureButton(fToolBarFrame,
00889                                             gClient->GetPicture("ButtonShowInfoST.gif"),
00890                                             kM_Button_ShowInfo);
00891     fShowInfoButton->SetState(true);
00892     fShowInfoButton->SetPictureHL(gClient->GetPicture("ButtonShowInfoHL.gif"));
00893     fShowInfoButton->SetToolTipText("Show Info");
00894     fShowInfoButton->SetHeight(height);
00895     fShowInfoButton->SetWidth(width);
00896     fShowInfoButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00897     fToolBarFrame->AddFrame(fShowInfoButton, fToolBarItemLayout);
00898 
00899     // Show Axis
00900     fShowAxisButton = new BesGPictureButton(fToolBarFrame,
00901                                             gClient->GetPicture("ButtonShowAxis.gif"),
00902                                             kM_Button_ShowAxis);
00903     fShowAxisButton->SetPictureHL(gClient->GetPicture("ButtonShowAxisHL.gif"));
00904     fShowAxisButton->SetToolTipText("Show Axis");
00905     fShowAxisButton->SetHeight(height);
00906     fShowAxisButton->SetWidth(width);
00907     fShowAxisButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00908     fToolBarFrame->AddFrame(fShowAxisButton, fToolBarItemLayout);
00909 
00910     // Tool Button Splitter
00911     fToolBarFrame->AddFrame(fToolButtonSplitter[nToolSplitter], fToolBarItemLayout);
00912     nToolSplitter++;
00913 
00914     // FishEye View
00915     fFishEyeViewButton = new BesGPictureButton(fToolBarFrame,
00916             gClient->GetPicture("ButtonFishEyeView.gif"),
00917             kM_Button_FishEyeView);
00918     fFishEyeViewButton->SetPictureHL(gClient->GetPicture("ButtonFishEyeViewHL.gif"));
00919     fFishEyeViewButton->SetToolTipText("FishEye View");
00920     fFishEyeViewButton->SetHeight(height);
00921     fFishEyeViewButton->SetWidth(width);
00922     fFishEyeViewButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00923     fToolBarFrame->AddFrame(fFishEyeViewButton, fToolBarItemLayout);
00924 
00925     // ParallelView
00926     fParallelViewButton = new BesGPictureButton(fToolBarFrame,
00927             gClient->GetPicture("ButtonParallelViewST.gif"),
00928             kM_Button_ParallelView);
00929     fParallelViewButton->SetState(true);
00930     fParallelViewButton->SetPictureHL(gClient->GetPicture("ButtonParallelViewHL.gif"));
00931     fParallelViewButton->SetToolTipText("Parallel View");
00932     fParallelViewButton->SetHeight(height);
00933     fParallelViewButton->SetWidth(width);
00934     fParallelViewButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00935     fToolBarFrame->AddFrame(fParallelViewButton, fToolBarItemLayout);
00936 
00937     // Perspective View
00938     fPerspectiveViewButton = new BesGPictureButton(fToolBarFrame,
00939             gClient->GetPicture("ButtonPerspectiveView.gif"),
00940             kM_Button_PerspectiveView);
00941     fPerspectiveViewButton->SetPictureHL(gClient->GetPicture("ButtonPerspectiveViewHL.gif"));
00942     fPerspectiveViewButton->SetToolTipText("Perspective View");
00943     fPerspectiveViewButton->SetHeight(height);
00944     fPerspectiveViewButton->SetWidth(width);
00945     fPerspectiveViewButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00946     fToolBarFrame->AddFrame(fPerspectiveViewButton, fToolBarItemLayout);
00947 
00948     // Tool Button Splitter
00949     fToolBarFrame->AddFrame(fToolButtonSplitter[nToolSplitter], fToolBarItemLayout);
00950     nToolSplitter++;
00951 
00952     // OpenGL
00953     fOpenGLButton = new BesGPictureButton(fToolBarFrame,
00954                                           gClient->GetPicture("ButtonOpenGL.gif"),
00955                                           kM_Button_OpenGL);
00956     fOpenGLButton->SetPictureHL(gClient->GetPicture("ButtonOpenGLHL.gif"));
00957     fOpenGLButton->SetToolTipText("OpenGL View");
00958     fOpenGLButton->SetHeight(height);
00959     fOpenGLButton->SetWidth(width);
00960     fOpenGLButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00961     fToolBarFrame->AddFrame(fOpenGLButton, fToolBarItemLayout);
00962 
00963     // X3D
00964     fX3DButton = new BesGPictureButton(fToolBarFrame,
00965                                        gClient->GetPicture("ButtonX3D.gif"),
00966                                        kM_Button_X3D);
00967     fX3DButton->SetPictureHL(gClient->GetPicture("ButtonX3DHL.gif"));
00968     fX3DButton->SetToolTipText("X3D View");
00969     fX3DButton->SetHeight(height);
00970     fX3DButton->SetWidth(width);
00971     fX3DButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00972     fToolBarFrame->AddFrame(fX3DButton, fToolBarItemLayout);
00973 
00974     // Tool Button Splitter
00975     fToolBarFrame->AddFrame(fToolButtonSplitter[nToolSplitter], fToolBarLastItemLayout);
00976     nToolSplitter++;
00977 }

virtual void BesClient::CreateUpButtonBar  )  [virtual]
 

void BesClient::CreateUpButtonBar  )  [virtual]
 

00558                                   {
00559     //
00560     fUpButtonBarFrame = new TGCompositeFrame(this, 300, 25, kHorizontalFrame);
00561     fUpButtonBarFrame->SetBackgroundPixmap(GetPic("UpButtonBarBckgnd.gif"));
00562 
00563     fUpButtonBarFirstItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 15,  0, 1, 2);
00564     fUpButtonBarItemLayout      = new TGLayoutHints(kLHintsTop | kLHintsLeft,  0,  0, 1, 2);
00565     fUpButtonBarLastItemLayout  = new TGLayoutHints(kLHintsTop | kLHintsLeft,  0, 13, 1, 2);
00566 
00567     Int_t width = 23, height = 22;
00568     Int_t h, charw, w;  // of number entry
00569     Int_t nUpSplitter = 0;
00570 
00571     // Up Button Splitter
00572     for (Int_t i = 0; i < kNUpSplitter; i++) {
00573         fUpButtonSplitter[i] = new BesGPictureButton(fUpButtonBarFrame,
00574                 gClient->GetPicture("UpButtonSplitter.gif"));
00575         fUpButtonSplitter[i]->SetHeight(20);
00576         fUpButtonSplitter[i]->SetWidth(5);
00577         fUpButtonSplitter[i]->SetState(kButtonDisabled);
00578     }
00579 
00580     // Load Geo File
00581     fLoadGeoFileButton = new BesGPictureButton(fUpButtonBarFrame,
00582             gClient->GetPicture("ButtonLoadGeoFile.gif"),
00583             kM_Button_LoadGeoFile);
00584     fLoadGeoFileButton->SetPictureHL(gClient->GetPicture("ButtonLoadGeoFileHL.gif"));
00585     fLoadGeoFileButton->SetToolTipText("Load Geometry File");
00586     fLoadGeoFileButton->SetHeight(height);
00587     fLoadGeoFileButton->SetWidth(width);
00588     fLoadGeoFileButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00589     fUpButtonBarFrame->AddFrame(fLoadGeoFileButton, fUpButtonBarFirstItemLayout);
00590 
00591     // Open Event File
00592     fOpenEventFileButton = new BesGPictureButton(fUpButtonBarFrame,
00593             gClient->GetPicture("ButtonOpenEventFile.gif"),
00594             kM_Button_OpenEventFile);
00595     fOpenEventFileButton->SetPictureHL(gClient->GetPicture("ButtonOpenEventFileHL.gif"));
00596     fOpenEventFileButton->SetToolTipText("Open Event File");
00597     fOpenEventFileButton->SetHeight(height);
00598     fOpenEventFileButton->SetWidth(width);
00599     fOpenEventFileButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00600     fUpButtonBarFrame->AddFrame(fOpenEventFileButton, fUpButtonBarItemLayout);
00601 
00602     // Save Pic As
00603     fSavePicAsButton = new BesGPictureButton(fUpButtonBarFrame,
00604             gClient->GetPicture("ButtonSavePicAs.gif"),
00605             kM_Button_SavePicAs);
00606     fSavePicAsButton->SetPictureHL(gClient->GetPicture("ButtonSavePicAsHL.gif"));
00607     fSavePicAsButton->SetToolTipText("Save Picture as");
00608     fSavePicAsButton->SetHeight(height);
00609     fSavePicAsButton->SetWidth(width);
00610     fSavePicAsButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00611     fUpButtonBarFrame->AddFrame(fSavePicAsButton, fUpButtonBarItemLayout);
00612 
00613     // Save Pic As PS
00614     fSavePicAsPSButton = new BesGPictureButton(fUpButtonBarFrame,
00615             gClient->GetPicture("ButtonSavePicAsPS.gif"),
00616             kM_Button_SavePicAsPS);
00617     fSavePicAsPSButton->SetPictureHL(gClient->GetPicture("ButtonSavePicAsPSHL.gif"));
00618     fSavePicAsPSButton->SetToolTipText("Save Picture as besvis.ps");
00619     fSavePicAsPSButton->SetHeight(height);
00620     fSavePicAsPSButton->SetWidth(width);
00621     fSavePicAsPSButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00622     fUpButtonBarFrame->AddFrame(fSavePicAsPSButton, fUpButtonBarItemLayout);
00623 
00624     // Up Button Splitter
00625     fUpButtonBarFrame->AddFrame(fUpButtonSplitter[nUpSplitter], fUpButtonBarItemLayout);
00626     nUpSplitter++;
00627 
00628     // Refresh
00629     fRefreshButton = new BesGPictureButton(fUpButtonBarFrame,
00630                                            gClient->GetPicture("ButtonRefresh.gif"),
00631                                            kM_Button_Refresh);
00632     fRefreshButton->SetPictureHL(gClient->GetPicture("ButtonRefreshHL.gif"));
00633     fRefreshButton->SetToolTipText("Refresh");
00634     fRefreshButton->SetHeight(height);
00635     fRefreshButton->SetWidth(width);
00636     fRefreshButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00637     fUpButtonBarFrame->AddFrame(fRefreshButton, fUpButtonBarItemLayout);
00638 
00639     // Reset Current
00640     fResetCurrentButton = new BesGPictureButton(fUpButtonBarFrame,
00641             gClient->GetPicture("ButtonResetCurrent.gif"),
00642             kM_Button_ResetCurrent);
00643     fResetCurrentButton->SetPictureHL(gClient->GetPicture("ButtonResetCurrentHL.gif"));
00644     fResetCurrentButton->SetToolTipText("Reset Current Pad");
00645     fResetCurrentButton->SetHeight(height);
00646     fResetCurrentButton->SetWidth(width);
00647     fResetCurrentButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00648     fUpButtonBarFrame->AddFrame(fResetCurrentButton, fUpButtonBarItemLayout);
00649 
00650     // Reset All
00651     fResetAllButton = new BesGPictureButton(fUpButtonBarFrame,
00652                                             gClient->GetPicture("ButtonResetAll.gif"),
00653                                             kM_Button_ResetAll);
00654     fResetAllButton->SetPictureHL(gClient->GetPicture("ButtonResetAllHL.gif"));
00655     fResetAllButton->SetToolTipText("Reset All Pads");
00656     fResetAllButton->SetHeight(height);
00657     fResetAllButton->SetWidth(width);
00658     fResetAllButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00659     fUpButtonBarFrame->AddFrame(fResetAllButton, fUpButtonBarItemLayout);
00660 
00661     // Up Button Splitter
00662     fUpButtonBarFrame->AddFrame(fUpButtonSplitter[nUpSplitter], fUpButtonBarItemLayout);
00663     nUpSplitter++;
00664 
00665     // Zoom Out
00666     fZoomOutButton = new BesGPictureButton(fUpButtonBarFrame,
00667                                            gClient->GetPicture("ButtonZoomOut.gif"),
00668                                            kM_Button_ZoomOut);
00669     fZoomOutButton->SetPictureHL(gClient->GetPicture("ButtonZoomOutHL.gif"));
00670     fZoomOutButton->SetToolTipText("Zoom Out");
00671     fZoomOutButton->SetHeight(height);
00672     fZoomOutButton->SetWidth(width);
00673     fZoomOutButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00674     fUpButtonBarFrame->AddFrame(fZoomOutButton, fUpButtonBarItemLayout);
00675 
00676     // Zoom Ratio number
00677     fZoomRatioNumber = new TGNumberEntryField( fUpButtonBarFrame, kM_Button_ZoomRatioNumber,
00678             100.0,
00679             (TGNumberFormat::EStyle) 1, (TGNumberFormat::EAttribute) 0 );
00680     fZoomRatioNumber->Connect("ReturnPressed","BesClient",this,"ExecuteReturn()");
00681     h = Int_t(fZoomRatioNumber->GetDefaultHeight()/1.2); // default height 22
00682     charw = fZoomRatioNumber->GetCharWidth("0123456");
00683     w = charw * TMath::Abs(5) / 10 + 8 + 2 * h / 3 + 2; // 5 is digit width, default width 46
00684     //cout << h << " " << w << endl;
00685     fZoomRatioNumber->Resize(w, h);
00686 
00687     fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsCenterY);
00688     fWidgets->Add(fLayout);
00689     fUpButtonBarFrame->AddFrame(fZoomRatioNumber, fLayout);
00690 
00691     // "%"
00692     fZoomRatioPercentButton = new BesGPictureButton(fUpButtonBarFrame,
00693             gClient->GetPicture("ButtonZoomRatioPercent.gif"));
00694     fZoomRatioPercentButton->SetHeight(20);
00695     fZoomRatioPercentButton->SetWidth(10);
00696     fZoomRatioPercentButton->SetState(kButtonDisabled);
00697     fUpButtonBarFrame->AddFrame(fZoomRatioPercentButton, fUpButtonBarItemLayout);
00698 
00699     // Zoom In
00700     fZoomInButton = new BesGPictureButton(fUpButtonBarFrame,
00701                                           gClient->GetPicture("ButtonZoomIn.gif"),
00702                                           kM_Button_ZoomIn);
00703     fZoomInButton->SetPictureHL(gClient->GetPicture("ButtonZoomInHL.gif"));
00704     fZoomInButton->SetToolTipText("Zoom In");
00705     fZoomInButton->SetHeight(height);
00706     fZoomInButton->SetWidth(width);
00707     fZoomInButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00708     fUpButtonBarFrame->AddFrame(fZoomInButton, fUpButtonBarItemLayout);
00709 
00710     // Cursor Pick
00711     fCursorButton[0] =  new BesGPictureButton(fUpButtonBarFrame,
00712             gClient->GetPicture("ButtonCursorPickST.gif"),
00713             kM_Button_CursorPick);
00714     fCursorButton[0]->SetState(true); // with "Button***ST" should set state on
00715     fCursorButton[0]->SetPictureHL(gClient->GetPicture("ButtonCursorPickHL.gif"));
00716     fCursorButton[0]->SetToolTipText("Select Tool");
00717     //fCursorButton[0]->SetState(kButtonEngaged);
00718 
00719     // Cursor Hand
00720     fCursorButton[1] =  new BesGPictureButton(fUpButtonBarFrame,
00721             gClient->GetPicture("ButtonCursorHand.gif"),
00722             kM_Button_CursorHand);
00723     fCursorButton[1]->SetPictureHL(gClient->GetPicture("ButtonCursorHandHL.gif"));
00724     fCursorButton[1]->SetToolTipText("Hand Tool");
00725 
00726     for (int i = 0; i < kNCursorState; i++) {
00727         fCursorButton[i]->SetHeight(height);
00728         fCursorButton[i]->SetWidth(width);
00729         fCursorButton[i]->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00730         fUpButtonBarFrame->AddFrame(fCursorButton[i], fUpButtonBarItemLayout);
00731     }
00732 
00733     // Up Button Splitter
00734     fUpButtonBarFrame->AddFrame(fUpButtonSplitter[nUpSplitter], fUpButtonBarItemLayout);
00735     nUpSplitter++;
00736 
00737     // Switch Display Mode
00738     fSwitchDisplayModeButton = new BesGPictureButton(fUpButtonBarFrame,
00739             gClient->GetPicture("ButtonSwitchDisplayMode.gif"),
00740             kM_Button_SwitchDisplayMode);
00741     fSwitchDisplayModeButton->SetPictureHL(gClient->GetPicture("ButtonSwitchDisplayModeHL.gif"));
00742     fSwitchDisplayModeButton->SetToolTipText("Switch Display Mode");
00743     fSwitchDisplayModeButton->SetHeight(height);
00744     fSwitchDisplayModeButton->SetWidth(width);
00745     fSwitchDisplayModeButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00746     fUpButtonBarFrame->AddFrame(fSwitchDisplayModeButton, fUpButtonBarItemLayout);
00747 
00748     // Set Home
00749     fSetHomeButton = new BesGPictureButton(fUpButtonBarFrame,
00750                                            gClient->GetPicture("ButtonSetHome.gif"),
00751                                            kM_Button_SetHome);
00752     fSetHomeButton->SetPictureHL(gClient->GetPicture("ButtonSetHomeHL.gif"));
00753     fSetHomeButton->SetToolTipText("Set home position");
00754     fSetHomeButton->SetHeight(height);
00755     fSetHomeButton->SetWidth(width);
00756     fSetHomeButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00757     fUpButtonBarFrame->AddFrame(fSetHomeButton, fUpButtonBarItemLayout);
00758 
00759     // Go Home
00760     fGoHomeButton = new BesGPictureButton(fUpButtonBarFrame,
00761                                           gClient->GetPicture("ButtonGoHome.gif"),
00762                                           kM_Button_GoHome);
00763     fGoHomeButton->SetPictureHL(gClient->GetPicture("ButtonGoHomeHL.gif"));
00764     fGoHomeButton->SetToolTipText("Go to home position");
00765     fGoHomeButton->SetHeight(height);
00766     fGoHomeButton->SetWidth(width);
00767     fGoHomeButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00768     fUpButtonBarFrame->AddFrame(fGoHomeButton, fUpButtonBarItemLayout);
00769 
00770     // Save My style
00771     fSaveMyConfigButton = new BesGPictureButton(fUpButtonBarFrame,
00772             gClient->GetPicture("ButtonSaveMyConfig.gif"),
00773             kM_Button_SaveMyConfig);
00774     fSaveMyConfigButton->SetPictureHL(gClient->GetPicture("ButtonSaveMyConfigHL.gif"));
00775     fSaveMyConfigButton->SetToolTipText("Save My Style");
00776     fSaveMyConfigButton->SetHeight(height);
00777     fSaveMyConfigButton->SetWidth(width);
00778     fSaveMyConfigButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00779     fUpButtonBarFrame->AddFrame(fSaveMyConfigButton, fUpButtonBarItemLayout);
00780 
00781     // Load My style
00782     fLoadMyConfigButton = new BesGPictureButton(fUpButtonBarFrame,
00783             gClient->GetPicture("ButtonLoadMyConfig.gif"),
00784             kM_Button_LoadMyConfig);
00785     fLoadMyConfigButton->SetPictureHL(gClient->GetPicture("ButtonLoadMyConfigHL.gif"));
00786     fLoadMyConfigButton->SetToolTipText("Load My Style");
00787     fLoadMyConfigButton->SetHeight(height);
00788     fLoadMyConfigButton->SetWidth(width);
00789     fLoadMyConfigButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00790     fUpButtonBarFrame->AddFrame(fLoadMyConfigButton, fUpButtonBarItemLayout);
00791 
00792     // Up Button Splitter
00793     fUpButtonBarFrame->AddFrame(fUpButtonSplitter[nUpSplitter], fUpButtonBarItemLayout);
00794     nUpSplitter++;
00795 
00796     // Help
00797     fHelpButton = new BesGPictureButton(fUpButtonBarFrame,
00798                                         gClient->GetPicture("ButtonHelp.gif"),
00799                                         kM_Button_Help);
00800     fHelpButton->SetPictureHL(gClient->GetPicture("ButtonHelpHL.gif"));
00801     fHelpButton->SetToolTipText("Help");
00802     fHelpButton->SetHeight(height);
00803     fHelpButton->SetWidth(width);
00804     fHelpButton->Connect("Clicked()", "BesClient", this, "HandleButtons()");
00805     fUpButtonBarFrame->AddFrame(fHelpButton, fUpButtonBarLastItemLayout);
00806 }

virtual void BesClient::CreateWidget const char *  title,
UInt_t  width,
UInt_t  height
[virtual]
 

void BesClient::CreateWidget const char *  title,
UInt_t  width,
UInt_t  height
[virtual]
 

00236                                                                            {
00237     //
00238     // Create display
00239 
00240     //CreateHorizontalRuler();
00241 
00242     // Create menu bar
00243     CreateMenuBar();
00244     //fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 10, 100, 2, 2);
00245     fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 1, 0);
00246     fWidgets->Add(fLayout);
00247     this->AddFrame(fMenuBar, fLayout);
00248 
00249     //CreateHorizontalRuler();
00250 
00251     // Create upButton bar
00252     CreateUpButtonBar();
00253     fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 0, 0, 1);
00254     fWidgets->Add(fLayout);
00255     this->AddFrame(fUpButtonBarFrame, fLayout);
00256 
00257     //CreateHorizontalRuler();
00258 
00259     // Create title bar
00260     CreateTitleBar();
00261     fLayout = new TGLayoutHints(kLHintsCenterX | kLHintsExpandX, 5, 5, 0, 0);
00262     fWidgets->Add(fLayout);
00263     this->AddFrame(fTitleFrame, fLayout);
00264 
00265     //CreateHorizontalRuler();
00266 
00267     // Create main frame
00268     CreateMainFrame();
00269     fLayout = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0);
00270     fWidgets->Add(fLayout);
00271     this->AddFrame(fMainFrame, fLayout);
00272 
00273     // Create display mode bar
00274     CreateDisplayModeBar();
00275     fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 0, 0);
00276     fWidgets->Add(fLayout);
00277     this->AddFrame(fDisplayModeBarFrame,  fLayout);
00278 
00279     // Create toolbar
00280     CreateToolBar();
00281     fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 3, 0, 1, 0);
00282     fWidgets->Add(fLayout);
00283     this->AddFrame(fToolBarFrame,  fLayout);
00284 
00285     // Create status bar
00286     CreateStatusBar();
00287     fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 0, 0, 0, 0);
00288     fWidgets->Add(fLayout);
00289     this->AddFrame(fStatusBar, fLayout);
00290 
00291     // Toplevel widget layout
00292     TString ttitle(title);
00293     ttitle.Append("@");
00294     ttitle.Append(gSystem->HostName());
00295     SetWindowName(ttitle);
00296     SetIconName(title);
00297     SetIconPixmap( (fBesVisPath + TString("/icons/LogoBesVisMini.gif")).Data() );
00298     SetClassHints("BesVis", "Bes Event Visualisation");
00299 
00300     SetWMPosition(10, 10); // position of the window
00301     SetMWMHints(kMWMDecorAll, kMWMFuncAll, kMWMInputModeless);
00302     MapSubwindows();
00303     Resize(GetDefaultSize());
00304     Resize(width, height);
00305     MapWindow();
00306 }

virtual void BesClient::ExecuteEvent Int_t  event,
Int_t  px,
Int_t  py,
TObject *  sel
[virtual]
 

void BesClient::ExecuteEvent Int_t  event,
Int_t  px,
Int_t  py,
TObject *  sel
[virtual]
 

03891                                                                           {
03892   //
03893   // Actions in reponse to mouse button events
03894 
03895   // Get view from current pad
03896   if ( !gBesGeometry ) {
03897     cout << "there is not BesGeometry" << endl;         // added by tianhl to debug event
03898     return;
03899   }
03900 
03901 
03902   BesView *view = (BesView*)gPad->GetView();
03903   TString viewInfo;
03904   if (view) viewInfo = TString(view->GetObjectInfo(px, py));
03905 
03906   switch (event) {
03907 
03908     case kKeyPress:
03909       // px = char code of pressed key
03910       // py = counter
03911       if ( py <= 0 ) py = 1; // Reset counter
03912       switch ( Char_t(px) ) {
03913         case '-':                   // Zoom out
03914         case 'k':
03915         case 'K':
03916         case 'q':
03917         case 'Q':
03918           view->ZoomOut();
03919           break;
03920         case '+':                   // Zoom in
03921         case 'j':
03922         case 'J':
03923         case 'e':
03924         case 'E':
03925           view->ZoomIn();
03926           break;
03927         case 'h':                   // Move to the left
03928         case 'H':
03929         case 'a':
03930         case 'A':
03931           view->Move(-10,0);
03932           fEmbeddedCanvas->GetCanvas()->Update();
03933           break;
03934         case 'l':                   // Move to the right
03935         case 'L':
03936         case 'd':
03937         case 'D':
03938           view->Move(10,0);
03939           fEmbeddedCanvas->GetCanvas()->Update();
03940           break;
03941         case 'u':                   // Move up
03942         case 'U':
03943         case 'w':
03944         case 'W':
03945           view->Move(0,-10);
03946           fEmbeddedCanvas->GetCanvas()->Update();
03947           break;
03948         case 'i':                   // Move down
03949         case 'I':
03950         case 's':
03951         case 'S':
03952           view->Move(0,10);
03953           fEmbeddedCanvas->GetCanvas()->Update();
03954           break;
03955         case 'n':
03956         case 'N':
03957           this->NextEvent();
03958           break;
03959         case 'p':
03960         case 'P':
03961           this->PrevEvent();
03962           break;
03963         case 'g':
03964         case 'G':
03965           this->SavePicAs();
03966         default:
03967           break;
03968       }
03969       break;
03970 
03971     default:
03972       if ( sel != 0 ) {
03973         //if ( !gPad->InheritsFrom("BesCanvas") ) {
03974         if ( gPad->GetName() != TString("PadHeader")) {
03975           TString info(sel->GetTitle());
03976           info.Append(": ");
03977           info.Append(sel->GetObjectInfo(px, py));
03978           //info.Append(viewInfo);
03979           HandleInfoBar(info.Data());
03980         }
03981       }
03982       break;
03983       }
03984 
03985       UpdateBesInputFields();
03986   }

virtual void BesClient::ExecuteReturn  )  [virtual]
 

void BesClient::ExecuteReturn  )  [virtual]
 

05228                                 {
05229     //
05230     // execute if return was pressed
05231     if (gDebug) cout << "BesClient::ExecuteReturn called!" << endl;
05232 
05233     BesView *view = (BesView*)gPad->GetView();
05234     //Double_t theta, phi, psi;
05235     Int_t iret;
05236 
05237     if ( gTQSender == fZoomRatioNumber ) {
05238       if (view) view->SetZoomRatio(fZoomRatioNumber->GetNumber()/100.0);
05239     }
05240 
05241     if ( gTQSender == fNumEntryEventNo->GetNumberEntry() ) {
05242       fBesEventNo = fNumEntryEventNo->GetIntNumber();
05243       this->GetEvent(fBesEventNo);
05244     }
05245 
05246     else if ( gTQSender == fNumEntryEventPlaySpeed->GetNumberEntry() ) {
05247       fEventPlaySpeed = Int_t(fNumEntryEventPlaySpeed->GetNumber() * 1000);
05248       fAutoDisplayEventTimer->SetTime(fEventPlaySpeed);
05249     }
05250 
05251     else if ( gTQSender == fNumEntryRotateSpeed ) {
05252       fRotateSpeed = fNumEntryRotateSpeed->GetNumber();
05253       this->SetRotateStep();
05254       cout << "fRotateSpeed " << fRotateSpeed << " fRotateStep " << fRotateStep <<  endl;
05255       //fAutoRotateTimer->SetTime((Int_t)1000/this->GetRotateFPS());
05256     }
05257 
05258     else if ( gTQSender == fNumEntryRotateFPS->GetNumberEntry() ) {
05259       fRotateFPS = fNumEntryRotateFPS->GetIntNumber();
05260       this->SetRotateSpeed();
05261       fAutoRotateTimer->SetTime((Int_t)1000/fRotateFPS);
05262       cout << "fRotateFPS " << fRotateFPS << " fRotateStep " << fRotateStep <<  endl;
05263     }
05264 
05265     else if ( gTQSender == fNumEntryMagnetic->GetNumberEntry() ) {
05266       if (gEvent){
05267         gEvent->SetMagnetic(fNumEntryMagnetic->GetNumber());
05268       }
05269     }
05270 
05271     else if ( gTQSender == fNumEntryRotateStep ) {
05272       fRotateStep = fNumEntryRotateStep->GetNumber();
05273       fRotateSpeed = fRotateStep * fRotateFPS;
05274       cout << "fRotateSpeed " << fRotateSpeed << " fRotateStep " << fRotateStep <<  endl;
05275     }
05276 
05277     else if ( gTQSender == fViewAngleThetaNumber ) {
05278       if (view) {
05279         view->SetView(view->GetLongitude(), fViewAngleThetaNumber->GetNumber(), view->GetPsi(), iret);
05280       }
05281     }
05282 
05283     else if ( gTQSender == fViewAnglePhiNumber ) {
05284       if (view) {
05285         view->SetView(fViewAnglePhiNumber->GetNumber(), view->GetLatitude(), view->GetPsi(), iret);
05286       }
05287     }
05288 
05289     else if ( gTQSender == fViewAnglePsiNumber ) {
05290       if (view && view->GetViewType() == k3DView) {
05291         view->SetView(view->GetLongitude(), view->GetLatitude(), fViewAnglePsiNumber->GetNumber(), iret);
05292       }
05293     }
05294 
05295     fEmbeddedCanvas->RequestFocus();  // RequestFocus to let Hot Key "QWEASD.." work in ExecuteEvent, or it doesnt work after input
05296     UpdateCurrentPad();
05297     UpdateBesInputFields();
05298   }

virtual Bool_t BesClient::FileExists TString  fname  )  [virtual]
 

Bool_t BesClient::FileExists TString  fname  )  [virtual]
 

05313   {
05314     // gSystem return 0 if exist, 1 for not exist
05315     return (!gSystem->AccessPathName(fname, kFileExists));
05316   }

virtual Bool_t BesClient::FirstEvent  )  [virtual]
 

Bool_t BesClient::FirstEvent  )  [virtual]
 

03670 {
03671   Bool_t status;
03672   if ( f_bossMode == false){
03673     fBesEventNo = 0;
03674     status = GetEvent(fBesEventNo);
03675   }
03676   else if ( f_bossMode == true){
03677     // add error box
03678     this->HandleError("Boss Mode can not get first event!");
03679   }
03680   return status;
03681 }

Long64_t BesClient::GetBesEventNo  )  [inline]
 

00673 { return fBesEventNo;      }

Long64_t BesClient::GetBesEventNo  )  [inline]
 

00673 { return fBesEventNo;      }

Long64_t BesClient::GetBesRunNo  )  [inline]
 

00672 { return fBesRunNo;        }

Long64_t BesClient::GetBesRunNo  )  [inline]
 

00672 { return fBesRunNo;        }

virtual Bool_t BesClient::GetEvent Long64_t  i  )  [virtual]
 

Bool_t BesClient::GetEvent Long64_t  i  )  [virtual]
 

03318 {
03319     if (fEventTree) {
03320 
03321         Long64_t nEvents = fEventTree->GetEntries();
03322         if (i >= 0 && i < nEvents) {
03323 
03324             fDigiEvent = 0;
03325             fEvtHeader = 0;
03326             //fTrigEvent = 0;
03327             TDisTrack * fRecEvent = new TDisTrack();
03328             if (f_bossMode == true){
03329                 TBranch *digiEvent = fEventTree->GetBranch("TDigiEvent");
03330                 TBranch *evtHeader = fEventTree->GetBranch("TEvtHeader");
03331                 //TBranch *trigEvent = fEventTree->GetBranch("TTrigEvent");
03332                 TBranch *disTrack  = fEventTree->GetBranch("TDisTrack");
03333                 digiEvent->SetAddress(&fDigiEvent);
03334                 evtHeader->SetAddress(&fEvtHeader);
03335                 //trigEvent->SetAddress(&fTrigEvent);
03336                 disTrack->SetAddress(&fRecEvent);
03337                 disTrack->GetEntry(i);
03338                 digiEvent->GetEntry(i);
03339                 evtHeader->GetEntry(i);
03340                 //trigEvent->GetEntry(i);
03341             }
03342 
03343             if (f_bossMode == false){
03344                 fEventTree->GetEntry(i);
03345                 if (recTrack1){
03346                     delete [] recTrack1;
03347                     recTrack1 = NULL;
03348                 }
03349 
03350                 int no = 0;
03351 
03352                 recTrack1 = new TRecMdcTrack[20];
03353 
03354                 if (fRecEvent_1){
03355                   if (fRecEvent_1->getRecMdcTrackCol()){
03356                     no=(fRecEvent_1->getRecMdcTrackCol())->GetEntries();
03357                   }
03358                   if (no>20) no=20;
03359                   for (int i=0;i<no;i++){
03360                     const TRecMdcTrack* recTrack =fRecEvent_1->getRecMdcTrack(i);
03361                     (recTrack1+i)->setTRecMdcTrack(recTrack);
03362                     fRecEvent->addRecMdcTrack(recTrack1+i);
03363                   }
03364 
03365                   if (tofTrack){
03366                     delete [] tofTrack;
03367                     tofTrack = NULL;
03368                   }
03369                   tofTrack = new TRecTofTrack[200];
03370                   no=0;
03371                   if (fRecEvent_1->getTofTrackCol()){
03372                     no = (fRecEvent_1->getTofTrackCol())->GetEntries();
03373                   }
03374 
03375                   if (no>200) no =200;
03376                   for (int i=0;i<no;i++){
03377                     const TRecTofTrack* tofTrack1 =fRecEvent_1->getTofTrack(i);
03378                     (tofTrack+i)->setTRecTofTrack(tofTrack1);
03379                     fRecEvent->addTofTrack(tofTrack+i);
03380                   }
03381 
03382                   if (mdchit){
03383                     delete [] mdchit;
03384                     mdchit = NULL;
03385                   }
03386                   mdchit = new TRecMdcHit[1000];
03387                   no=0;
03388                   if (fRecEvent_1->getRecMdcHitCol()){
03389                     no = (fRecEvent_1->getRecMdcHitCol())->GetEntries();
03390                   }
03391                   if (no>1000) no =1000;
03392                   for (int i=0;i<no;i++){
03393                     const TRecMdcHit* mdchit1 =fRecEvent_1->getRecMdcHit(i);
03394                     (mdchit+i)->setTRecMdcHit(mdchit1);
03395                     fRecEvent->addRecMdcHit(mdchit+i);
03396                   }
03397 
03398                   if (muctrk){
03399                     delete [] muctrk;
03400                     muctrk= NULL;
03401                   }
03402                   muctrk = new TRecMucTrack[20];
03403                   no=0;
03404                   if (fRecEvent_1->getMucTrackCol()){
03405                     no = (fRecEvent_1->getMucTrackCol())->GetEntries();
03406                   }
03407                   if (no>20) no=20;
03408                   for (int i=0;i<no;i++){
03409                     const TRecMucTrack* mucTrack1 =fRecEvent_1->getMucTrack(i);
03410                     (muctrk+i)->setTRecMucTrack(mucTrack1);
03411                     fRecEvent->addMucTrack(muctrk+i);
03412                   }
03413 
03414                   if (emcshower){
03415                     delete [] emcshower;
03416                     emcshower=NULL;
03417                   }
03418                   emcshower = new TRecEmcShower[20];
03419                   no=0;
03420                   if (fRecEvent_1->getEmcShowerCol()){
03421                     no = (fRecEvent_1->getEmcShowerCol())->GetEntries();
03422                   }
03423                   if (no>20) no=20;
03424                   for (int i=0;i<no;i++){
03425                     const TRecEmcShower* rec_emc =fRecEvent_1->getEmcShower(i);
03426                     (emcshower+i)->setTRecEmcShower(rec_emc);
03427                     fRecEvent->addEmcShower(emcshower+i);
03428                   }
03429                 }
03430             }
03431 
03432 
03433             //fEvent->SetEvent(fDigiEvent, fRecEvent, fEvtHeader, fTrigEvent);
03434             fEvent->SetEvent(fDigiEvent, fRecEvent, fEvtHeader );
03435             //delete fRecEvent;
03436             UpdateAllView();
03437             UpdateStatus();
03438             return true;
03439         }
03440         else {
03441           fAutoDisplayEvent = kFALSE;
03442           if (fAutoDisplayEventTimer) {
03443             fAutoDisplayEventTimer->TurnOff();
03444             fPlayEventButton->SetPicture(gClient->GetPicture("ButtonEventPlay.gif"));
03445           }
03446 
03447           ostringstream s;
03448           s << "Request event entry " << i
03449             << " does not exist ! \n valid ("
03450             << 0 << "~" << nEvents - 1  << ")";
03451           this->HandleError(s.str().c_str());
03452           return false;
03453         }
03454     }
03455     else {
03456       fAutoDisplayEvent = kFALSE;
03457       if (fAutoDisplayEventTimer) fAutoDisplayEventTimer->TurnOff();
03458       this->HandleError("Event Tree does not exist !");
03459       return false;
03460     }
03461 }

Int_t BesClient::GetEventPlaySpeed  )  [inline]
 

00674 { return fEventPlaySpeed;    }

Int_t BesClient::GetEventPlaySpeed  )  [inline]
 

00674 { return fEventPlaySpeed;    }

virtual Pixmap_t BesClient::GetPic const char *  file  )  [virtual]
 

Pixmap_t BesClient::GetPic const char *  file  )  [virtual]
 

05301   {
05302     TString filePath = fBesVisPath;
05303     filePath += "/icons/";
05304     filePath += file;
05305 
05306     TASImage asImage(filePath);
05307     Pixmap_t pic = asImage.GetPixmap();
05308     //asImage->Draw();
05309     return pic;
05310   }

virtual Bool_t BesClient::GetRecEvent  )  [virtual]
 

Bool_t BesClient::GetRecEvent  )  [virtual]
 

03463                              {
03464   int           semid, shmid, n, runNo;
03465   int           *shmptr;
03466   int         sem_value_F, sem_value_O;
03467 
03468   // set autodisplay on
03469   if (fAutoDisplayEvent){
03470     if (fAutoDisplayEventTimer)
03471       fAutoDisplayEventTimer->TurnOn();
03472     fPlayEventButton->SetPicture(gClient->GetPicture("ButtonEventStop.gif"));
03473   }
03474 
03475   // access semaphore
03476   if ((semid = semget(f_pid, 2, 0)) == -1){
03477     perror("concumer -- access -- semget");
03478     exit(0);
03479   }
03480   else {
03481     acquire.sem_num = OUTPUT_STORE;
03482     //*******************************
03483     // Debug information
03484     //*******************************
03485     //std::cout << "acquire.sem_num: " << OUTPUT_STORE << std::endl;
03486     //std::cout << "acquire.sem_num: " << acquire.sem_num << std::endl;
03487     //std::cout << "acquire.sem_op:  " << acquire.sem_op << std::endl;
03488     //
03489     //std::cout << "Current Event No. : " << fCurrentEvent << std::endl;
03490     //std::cout << "besvis has gotten semid: " << semid << std::endl;
03491     //std::cout << "before change OUTPUT_STORE" << std::endl;
03492 
03493     //if ((sem_value_F = semctl(semid, FREE_SPACE, GETVAL, 0)) == -1){
03494     //  perror("Can not get FREE_SPACE");
03495     //}
03497     //std::cout << "Semaphore FREE_SPACE has value of(refer 0) " <<  sem_value_F << std::endl;
03498 
03499 
03500     //std::cout << "OUTPUT_STORE will decrease from 1 to 0" << std::endl;
03501     //*******************************
03502     // operate semaphore:OUTPUT_STORE
03503     //*******************************
03504     if ((sem_value_O = semctl(semid, OUTPUT_STORE, GETVAL, 0)) == -1){
03505       perror("Can not get OUTPUT_STORE");
03506     }
03507     //std::cout << "Semaphore OUTPUT_STORE has value of(refer 1) " << sem_value_O << std::endl;
03508     if (sem_value_O == 0) return true;
03509     if (f_runStatus == RUN_ERROR){
03510       release.sem_num = FREE_SPACE;
03511       if (semop(semid, &release, 1) == -1){
03512         perror("consumer -- increase -- freeSpace");
03513         exit(0);
03514       }
03515       std::cout << "read data error " <<  std::endl;
03516       f_runStatus = RUN_SMOOTH;
03517       return true;
03518     }
03519     f_runStatus = RUN_ERROR;
03520 
03521     if (semop(semid, &acquire, 1) == -1){
03522       perror("consumer -- decrease -- storage");
03523       exit(0);
03524     }
03525 
03526     //*******************************
03527     // Debug information
03528     //*******************************
03529     //std::cout << "Current Event No. : " << fCurrentEvent << std::endl;
03530     //std::cout << "besvis has gotten semid: " << semid << std::endl;
03531     //std::cout << "besvis will read data" << std::endl;
03532     //std::cout << "OUTPUT_STORE must decrease from 1 to 0" << std::endl;
03533 
03534     //if ((sem_value_F = semctl(semid, FREE_SPACE, GETVAL, 0)) == -1){
03535     //  perror("Can not get FREE_SPACE");
03536     //}
03537     //std::cout << "Semaphore FREE_SPACE has value of(refer 0) " <<  sem_value_F << std::endl;
03538     //
03539     //if ((sem_value_O = semctl(semid, OUTPUT_STORE, GETVAL, 0)) == -1){
03540     //  perror("Can not get OUTPUT_STORE");
03541     //}
03542     //std::cout << "Semaphore OUTPUT_STORE has value of(refer 0) " << sem_value_O << std::endl;
03543     //*******************************
03544     if (fCurrentEvent >= 1){
03545       if (fDigiEvent){
03546         //fDigiEvent->Clear();
03547         delete fDigiEvent;
03548         fDigiEvent=0;
03549       }
03550       if (fEvtHeader){
03551         fEvtHeader->Clear();
03552         delete fEvtHeader;
03553         fEvtHeader=0;
03554       }
03555       //if (fTrigEvent){
03556       //    //fTrigEvent->Clear();
03557       //    delete fTrigEvent;
03558       //    fTrigEvent=0;
03559       //}
03560       if (fEvent){
03561         delete fEvent;
03562         fEvent = NULL;
03563       }
03564     }
03565 
03566 
03567     //*******************************
03568     // read from share file
03569     //*******************************
03570     OpenEventFile(f_evtFile);
03571     if (fEventFile == NULL){
03572       return true;
03573     }
03574     if (fEventTree)
03575       delete fEventTree;
03576     fEventFile->Close();
03577     delete fEventFile;
03578     //*******************************
03579 
03580     release.sem_num = FREE_SPACE;
03581     //*******************************
03582     // Debug information
03583     //*******************************
03584     //std::cout << "release.sem_num: " << FREE_SPACE << std::endl;
03585     //std::cout << "release.sem_num: " << release.sem_num << std::endl;
03586     //std::cout << "release.sem_op:  " << release.sem_op << std::endl;
03587     //
03588     //std::cout << "Current Event No. : " << fCurrentEvent << std::endl;
03589     //std::cout << "besvis has gotten semid: " << semid << std::endl;
03590     //std::cout << "besvis has read data" << std::endl;
03591     //std::cout << "before change FREE_SPACE" << std::endl;
03592 
03593     //if ((sem_value_F = semctl(semid, FREE_SPACE, GETVAL, 0)) == -1){
03594     //  perror("Can not get FREE_SPACE");
03595     //}
03596     //std::cout << "Semaphore FREE_SPACE has value of(refer 0) " <<  sem_value_F << std::endl;
03597     //
03598     //if ((sem_value_O = semctl(semid, OUTPUT_STORE, GETVAL, 0)) == -1){
03599     //  perror("Can not get OUTPUT_STORE");
03600     //}
03601     //std::cout << "Semaphore OUTPUT_STORE has value of(refer 0) " << sem_value_O << std::endl;
03602     //
03603     //std::cout << "FREE_SPACE will increase from 0 to 1" << std::endl;
03604     //*******************************
03605     // operate semaphore:FREE_SPACE
03606     //*******************************
03607     if (semop(semid, &release, 1) == -1){
03608       perror("consumer -- increase -- freeSpace");
03609       exit(0);
03610     }
03611     std::cout << "Current Event No. : " << fCurrentEvent++ << std::endl;
03612     //*******************************
03613     // Debug information
03614     //*******************************
03615     //std::cout << "besvis has gotten semid: " << semid << std::endl;
03616     //std::cout << "besvis has read data" << std::endl;
03617     //std::cout << "FREE_SPACE must increase from 0 to 1" << std::endl;
03618 
03619     //if ((sem_value_F = semctl(semid, FREE_SPACE, GETVAL, 0)) == -1){
03620     //  perror("Can not get FREE_SPACE");
03621     //}
03622     //std::cout << "Semaphore FREE_SPACE has value of(refer 1) " <<  sem_value_F << std::endl;
03623     //
03624     //if ((sem_value_O = semctl(semid, OUTPUT_STORE, GETVAL, 0)) == -1){
03625     //  perror("Can not get OUTPUT_STORE");
03626     //}
03627     //std::cout << "Semaphore OUTPUT_STORE has value of(refer 0) " << sem_value_O << std::endl;
03628     //*******************************
03629   }
03630   f_runStatus = RUN_SMOOTH;
03631   return true;
03632 }

Int_t BesClient::GetRotateFPS  )  [inline]
 

00676 { return fRotateFPS;      }

Int_t BesClient::GetRotateFPS  )  [inline]
 

00676 { return fRotateFPS;      }

Double_t BesClient::GetRotateSpeed  )  [inline]
 

00677 { return fRotateSpeed;    }

Double_t BesClient::GetRotateSpeed  )  [inline]
 

00677 { return fRotateSpeed;    }

Double_t BesClient::GetRotateStep  )  [inline]
 

00678 { return fRotateStep; }

Double_t BesClient::GetRotateStep  )  [inline]
 

00678 { return fRotateStep; }

virtual void BesClient::GoHome  )  [virtual]
 

void BesClient::GoHome  )  [virtual]
 

03104                        {
03105 
03106     BesView *view = (BesView*)gPad->GetView();
03107     if (view) {
03108         Double_t x1, y1, x2, y2, dx, dy;
03109         gPad->GetRange(x1, y1, x2, y2);
03110         dx = x2 - x1;
03111         dy = y2 - y1;
03112 
03113         Int_t iPad = 0;
03114         if (view->GetViewType() == kXYView) iPad = 0;
03115         else if (view->GetViewType() == kZRView) iPad = 1;
03116         else if (view->GetViewType() == k3DView) iPad = 2;
03117 
03118         gPad->Range(fHomeX[iPad]-0.5*dx, fHomeY[iPad]-0.5*dy, fHomeX[iPad]+0.5*dx, fHomeY[iPad]+0.5*dy);
03119     }
03120 }

virtual void BesClient::HandleButtons Int_t  id = -1  )  [virtual]
 

void BesClient::HandleButtons Int_t  id = -1  )  [virtual]
 

04625                                         {
04626     //
04627     // Handle different buttons
04628     if (id == -1) {
04629       TGButton *btn = (TGButton *) gTQSender;
04630       id = btn->WidgetId();
04631     }
04632 
04633     //TCanvas *canvas = (TCanvas*)fEmbeddedCanvas->GetCanvas();
04634     TString query = "";
04635     Int_t displayMode = 0;
04636 
04637     Double_t xmin=0.0, ymin=0.0, xmax=0.0, ymax=0.0;
04638     if (gPad) {
04639       xmin = gPad->GetX1();
04640       ymin = gPad->GetY1();
04641       xmax = gPad->GetX2();
04642       ymax = gPad->GetY2();
04643     }
04644 
04645     BesView *view = 0;
04646     if (gPad) view = (BesView*)gPad->GetView();
04647     Int_t iret;
04648     //Double_t theta, phi, psi;
04649 
04650     switch ( id ) {
04651 
04652       case kM_Button_LoadGeoFile:  // Load geometry file
04653         LoadGeoFile();
04654         fLoadGeoFileButton->SetPicture(gClient->GetPicture("ButtonLoadGeoFile.gif"));
04655         break;
04656 
04657       case kM_Button_OpenEventFile:  // Load event file
04658         OpenEventFile();
04659         fOpenEventFileButton->SetPicture(gClient->GetPicture("ButtonOpenEventFile.gif"));
04660         break;
04661 
04662       case kM_Button_SavePicAs:  // Save picture as
04663         SavePicAs();
04664         fSavePicAsButton->SetPicture(gClient->GetPicture("ButtonSavePicAs.gif"));
04665         break;
04666 
04667       case kM_Button_SavePicAsPS:  // Save picture as *.ps
04668         fSavePicAsPSButton->SetPicture(gClient->GetPicture("ButtonSavePicAsPSHL.gif"));
04669         //SavePicAsPS();
04670         fEmbeddedCanvas->GetCanvas()->Print("besvis.ps", "ps");
04671         fSavePicAsPSButton->SetPicture(gClient->GetPicture("ButtonSavePicAsPS.gif"));
04672         break;
04673 
04674       case kM_Button_Refresh:  // Refresh all pads
04675         //fDisplay->SwitchDisplayMode(fDisplay->GetDisplayMode());
04676         //UpdateAllView();
04677         if (view) view->UpdateView(0);
04678         break;
04679 
04680       case kM_Button_ResetCurrent:  // reset active pad to default
04681         if (view) view->Reset();
04682         break;
04683 
04684       case kM_Button_ResetAll:  // Reset all pads to Default
04685         if (view) fDisplay->Reset();
04686         break;
04687 
04688       case kM_Button_CursorPick:  // Cursor Pick
04689         gBesCursor->SetType(kBesPick);
04690         fCursorButton[0]->SetPicture(gClient->GetPicture("ButtonCursorPickST.gif"));
04691         fCursorButton[0]->SetState(true);
04692         fCursorButton[1]->SetPicture(gClient->GetPicture("ButtonCursorHand.gif"));
04693         fCursorButton[1]->SetState(false);
04694         //fCursorButton[0]->SetState(kButtonEngaged);
04695         //fCursorButton[1]->SetState(kButtonUp);
04696         break;
04697 
04698       case kM_Button_CursorHand:  // Cursor Hand
04699         gBesCursor->SetType(kBesHand);
04700         fCursorButton[0]->SetPicture(gClient->GetPicture("ButtonCursorPick.gif"));
04701         fCursorButton[0]->SetState(false);
04702         fCursorButton[1]->SetPicture(gClient->GetPicture("ButtonCursorHandST.gif"));
04703         fCursorButton[1]->SetState(true);
04704         break;
04705 
04706       case kM_Button_ZoomOut:  // Zoom out
04707         if (view) view->ZoomOut();
04708         break;
04709 
04710       case kM_Button_ZoomIn:  // Zoom in
04711         if (view) view->ZoomIn();
04712         break;
04713 
04714       case kM_Button_SetHome: // Set Home position
04715         SetHome();
04716         break;
04717 
04718       case kM_Button_GoHome: // Go Home position
04719         GoHome();
04720         break;
04721 
04722       case kM_Button_SaveMyConfig:
04723         SaveMyConfig();
04724         fSaveMyConfigButton->SetPicture(gClient->GetPicture("ButtonSaveMyConfig.gif"));
04725         break;
04726 
04727       case kM_Button_LoadMyConfig:
04728         LoadMyConfig();
04729         fLoadMyConfigButton->SetPicture(gClient->GetPicture("ButtonLoadMyConfig.gif"));
04730         break;
04731 
04732       case kM_Button_Help:
04733         Help();
04734         break;
04735 
04736       case kM_Button_ShowInfo: // Show Info
04737         gBesCursor->SetShowInfo(!gBesCursor->GetShowInfo());
04738         if (gBesCursor->GetShowInfo()) {
04739           fShowInfoButton->SetState(true);
04740           fShowInfoButton->SetPicture(gClient->GetPicture("ButtonShowInfoST.gif"));
04741         }
04742         else {
04743           fShowInfoButton->SetState(false);
04744           fShowInfoButton->SetPicture(gClient->GetPicture("ButtonShowInfo.gif"));
04745         }
04746         break;
04747 
04748       case kM_Button_ShowAxis: // Show Axis
04749         if (view) {
04750           view->SetVisAxis(!view->GetVisAxis());
04751           if (view->GetVisAxis()) {
04752             fShowAxisButton->SetPicture(gClient->GetPicture("ButtonShowAxisST.gif"));
04753             fShowAxisButton->SetState(true);
04754           }
04755           else {
04756             fShowAxisButton->SetPicture(gClient->GetPicture("ButtonShowAxis.gif"));
04757             fShowAxisButton->SetState(false);
04758           }
04759           view->UpdateView(0);
04760         }
04761         break;
04762 
04763       case kM_Button_FishEyeView: // FishEye View
04764         if (view) {
04765           view->SetFishEye(!view->GetFishEye());
04766           if (view->GetFishEye()) {
04767             fFishEyeViewButton->SetPicture(gClient->GetPicture("ButtonFishEyeViewST.gif"));
04768             fFishEyeViewButton->SetState(true);
04769           }
04770           else {
04771             fFishEyeViewButton->SetPicture(gClient->GetPicture("ButtonFishEyeView.gif"));
04772             fFishEyeViewButton->SetState(false);
04773           }
04774         }
04775         break;
04776 
04777       case kM_Button_ParallelView: // Parallel View
04778         if (view && view->IsPerspective()) {
04779           fParallelViewButton->SetPicture(gClient->GetPicture("ButtonParallelViewST.gif"));
04780           fParallelViewButton->SetState(true);
04781           fPerspectiveViewButton->SetPicture(gClient->GetPicture("ButtonPerspectiveView.gif"));
04782           fPerspectiveViewButton->SetState(false);
04783           //view->SetParralel();
04784           view->SetParallel();
04785           // use SetParallel() instead of depreciated function SetParralel()
04786           // changed by tianhl at Mon Aug 20 2007
04787           view->UpdateView(0);
04788         }
04789         break;
04790 
04791       case kM_Button_PerspectiveView: // Perspective View
04792         if (view && !view->IsPerspective()) {
04793           fParallelViewButton->SetPicture(gClient->GetPicture("ButtonParallelView.gif"));
04794           fParallelViewButton->SetState(false);
04795           fPerspectiveViewButton->SetPicture(gClient->GetPicture("ButtonPerspectiveViewST.gif"));
04796           fPerspectiveViewButton->SetState(true);
04797           view->SetPerspective();
04798           view->UpdateView(0);
04799         }
04800         break;
04801 
04802       case kM_Button_X3D: // X3D
04803         X3D();
04804         fX3DButton->SetPicture(gClient->GetPicture("ButtonX3D.gif"));
04805         break;
04806 
04807       case kM_Button_OpenGL: // OpenGL
04808         OpenGL();
04809         fOpenGLButton->SetPicture(gClient->GetPicture("ButtonOpenGL.gif"));
04810         break;
04811 
04812       case kM_Button_NextEvent:
04813         NextEvent();
04814         break;
04815 
04816       case kM_Button_PrevEvent:
04817         PrevEvent();
04818         break;
04819 
04820       case kM_Button_PlayEvent:
04821         AutoDisplayEvent();
04822         break;
04823 
04824       case kM_Button_FirstEvent:
04825         FirstEvent();
04826         break;
04827 
04828       case kM_Button_ViewResetAngle:
04829         if (view->GetViewType() == k3DView) view->Front();
04830         if (view->GetViewType() == kXYView) view->SetView(  0,  0, 270, iret);
04831         if (view->GetViewType() == kZRView) view->SetView(180, 90,  90, iret);
04832         break;
04833 
04834       case kM_Button_ViewCounterClockWise:
04835         RotateClockWise(-1);
04836         if (fAutoRotate) {
04837           if (fAutoRotateClockWise != -1) {
04838             fAutoRotateClockWise = -1;
04839             fAutoRotatePhi = 0;
04840           }
04841           else fAutoRotateClockWise = 0;
04842         }
04843         break;
04844 
04845       case kM_Button_ViewClockWise:
04846         RotateClockWise(1);
04847         if (fAutoRotate) {
04848           if (fAutoRotateClockWise != 1) {
04849             fAutoRotateClockWise = 1;
04850             fAutoRotatePhi = 0;
04851           }
04852           else fAutoRotateClockWise = 0;
04853         }
04854         break;
04855 
04856       case kM_Button_ViewMoveUp:
04857         view->Move(0,10);
04858         //if (gPad) gPad->Range(xmin, ymin+fMoveFactor*(ymax-ymin), xmax, ymax+fMoveFactor*(ymax-ymin));
04859         break;
04860 
04861       case kM_Button_ViewMoveDown:
04862         view->Move(0,-10);
04863         break;
04864 
04865       case kM_Button_ViewMoveLeft:
04866         view->Move(-10,0);
04867         break;
04868 
04869       case kM_Button_ViewMoveRight:
04870         view->Move(10,0);
04871         break;
04872 
04873       case kM_Button_ViewMoveCenter:
04874         view->Center();
04875         break;
04876 
04877       case kM_Button_ViewAngleThetaPlus:
04878         RotateTheta(1);
04879         if (fAutoRotate) {
04880           if (fAutoRotateTheta != 1) fAutoRotateTheta = 1;
04881           else fAutoRotateTheta = 0;
04882         }
04883         break;
04884 
04885       case kM_Button_ViewAngleThetaMinus:
04886         RotateTheta(-1);
04887         if (fAutoRotate) {
04888           if (fAutoRotateTheta != -1) fAutoRotateTheta = -1;
04889           else fAutoRotateTheta = 0;
04890         }
04891         break;
04892 
04893       case kM_Button_ViewAnglePhiPlus:
04894         RotatePhi(1);
04895         if (fAutoRotate) {
04896           if (fAutoRotatePhi != 1) {
04897             fAutoRotatePhi = 1;
04898             fAutoRotateClockWise = 0;
04899           }
04900           else fAutoRotatePhi = 0;
04901         }
04902         break;
04903 
04904       case kM_Button_ViewAnglePhiMinus:
04905         RotatePhi(-1);
04906         if (fAutoRotate) {
04907           if (fAutoRotatePhi != -1) {
04908             fAutoRotatePhi = -1;
04909             fAutoRotateClockWise = 0;
04910           }
04911           else fAutoRotatePhi = 0;
04912         }
04913         break;
04914 
04915       case kM_Button_ViewAnglePsiPlus:
04916         if (view->GetViewType() == k3DView) {
04917           RotatePsi(1);
04918           if (fAutoRotate) {
04919             if (fAutoRotatePsi != 1) fAutoRotatePsi = 1;
04920             else fAutoRotatePsi = 0;
04921           }
04922         }
04923         break;
04924 
04925       case kM_Button_ViewAnglePsiMinus:
04926         if (view->GetViewType() == k3DView) {
04927           RotatePsi(-1);
04928           if (fAutoRotate) {
04929             if (fAutoRotatePsi != -1) fAutoRotatePsi = -1;
04930             else fAutoRotatePsi = 0;
04931           }
04932         }
04933         break;
04934 
04935       case kM_Button_AutoRotate:
04936         AutoRotate();
04937         break;
04938 
04939       case kM_Button_DisplayMode2D:
04940         SetAllDisplayModeButtonUnHL();
04941         fDisplayModeButton[0]->SetState(true);
04942         fDisplayModeButton[0]->SetPicture(gClient->GetPicture("DisplayMode2DST.gif"));
04943         fDisplay->SwitchDisplayMode(0);
04944         break;
04945 
04946       case kM_Button_DisplayModeXY:
04947         SetAllDisplayModeButtonUnHL();
04948         fDisplayModeButton[1]->SetState(true);
04949         fDisplayModeButton[1]->SetPicture(gClient->GetPicture("DisplayModeXYST.gif"));
04950         fDisplay->SwitchDisplayMode(1);
04951         break;
04952 
04953       case kM_Button_DisplayModeZR:
04954         SetAllDisplayModeButtonUnHL();
04955         fDisplayModeButton[2]->SetState(true);
04956         fDisplayModeButton[2]->SetPicture(gClient->GetPicture("DisplayModeZRST.gif"));
04957         fDisplay->SwitchDisplayMode(2);
04958         break;
04959 
04960       case kM_Button_DisplayMode3D:
04961         SetAllDisplayModeButtonUnHL();
04962         fDisplayModeButton[3]->SetState(true);
04963         fDisplayModeButton[3]->SetPicture(gClient->GetPicture("DisplayMode3DST.gif"));
04964         fDisplay->SwitchDisplayMode(3);
04965         break;
04966 
04967       case kM_Button_DisplayModeAll:
04968         SetAllDisplayModeButtonUnHL();
04969         fDisplayModeButton[4]->SetState(true);
04970         fDisplayModeButton[4]->SetPicture(gClient->GetPicture("DisplayModeAllST.gif"));
04971         fDisplay->SwitchDisplayMode(4);
04972         break;
04973 
04974       case kM_Button_SwitchDisplayMode:
04975         displayMode = fDisplay->GetDisplayMode();
04976         displayMode++;
04977         if (displayMode >= 5) displayMode -= 5;
04978         fDisplay->SwitchDisplayMode(displayMode);
04979 
04980         SetAllDisplayModeButtonUnHL();
04981         switch (displayMode) {
04982           case 0 :
04983             fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayMode2DST.gif"));
04984             break;
04985           case 1 :
04986             fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayModeXYST.gif"));
04987             break;
04988           case 2 :
04989             fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayModeZRST.gif"));
04990             break;
04991           case 3 :
04992             fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayMode3DST.gif"));
04993             break;
04994           case 4 :
04995             fDisplayModeButton[displayMode]->SetPicture(gClient->GetPicture("DisplayModeAllST.gif"));
04996             break;
04997           default:
04998             break;
04999         }
05000         break;
05001 
05002       case kM_Button_SwitchPad:
05003         fDisplay->SwitchPad();
05004         break;
05005     }
05006 
05007     UpdateStatus();
05008     UpdateCurrentPad();
05009     UpdateBesInputFields();
05010   }

virtual void BesClient::HandleError const char *  msg  )  [virtual]
 

void BesClient::HandleError const char *  msg  )  [virtual]
 

02758                                            {
02759     //
02760     // Error handling
02761     new TGMsgBox(gClient->GetRoot(), this,
02762                  "Error", msg,
02763                  gClient->GetPicture("mb_stop_s.xpm"));
02764 }

virtual void BesClient::HandleEventList TGListTreeItem *  entry,
Int_t  btn
[virtual]
 

void BesClient::HandleEventList TGListTreeItem *  entry,
Int_t  btn
[virtual]
 

03856                                                                 {
03857   //
03858   // Event list handling for buttons
03859 
03860   if ( entry->GetFirstChild() != 0 ) {
03861     // Run folder
03862     if ( entry->IsOpen() ) {
03863       fEventListTree->CloseItem(entry);
03864     } else {
03865       fEventListTree->OpenItem(entry);
03866     }
03867   } else {
03868     fEventListTree->HighlightItem(entry);
03869     gClient->NeedRedraw(fEventListTree);
03870 
03871     // Event item
03872     fItem = entry;
03873     fRunItem = entry->GetParent();
03874     TString msg1("Displaying Run ");
03875     HandleStatusBar(msg1.Data());
03876 
03877     SetState(); // includes canvas update
03878 
03879     TString msg2("Run ");
03880     HandleStatusBar(msg2.Data());
03881   }
03882 
03883   // Redraw canvas
03884   TCanvas *canvas = (TCanvas*)fEmbeddedCanvas->GetCanvas();
03885   canvas->Modified();
03886   canvas->Update();
03887 }

virtual void BesClient::HandleInfoBar const char *  msg  )  [virtual]
 

void BesClient::HandleInfoBar const char *  msg  )  [virtual]
 

02768                                              {
02769     //
02770     // Info handling
02771     fStatusBar->SetText(msg, 1);
02772 }

virtual void BesClient::HandleMenu Int_t  id  )  [virtual]
 

void BesClient::HandleMenu Int_t  id  )  [virtual]
 

02202                                    {
02203     //
02204     // Handle menu items.
02205 
02206     switch (id) {
02207 
02208         // File
02209     case kM_File_LoadGeo:
02210         LoadGeoFile();
02211         break;
02212     case kM_File_SaveGeoAs:
02213         SaveGeoAs();
02214         break;
02215     case kM_File_OpenEvent:
02216         OpenEventFile();
02217         break;
02218     case kM_File_SavePicAs:
02219         SavePicAs();
02220         break;
02221     case kM_File_Close:
02222         gInterpreter->DeleteGlobal(this);
02223         delete this;
02224         break;
02225     case kM_File_Exit:
02226         CloseWindow();   // terminate theApp no need to use SendCloseMessage()
02227         break;
02228 
02229         // Edit
02230     case kM_Edit_Editor:
02231         fEmbeddedCanvas->GetCanvas()->EditorBar();
02232         break;
02233 
02234         // Help
02235     case kM_Help_Content:
02236         Help();
02237         break;
02238 
02239     case kM_Help_About:
02240         new BesAboutHelp(gClient->GetRoot(), this);
02241         break;
02242 
02243         // Default
02244     default:
02245         cerr << "Menu item" << id << "selected" << endl;
02246         break;
02247     }
02248 }

virtual void BesClient::HandleSliders Int_t  id  )  [virtual]
 

void BesClient::HandleSliders Int_t  id  )  [virtual]
 

05015   {
05016     //
05017     // Handle slider events
05018     if (gDebug) cout << "BesClient::DoSlider called!" << endl;
05019 
05020     TGButton *btn = (TGButton *) gTQSender;
05021     Int_t id = btn->WidgetId();
05022 
05023     BesView *view = (BesView*)gPad->GetView();
05024     Int_t iret;
05025 
05026     switch (id) {
05027 
05028       case kM_Slider_EventPlay:
05029         fEventPlaySlider->SetPosition(slider);
05030         if (fEventTree) {
05031           fBesEventNo = slider;
05032           this->GetEvent(fBesEventNo);
05033         }
05034         break;
05035 
05036       case kM_Slider_ViewAngleTheta:
05037         if (view) {
05038           view->SetView(view->GetLongitude(), slider, view->GetPsi(), iret);
05039         }
05040         break;
05041 
05042       case kM_Slider_ViewAnglePhi:
05043         if (view) {
05044           view->SetView(slider, view->GetLatitude(), view->GetPsi(), iret);
05045         }
05046         break;
05047 
05048       case kM_Slider_ViewAnglePsi:
05049         if (view && view->GetViewType() == k3DView) {
05050           view->SetView(view->GetLongitude(), view->GetLatitude(), slider, iret);
05051         }
05052         break;
05053     }
05054 
05055     UpdateCurrentPad();
05056     UpdateBesInputFields();
05057   }

virtual void BesClient::HandleStatusBar const char *  msg  )  [virtual]
 

void BesClient::HandleStatusBar const char *  msg  )  [virtual]
 

02776                                                {
02777     //
02778     // Client status handling
02779     fStatusBar->SetText(msg, 0);
02780 }

virtual void BesClient::HandleViewOptionMenu Int_t  id  )  [virtual]
 

void BesClient::HandleViewOptionMenu Int_t  id  )  [virtual]
 

02252                                              {
02253     //
02254     // Handle view option menu items.
02255     BesView *view = (BesView*)gPad->GetView();
02256     if (!view) {
02257         cout << "BesClient::HandleViewOptionMenu(), BesView does not exist in this pad" << endl;
02258         return;
02259     }
02260 
02261     //Int_t i = 0, px = 0, py = 0;
02262     //TVirtualGeoPainter *painter = 0;
02263 
02264     switch (id) {
02265     case kM_Header_On:
02266         if ( fMenuViewOptionHeader->IsEntryChecked(kM_Header_On) ) {
02267             fMenuViewOptionHeader->UnCheckEntry(kM_Header_On);
02268             //canvas->SetHeaderOn(kFALSE);
02269         } else {
02270             fMenuViewOptionHeader->CheckEntry(kM_Header_On);
02271             //canvas->SetHeaderOn(kTRUE);
02272         }
02273         break;
02274 
02275     case kM_Mdc_Global:
02276         if ( fMenuViewOptionMdc->IsEntryChecked(kM_Mdc_Global) ) {
02277             fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Global);
02278             view->SetVisMdcGlobal(0);
02279         } else {
02280             fMenuViewOptionMdc->CheckEntry(kM_Mdc_Global);
02281             view->SetVisMdcGlobal(1);
02282         }
02283         break;
02284 
02285     case kM_Mdc_Tubes:
02286         if ( fMenuViewOptionMdc->IsEntryChecked(kM_Mdc_Tubes) ) {
02287             fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Tubes);
02288             view->SetVisMdcTubes(0);
02289         } else {
02290             fMenuViewOptionMdc->CheckEntry(kM_Mdc_Tubes);
02291             view->SetVisMdcTubes(1);
02292         }
02293         break;
02294 
02295     case kM_Mdc_Wires:
02296         if ( fMenuViewOptionMdc->IsEntryChecked(kM_Mdc_Wires) ) {
02297             fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Wires);
02298             view->SetVisMdcWires(0);
02299         } else {
02300             fMenuViewOptionMdc->CheckEntry(kM_Mdc_Wires);
02301             view->SetVisMdcWires(1);
02302         }
02303         break;
02304 
02305     case kM_Tof_Global:
02306         if ( fMenuViewOptionTof->IsEntryChecked(kM_Tof_Global) ) {
02307             fMenuViewOptionTof->UnCheckEntry(kM_Tof_Global);
02308             view->SetVisTofGlobal(0);
02309         } else {
02310             fMenuViewOptionTof->CheckEntry(kM_Tof_Global);
02311             view->SetVisTofGlobal(1);
02312         }
02313         break;
02314 
02315     case kM_Tof_East:
02316         if ( fMenuViewOptionTof->IsEntryChecked(kM_Tof_East) ) {
02317             fMenuViewOptionTof->UnCheckEntry(kM_Tof_East);
02318             view->SetVisTofEast(0);
02319         } else {
02320             fMenuViewOptionTof->CheckEntry(kM_Tof_East);
02321             view->SetVisTofEast(1);
02322         }
02323         break;
02324 
02325     case kM_Tof_Barrel:
02326         if ( fMenuViewOptionTof->IsEntryChecked(kM_Tof_Barrel) ) {
02327             fMenuViewOptionTof->UnCheckEntry(kM_Tof_Barrel);
02328             view->SetVisTofBarrel(0);
02329         } else {
02330             fMenuViewOptionTof->CheckEntry(kM_Tof_Barrel);
02331             view->SetVisTofBarrel(1);
02332         }
02333         break;
02334 
02335     case kM_Tof_West:
02336         if ( fMenuViewOptionTof->IsEntryChecked(kM_Tof_West) ) {
02337             fMenuViewOptionTof->UnCheckEntry(kM_Tof_West);
02338             view->SetVisTofWest(0);
02339         } else {
02340             fMenuViewOptionTof->CheckEntry(kM_Tof_West);
02341             view->SetVisTofWest(1);
02342         }
02343         break;
02344 
02345     case kM_Emc_Global:
02346         if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_Global) ) {
02347             fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Global);
02348             view->SetVisEmcGlobal(0);
02349         } else {
02350             fMenuViewOptionEmc->CheckEntry(kM_Emc_Global);
02351             view->SetVisEmcGlobal(1);
02352         }
02353         break;
02354 
02355     case kM_Emc_East:
02356         if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_East) ) {
02357             fMenuViewOptionEmc->UnCheckEntry(kM_Emc_East);
02358             view->SetVisEmcEast(0);
02359         } else {
02360             fMenuViewOptionEmc->CheckEntry(kM_Emc_East);
02361             view->SetVisEmcEast(1);
02362         }
02363         break;
02364 
02365     case kM_Emc_Barrel:
02366         if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_Barrel) ) {
02367             fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Barrel);
02368             view->SetVisEmcBarrel(0);
02369         } else {
02370             fMenuViewOptionEmc->CheckEntry(kM_Emc_Barrel);
02371             view->SetVisEmcBarrel(1);
02372         }
02373         break;
02374 
02375     case kM_Emc_West:
02376         if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_West) ) {
02377             fMenuViewOptionEmc->UnCheckEntry(kM_Emc_West);
02378             view->SetVisEmcWest(0);
02379         } else {
02380             fMenuViewOptionEmc->CheckEntry(kM_Emc_West);
02381             view->SetVisEmcWest(1);
02382         }
02383         break;
02384 
02385     case kM_Emc_Side:
02386         if ( fMenuViewOptionEmc->IsEntryChecked(kM_Emc_Side) ) {
02387             fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Side);
02388             view->SetVisEmcSide(0);
02389         } else {
02390             fMenuViewOptionEmc->CheckEntry(kM_Emc_Side);
02391             view->SetVisEmcSide(1);
02392         }
02393         break;
02394 
02395     case kM_Muc_Global:
02396         if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_Global) ) {
02397             fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Global);
02398             view->SetVisMucGlobal(0);
02399         } else {
02400             fMenuViewOptionMuc->CheckEntry(kM_Muc_Global);
02401             view->SetVisMucGlobal(1);
02402         }
02403         break;
02404 
02405     case kM_Muc_East:
02406         if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_East) ) {
02407             fMenuViewOptionMuc->UnCheckEntry(kM_Muc_East);
02408             view->SetVisMucEast(0);
02409         } else {
02410             fMenuViewOptionMuc->CheckEntry(kM_Muc_East);
02411             view->SetVisMucEast(1);
02412         }
02413         break;
02414 
02415     case kM_Muc_Barrel:
02416         if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_Barrel) ) {
02417             fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Barrel);
02418             view->SetVisMucBarrel(0);
02419         } else {
02420             fMenuViewOptionMuc->CheckEntry(kM_Muc_Barrel);
02421             view->SetVisMucBarrel(1);
02422         }
02423         break;
02424 
02425     case kM_Muc_West:
02426         if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_West) ) {
02427             fMenuViewOptionMuc->UnCheckEntry(kM_Muc_West);
02428             view->SetVisMucWest(0);
02429         } else {
02430             fMenuViewOptionMuc->CheckEntry(kM_Muc_West);
02431             view->SetVisMucWest(1);
02432         }
02433         break;
02434 
02435     case kM_Muc_Strips:
02436         if ( fMenuViewOptionMuc->IsEntryChecked(kM_Muc_Strips) ) {
02437             fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Strips);
02438             view->SetVisMucStrips(0);
02439         } else {
02440             fMenuViewOptionMuc->CheckEntry(kM_Muc_Strips);
02441             view->SetVisMucStrips(1);
02442         }
02443         break;
02444 
02445     case kM_Full3D_Mdc:
02446         if ( fMenuViewOptionFull3D->IsEntryChecked(kM_Full3D_Mdc) ) {
02447             fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Mdc);
02448             view->SetVisFull3DMdc(0);
02449         } else {
02450             fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Mdc);
02451             view->SetVisFull3DMdc(1);
02452         }
02453 
02454         if (gBesGeometry) {
02455             gBesGeometry->GetMdcROOTGeo()->SetDetector();
02456             gBesGeometry->GetMdcROOTGeo()->SetVisMdcDetector();
02457         }
02458         break;
02459 
02460     case kM_Full3D_Tof:
02461         if ( fMenuViewOptionFull3D->IsEntryChecked(kM_Full3D_Tof) ) {
02462             fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Tof);
02463             view->SetVisFull3DTof(0);
02464         } else {
02465             fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Tof);
02466             view->SetVisFull3DTof(1);
02467         }
02468 
02469         if (gBesGeometry) {
02470             gBesGeometry->GetTofROOTGeo()->SetDetector();
02471             gBesGeometry->GetTofROOTGeo()->SetVisTofDetector();
02472         }
02473         break;
02474 
02475     case kM_Full3D_Emc:
02476         if ( fMenuViewOptionFull3D->IsEntryChecked(kM_Full3D_Emc) ) {
02477             fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Emc);
02478             view->SetVisFull3DEmc(0);
02479         } else {
02480             fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Emc);
02481             view->SetVisFull3DEmc(1);
02482         }
02483 
02484         if (gBesGeometry) {
02485             gBesGeometry->GetEmcROOTGeo()->SetDetector();
02486             gBesGeometry->GetEmcROOTGeo()->SetVisEmcDetector();
02487         }
02488         break;
02489 
02490     case kM_Full3D_Muc:
02491         if ( fMenuViewOptionFull3D->IsEntryChecked(kM_Full3D_Muc) ) {
02492             fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Muc);
02493             view->SetVisFull3DMuc(0);
02494         } else {
02495             fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Muc);
02496             view->SetVisFull3DMuc(1);
02497         }
02498 
02499         if (gBesGeometry) {
02500             gBesGeometry->GetMucROOTGeo()->SetDetector();
02501             gBesGeometry->GetMucROOTGeo()->SetVisMucDetector();
02502         }
02503         break;
02504 
02505     case kM_BeamPipe:
02506         if ( fMenuViewOptionOthers->IsEntryChecked(kM_BeamPipe) ) {
02507             fMenuViewOptionOthers->UnCheckEntry(kM_BeamPipe);
02508             view->SetVisBeamPipe(0);
02509         } else {
02510             fMenuViewOptionOthers->CheckEntry(kM_BeamPipe);
02511             view->SetVisBeamPipe(1);
02512         }
02513         break;
02514 
02515     case kM_ZRPlaneOnXY:
02516         if ( fMenuViewOptionOthers->IsEntryChecked(kM_ZRPlaneOnXY) ) {
02517             fMenuViewOptionOthers->UnCheckEntry(kM_ZRPlaneOnXY);
02518             view->SetVisZRPlaneOnXY(0);
02519         } else {
02520             fMenuViewOptionOthers->CheckEntry(kM_ZRPlaneOnXY);
02521             view->SetVisZRPlaneOnXY(1);
02522         }
02523         break;
02524 
02525     case kM_Axis:
02526         if ( fMenuViewOptionOthers->IsEntryChecked(kM_Axis) ) {
02527             fMenuViewOptionOthers->UnCheckEntry(kM_Axis);
02528             view->SetVisAxis(0);
02529         } else {
02530             fMenuViewOptionOthers->CheckEntry(kM_Axis);
02531             view->SetVisAxis(1);
02532         }
02533         break;
02534 
02535     case kM_MdcHits_Hits:
02536         if ( fMenuViewOptionMdcHits->IsEntryChecked(kM_MdcHits_Hits) ) {
02537             fMenuViewOptionMdcHits->UnCheckEntry(kM_MdcHits_Hits);
02538             view->SetVisMdcHits(0);
02539         } else {
02540             fMenuViewOptionMdcHits->CheckEntry(kM_MdcHits_Hits);
02541             view->SetVisMdcHits(1);
02542         }
02543         break;
02544 
02545     case kM_TofHits_Global:
02546         if ( fMenuViewOptionTofHits->IsEntryChecked(kM_TofHits_Global) ) {
02547             fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_Global);
02548             view->SetVisTofHitsGlobal(0);
02549         } else {
02550             fMenuViewOptionTofHits->CheckEntry(kM_TofHits_Global);
02551             view->SetVisTofHitsGlobal(1);
02552         }
02553         break;
02554 
02555     case kM_TofHits_East:
02556         if ( fMenuViewOptionTofHits->IsEntryChecked(kM_TofHits_East) ) {
02557             fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_East);
02558             view->SetVisTofHitsEast(0);
02559         } else {
02560             fMenuViewOptionTofHits->CheckEntry(kM_TofHits_East);
02561             view->SetVisTofHitsEast(1);
02562         }
02563         break;
02564 
02565     case kM_TofHits_Barrel:
02566         if ( fMenuViewOptionTofHits->IsEntryChecked(kM_TofHits_Barrel) ) {
02567             fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_Barrel);
02568             view->SetVisTofHitsBarrel(0);
02569         } else {
02570             fMenuViewOptionTofHits->CheckEntry(kM_TofHits_Barrel);
02571             view->SetVisTofHitsBarrel(1);
02572         }
02573         break;
02574 
02575     case kM_TofHits_West:
02576         if ( fMenuViewOptionTofHits->IsEntryChecked(kM_TofHits_West) ) {
02577             fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_West);
02578             view->SetVisTofHitsWest(0);
02579         } else {
02580             fMenuViewOptionTofHits->CheckEntry(kM_TofHits_West);
02581             view->SetVisTofHitsWest(1);
02582         }
02583         break;
02584 
02585     case kM_EmcHits_Global:
02586         if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_Global) ) {
02587             fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Global);
02588             view->SetVisEmcHitsGlobal(0);
02589         } else {
02590             fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Global);
02591             view->SetVisEmcHitsGlobal(1);
02592         }
02593         break;
02594 
02595     case kM_EmcHits_East:
02596         if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_East) ) {
02597             fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_East);
02598             view->SetVisEmcHitsEast(0);
02599         } else {
02600             fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_East);
02601             view->SetVisEmcHitsEast(1);
02602         }
02603         break;
02604 
02605     case kM_EmcHits_Barrel:
02606         if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_Barrel) ) {
02607             fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Barrel);
02608             view->SetVisEmcHitsBarrel(0);
02609         } else {
02610             fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Barrel);
02611             view->SetVisEmcHitsBarrel(1);
02612         }
02613         break;
02614 
02615     case kM_EmcHits_West:
02616         if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_West) ) {
02617             fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_West);
02618             view->SetVisEmcHitsWest(0);
02619         } else {
02620             fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_West);
02621             view->SetVisEmcHitsWest(1);
02622         }
02623         break;
02624 
02625     case kM_EmcHits_Side:
02626         if ( fMenuViewOptionEmcHits->IsEntryChecked(kM_EmcHits_Side) ) {
02627             fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Side);
02628             view->SetVisEmcHitsSide(0);
02629         } else {
02630             fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Side);
02631             view->SetVisEmcHitsSide(1);
02632         }
02633         break;
02634 
02635     case kM_MucHits_Global:
02636         if ( fMenuViewOptionMucHits->IsEntryChecked(kM_MucHits_Global) ) {
02637             fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_Global);
02638             view->SetVisMucHitsGlobal(0);
02639         } else {
02640             fMenuViewOptionMucHits->CheckEntry(kM_MucHits_Global);
02641             view->SetVisMucHitsGlobal(1);
02642         }
02643         break;
02644 
02645     case kM_MucHits_East:
02646         if ( fMenuViewOptionMucHits->IsEntryChecked(kM_MucHits_East) ) {
02647             fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_East);
02648             view->SetVisMucHitsEast(0);
02649         } else {
02650             fMenuViewOptionMucHits->CheckEntry(kM_MucHits_East);
02651             view->SetVisMucHitsEast(1);
02652         }
02653         break;
02654 
02655     case kM_MucHits_Barrel:
02656         if ( fMenuViewOptionMucHits->IsEntryChecked(kM_MucHits_Barrel) ) {
02657             fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_Barrel);
02658             view->SetVisMucHitsBarrel(0);
02659         } else {
02660             fMenuViewOptionMucHits->CheckEntry(kM_MucHits_Barrel);
02661             view->SetVisMucHitsBarrel(1);
02662         }
02663         break;
02664 
02665     case kM_MucHits_West:
02666         if ( fMenuViewOptionMucHits->IsEntryChecked(kM_MucHits_West) ) {
02667             fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_West);
02668             view->SetVisMucHitsWest(0);
02669         } else {
02670             fMenuViewOptionMucHits->CheckEntry(kM_MucHits_West);
02671             view->SetVisMucHitsWest(1);
02672         }
02673         break;
02674 
02675     case kM_Tracks_Global:
02676         if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Global) ) {
02677             fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Global);
02678             view->SetVisTracksGlobal(0);
02679         } else {
02680             fMenuViewOptionTracks->CheckEntry(kM_Tracks_Global);
02681             view->SetVisTracksGlobal(1);
02682         }
02683         break;
02684 
02685     case kM_Tracks_Mdc:
02686         if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Mdc) ) {
02687             fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Mdc);
02688             view->SetVisTracksMdc(0);
02689         } else {
02690             fMenuViewOptionTracks->CheckEntry(kM_Tracks_Mdc);
02691             view->SetVisTracksMdc(1);
02692         }
02693         break;
02694 
02695     case kM_Tracks_Tof:
02696         if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Tof) ) {
02697             fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Tof);
02698             view->SetVisTracksTof(0);
02699         } else {
02700             fMenuViewOptionTracks->CheckEntry(kM_Tracks_Tof);
02701             view->SetVisTracksTof(1);
02702         }
02703         break;
02704 
02705     case kM_Tracks_Emc:
02706         if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Emc) ) {
02707             fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Emc);
02708             view->SetVisTracksEmc(0);
02709         } else {
02710             fMenuViewOptionTracks->CheckEntry(kM_Tracks_Emc);
02711             view->SetVisTracksEmc(1);
02712         }
02713         break;
02714 
02715     case kM_Tracks_Muc:
02716         if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Muc) ) {
02717             fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Muc);
02718             view->SetVisTracksMuc(0);
02719         } else {
02720             fMenuViewOptionTracks->CheckEntry(kM_Tracks_Muc);
02721             view->SetVisTracksMuc(1);
02722         }
02723         break;
02724 
02725     case kM_Tracks_Ext:
02726         if ( fMenuViewOptionTracks->IsEntryChecked(kM_Tracks_Ext) ) {
02727             fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Ext);
02728             view->SetVisTracksExt(0);
02729         } else {
02730             fMenuViewOptionTracks->CheckEntry(kM_Tracks_Ext);
02731             view->SetVisTracksExt(1);
02732         }
02733         break;
02734 
02735     case kM_View_X3D:
02736         X3D();
02737         break;
02738 
02739     case kM_View_OpenGL:
02740         OpenGL();
02741         break;
02742 
02743         // Default
02744     default:
02745         cerr << "MenuViewOption item" << id << "selected" << endl;
02746         break;
02747     }
02748 
02749     view->UpdateView(0);
02750     UpdateStatus();
02751 
02752     ((TCanvas*)fEmbeddedCanvas->GetCanvas())->Modified();
02753     ((TCanvas*)fEmbeddedCanvas->GetCanvas())->Update();
02754 }

virtual void BesClient::Help  )  [virtual]
 

void BesClient::Help  )  [virtual]
 

03212                      {
03213 
03214     //char str[32];
03215     //sprintf(str, "BesVis Help %s...", gROOT->GetVersion());
03216     //TRootHelpDialog * hd = new TRootHelpDialog(this, str, 600, 400);
03217 
03218     TRootHelpDialog * hd = new TRootHelpDialog(this, "Help on BesVis...", 600, 400);
03219     hd->SetText(gHelpBesVis);
03220     hd->Popup();
03221 }

virtual void BesClient::InitConnections  )  [virtual]
 

void BesClient::InitConnections  )  [virtual]
 

02187                                 {
02188     //
02189     // init connections to internal messaging queues
02190     if (gDebug) cout << "BesClient::InitConnections called!" << endl;
02191 
02192     // Connect canvas to mouse actions
02193     Connect((TCanvas*)fEmbeddedCanvas->GetCanvas(),"ProcessedEvent(Int_t, Int_t, Int_t, TObject*)", "BesClient",
02194             this, "ExecuteEvent(Int_t, Int_t, Int_t, TObject*)");
02195 
02196     // Connect close button
02197     Connect("CloseWindow()", "BesClient", this, "CloseWindow()");
02198 }

virtual void BesClient::InitLocal  )  [virtual]
 

void BesClient::InitLocal  )  [virtual]
 

02111                           {
02112     //
02113     // init local variables
02114     if (gDebug) cout << "BesClient::InitLocal called!" << endl;
02115 
02116     // init widget list
02117     fWidgets = new TList();
02118     fLayout = 0;
02119 
02120     gGeometry = 0;
02121     gBesCursor = new BesCursor();
02122     gBesCursor->SetType(kBesPick);
02123     gBesCursor->SetShowInfo(true);
02124 
02125     fAutoDisplayEventTimer = new TTimer(fEventPlaySpeed);
02126     Connect(fAutoDisplayEventTimer,"Timeout()","BesClient",this,"AutoDisplayEventCommand()");
02127 
02128     fAutoRotateTimer = new TTimer((Int_t)1000/fRotateFPS);
02129     Connect(fAutoRotateTimer,"Timeout()","BesClient",this,"AutoRotateCommand()");
02130 
02131     /*TColor *milk        = */
02132     new TColor(1001, 1.0, 1.0, 225/255.0);
02133     /*TColor *pink        = */
02134     new TColor(1002, 227/255.0, 186/255.0, 227/255.0);
02135     /*TColor *lightYellow = */
02136     new TColor(1003, 232/255.0, 234/255.0, 117/255.0);
02137     /*TColor *orange      = */
02138     new TColor(1004, 254/255.0, 216/255.0,  31/255.0);
02139     /*TColor *lightBlue   = */
02140     new TColor(1005, 175/255.0, 192/255.0, 227/255.0);
02141     /*TColor *lightGreen  = */
02142     new TColor(1006, 192/255.0, 227/255.0, 226/255.0);
02143     /*TColor *lightBrown  = */
02144     new TColor(1007, 225/255.0, 199/255.0, 162/255.0);
02145 }

virtual void BesClient::InitParameter  )  [virtual]
 

void BesClient::InitParameter  )  [virtual]
 

02149                               {
02150     //
02151     // init local variables
02152     if (gDebug) cout << "BesClient::InitParameter called!" << endl;
02153 
02154     // init command line parameter
02155     fWindowWidth  = 1000;
02156     fWindowHeight = 710;
02157 
02158     fBesVisPath = TString(getenv("BESVISLIBROOT"));
02159 
02160     fEventPlaySpeed = 1000;  // 1000 ms/event
02161     fAutoDisplayEvent = kFALSE;
02162 
02163     for (Int_t i = 0; i < 3; i++) {
02164         fHomeX[i] = 0.0;
02165         fHomeY[i] = 0.0;
02166     }
02167 
02168     fMoveFactor  = 0.1;   // factor of move
02169     fRotateStep  = 1.0;   // 0.1 deg/frame
02170     fRotateSpeed = 10.0;  // 1.0 deg/sec
02171     fRotateFPS   = 10;    // 10 frame/sec
02172 
02173     fAutoRotate = kFALSE;
02174     fAutoRotateClockWise = 0;
02175     fAutoRotateTheta = 0;
02176     fAutoRotatePhi   = 0;
02177     fAutoRotatePsi   = 0;
02178 
02179     fBesRunNo   = 0;
02180     fBesEventNo = 0;
02181 
02182     fViewer3DMode = 0;
02183 }

virtual void BesClient::LoadGeoFile  )  [virtual]
 

void BesClient::LoadGeoFile  )  [virtual]
 

02793                             {
02794     //
02795     // Load BesVis geometry file
02796 
02797     if ( f_geoFile.Length() != 0){
02798         cout << "Load geoFile f_geoFile: " << f_geoFile << endl;
02799         this->OpenGeoFile(f_geoFile);
02800     }
02801     else {
02802         // Open file browser
02803         static TString GeoDir = fBesVisPath + TString("/geom/"); // "."
02804         TGFileInfo fi;
02805         fi.fFileTypes = OpenGeoTypes;
02806         fi.fIniDir    = StrDup(GeoDir);
02807         char msg[256];
02808         sprintf(msg, "Loading Geometry File");
02809         HandleStatusBar(msg);
02810         new TGFileDialog(fClient->GetRoot(), this, kFDOpen, &fi);
02811         if (&fi == 0) return;
02812         GeoDir = fi.fIniDir;
02813         this->OpenGeoFile(fi.fFilename); // fi.fFilename: full path of geofile
02814     }
02815 }

virtual void BesClient::LoadMyConfig  )  [virtual]
 

void BesClient::LoadMyConfig  )  [virtual]
 

03167                              {
03168     //
03169     // load my style from ~/.besvisMyConfig.txt
03170 
03171     string homePath = getenv("HOME");
03172     string fileName = homePath + string("/.besvisMyConfig.txt");
03173     //cout << "fileName " << fileName << endl;
03174 
03175     ostringstream s;
03176     s << "The config file: " << fileName.c_str() << " does not exist ! \n Maybe You have not save your config";
03177     if (!FileExists(TString(fileName))) {
03178         this->HandleError(s.str().c_str());
03179         return;
03180     }
03181 
03182     ifstream fileMyConfig(fileName.c_str());
03183     if (fDisplay) {
03184         BesView *viewXY = (BesView*)fDisplay->GetPadXY()->GetView();
03185         if (viewXY) {
03186             BesStatus status;
03187             fileMyConfig >> status;
03188             viewXY->GetStatusCurrent()->Transfer(&status, true);
03189         }
03190 
03191         BesView *viewZR = (BesView*)fDisplay->GetPadZR()->GetView();
03192         if (viewZR) {
03193             BesStatus status;
03194             fileMyConfig >> status;
03195             viewZR->GetStatusCurrent()->Transfer(&status, true);
03196         }
03197 
03198         BesView *view3D = (BesView*)fDisplay->GetPad3D()->GetView();
03199         if (view3D) {
03200             BesStatus status;
03201             fileMyConfig >> status;
03202             view3D->GetStatusCurrent()->Transfer(&status, true);
03203         }
03204     }
03205 
03206     UpdateStatus();
03207     UpdateAllView();
03208 }

virtual Bool_t BesClient::NextEvent  )  [virtual]
 

Bool_t BesClient::NextEvent  )  [virtual]
 

03636 {
03637   Bool_t status;
03638   fBesEventNo++;
03639   if ( f_bossMode == false) {
03640     status = GetEvent(fBesEventNo);
03641   }
03642   else if ( f_bossMode == true) {
03643     std::cout << "In Boss Mode, execute NextEvent()" << std::endl;
03644     status = GetRecEvent();
03645   }
03646   if (!status) fBesEventNo--;
03647   return status;
03648 }

virtual void BesClient::OpenEventFile TString  filename  )  [virtual]
 

virtual void BesClient::OpenEventFile  )  [virtual]
 

void BesClient::OpenEventFile TString  filename  )  [virtual]
 

02935                                            {
02936     //
02937     // Open BesVis event file
02938 
02939     std::cout << "OpenEventFile: " << fname << std::endl;
02940     HandleStatusBar("Open Event File");
02941     char msg[256];
02942     f_evtFile_1 = fname;
02943     if ( fname.Contains(".root")||fname.Contains(".rtraw")||fname.Contains(".rec") ) {
02944         fEvent = 0;
02945         gEvent = 0;
02946         fEvent = new BesEvent();
02947         gEvent = fEvent;
02948 
02949         fEventFile = TFile::Open(fname, "read");
02950 
02951         if (fEventFile){
02952             fEventTree = 0;
02953             fEventTree = (TTree*)fEventFile->Get("Event");
02954         }
02955         else {
02956             this->HandleError("This File is not a valid BesVis ROOT Event File!");
02957             sprintf(msg, "This File is not valid");
02958             HandleStatusBar(msg);
02959             return;
02960         }
02961 
02962         if (fEventTree) {
02963             Long64_t nEvents = fEventTree->GetEntries();
02964             fEventPlaySlider->SetRange(0, nEvents-1);
02965             fEventPlaySlider->SetPosition(0);
02966            
02967             fBesEventNo = 0;
02968             if (nEvents > 0) {
02969                 if(f_bossMode == false){
02970                    fDigiEvent = 0;
02971                    fEvtHeader = 0;
02972                    //fTrigEvent = 0;
02973                    fRecEvent_1 = 0;
02974                    fEventTree->SetBranchAddress("TDigiEvent" , &fDigiEvent);
02975                    fEventTree->SetBranchAddress("TRecEvent" ,  &fRecEvent_1);
02976                    fEventTree->SetBranchAddress("TEvtHeader" ,  &fEvtHeader);
02977                    //fEventTree->SetBranchAddress("TTrigEvent" ,  &fTrigEvent);
02978                  }
02979 
02980                 GetEvent(fBesEventNo);
02981             }
02982 
02983             fEventPlaySlider->SetRange(0, nEvents); // tianhl change it
02984             fEventPlaySlider->SetPosition(0);
02985         }
02986         else {
02987             this->HandleError("This File is not a valid BesVis ROOT Event File : \n Event Tree \"Event\" not found!");
02988             sprintf(msg, "This File contains no Event Tree \"Event\"");
02989             HandleStatusBar(msg);
02990             return;
02991         }
02992         HandleStatusBar("Ready");
02993     }
02994 }

void BesClient::OpenEventFile  )  [virtual]
 

02912                               {
02913     //
02914     // Load BesVis event file
02915     if (!gBesGeometry) {
02916         this->HandleError("Geometry not intialized, Load Geometry file first!");
02917         return;
02918     }
02919 
02920     // Open file browser
02921     static TString EventDir(".");
02922     TGFileInfo fi;
02923     fi.fFileTypes = OpenEventTypes;
02924     fi.fIniDir    = StrDup(EventDir);
02925     char msg[256];
02926     sprintf(msg, "Loading Event File");
02927     HandleStatusBar(msg);
02928     new TGFileDialog(fClient->GetRoot(), this, kFDOpen, &fi);
02929     EventDir = fi.fIniDir;
02930     this->OpenEventFile(fi.fFilename);
02931 }

virtual void BesClient::OpenGeoFile TString  filename  )  [virtual]
 

void BesClient::OpenGeoFile TString  filename  )  [virtual]
 

02819                                          {
02820     //
02821     // Open BesVis geometry file
02822     HandleStatusBar("Open Geometry File");
02823     char msg[256];
02824 
02825     if (gDebug) cout << fname << " fname Length " << fname.Length() << endl;
02826     Ssiz_t posLastSlash = fname.Last('/');   // /scratch/youzy/BesVis/geom.root
02827     //                                                               |
02828     TString fpath = fname;
02829     fpath = fpath.Remove(posLastSlash+1, fname.Length()-posLastSlash-1);
02830 
02831     if (fpath.Length() == 0) return;   //  Cancel Button pressed.
02832 
02833     if (fDisplay->GetBesGeometry()) {
02834         Int_t ret;
02835         const char *txt;
02836         txt = Form("Geometry has already been build, Yes to rebuild it? \n (Each rebuild increase memory ~80MB)");
02837         new TGMsgBox(fClient->GetRoot(), GetMainFrame(),
02838                      "Geometry Exist", txt, kMBIconExclamation,
02839                      kMBYes | kMBNo, &ret);
02840         if (ret == kMBNo)       return;
02841     }
02842 
02843     if ( fname.Contains(".gdml") ) {
02844         fDisplay->InitGeometryFromGDML(fpath);
02845         fDisplay->Draw();
02846         return ;
02847     }
02848 
02849     if ( fname.Contains(".root") ) {
02850         fGeoFile = TFile::Open(fname, "read");
02851 
02852         TGeoVolume *volBes = (TGeoVolume*)(fGeoFile->Get("volBes"));
02853 
02854         if (volBes) {
02855             fDisplay->InitGeometryFromROOT(volBes);
02856             fDisplay->Draw();
02857             return ;
02858         }
02859         else {
02860             this->HandleError("This File is not a valid BesVis geometry file : \n TopVolume \"volBes\" not found!");
02861             sprintf(msg, "This File is not a valid BesVis geometry file");
02862             HandleStatusBar(msg);
02863             return;
02864         }
02865         HandleStatusBar("Ready");
02866     }
02867 }

virtual void BesClient::OpenGL  )  [virtual]
 

void BesClient::OpenGL  )  [virtual]
 

03275                        {
03276 
03277     BesView *view = (BesView*)gPad->GetView();
03278     if (!view) return;
03279 
03280 //    if (view->GetViewType() & k3DView) {
03281 //        //gPad->x3d("ogl");
03282 //        gPad->GetViewer3D("ogl");
03283 //        // use TPad::GetViewer3D() instead of depreciated function TPad::x3d
03284 //        // changed by tianhl at Mon Aug 20 2007
03285 //        fViewer3DMode = 2;
03286 //
03287 //        //TViewerOpenGL *ogl = 0;
03288 //        //ogl = (TViewerOpenGL*)gPad->GetViewer3D();
03289 //        // update from 4.04 to 5.14
03290 //        TVirtualViewer3D *ogl = 0;
03291 //        ogl = (TVirtualViewer3D*)gPad->GetViewer3D("ogl");
03292 //
03293 //        if (!ogl) cout << " ogl does not exist " << endl;
03294 //        UpdateCurrentPad();
03295 //    }
03296 //    else {
03297 //        string s("Could not start OpenGL for 2D view, swith to 3D view first");
03298 //        this->HandleError(s.c_str());
03299 //    }
03300 }

virtual Bool_t BesClient::PrevEvent  )  [virtual]
 

Bool_t BesClient::PrevEvent  )  [virtual]
 

03653 {
03654   Bool_t status;
03655   fBesEventNo--;
03656   if ( f_bossMode == false){
03657     status = GetEvent(fBesEventNo);
03658   }
03659   else if ( f_bossMode == true){
03660     // add error box
03661     this->HandleError("Boss Mode can not get previous event!");
03662   }
03663   if (!status) fBesEventNo++;
03664   return status;
03665 }

virtual void BesClient::RotateClockWise int  clockwise  )  [virtual]
 

void BesClient::RotateClockWise int  clockwise  )  [virtual]
 

03782 {
03783   Double_t phi = 0.0;
03784   Int_t    iret;
03785   if (fDisplay->GetPadXY()->GetView()) {
03786     phi = fDisplay->GetPadXY()->GetView()->GetLongitude();
03787     phi += clockwise * fRotateStep;
03788     fDisplay->GetPadXY()->GetView()->SetView(phi,
03789         fDisplay->GetPadXY()->GetView()->GetLatitude(),
03790         fDisplay->GetPadXY()->GetView()->GetPsi(), iret);
03791     fDisplay->GetPadXY()->Modified();
03792     fDisplay->GetPadXY()->Update();
03793   }
03794   if (fDisplay->GetPadZR()->GetView()) {
03795     //phi = fDisplay->GetPadZR()->GetView()->GetLongitude();
03796     //phi += clockwise * fRotateStep;
03797     phi += 180.0;
03798     fDisplay->GetPadZR()->GetView()->SetView(phi,
03799         fDisplay->GetPadZR()->GetView()->GetLatitude(),
03800         fDisplay->GetPadZR()->GetView()->GetPsi(), iret);
03801     fDisplay->GetPadZR()->Modified();
03802     fDisplay->GetPadZR()->Update();
03803   }
03804 }

virtual void BesClient::RotatePhi int  pn  )  [virtual]
 

void BesClient::RotatePhi int  pn  )  [virtual]
 

03825 {
03826   BesView *view = (BesView*)gPad->GetView();
03827 
03828   if (view) {
03829     Double_t phi = view->GetLongitude() + pn*fRotateStep;
03830     Int_t iret;
03831     SetRange(phi, 0.0, 360.0);
03832     view->SetView(phi, view->GetLatitude(), view->GetPsi(), iret);
03833     //gPad->Modified();
03834     //gPad->Update();
03835   }
03836 }

virtual void BesClient::RotatePsi int  pn  )  [virtual]
 

void BesClient::RotatePsi int  pn  )  [virtual]
 

03841 {
03842   BesView *view = (BesView*)gPad->GetView();
03843 
03844   if (view) {
03845     Double_t psi = view->GetPsi() + pn*fRotateStep;
03846     Int_t iret;
03847     SetRange(psi, 0.0, 360.0);
03848     view->SetView(view->GetLongitude(), view->GetLatitude(), psi, iret);
03849     //gPad->Modified();
03850     //gPad->Update();
03851   }
03852 }

virtual void BesClient::RotateTheta int  pn  )  [virtual]
 

void BesClient::RotateTheta int  pn  )  [virtual]
 

03809 {
03810   BesView *view = (BesView*)gPad->GetView();
03811 
03812   if (view) {
03813     Double_t theta = view->GetLatitude() + pn*fRotateStep;
03814     Int_t iret;
03815     SetRange(theta, 0.0, 180.0);
03816     view->SetView(view->GetLongitude(), theta, view->GetPsi(), iret);
03817     //gPad->Modified();
03818     //gPad->Update();
03819   }
03820 }

virtual void BesClient::SaveGeoAs  )  [virtual]
 

void BesClient::SaveGeoAs  )  [virtual]
 

02871                           {
02872     //
02873     // save object of Top Volume "volBes" to a ROOT file
02874     // Open file browser
02875 
02876     if (!fDisplay) {
02877         this->HandleError("fDisplay not found !");
02878         return;
02879     }
02880 
02881     if (!fDisplay->GetBesGeometry()) {
02882         this->HandleError("Bes Geometry not found, Load from ROOT or GDML files first !");
02883         return;
02884     }
02885 
02886     TGeoVolume *volBes = fDisplay->GetBesGeometry()->GetVolBes();
02887     if (volBes) {
02888         // get name to save volBes to
02889         static TString EventDir(".");
02890         TGFileInfo fi;
02891         fi.fFileTypes = SaveGeoTypes;
02892         fi.fIniDir    = StrDup(EventDir);
02893         char msg[256];
02894         sprintf(msg, "Saving Geometry ----> BUSY!");
02895         HandleStatusBar(msg);
02896         new TGFileDialog(fClient->GetRoot(), this, kFDSave, &fi);
02897 
02898         TFile *f = new TFile( fi.fFilename,"RECREATE");
02899         volBes->Write();
02900         f->Close();
02901     }
02902     else {
02903         this->HandleError("TGeoVolume \"volBes\" not found !");
02904         return;
02905     }
02906 
02907     HandleStatusBar("Ready");
02908 }

virtual void BesClient::SaveMyConfig  )  [virtual]
 

void BesClient::SaveMyConfig  )  [virtual]
 

03124                              {
03125     //
03126     // save current style to ~/.besvisMyConfig.txt
03127 
03128     Int_t ret;
03129     const char *txt;
03130     txt = Form("Save current style to ~/.besvisMyConfig.txt, Yes to save it? ");
03131     new TGMsgBox(fClient->GetRoot(), GetMainFrame(),
03132                  "Save My Style", txt, kMBIconExclamation,
03133                  kMBYes | kMBNo, &ret);
03134     if (ret == kMBNo)   return;
03135 
03136     string homePath = getenv("HOME");
03137     string fileName = homePath + string("/.besvisMyConfig.txt");
03138     //cout << "fileName " << fileName << endl;
03139     ofstream fileMyConfig(fileName.c_str(), ios_base::out);
03140 
03141     if (fDisplay) {
03142         BesView *viewXY = (BesView*)fDisplay->GetPadXY()->GetView();
03143         if (viewXY) {
03144             BesStatus *status = (BesStatus*)viewXY->GetStatusXY();
03145             fileMyConfig << *status;
03146             //cout << "viewXY " << *status << endl;
03147         }
03148 
03149         BesView *viewZR = (BesView*)fDisplay->GetPadZR()->GetView();
03150         if (viewZR) {
03151             BesStatus *status = (BesStatus*)viewZR->GetStatusZR();
03152             fileMyConfig << *status;
03153             //cout << "viewZR " << *status << endl;
03154         }
03155 
03156         BesView *view3D = (BesView*)fDisplay->GetPad3D()->GetView();
03157         if (view3D) {
03158             BesStatus *status = (BesStatus*)view3D->GetStatus3D();
03159             fileMyConfig << *status;
03160             //cout << "view3D " << *status << endl;
03161         }
03162     }
03163 }

virtual void BesClient::SavePicAs  )  [virtual]
 

void BesClient::SavePicAs  )  [virtual]
 

02998                           {
02999     //
03000     // save picture of canvas in file
03001     // Open file browser
03002 
03003     // get name to save events to
03004     static TString EventDir(".");
03005     TGFileInfo fi;
03006     fi.fFileTypes = SavePicTypes;
03007     fi.fIniDir    = StrDup(EventDir);
03008     char msg[256];
03009     sprintf(msg, "Saving Picture ----> BUSY!");
03010     HandleStatusBar(msg);
03011     new TGFileDialog(fClient->GetRoot(), this, kFDSave, &fi);
03012 
03013     if ( fi.fFilename ) {
03014         TString filename = fi.fFilename;
03015         if ( filename.EndsWith("gif") ||  filename.EndsWith("GIF") ) {
03016             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"gif");
03017         }
03018         else if ( filename.EndsWith("jpg") ||  filename.EndsWith("JPG") ) {
03019             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"jpg");
03020         }
03021         else if ( filename.EndsWith("eps") ||  filename.EndsWith("EPS") ) {
03022             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"eps");
03023         }
03024         else if ( filename.EndsWith("ps") ||  filename.EndsWith("PS") ) {
03025             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"ps");
03026         }
03027         else if ( filename.EndsWith("xpm") ||  filename.EndsWith("XPM") ) {
03028             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"xmp");
03029         }
03030         else if ( filename.EndsWith("png") ||  filename.EndsWith("PNG") ) {
03031             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"png");
03032         }
03033         else if ( filename.EndsWith("tiff") ||  filename.EndsWith("TIFF") ) {
03034             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"tiff");
03035         }
03036         else if ( filename.EndsWith("cxx") ||  filename.EndsWith("CXX") ) {
03037             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"cxx");
03038         }
03039         else if ( filename.EndsWith("xml") ||  filename.EndsWith("XML") ) {
03040             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"xml");
03041         }
03042         else if ( filename.EndsWith("root") ||  filename.EndsWith("ROOT") ) {
03043             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"root");
03044         }
03045         else {
03046             new TGMsgBox(gClient->GetRoot(), this,"Error", "Please give Name and Extension of Filename! \n Valid Extensions are *.gif, *.jpg, *.ps, *.eps, *.xpm, *.png, *.tiff!",gClient->GetPicture("mb_stop_s.xpm"));
03047             SavePicAs();
03048             return;
03049         }
03050     }
03051     HandleStatusBar("Ready");
03052 }

virtual void BesClient::SavePicAsPS  )  [virtual]
 

void BesClient::SavePicAsPS  )  [virtual]
 

03056                             {
03057     //
03058     // save picture of canvas in file
03059     // Open file browser
03060 
03061     // get name to save events to
03062     static TString PSEventDir(".");
03063     TGFileInfo fi;
03064     fi.fFileTypes = SavePicPS;
03065     fi.fIniDir    = StrDup(PSEventDir);
03066     char msg[256];
03067     sprintf(msg, "Saving Picture as PS ----> BUSY!");
03068     HandleStatusBar(msg);
03069     new TGFileDialog(fClient->GetRoot(), this, kFDSave, &fi);
03070 
03071     if ( fi.fFilename ) {
03072         TString filename = fi.fFilename;
03073         if ( filename.EndsWith("ps") ||  filename.EndsWith("PS") ) {
03074             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"ps");
03075         }
03076         else {
03077             filename += ".ps";
03078             fEmbeddedCanvas->GetCanvas()->Print(filename.Data(),"ps");
03079         }
03080     }
03081     HandleStatusBar("Ready");
03082 }

virtual void BesClient::SetAllDisplayModeButtonUnHL  )  [virtual]
 

void BesClient::SetAllDisplayModeButtonUnHL  )  [virtual]
 

03225                                             {
03226 
03227     fDisplayModeButton[0]->SetPicture(gClient->GetPicture("DisplayMode2D.gif"));
03228     fDisplayModeButton[1]->SetPicture(gClient->GetPicture("DisplayModeXY.gif"));
03229     fDisplayModeButton[2]->SetPicture(gClient->GetPicture("DisplayModeZR.gif"));
03230     fDisplayModeButton[3]->SetPicture(gClient->GetPicture("DisplayMode3D.gif"));
03231     fDisplayModeButton[4]->SetPicture(gClient->GetPicture("DisplayModeAll.gif"));
03232 
03233     for (Int_t i = 0; i < 5; i++) fDisplayModeButton[i]->SetState(false);
03234 }

virtual void BesClient::SetHome  )  [virtual]
 

void BesClient::SetHome  )  [virtual]
 

03086                         {
03087 
03088     BesView *view = (BesView*)gPad->GetView();
03089     if (view) {
03090         Double_t x1, y1, x2, y2;
03091         gPad->GetRange(x1, y1, x2, y2);
03092         //cout << "x1 " << x1 << " x2 " << x2 << " y1 " << y1 << " y2 " << y2 << endl;
03093         Int_t iPad = 0;
03094         if (view->GetViewType() == kXYView) iPad = 0;
03095         else if (view->GetViewType() == kZRView) iPad = 1;
03096         else if (view->GetViewType() == k3DView) iPad = 2;
03097         fHomeX[iPad] = 0.5*(x1+x2);
03098         fHomeY[iPad] = 0.5*(y1+y2);
03099     }
03100 }

void BesClient::SetMdcQMatch Bool_t  input  )  [private]
 

void BesClient::SetMdcQMatch Bool_t  input  )  [private]
 

02092                                         {
02093     if (gBesGeometry){
02094         gBesGeometry->GetMdcROOTGeo()->SetQMatch(input);
02095     }
02096 }

void BesClient::SetMdcTMatch Bool_t  input  )  [private]
 

void BesClient::SetMdcTMatch Bool_t  input  )  [private]
 

02086                                         {
02087     if (gBesGeometry){
02088         gBesGeometry->GetMdcROOTGeo()->SetTMatch(input);
02089     }
02090 }

virtual void BesClient::SetRange Double_t &  input,
Double_t  min,
Double_t  max
[virtual]
 

void BesClient::SetRange Double_t &  input,
Double_t  min,
Double_t  max
[virtual]
 

05320   {
05321     Double_t range = max - min;
05322     if (input < min) {
05323       do {
05324         input += range;
05325       }
05326       while (input < min);
05327     }
05328 
05329     if (input >= max) {
05330       do {
05331         input -= range;
05332       }
05333       while (input >= max);
05334     }
05335   }

void BesClient::SetRotateSpeed  )  [inline]
 

00679 { fRotateSpeed = fRotateStep * fRotateFPS; }

void BesClient::SetRotateSpeed  )  [inline]
 

00679 { fRotateSpeed = fRotateStep * fRotateFPS; }

void BesClient::SetRotateStep  )  [inline]
 

00680 { if (fRotateFPS != 0) fRotateStep = fRotateSpeed/fRotateFPS; else fRotateStep = 0.0; }

void BesClient::SetRotateStep  )  [inline]
 

00680 { if (fRotateFPS != 0) fRotateStep = fRotateSpeed/fRotateFPS; else fRotateStep = 0.0; }

virtual void BesClient::SetState Int_t  id = -1  )  [virtual]
 

void BesClient::SetState Int_t  id = -1  )  [virtual]
 

03990                                    {
03991     //
03992     // set geometry state and update Canvas
03993     if (id == -1) {
03994       TGButton *btn = (TGButton *) gTQSender;
03995       id = btn->WidgetId();
03996     }
03997 
03998     BesView *view = (BesView*)gPad->GetView();
03999     if ( view ) {
04000       switch (id) {
04001 
04002         case   kM_Header_Global:
04003           break;
04004 
04005         case   kM_Mdc_Global:
04006           view->SetVisMdcGlobal(fChkBtnMdcGlobal->GetState());
04007           //gBesGeometry->GetMdcROOTGeo()->SetDetectorOn();
04008           //cout << "Mdc Global vis " << endl;
04009           break;
04010 
04011         case   kM_Mdc_Tubes:
04012           view->SetVisMdcTubes(fChkBtnMdcTubes->GetState());
04013           //HandleViewOptionMenu(kM_Mdc_Tubes);
04014           break;
04015 
04016         case   kM_Mdc_Wires:
04017           view->SetVisMdcWires(fChkBtnMdcWires->GetState());
04018           //HandleViewOptionMenu(kM_Mdc_Wires);
04019           break;
04020 
04021         case   kM_Tof_Global:
04022           view->SetVisTofGlobal(fChkBtnTofGlobal->GetState());
04023           //cout << "Tof Global vis " << endl;
04024           break;
04025 
04026         case   kM_Tof_East:
04027           view->SetVisTofEast(fChkBtnTofEast->GetState());
04028           break;
04029 
04030         case   kM_Tof_Barrel:
04031           view->SetVisTofBarrel(fChkBtnTofBarrel->GetState());
04032           break;
04033 
04034         case   kM_Tof_West:
04035           view->SetVisTofWest(fChkBtnTofWest->GetState());
04036           break;
04037 
04038         case   kM_Emc_Global:
04039           view->SetVisEmcGlobal(fChkBtnEmcGlobal->GetState());
04040           //cout << "Emc Global vis " << endl;
04041           break;
04042 
04043         case   kM_Emc_East:
04044           view->SetVisEmcEast(fChkBtnEmcEast->GetState());
04045           break;
04046 
04047         case   kM_Emc_Barrel:
04048           view->SetVisEmcBarrel(fChkBtnEmcBarrel->GetState());
04049           break;
04050 
04051         case   kM_Emc_West:
04052           view->SetVisEmcWest(fChkBtnEmcWest->GetState());
04053           break;
04054 
04055         case   kM_Emc_Side:
04056           view->SetVisEmcSide(fChkBtnEmcSide->GetState());
04057           break;
04058 
04059         case   kM_Muc_Global:
04060           view->SetVisMucGlobal(fChkBtnMucGlobal->GetState());
04061           //cout << "Muc Global vis " << endl;
04062           break;
04063 
04064         case   kM_Muc_East:
04065           view->SetVisMucEast(fChkBtnMucEast->GetState());
04066           break;
04067 
04068         case   kM_Muc_Barrel:
04069           view->SetVisMucBarrel(fChkBtnMucBarrel->GetState());
04070           break;
04071 
04072         case   kM_Muc_West:
04073           view->SetVisMucWest(fChkBtnMucWest->GetState());
04074           break;
04075 
04076         case   kM_Muc_Strips:
04077           view->SetVisMucStrips(fChkBtnMucStrips->GetState());
04078           break;
04079 
04080         case   kM_BeamPipe:
04081           view->SetVisBeamPipe(fChkBtnBeamPipe->GetState());
04082           break;
04083 
04084         case   kM_ZRPlaneOnXY:
04085           view->SetVisZRPlaneOnXY(fChkBtnZRPlaneOnXY->GetState());
04086           break;
04087 
04088         case   kM_Axis:
04089           view->SetVisAxis(fChkBtnAxis->GetState());
04090           break;
04091 
04092         case   kM_MdcHits_Global:
04093           view->SetVisMdcHitsGlobal(fChkBtnMdcHitsGlobal->GetState());
04094           break;
04095 
04096         case   kM_TofHits_Global:
04097           view->SetVisTofHitsGlobal(fChkBtnTofHitsGlobal->GetState());
04098           break;
04099 
04100         case   kM_TofHits_East:
04101           view->SetVisTofHitsEast(fChkBtnTofHitsEast->GetState());
04102           break;
04103 
04104         case   kM_TofHits_Barrel:
04105           view->SetVisTofHitsBarrel(fChkBtnTofHitsBarrel->GetState());
04106           break;
04107 
04108         case   kM_TofHits_West:
04109           view->SetVisTofHitsWest(fChkBtnTofHitsWest->GetState());
04110           break;
04111 
04112         case   kM_EmcHits_Global:
04113           view->SetVisEmcHitsGlobal(fChkBtnEmcHitsGlobal->GetState());
04114           break;
04115 
04116         case   kM_EmcHits_East:
04117           view->SetVisEmcHitsEast(fChkBtnEmcHitsEast->GetState());
04118           break;
04119 
04120         case   kM_EmcHits_Barrel:
04121           view->SetVisEmcHitsBarrel(fChkBtnEmcHitsBarrel->GetState());
04122           break;
04123 
04124         case   kM_EmcHits_West:
04125           view->SetVisEmcHitsWest(fChkBtnEmcHitsWest->GetState());
04126           break;
04127 
04128         case   kM_EmcHits_Side:
04129           view->SetVisEmcHitsSide(fChkBtnEmcHitsSide->GetState());
04130           break;
04131 
04132         case   kM_MucHits_Global:
04133           view->SetVisMucHitsGlobal(fChkBtnMucHitsGlobal->GetState());
04134           break;
04135 
04136         case   kM_MucHits_East:
04137           view->SetVisMucHitsEast(fChkBtnMucHitsEast->GetState());
04138           break;
04139 
04140         case   kM_MucHits_Barrel:
04141           view->SetVisMucHitsBarrel(fChkBtnMucHitsBarrel->GetState());
04142           break;
04143 
04144         case   kM_MucHits_West:
04145           view->SetVisMucHitsWest(fChkBtnMucHitsWest->GetState());
04146           break;
04147 
04148         case   kM_Tracks_Global:
04149           view->SetVisTracksGlobal(fChkBtnTracksGlobal->GetState());
04150           break;
04151 
04152         case   kM_Tracks_Mdc:
04153           view->SetVisTracksMdc(fChkBtnTracksMdc->GetState());
04154           break;
04155 
04156         case   kM_Tracks_Tof:
04157           view->SetVisTracksTof(fChkBtnTracksTof->GetState());
04158           break;
04159 
04160         case   kM_Tracks_Emc:
04161           view->SetVisTracksEmc(fChkBtnTracksEmc->GetState());
04162           break;
04163 
04164         case   kM_Tracks_Muc:
04165           view->SetVisTracksMuc(fChkBtnTracksMuc->GetState());
04166           break;
04167 
04168         case   kM_Tracks_Ext:
04169           view->SetVisTracksExt(fChkBtnTracksExt->GetState());
04170           break;
04171 
04172         case   kM_Mdc_TMatch_Global:
04173           this->SetMdcTMatch(fChkBtnMdcTMatchGlobal->GetState());
04174           break;
04175 
04176         case   kM_Mdc_QMatch_Global:
04177           this->SetMdcQMatch(fChkBtnMdcQMatchGlobal->GetState());
04178           break;
04179 
04180         case   kM_Tof_TMatch_Global:
04181           this->SetTofTMatch(fChkBtnTofTMatchGlobal->GetState());
04182           break;
04183 
04184         case   kM_Tof_QMatch_Global:
04185           this->SetTofQMatch(fChkBtnTofQMatchGlobal->GetState());
04186           break;
04187       }
04188 
04189       view->UpdateView(0);
04190 
04191       ((TCanvas*)fEmbeddedCanvas->GetCanvas())->Modified();
04192       ((TCanvas*)fEmbeddedCanvas->GetCanvas())->Update();
04193     }
04194 
04195     UpdateStatus();
04196   }

void BesClient::SetTofQMatch Bool_t  input  )  [private]
 

void BesClient::SetTofQMatch Bool_t  input  )  [private]
 

02104                                         {
02105     if (gBesGeometry){
02106         gBesGeometry->GetTofROOTGeo()->SetQMatch(input);
02107     }
02108 }

void BesClient::SetTofTMatch Bool_t  input  )  [private]
 

void BesClient::SetTofTMatch Bool_t  input  )  [private]
 

02098                                         {
02099     if (gBesGeometry){
02100         gBesGeometry->GetTofROOTGeo()->SetTMatch(input);
02101     }
02102 }

virtual void BesClient::Show  )  [virtual]
 

void BesClient::Show  )  [virtual]
 

02784                      {
02785     //
02786     // Show display
02787     MapWindow();
02788     MapRaised();
02789 }

virtual void BesClient::UpdateAllView  )  [virtual]
 

void BesClient::UpdateAllView  )  [virtual]
 

05062   {
05063     TCanvas *canvas = (TCanvas*)fEmbeddedCanvas->GetCanvas();
05064     TPad *curPad = (TPad*)gPad;//canvas->GetSelectedPad();
05065 
05066     fDisplay->GetPadXY()->cd();
05067     BesView *view = (BesView*)fDisplay->GetPadXY()->GetView();
05068     if (view) {
05069       view->UpdateView(0);
05070       cout << "update xy view" << endl;
05071     }
05072     else cout << "no xy view" << endl;
05073 
05074     fDisplay->GetPadZR()->cd();
05075     view = (BesView*)fDisplay->GetPadZR()->GetView();
05076     if (view) {
05077       view->UpdateView(0);
05078       cout << "update zr view" << endl;
05079     }
05080     else cout << "no zr view" << endl;
05081 
05082     fDisplay->GetPad3D()->cd();
05083     view = (BesView*)fDisplay->GetPad3D()->GetView();
05084     if (view) {
05085       view->UpdateView(0);
05086       cout << "update 3d view" << endl;
05087     }
05088     else cout << "no 3d view" << endl;
05089 
05090     // Header show be drawn last, as it will update all pads and makes tracks in pad drawn first
05091     fDisplay->DrawHeader();
05092 
05093     curPad->cd();
05094 
05095     UpdateBesInputFields();
05096 
05097     // Redraw canvas
05098     canvas->Modified();
05099     canvas->Update();
05100   }

virtual void BesClient::UpdateBesInputFields  )  [virtual]
 

void BesClient::UpdateBesInputFields  )  [virtual]
 

05174   {
05175     fNumEntryRunNo->SetNumber(GetBesRunNo());
05176     fNumEntryEventNo->SetIntNumber(GetBesEventNo());
05177     fNumEntryEventPlaySpeed->SetNumber(Double_t(GetEventPlaySpeed()) / 1000.0);
05178     fEventPlaySlider->SetPosition(GetBesEventNo());
05179 
05180     fNumEntryRotateStep->SetNumber(GetRotateStep());
05181     fNumEntryRotateSpeed->SetNumber(GetRotateSpeed());
05182     fNumEntryRotateFPS->SetIntNumber(GetRotateFPS());
05183 
05184     BesView *view = (BesView*)gPad->GetView();
05185     if (view) {
05186       fZoomRatioNumber->SetNumber(view->GetZoomRatio()*100.0);
05187 
05188       Double_t theta = view->GetLatitude();
05189       Double_t phi   = view->GetLongitude();
05190       Double_t psi   = view->GetPsi();
05191       SetRange(theta, 0.0, 180.0);
05192       SetRange(phi,   0.0, 360.0);
05193       SetRange(psi,   0.0, 360.0);
05194       fViewAngleThetaNumber->SetNumber(theta);
05195       fViewAnglePhiNumber->SetNumber(phi);
05196       fViewAnglePsiNumber->SetNumber(psi);
05197     }
05198     fViewAngleThetaSlider->SetPosition((Int_t)fViewAngleThetaNumber->GetNumber());
05199     fViewAnglePhiSlider->SetPosition((Int_t)fViewAnglePhiNumber->GetNumber());
05200     fViewAnglePsiSlider->SetPosition((Int_t)fViewAnglePsiNumber->GetNumber());
05201 
05202     fChkBtnAutoRotate->SetOn(fAutoRotate);
05203   }

virtual void BesClient::UpdateCurrentPad  )  [virtual]
 

void BesClient::UpdateCurrentPad  )  [virtual]
 

05105   {
05106     if (gPad) {
05107       gPad->Modified();
05108       gPad->Update();
05109     }
05110 
05111     //BesView *view = (BesView*)gPad->GetView();
05112 
05113     //TViewerX3D *x3d = 0;
05114     //x3d = (TViewerX3D*)gPad->GetViewer3D();
05115     //if (fViewer3DMode == 1 && view && x3d) {
05116     //    x3d->ExecCommand(Int_t(2*view->GetLatitude()), Int_t(2*view->GetLongitude()), 0);  //rotate
05117     //}
05118 
05122     //TVirtualViewer3D *ogl = 0;
05123     //ogl = (TVirtualViewer3D*)gPad->GetViewer3D("ogl");
05124     //if (fViewer3DMode == 2 && view && ogl) {
05125     //    gVirtualGL->ClearGLColor(0.0,0.0,0.0,0.0);   // set GL background color
05126     //    gVirtualGL->SetGLLineWidth(5);
05127 
05128     //    Double_t deltaTheta = view->GetLatitude()  - fViewThetaPreStep;
05129     //    Double_t deltaPhi   = view->GetLongitude() - fViewPhiPreStep;
05130     //    if (deltaTheta >  90.0)  deltaTheta -= 180.0;
05131     //    if (deltaTheta < -90.0)  deltaTheta += 180.0;
05132     //    if (deltaPhi   >  180.0) deltaPhi   -= 360.0;
05133     //    if (deltaPhi   < -180.0) deltaPhi   += 360.0;
05134 
05135     //    // update from 4.04 to 5.14, TViewerOpenGL has been removed,
05136     //    // TVirtualViewer3D has none those memthods
05137     //    //UInt_t width = ogl->GetWidth();
05138     //    //UInt_t height = ogl->GetHeight();
05139     //    //UInt_t xPos = width/2, yPos = height/2;
05140 
05141     //    //Event_t *event1 = new Event_t;
05142     //    //event1->fType = kButtonPress;
05143     //    //event1->fX = xPos; //(Int_t)view->GetLatitude();
05144     //    //event1->fY = yPos; //(Int_t)view->GetLongitude();
05145     //    //event1->fCode = kButton1;
05146     //    //ogl->HandleContainerButton(event1);
05147 
05148 
05149     //    //Event_t *event2 = new Event_t;
05150     //    //event2->fType = kMotionNotify;
05151     //    //event2->fX = (Int_t)(xPos + deltaTheta);
05152     //    //event2->fY = (Int_t)(yPos + deltaPhi);
05153     //    //ogl->HandleContainerMotion(event2);
05154 
05155     //    //Event_t *event3 = new Event_t;
05156     //    //event3->fType = kButtonRelease;
05157     //    //event3->fX = (Int_t)(xPos + deltaTheta); //(view->GetLatitude()  + deltaPhi);
05158     //    //event3->fY = (Int_t)(yPos + deltaPhi); //(view->GetLongitude() + deltaTheta);
05159     //    //event3->fCode = kButton1;
05160     //    //ogl->HandleContainerButton(event3);
05161 
05162     //    //fViewThetaPreStep = view->GetLatitude();
05163     //    //fViewPhiPreStep   = view->GetLongitude();
05164 
05165     //    //delete event1;
05166     //    //delete event2;
05167     //    //delete event3;
05168     //}
05169   }

virtual void BesClient::UpdateStatus  )  [virtual]
 

void BesClient::UpdateStatus  )  [virtual]
 

04200                                {
04201     //
04202     // get status from active BesView instance
04203     BesView *view = (BesView*)gPad->GetView();
04204 
04205     if ( view ) {
04206 
04207       // fish eye tick in zview menu
04208       view->SetFishEye(view->GetFishEyeStatus());
04209 
04210       // Mdc global
04211       fChkBtnMdcGlobal->SetOn(view->GetVisMdcGlobal());
04212 
04213       // Mdc Tubes
04214       fChkBtnMdcTubes->SetOn(view->GetVisMdcTubes());
04215 
04216       // Mdc Wires
04217       fChkBtnMdcWires->SetOn(view->GetVisMdcWires());
04218 
04219       // Tof global
04220       fChkBtnTofGlobal->SetOn(view->GetVisTofGlobal());
04221 
04222       // Tof east
04223       fChkBtnTofEast->SetOn(view->GetVisTofEast());
04224 
04225       // Tof barrel
04226       fChkBtnTofBarrel->SetOn(view->GetVisTofBarrel());
04227 
04228       // Tof west
04229       fChkBtnTofWest->SetOn(view->GetVisTofWest());
04230 
04231       // Emc global
04232       fChkBtnEmcGlobal->SetOn(view->GetVisEmcGlobal());
04233 
04234       // Emc east
04235       fChkBtnEmcEast->SetOn(view->GetVisEmcEast());
04236 
04237       // Emc barrel
04238       fChkBtnEmcBarrel->SetOn(view->GetVisEmcBarrel());
04239 
04240       // Emc west
04241       fChkBtnEmcWest->SetOn(view->GetVisEmcWest());
04242 
04243       // Emc side
04244       fChkBtnEmcSide->SetOn(view->GetVisEmcSide());
04245 
04246       // Muc global
04247       fChkBtnMucGlobal->SetOn(view->GetVisMucGlobal());
04248 
04249       // Muc east
04250       fChkBtnMucEast->SetOn(view->GetVisMucEast());
04251 
04252       // Muc barrel
04253       fChkBtnMucBarrel->SetOn(view->GetVisMucBarrel());
04254 
04255       // Muc west
04256       fChkBtnMucWest->SetOn(view->GetVisMucWest());
04257 
04258       // Muc strips
04259       fChkBtnMucStrips->SetOn(view->GetVisMucStrips());
04260 
04261       // BeamPipe
04262       fChkBtnBeamPipe->SetOn(view->GetVisBeamPipe());
04263 
04264       // ZRPlaneOnXY
04265       fChkBtnZRPlaneOnXY->SetOn(view->GetVisZRPlaneOnXY());
04266 
04267       // Axis
04268       fChkBtnAxis->SetOn(view->GetVisAxis());
04269 
04270       // Mdc Hits global
04271       fChkBtnMdcHitsGlobal->SetOn(view->GetVisMdcHitsGlobal());
04272 
04273       // Tof Hits global
04274       fChkBtnTofHitsGlobal->SetOn(view->GetVisTofHitsGlobal());
04275 
04276       // Tof Hits east
04277       fChkBtnTofHitsEast->SetOn(view->GetVisTofHitsEast());
04278 
04279       // Tof Hits barrel
04280       fChkBtnTofHitsBarrel->SetOn(view->GetVisTofHitsBarrel());
04281 
04282       // Tof Hits west
04283       fChkBtnTofHitsWest->SetOn(view->GetVisTofHitsWest());
04284 
04285       // Emc Hits global
04286       fChkBtnEmcHitsGlobal->SetOn(view->GetVisEmcHitsGlobal());
04287 
04288       // Emc Hits east
04289       fChkBtnEmcHitsEast->SetOn(view->GetVisEmcHitsEast());
04290 
04291       // Emc Hits barrel
04292       fChkBtnEmcHitsBarrel->SetOn(view->GetVisEmcHitsBarrel());
04293 
04294       // Emc Hits west
04295       fChkBtnEmcHitsWest->SetOn(view->GetVisEmcHitsWest());
04296 
04297       // Emc Hits side
04298       fChkBtnEmcHitsSide->SetOn(view->GetVisEmcHitsSide());
04299 
04300       // Muc Hits global
04301       fChkBtnMucHitsGlobal->SetOn(view->GetVisMucHitsGlobal());
04302 
04303       // Muc Hits east
04304       fChkBtnMucHitsEast->SetOn(view->GetVisMucHitsEast());
04305 
04306       // Muc Hits barrel
04307       fChkBtnMucHitsBarrel->SetOn(view->GetVisMucHitsBarrel());
04308 
04309       // Muc Hits west
04310       fChkBtnMucHitsWest->SetOn(view->GetVisMucHitsWest());
04311 
04312 
04313       // Tracks global
04314       fChkBtnTracksGlobal->SetOn(view->GetVisTracksGlobal());
04315 
04316       // Tracks mdc
04317       fChkBtnTracksMdc->SetOn(view->GetVisTracksMdc());
04318 
04319       // Tracks tof
04320       fChkBtnTracksTof->SetOn(view->GetVisTracksTof());
04321 
04322       // Tracks emc
04323       fChkBtnTracksEmc->SetOn(view->GetVisTracksEmc());
04324 
04325       // Tracks muc
04326       fChkBtnTracksMuc->SetOn(view->GetVisTracksMuc());
04327 
04328       // Tracks ext
04329       fChkBtnTracksExt->SetOn(view->GetVisTracksExt());
04330 
04331 
04332       // Mdc Global
04333       if ( view->GetVisMdcGlobal() )
04334         fMenuViewOptionMdc->CheckEntry(kM_Mdc_Global);
04335       else
04336         fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Global);
04337 
04338       // Mdc Tubes
04339       if ( view->GetVisMdcTubes() )
04340         fMenuViewOptionMdc->CheckEntry(kM_Mdc_Tubes);
04341       else
04342         fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Tubes);
04343 
04344       // Mdc Wires
04345       if ( view->GetVisMdcWires() )
04346         fMenuViewOptionMdc->CheckEntry(kM_Mdc_Wires);
04347       else
04348         fMenuViewOptionMdc->UnCheckEntry(kM_Mdc_Wires);
04349 
04350       // Tof Global
04351       if ( view->GetVisTofGlobal() )
04352         fMenuViewOptionTof->CheckEntry(kM_Tof_Global);
04353       else
04354         fMenuViewOptionTof->UnCheckEntry(kM_Tof_Global);
04355 
04356       // Tof East
04357       if ( view->GetVisTofEast() )
04358         fMenuViewOptionTof->CheckEntry(kM_Tof_East);
04359       else
04360         fMenuViewOptionTof->UnCheckEntry(kM_Tof_East);
04361 
04362       // Tof Barrel
04363       if ( view->GetVisTofBarrel() )
04364         fMenuViewOptionTof->CheckEntry(kM_Tof_Barrel);
04365       else
04366         fMenuViewOptionTof->UnCheckEntry(kM_Tof_Barrel);
04367 
04368       // Tof West
04369       if ( view->GetVisTofWest() )
04370         fMenuViewOptionTof->CheckEntry(kM_Tof_West);
04371       else
04372         fMenuViewOptionTof->UnCheckEntry(kM_Tof_West);
04373 
04374       // Emc Global
04375       if ( view->GetVisEmcGlobal() )
04376         fMenuViewOptionEmc->CheckEntry(kM_Emc_Global);
04377       else
04378         fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Global);
04379 
04380       // Emc East
04381       if ( view->GetVisEmcEast() )
04382         fMenuViewOptionEmc->CheckEntry(kM_Emc_East);
04383       else
04384         fMenuViewOptionEmc->UnCheckEntry(kM_Emc_East);
04385 
04386       // Emc Barrel
04387       if ( view->GetVisEmcBarrel() )
04388         fMenuViewOptionEmc->CheckEntry(kM_Emc_Barrel);
04389       else
04390         fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Barrel);
04391 
04392       // Emc West
04393       if ( view->GetVisEmcWest() )
04394         fMenuViewOptionEmc->CheckEntry(kM_Emc_West);
04395       else
04396         fMenuViewOptionEmc->UnCheckEntry(kM_Emc_West);
04397 
04398       // Emc Side
04399       if ( view->GetVisEmcSide() )
04400         fMenuViewOptionEmc->CheckEntry(kM_Emc_Side);
04401       else
04402         fMenuViewOptionEmc->UnCheckEntry(kM_Emc_Side);
04403 
04404       // Muc Global
04405       if ( view->GetVisMucGlobal() )
04406         fMenuViewOptionMuc->CheckEntry(kM_Muc_Global);
04407       else
04408         fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Global);
04409 
04410       // Muc East
04411       if ( view->GetVisMucEast() )
04412         fMenuViewOptionMuc->CheckEntry(kM_Muc_East);
04413       else
04414         fMenuViewOptionMuc->UnCheckEntry(kM_Muc_East);
04415 
04416       // Muc Barrel
04417       if ( view->GetVisMucBarrel() )
04418         fMenuViewOptionMuc->CheckEntry(kM_Muc_Barrel);
04419       else
04420         fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Barrel);
04421 
04422       // Muc West
04423       if ( view->GetVisMucWest() )
04424         fMenuViewOptionMuc->CheckEntry(kM_Muc_West);
04425       else
04426         fMenuViewOptionMuc->UnCheckEntry(kM_Muc_West);
04427 
04428       // Muc Strips
04429       if ( view->GetVisMucStrips() )
04430         fMenuViewOptionMuc->CheckEntry(kM_Muc_Strips);
04431       else
04432         fMenuViewOptionMuc->UnCheckEntry(kM_Muc_Strips);
04433 
04434       // Full3D Mdc
04435       if ( view->GetVisFull3DMdc() )
04436         fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Mdc);
04437       else
04438         fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Mdc);
04439 
04440       // Full3D Tof
04441       if ( view->GetVisFull3DTof() )
04442         fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Tof);
04443       else
04444         fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Tof);
04445 
04446       // Full3D Emc
04447       if ( view->GetVisFull3DEmc() )
04448         fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Emc);
04449       else
04450         fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Emc);
04451 
04452       // Full3D Muc
04453       if ( view->GetVisFull3DMuc() )
04454         fMenuViewOptionFull3D->CheckEntry(kM_Full3D_Muc);
04455       else
04456         fMenuViewOptionFull3D->UnCheckEntry(kM_Full3D_Muc);
04457 
04458       // BeamPipe
04459       if ( view->GetVisBeamPipe() )
04460         fMenuViewOptionOthers->CheckEntry(kM_BeamPipe);
04461       else
04462         fMenuViewOptionOthers->UnCheckEntry(kM_BeamPipe);
04463 
04464       // ZRPlaneOnXY
04465       if ( view->GetVisZRPlaneOnXY() )
04466         fMenuViewOptionOthers->CheckEntry(kM_ZRPlaneOnXY);
04467       else
04468         fMenuViewOptionOthers->UnCheckEntry(kM_ZRPlaneOnXY);
04469 
04470       // Axis
04471       if ( view->GetVisAxis() ) {
04472         fMenuViewOptionOthers->CheckEntry(kM_Axis);
04473         fShowAxisButton->SetPicture(gClient->GetPicture("ButtonShowAxisST.gif"));
04474         fShowAxisButton->SetState(true);
04475       }
04476       else {
04477         fMenuViewOptionOthers->UnCheckEntry(kM_Axis);
04478         fShowAxisButton->SetPicture(gClient->GetPicture("ButtonShowAxis.gif"));
04479         fShowAxisButton->SetState(false);
04480       }
04481 
04482       // Mdc Hits
04483       if ( view->GetVisMdcHits() )
04484         fMenuViewOptionMdcHits->CheckEntry(kM_MdcHits_Hits);
04485       else
04486         fMenuViewOptionMdcHits->UnCheckEntry(kM_MdcHits_Hits);
04487 
04488       // Tof hits Global
04489       if ( view->GetVisTofHitsGlobal() )
04490         fMenuViewOptionTofHits->CheckEntry(kM_TofHits_Global);
04491       else
04492         fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_Global);
04493 
04494       // Tof hits East
04495       if ( view->GetVisTofHitsEast() )
04496         fMenuViewOptionTofHits->CheckEntry(kM_TofHits_East);
04497       else
04498         fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_East);
04499 
04500       // Tof hits Barrel
04501       if ( view->GetVisTofHitsBarrel() )
04502         fMenuViewOptionTofHits->CheckEntry(kM_TofHits_Barrel);
04503       else
04504         fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_Barrel);
04505 
04506       // Tof hits West
04507       if ( view->GetVisTofHitsWest() )
04508         fMenuViewOptionTofHits->CheckEntry(kM_TofHits_West);
04509       else
04510         fMenuViewOptionTofHits->UnCheckEntry(kM_TofHits_West);
04511 
04512       // Emc hits Global
04513       if ( view->GetVisEmcHitsGlobal() )
04514         fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Global);
04515       else
04516         fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Global);
04517 
04518       // Emc hits East
04519       if ( view->GetVisEmcHitsEast() )
04520         fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_East);
04521       else
04522         fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_East);
04523 
04524       // Emc hits Barrel
04525       if ( view->GetVisEmcHitsBarrel() )
04526         fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Barrel);
04527       else
04528         fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Barrel);
04529 
04530       // Emc hits West
04531       if ( view->GetVisEmcHitsWest() )
04532         fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_West);
04533       else
04534         fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_West);
04535 
04536       // Emc hits Side
04537       if ( view->GetVisEmcHitsSide() )
04538         fMenuViewOptionEmcHits->CheckEntry(kM_EmcHits_Side);
04539       else
04540         fMenuViewOptionEmcHits->UnCheckEntry(kM_EmcHits_Side);
04541 
04542       // Muc hits Global
04543       if ( view->GetVisMucHitsGlobal() )
04544         fMenuViewOptionMucHits->CheckEntry(kM_MucHits_Global);
04545       else
04546         fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_Global);
04547 
04548       // Muc hits East
04549       if ( view->GetVisMucHitsEast() )
04550         fMenuViewOptionMucHits->CheckEntry(kM_MucHits_East);
04551       else
04552         fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_East);
04553 
04554       // Muc hits Barrel
04555       if ( view->GetVisMucHitsBarrel() )
04556         fMenuViewOptionMucHits->CheckEntry(kM_MucHits_Barrel);
04557       else
04558         fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_Barrel);
04559 
04560       // Muc hits West
04561       if ( view->GetVisMucHitsWest() )
04562         fMenuViewOptionMucHits->CheckEntry(kM_MucHits_West);
04563       else
04564         fMenuViewOptionMucHits->UnCheckEntry(kM_MucHits_West);
04565 
04566       // Tracks Global
04567       if ( view->GetVisTracksGlobal() )
04568         fMenuViewOptionTracks->CheckEntry(kM_Tracks_Global);
04569       else
04570         fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Global);
04571 
04572       // Tracks Mdc
04573       if ( view->GetVisTracksMdc() )
04574         fMenuViewOptionTracks->CheckEntry(kM_Tracks_Mdc);
04575       else
04576         fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Mdc);
04577 
04578       // Tracks Tof
04579       if ( view->GetVisTracksTof() )
04580         fMenuViewOptionTracks->CheckEntry(kM_Tracks_Tof);
04581       else
04582         fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Tof);
04583 
04584       // Tracks Emc
04585       if ( view->GetVisTracksEmc() )
04586         fMenuViewOptionTracks->CheckEntry(kM_Tracks_Emc);
04587       else
04588         fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Emc);
04589 
04590       // Tracks Muc
04591       if ( view->GetVisTracksMuc() )
04592         fMenuViewOptionTracks->CheckEntry(kM_Tracks_Muc);
04593       else
04594         fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Muc);
04595 
04596       // Tracks Ext
04597       if ( view->GetVisTracksExt() )
04598         fMenuViewOptionTracks->CheckEntry(kM_Tracks_Ext);
04599       else
04600         fMenuViewOptionTracks->UnCheckEntry(kM_Tracks_Ext);
04601 
04602       // Fish Eye View
04603       if ( view->GetFishEye() ) {
04604         fFishEyeViewButton->SetPicture(gClient->GetPicture("ButtonFishEyeViewST.gif"));
04605       }
04606       else {
04607         fFishEyeViewButton->SetPicture(gClient->GetPicture("ButtonFishEyeView.gif"));
04608       }
04609 
04610       // Parallel or Perspective View
04611       if ( view->IsPerspective() ) {
04612         fParallelViewButton->SetPicture(gClient->GetPicture("ButtonParallelView.gif"));
04613         fPerspectiveViewButton->SetPicture(gClient->GetPicture("ButtonPerspectiveViewST.gif"));
04614       }
04615       else {
04616         fParallelViewButton->SetPicture(gClient->GetPicture("ButtonParallelViewST.gif"));
04617         fPerspectiveViewButton->SetPicture(gClient->GetPicture("ButtonPerspectiveView.gif"));
04618       }
04619     }
04620     UpdateBesInputFields();
04621   }

virtual void BesClient::X3D  )  [virtual]
 

void BesClient::X3D  )  [virtual]
 

03238                     {
03239 
03240     /*
03241     painter = gGeoManager->GetGeomPainter();
03242     //if (!painter) return;
03243     painter->SetRaytracing(true);
03244     //if (!gPad) return;
03245     gPad->Modified();
03246     gPad->Update();
03247     */
03248 
03249     BesView *view = (BesView*)gPad->GetView();
03250     if (!view) return;
03251 
03252     if (view && view->GetViewType() & k3DView) {
03253         //gPad->x3d();
03254         gPad->GetViewer3D();
03255         // use TPad::Getviewer3D() instead of depreciated function x3d()
03256         // changed by tianhl at Mon Aug 20 2007
03257         fViewer3DMode = 1;
03258 
03259         TViewerX3D *x3d = 0;
03260         x3d = (TViewerX3D*)gPad->GetViewer3D();
03261         //x3d = (TViewerX3D*)TViewerX3D::Viewer3D("x3d");
03262         if (!x3d) cout << " x3d does not exist "<< endl;
03263         else
03264             x3d->ExecCommand(0,0,'r');
03265         //x3d->ExecCommand(0,0,'w');
03266     }
03267     else {
03268         string s("Could not start X3D for 2D view, swith to 3D view first");
03269         this->HandleError(s.c_str());
03270     }
03271 }


Member Data Documentation

TRecEmcShower* BesClient::emcshower [private]
 

TRecEmcShower* BesClient::emcshower [private]
 

Bool_t BesClient::f_bossMode [private]
 

TString BesClient::f_evtFile [private]
 

TString BesClient::f_evtFile_1 [private]
 

TString BesClient::f_geoFile [private]
 

Int_t BesClient::f_pid [private]
 

runStatus BesClient::f_runStatus [private]
 

Bool_t BesClient::fAutoDisplayEvent [private]
 

TTimer* BesClient::fAutoDisplayEventTimer [private]
 

TTimer* BesClient::fAutoDisplayEventTimer [private]
 

TGCompositeFrame* BesClient::fAutoFrame [private]
 

TGCompositeFrame* BesClient::fAutoFrame [private]
 

Bool_t BesClient::fAutoRotate [private]
 

Int_t BesClient::fAutoRotateClockWise [private]
 

Int_t BesClient::fAutoRotatePhi [private]
 

Int_t BesClient::fAutoRotatePsi [private]
 

Int_t BesClient::fAutoRotateTheta [private]
 

TTimer* BesClient::fAutoRotateTimer [private]
 

TTimer* BesClient::fAutoRotateTimer [private]
 

TGCompositeFrame* BesClient::fAutoTextFrame [private]
 

TGCompositeFrame* BesClient::fAutoTextFrame [private]
 

TGLabel* BesClient::fAutoTextLabel [private]
 

TGLabel* BesClient::fAutoTextLabel [private]
 

TGHorizontalFrame* BesClient::fBesEventFrame [private]
 

TGHorizontalFrame* BesClient::fBesEventFrame [private]
 

Long64_t BesClient::fBesEventNo [private]
 

TGLabel* BesClient::fBesLabelEvent [private]
 

TGLabel* BesClient::fBesLabelEvent [private]
 

TGLabel* BesClient::fBesLabelRun [private]
 

TGLabel* BesClient::fBesLabelRun [private]
 

TGHorizontalFrame* BesClient::fBesRunFrame [private]
 

TGHorizontalFrame* BesClient::fBesRunFrame [private]
 

Long64_t BesClient::fBesRunNo [private]
 

TString BesClient::fBesVisPath [private]
 

TCanvas* BesClient::fCanvas [private]
 

TCanvas* BesClient::fCanvas [private]
 

TGCheckButton* BesClient::fChkBtnAutoRotate [private]
 

TGCheckButton* BesClient::fChkBtnAutoRotate [private]
 

TGCheckButton* BesClient::fChkBtnAxis [private]
 

TGCheckButton* BesClient::fChkBtnAxis [private]
 

TGCheckButton* BesClient::fChkBtnBeamPipe [private]
 

TGCheckButton* BesClient::fChkBtnBeamPipe [private]
 

TGCheckButton* BesClient::fChkBtnEmcBarrel [private]
 

TGCheckButton* BesClient::fChkBtnEmcBarrel [private]
 

TGCheckButton* BesClient::fChkBtnEmcEast [private]
 

TGCheckButton* BesClient::fChkBtnEmcEast [private]
 

TGCheckButton* BesClient::fChkBtnEmcGlobal [private]
 

TGCheckButton* BesClient::fChkBtnEmcGlobal [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsBarrel [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsBarrel [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsEast [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsEast [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsGlobal [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsGlobal [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsSide [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsSide [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsWest [private]
 

TGCheckButton* BesClient::fChkBtnEmcHitsWest [private]
 

TGCheckButton* BesClient::fChkBtnEmcSide [private]
 

TGCheckButton* BesClient::fChkBtnEmcSide [private]
 

TGCheckButton* BesClient::fChkBtnEmcWest [private]
 

TGCheckButton* BesClient::fChkBtnEmcWest [private]
 

TGCheckButton* BesClient::fChkBtnHeaderGlobal [private]
 

TGCheckButton* BesClient::fChkBtnHeaderGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcHitsGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcHitsGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcQMatchGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcQMatchGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcTMatchGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcTMatchGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMdcTubes [private]
 

TGCheckButton* BesClient::fChkBtnMdcTubes [private]
 

TGCheckButton* BesClient::fChkBtnMdcWires [private]
 

TGCheckButton* BesClient::fChkBtnMdcWires [private]
 

TGCheckButton* BesClient::fChkBtnMucBarrel [private]
 

TGCheckButton* BesClient::fChkBtnMucBarrel [private]
 

TGCheckButton* BesClient::fChkBtnMucEast [private]
 

TGCheckButton* BesClient::fChkBtnMucEast [private]
 

TGCheckButton* BesClient::fChkBtnMucGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMucGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMucHitsBarrel [private]
 

TGCheckButton* BesClient::fChkBtnMucHitsBarrel [private]
 

TGCheckButton* BesClient::fChkBtnMucHitsEast [private]
 

TGCheckButton* BesClient::fChkBtnMucHitsEast [private]
 

TGCheckButton* BesClient::fChkBtnMucHitsGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMucHitsGlobal [private]
 

TGCheckButton* BesClient::fChkBtnMucHitsWest [private]
 

TGCheckButton* BesClient::fChkBtnMucHitsWest [private]
 

TGCheckButton* BesClient::fChkBtnMucStrips [private]
 

TGCheckButton* BesClient::fChkBtnMucStrips [private]
 

TGCheckButton* BesClient::fChkBtnMucWest [private]
 

TGCheckButton* BesClient::fChkBtnMucWest [private]
 

TGCheckButton* BesClient::fChkBtnTofBarrel [private]
 

TGCheckButton* BesClient::fChkBtnTofBarrel [private]
 

TGCheckButton* BesClient::fChkBtnTofEast [private]
 

TGCheckButton* BesClient::fChkBtnTofEast [private]
 

TGCheckButton* BesClient::fChkBtnTofGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTofGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTofHitsBarrel [private]
 

TGCheckButton* BesClient::fChkBtnTofHitsBarrel [private]
 

TGCheckButton* BesClient::fChkBtnTofHitsEast [private]
 

TGCheckButton* BesClient::fChkBtnTofHitsEast [private]
 

TGCheckButton* BesClient::fChkBtnTofHitsGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTofHitsGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTofHitsWest [private]
 

TGCheckButton* BesClient::fChkBtnTofHitsWest [private]
 

TGCheckButton* BesClient::fChkBtnTofQMatchGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTofQMatchGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTofTMatchGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTofTMatchGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTofWest [private]
 

TGCheckButton* BesClient::fChkBtnTofWest [private]
 

TGCheckButton* BesClient::fChkBtnTracksEmc [private]
 

TGCheckButton* BesClient::fChkBtnTracksEmc [private]
 

TGCheckButton* BesClient::fChkBtnTracksExt [private]
 

TGCheckButton* BesClient::fChkBtnTracksExt [private]
 

TGCheckButton* BesClient::fChkBtnTracksGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTracksGlobal [private]
 

TGCheckButton* BesClient::fChkBtnTracksMdc [private]
 

TGCheckButton* BesClient::fChkBtnTracksMdc [private]
 

TGCheckButton* BesClient::fChkBtnTracksMuc [private]
 

TGCheckButton* BesClient::fChkBtnTracksMuc [private]
 

TGCheckButton* BesClient::fChkBtnTracksTof [private]
 

TGCheckButton* BesClient::fChkBtnTracksTof [private]
 

TGCheckButton* BesClient::fChkBtnZRPlaneOnXY [private]
 

TGCheckButton* BesClient::fChkBtnZRPlaneOnXY [private]
 

Long64_t BesClient::fCurrentEvent [private]
 

BesGPictureButton* BesClient::fCursorButton[kNCursorState] [private]
 

BesGPictureButton* BesClient::fCursorButton[kNCursorState] [private]
 

TDigiEvent* BesClient::fDigiEvent [private]
 

TDigiEvent* BesClient::fDigiEvent [private]
 

BesVisDisplay* BesClient::fDisplay [private]
 

BesVisDisplay* BesClient::fDisplay [private]
 

TGCompositeFrame* BesClient::fDisplayModeBarFrame [private]
 

TGCompositeFrame* BesClient::fDisplayModeBarFrame [private]
 

TGLayoutHints* BesClient::fDisplayModeBarItemLayout [private]
 

TGLayoutHints* BesClient::fDisplayModeBarItemLayout [private]
 

BesGPictureButton* BesClient::fDisplayModeButton[kNDisplayMode] [private]
 

BesGPictureButton* BesClient::fDisplayModeButton[kNDisplayMode] [private]
 

TGLayoutHints* BesClient::fECLayout [private]
 

TGLayoutHints* BesClient::fECLayout [private]
 

TRootEmbeddedCanvas* BesClient::fEmbeddedCanvas [private]
 

TRootEmbeddedCanvas* BesClient::fEmbeddedCanvas [private]
 

BesEvent* BesClient::fEvent [private]
 

BesEvent* BesClient::fEvent [private]
 

TGCompositeFrame* BesClient::fEventControlFrame [private]
 

TGCompositeFrame* BesClient::fEventControlFrame [private]
 

TGCompositeFrame* BesClient::fEventControlTextFrame [private]
 

TGCompositeFrame* BesClient::fEventControlTextFrame [private]
 

TGLabel* BesClient::fEventControlTextLabel [private]
 

TGLabel* BesClient::fEventControlTextLabel [private]
 

TGCompositeFrame* BesClient::fEventDownFrame [private]
 

TGCompositeFrame* BesClient::fEventDownFrame [private]
 

TFile* BesClient::fEventFile [private]
 

TFile* BesClient::fEventFile [private]
 

TGCompositeFrame* BesClient::fEventListContentFrame [private]
 

TGCompositeFrame* BesClient::fEventListContentFrame [private]
 

TGCompositeFrame* BesClient::fEventListFrame [private]
 

TGCompositeFrame* BesClient::fEventListFrame [private]
 

TGCompositeFrame* BesClient::fEventListTextFrame [private]
 

TGCompositeFrame* BesClient::fEventListTextFrame [private]
 

TGLabel* BesClient::fEventListTextLabel [private]
 

TGLabel* BesClient::fEventListTextLabel [private]
 

TGListTree* BesClient::fEventListTree [private]
 

TGListTree* BesClient::fEventListTree [private]
 

TGCanvas* BesClient::fEventListView [private]
 

TGCanvas* BesClient::fEventListView [private]
 

TGCompositeFrame* BesClient::fEventNavFrame [private]
 

TGCompositeFrame* BesClient::fEventNavFrame [private]
 

TGCompositeFrame* BesClient::fEventPlayButtonFrame [private]
 

TGCompositeFrame* BesClient::fEventPlayButtonFrame [private]
 

TGHSlider* BesClient::fEventPlaySlider [private]
 

TGHSlider* BesClient::fEventPlaySlider [private]
 

Int_t BesClient::fEventPlaySpeed [private]
 

TGCompositeFrame* BesClient::fEventPlaySpeedFrame [private]
 

TGCompositeFrame* BesClient::fEventPlaySpeedFrame [private]
 

TGLabel* BesClient::fEventPlaySpeedLabel [private]
 

TGLabel* BesClient::fEventPlaySpeedLabel [private]
 

TGCompositeFrame* BesClient::fEventPlayTextFrame [private]
 

TGCompositeFrame* BesClient::fEventPlayTextFrame [private]
 

TGLabel* BesClient::fEventPlayTextLabel [private]
 

TGLabel* BesClient::fEventPlayTextLabel [private]
 

TTree* BesClient::fEventTree [private]
 

TTree* BesClient::fEventTree [private]
 

TEvtHeader* BesClient::fEvtHeader [private]
 

TEvtHeader* BesClient::fEvtHeader [private]
 

BesGPictureButton* BesClient::fFirstEventButton [private]
 

BesGPictureButton* BesClient::fFirstEventButton [private]
 

BesGPictureButton* BesClient::fFishEyeViewButton [private]
 

BesGPictureButton* BesClient::fFishEyeViewButton [private]
 

TGGroupFrame* BesClient::fFrameAutoRotate [private]
 

TGGroupFrame* BesClient::fFrameAutoRotate [private]
 

TGGroupFrame* BesClient::fFrameHeader [private]
 

TGGroupFrame* BesClient::fFrameHeader [private]
 

TGGroupFrame* BesClient::fFrameHits [private]
 

TGGroupFrame* BesClient::fFrameHits [private]
 

TGGroupFrame* BesClient::fFrameMagnetic [private]
 

TGGroupFrame* BesClient::fFrameMagnetic [private]
 

TGGroupFrame* BesClient::fFrameMdcMatch [private]
 

TGGroupFrame* BesClient::fFrameMdcMatch [private]
 

TGGroupFrame* BesClient::fFrameOthers [private]
 

TGGroupFrame* BesClient::fFrameOthers [private]
 

TGGroupFrame* BesClient::fFrameSubDetector [private]
 

TGGroupFrame* BesClient::fFrameSubDetector [private]
 

TGGroupFrame* BesClient::fFrameTofMatch [private]
 

TGGroupFrame* BesClient::fFrameTofMatch [private]
 

TGGroupFrame* BesClient::fFrameTracks [private]
 

TGGroupFrame* BesClient::fFrameTracks [private]
 

TFile* BesClient::fGeoFile [private]
 

TFile* BesClient::fGeoFile [private]
 

TGeometry* BesClient::fGeometry [private]
 

TGeometry* BesClient::fGeometry [private]
 

BesGPictureButton* BesClient::fGoHomeButton [private]
 

BesGPictureButton* BesClient::fGoHomeButton [private]
 

BesGPictureButton* BesClient::fHelpButton [private]
 

BesGPictureButton* BesClient::fHelpButton [private]
 

Double_t BesClient::fHomeX [private]
 

Double_t BesClient::fHomeY [private]
 

TGListTreeItem* BesClient::fItem [private]
 

TGListTreeItem* BesClient::fItem [private]
 

TGLayoutHints* BesClient::fLayout [private]
 

TGLayoutHints* BesClient::fLayout [private]
 

BesGPictureButton* BesClient::fLoadGeoFileButton [private]
 

BesGPictureButton* BesClient::fLoadGeoFileButton [private]
 

BesGPictureButton* BesClient::fLoadMyConfigButton [private]
 

BesGPictureButton* BesClient::fLoadMyConfigButton [private]
 

TGHorizontalFrame* BesClient::fMainFrame [private]
 

TGHorizontalFrame* BesClient::fMainFrame [private]
 

BesGMenuBar* BesClient::fMenuBar [private]
 

BesGMenuBar* BesClient::fMenuBar [private]
 

TGLayoutHints* BesClient::fMenuBarFirstItemLayout [private]
 

TGLayoutHints* BesClient::fMenuBarFirstItemLayout [private]
 

TGLayoutHints* BesClient::fMenuBarItemLayout [private]
 

TGLayoutHints* BesClient::fMenuBarItemLayout [private]
 

TGLayoutHints* BesClient::fMenuBarLastItemLayout [private]
 

TGLayoutHints* BesClient::fMenuBarLastItemLayout [private]
 

TGLayoutHints* BesClient::fMenuBarLayout [private]
 

TGLayoutHints* BesClient::fMenuBarLayout [private]
 

TGPopupMenu* BesClient::fMenuEdit [private]
 

TGPopupMenu* BesClient::fMenuEdit [private]
 

TGPopupMenu* BesClient::fMenuFile [private]
 

TGPopupMenu* BesClient::fMenuFile [private]
 

TGPopupMenu* BesClient::fMenuHelp [private]
 

TGPopupMenu* BesClient::fMenuHelp [private]
 

TGPopupMenu* BesClient::fMenuView [private]
 

TGPopupMenu* BesClient::fMenuView [private]
 

TGPopupMenu* BesClient::fMenuViewOptionEmc [private]
 

TGPopupMenu* BesClient::fMenuViewOptionEmc [private]
 

TGPopupMenu* BesClient::fMenuViewOptionEmcHits [private]
 

TGPopupMenu* BesClient::fMenuViewOptionEmcHits [private]
 

TGPopupMenu* BesClient::fMenuViewOptionFull3D [private]
 

TGPopupMenu* BesClient::fMenuViewOptionFull3D [private]
 

TGPopupMenu* BesClient::fMenuViewOptionHeader [private]
 

TGPopupMenu* BesClient::fMenuViewOptionHeader [private]
 

TGPopupMenu* BesClient::fMenuViewOptionMdc [private]
 

TGPopupMenu* BesClient::fMenuViewOptionMdc [private]
 

TGPopupMenu* BesClient::fMenuViewOptionMdcHits [private]
 

TGPopupMenu* BesClient::fMenuViewOptionMdcHits [private]
 

TGPopupMenu* BesClient::fMenuViewOptionMuc [private]
 

TGPopupMenu* BesClient::fMenuViewOptionMuc [private]
 

TGPopupMenu* BesClient::fMenuViewOptionMucHits [private]
 

TGPopupMenu* BesClient::fMenuViewOptionMucHits [private]
 

TGPopupMenu* BesClient::fMenuViewOptionOthers [private]
 

TGPopupMenu* BesClient::fMenuViewOptionOthers [private]
 

TGPopupMenu* BesClient::fMenuViewOptionTof [private]
 

TGPopupMenu* BesClient::fMenuViewOptionTof [private]
 

TGPopupMenu* BesClient::fMenuViewOptionTofHits [private]
 

TGPopupMenu* BesClient::fMenuViewOptionTofHits [private]
 

TGPopupMenu* BesClient::fMenuViewOptionTracks [private]
 

TGPopupMenu* BesClient::fMenuViewOptionTracks [private]
 

Double_t BesClient::fMoveFactor [private]
 

BesGPictureButton* BesClient::fNextEventButton [private]
 

BesGPictureButton* BesClient::fNextEventButton [private]
 

TGNumberEntry* BesClient::fNumEntryEventNo [private]
 

TGNumberEntry* BesClient::fNumEntryEventNo [private]
 

TGNumberEntry* BesClient::fNumEntryEventPlaySpeed [private]
 

TGNumberEntry* BesClient::fNumEntryEventPlaySpeed [private]
 

TGNumberEntry* BesClient::fNumEntryMagnetic [private]
 

TGNumberEntry* BesClient::fNumEntryMagnetic [private]
 

TGNumberEntry* BesClient::fNumEntryRotateFPS [private]
 

TGNumberEntry* BesClient::fNumEntryRotateFPS [private]
 

TGNumberEntryField* BesClient::fNumEntryRotateSpeed [private]
 

TGNumberEntryField* BesClient::fNumEntryRotateSpeed [private]
 

TGNumberEntryField* BesClient::fNumEntryRotateStep [private]
 

TGNumberEntryField* BesClient::fNumEntryRotateStep [private]
 

TGNumberEntry* BesClient::fNumEntryRunNo [private]
 

TGNumberEntry* BesClient::fNumEntryRunNo [private]
 

BesGPictureButton* BesClient::fOpenEventFileButton [private]
 

BesGPictureButton* BesClient::fOpenEventFileButton [private]
 

BesGPictureButton* BesClient::fOpenGLButton [private]
 

BesGPictureButton* BesClient::fOpenGLButton [private]
 

BesGPictureButton* BesClient::fParallelViewButton [private]
 

BesGPictureButton* BesClient::fParallelViewButton [private]
 

BesGPictureButton* BesClient::fPerspectiveViewButton [private]
 

BesGPictureButton* BesClient::fPerspectiveViewButton [private]
 

BesGPictureButton* BesClient::fPlayEventButton [private]
 

BesGPictureButton* BesClient::fPlayEventButton [private]
 

BesGPictureButton* BesClient::fPrevEventButton [private]
 

BesGPictureButton* BesClient::fPrevEventButton [private]
 

TRecTrackEvent* BesClient::fRecEvent_1 [private]
 

TRecTrackEvent* BesClient::fRecEvent_1 [private]
 

BesGPictureButton* BesClient::fRefreshButton [private]
 

BesGPictureButton* BesClient::fRefreshButton [private]
 

BesGPictureButton* BesClient::fResetAllButton [private]
 

BesGPictureButton* BesClient::fResetAllButton [private]
 

BesGPictureButton* BesClient::fResetCurrentButton [private]
 

BesGPictureButton* BesClient::fResetCurrentButton [private]
 

Int_t BesClient::fRotateFPS [private]
 

TGCompositeFrame* BesClient::fRotateFPSFrame [private]
 

TGCompositeFrame* BesClient::fRotateFPSFrame [private]
 

TGLabel* BesClient::fRotateFPSLabel [private]
 

TGLabel* BesClient::fRotateFPSLabel [private]
 

Double_t BesClient::fRotateSpeed [private]
 

TGCompositeFrame* BesClient::fRotateSpeedFrame [private]
 

TGCompositeFrame* BesClient::fRotateSpeedFrame [private]
 

TGLabel* BesClient::fRotateSpeedLabel [private]
 

TGLabel* BesClient::fRotateSpeedLabel [private]
 

Double_t BesClient::fRotateStep [private]
 

TGCompositeFrame* BesClient::fRotateStepFrame [private]
 

TGCompositeFrame* BesClient::fRotateStepFrame [private]
 

TGLabel* BesClient::fRotateStepLabel [private]
 

TGLabel* BesClient::fRotateStepLabel [private]
 

TGLabel* BesClient::fRotateStepUnitLabel [private]
 

TGLabel* BesClient::fRotateStepUnitLabel [private]
 

TGListTreeItem* BesClient::fRunItem [private]
 

TGListTreeItem* BesClient::fRunItem [private]
 

BesGPictureButton* BesClient::fSaveGeoAsButton [private]
 

BesGPictureButton* BesClient::fSaveGeoAsButton [private]
 

BesGPictureButton* BesClient::fSaveMyConfigButton [private]
 

BesGPictureButton* BesClient::fSaveMyConfigButton [private]
 

BesGPictureButton* BesClient::fSavePicAsButton [private]
 

BesGPictureButton* BesClient::fSavePicAsButton [private]
 

BesGPictureButton* BesClient::fSavePicAsPSButton [private]
 

BesGPictureButton* BesClient::fSavePicAsPSButton [private]
 

BesGPictureButton* BesClient::fSetHomeButton [private]
 

BesGPictureButton* BesClient::fSetHomeButton [private]
 

BesGPictureButton* BesClient::fShowAxisButton [private]
 

BesGPictureButton* BesClient::fShowAxisButton [private]
 

BesGPictureButton* BesClient::fShowInfoButton [private]
 

BesGPictureButton* BesClient::fShowInfoButton [private]
 

TGStatusBar* BesClient::fStatusBar [private]
 

TGStatusBar* BesClient::fStatusBar [private]
 

BesGPictureButton* BesClient::fSwitchDisplayModeButton [private]
 

BesGPictureButton* BesClient::fSwitchDisplayModeButton [private]
 

BesGPictureButton* BesClient::fSwitchPadButton [private]
 

BesGPictureButton* BesClient::fSwitchPadButton [private]
 

TGTab* BesClient::fTabs [private]
 

TGTab* BesClient::fTabs [private]
 

TGHorizontalFrame* BesClient::fTitleFrame [private]
 

TGHorizontalFrame* BesClient::fTitleFrame [private]
 

TGLayoutHints* BesClient::fToolBarFirstItemLayout [private]
 

TGLayoutHints* BesClient::fToolBarFirstItemLayout [private]
 

TGCompositeFrame* BesClient::fToolBarFrame [private]
 

TGCompositeFrame* BesClient::fToolBarFrame [private]
 

TGLayoutHints* BesClient::fToolBarItemLayout [private]
 

TGLayoutHints* BesClient::fToolBarItemLayout [private]
 

TGLayoutHints* BesClient::fToolBarLastItemLayout [private]
 

TGLayoutHints* BesClient::fToolBarLastItemLayout [private]
 

BesGPictureButton* BesClient::fToolButtonSplitter[kNToolSplitter] [private]
 

BesGPictureButton* BesClient::fToolButtonSplitter[kNToolSplitter] [private]
 

TGLayoutHints* BesClient::fUpButtonBarFirstItemLayout [private]
 

TGLayoutHints* BesClient::fUpButtonBarFirstItemLayout [private]
 

TGCompositeFrame* BesClient::fUpButtonBarFrame [private]
 

TGCompositeFrame* BesClient::fUpButtonBarFrame [private]
 

TGLayoutHints* BesClient::fUpButtonBarItemLayout [private]
 

TGLayoutHints* BesClient::fUpButtonBarItemLayout [private]
 

TGLayoutHints* BesClient::fUpButtonBarLastItemLayout [private]
 

TGLayoutHints* BesClient::fUpButtonBarLastItemLayout [private]
 

BesGPictureButton* BesClient::fUpButtonSplitter[kNUpSplitter] [private]
 

BesGPictureButton* BesClient::fUpButtonSplitter[kNUpSplitter] [private]
 

TGVerticalFrame* BesClient::fV1 [private]
 

TGVerticalFrame* BesClient::fV1 [private]
 

TGCompositeFrame* BesClient::fViewAngleFrame [private]
 

TGCompositeFrame* BesClient::fViewAngleFrame [private]
 

TGCompositeFrame* BesClient::fViewAnglePhiFrame [private]
 

TGCompositeFrame* BesClient::fViewAnglePhiFrame [private]
 

TGLabel* BesClient::fViewAnglePhiLabel [private]
 

TGLabel* BesClient::fViewAnglePhiLabel [private]
 

BesGPictureButton* BesClient::fViewAnglePhiMinusButton [private]
 

BesGPictureButton* BesClient::fViewAnglePhiMinusButton [private]
 

TGNumberEntryField* BesClient::fViewAnglePhiNumber [private]
 

TGNumberEntryField* BesClient::fViewAnglePhiNumber [private]
 

BesGPictureButton* BesClient::fViewAnglePhiPlusButton [private]
 

BesGPictureButton* BesClient::fViewAnglePhiPlusButton [private]
 

TGVSlider* BesClient::fViewAnglePhiSlider [private]
 

TGVSlider* BesClient::fViewAnglePhiSlider [private]
 

TGCompositeFrame* BesClient::fViewAnglePsiFrame [private]
 

TGCompositeFrame* BesClient::fViewAnglePsiFrame [private]
 

TGLabel* BesClient::fViewAnglePsiLabel [private]
 

TGLabel* BesClient::fViewAnglePsiLabel [private]
 

BesGPictureButton* BesClient::fViewAnglePsiMinusButton [private]
 

BesGPictureButton* BesClient::fViewAnglePsiMinusButton [private]
 

TGNumberEntryField* BesClient::fViewAnglePsiNumber [private]
 

TGNumberEntryField* BesClient::fViewAnglePsiNumber [private]
 

BesGPictureButton* BesClient::fViewAnglePsiPlusButton [private]
 

BesGPictureButton* BesClient::fViewAnglePsiPlusButton [private]
 

TGVSlider* BesClient::fViewAnglePsiSlider [private]
 

TGVSlider* BesClient::fViewAnglePsiSlider [private]
 

TGCompositeFrame* BesClient::fViewAngleThetaFrame [private]
 

TGCompositeFrame* BesClient::fViewAngleThetaFrame [private]
 

TGLabel* BesClient::fViewAngleThetaLabel [private]
 

TGLabel* BesClient::fViewAngleThetaLabel [private]
 

BesGPictureButton* BesClient::fViewAngleThetaMinusButton [private]
 

BesGPictureButton* BesClient::fViewAngleThetaMinusButton [private]
 

TGNumberEntryField* BesClient::fViewAngleThetaNumber [private]
 

TGNumberEntryField* BesClient::fViewAngleThetaNumber [private]
 

BesGPictureButton* BesClient::fViewAngleThetaPlusButton [private]
 

BesGPictureButton* BesClient::fViewAngleThetaPlusButton [private]
 

TGVSlider* BesClient::fViewAngleThetaSlider [private]
 

TGVSlider* BesClient::fViewAngleThetaSlider [private]
 

BesGPictureButton* BesClient::fViewClockWiseButton [private]
 

BesGPictureButton* BesClient::fViewClockWiseButton [private]
 

TGCompositeFrame* BesClient::fViewContent1Frame [private]
 

TGCompositeFrame* BesClient::fViewContent1Frame [private]
 

TGCompositeFrame* BesClient::fViewContent2Frame [private]
 

TGCompositeFrame* BesClient::fViewContent2Frame [private]
 

TGCompositeFrame* BesClient::fViewContent3Frame [private]
 

TGCompositeFrame* BesClient::fViewContent3Frame [private]
 

TGCompositeFrame* BesClient::fViewContentFrame [private]
 

TGCompositeFrame* BesClient::fViewContentFrame [private]
 

BesGPictureButton* BesClient::fViewCounterClockWiseButton [private]
 

BesGPictureButton* BesClient::fViewCounterClockWiseButton [private]
 

Int_t BesClient::fViewer3DMode [private]
 

TGCompositeFrame* BesClient::fViewFrame [private]
 

TGCompositeFrame* BesClient::fViewFrame [private]
 

BesGPictureButton* BesClient::fViewMoveCenterButton [private]
 

BesGPictureButton* BesClient::fViewMoveCenterButton [private]
 

BesGPictureButton* BesClient::fViewMoveDownButton [private]
 

BesGPictureButton* BesClient::fViewMoveDownButton [private]
 

BesGPictureButton* BesClient::fViewMoveLeftButton [private]
 

BesGPictureButton* BesClient::fViewMoveLeftButton [private]
 

BesGPictureButton* BesClient::fViewMoveRightButton [private]
 

BesGPictureButton* BesClient::fViewMoveRightButton [private]
 

BesGPictureButton* BesClient::fViewMoveUpButton [private]
 

BesGPictureButton* BesClient::fViewMoveUpButton [private]
 

Double_t BesClient::fViewPhiPreStep [private]
 

BesGPictureButton* BesClient::fViewResetAngleButton [private]
 

BesGPictureButton* BesClient::fViewResetAngleButton [private]
 

TGCompositeFrame* BesClient::fViewTextFrame [private]
 

TGCompositeFrame* BesClient::fViewTextFrame [private]
 

TGLabel* BesClient::fViewTextLabel [private]
 

TGLabel* BesClient::fViewTextLabel [private]
 

Double_t BesClient::fViewThetaPreStep [private]
 

TList* BesClient::fWidgets [private]
 

TList* BesClient::fWidgets [private]
 

Int_t BesClient::fWindowHeight [private]
 

Int_t BesClient::fWindowWidth [private]
 

BesGPictureButton* BesClient::fX3DButton [private]
 

BesGPictureButton* BesClient::fX3DButton [private]
 

BesGPictureButton* BesClient::fZoomInButton [private]
 

BesGPictureButton* BesClient::fZoomInButton [private]
 

BesGPictureButton* BesClient::fZoomOutButton [private]
 

BesGPictureButton* BesClient::fZoomOutButton [private]
 

TGNumberEntryField* BesClient::fZoomRatioNumber [private]
 

TGNumberEntryField* BesClient::fZoomRatioNumber [private]
 

BesGPictureButton* BesClient::fZoomRatioPercentButton [private]
 

BesGPictureButton* BesClient::fZoomRatioPercentButton [private]
 

const int BesClient::kNCursorState = 2 [static, private]
 

const int BesClient::kNDisplayMode = 5 [static, private]
 

const int BesClient::kNToolSplitter = 4 [static, private]
 

const int BesClient::kNUpSplitter = 4 [static, private]
 

TRecMdcHit* BesClient::mdchit [private]
 

TRecMdcHit* BesClient::mdchit [private]
 

TRecMucTrack* BesClient::muctrk [private]
 

TRecMucTrack* BesClient::muctrk [private]
 

TRecMdcTrack* BesClient::recTrack1 [private]
 

TRecMdcTrack* BesClient::recTrack1 [private]
 

TRecTofTrack* BesClient::tofTrack [private]
 

TRecTofTrack* BesClient::tofTrack [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 15:52:05 2011 for BOSS6.5.5 by  doxygen 1.3.9.1