23#include <TPaveLabel.h>
31#include <TVirtualGeoPainter.h>
32#include <TControlBar.h>
35#include <TGeoManager.h>
36#include <TGeoMaterial.h>
37#include <TGeoMedium.h>
38#include <TGeoVolume.h>
39#include <TGeoMatrix.h>
43#include <TViewerX3D.h>
98 fCanvas =
new TCanvas(
"Canvas",
" ",0,0,1024,768);
109 fCanvas->SetFillColor(10);
112 fPad3D =
new TPad(
"Pad3D",
"Pad3D", 0.75, 0.75, 0.9, 0.9);
119 fPadHeader =
new TPad(
"PadHeader",
"PadHeader", 0.0, 0.68, 1.0, 1.0);
123 TString fp = gEnv->GetValue(
"Root.TTFontPath",
"");
124 TString bc = fp +
"/BlackChancery.ttf";
125 TString ar = fp +
"/arial.ttf";
127 string besvisPath = getenv(
"BESVISLIBROOT");
128 TString filePath(besvisPath);
129 filePath +=
"/icons/";
131 fHeaderHImage = TImage::Open(filePath +
"HeaderH.gif");
132 fHeaderHImage->SetEditable(kTRUE);
134 fHeaderVImage = TImage::Open(filePath +
"HeaderV.gif");
135 fHeaderVImage->SetEditable(kTRUE);
137 fHeaderImage = TImage::Open(filePath +
"Header.gif");
138 fHeaderImage->DrawText(620, 15,
"BesVis", 30,
139 gROOT->GetColor(2)->AsHexString(),
140 bc, TImage::kShadeBelow);
141 fHeaderImage->SetConstRatio(
false);
142 fHeaderImage->Draw(
"same");
144 fBesHeader =
new BesHeader(0,0,1,1,
"br");
145 fBesHeader->SetTextSize(0.1);
146 fBesHeader->SetFillColor(28);
147 fBesHeader->SetFillStyle(0);
157 fDistanceOfRows=0.01;
163 Connect(fBesHeader,
"TransferMdcOn(Bool_t)",
"BesVisDisplay",
this,
"SetMdcOn(Bool_t)");
164 Connect(fBesHeader,
"TransferTofOn(Bool_t)",
"BesVisDisplay",
this,
"SetTofOn(Bool_t)");
165 Connect(fBesHeader,
"TransferEmcOn(Bool_t)",
"BesVisDisplay",
this,
"SetEmcOn(Bool_t)");
170 fPadXY =
new TPad(
"PadXY",
"PadXY", 0.0, 0.0, 0.5, 0.68);
174 fPadZR =
new TPad(
"PadZR",
"PadZR", 0.5, 0.0, 1.0, 0.68);
178 fPadCgemUF[0] =
new TPad(
"PadCgemUF0",
"PadCgemUF0", 0.0, 0.0, 0.5, 0.68);
179 fPadCgemUF[1] =
new TPad(
"PadCgemUF1",
"PadCgemUF1", 0.0, 0.0, 0.5, 0.68);
180 fPadCgemUF[2] =
new TPad(
"PadCgemUF2",
"PadCgemUF2", 0.0, 0.0, 0.5, 0.68);
181 fPadCgemUF[0]->Draw();
182 fPadCgemUF[1]->Draw();
183 fPadCgemUF[2]->Draw();
184 fCgemUFViewLayer = 0;
205 if (view) view->
Reset();
210 if (view) view->
Reset();
215 if (view) view->
Reset();
219 for (
int i = 0; i < 3; ++i)
225 if (view) view->
Reset();
253 for (
int i = 0; i < 3; ++i)
313 fHeaderImage->Zoom(161, 649, 635, 174);
317 fHeaderImage->Zoom(600, 324, 164, 473);
328 fBesHeader->AddText(
"No Event Info");
332 Double_t coordx=fCoordx;
333 Double_t coordy=fCoordy;
355 sprintf(title1,
"Run %ld ", runno);
356 TText* ttitle1 = fBesHeader->AddText(coordx,coordy,title1);
357 ttitle1->SetTextSize(fTextSizeTitle);
358 ttitle1->SetTextColor(1);
359 ttitle1->SetTextAlign(12);
371 sprintf(title2,
"Event %ld ", eventno);
372 TText* ttitle2 = fBesHeader->AddText(coordx,coordy,title2);
373 ttitle2->SetTextSize(fTextSizeTitle);
374 ttitle2->SetTextColor(1);
375 ttitle2->SetTextAlign(12);
386 char titleEvTime[30];
393 double esTimeConst = 230;
396 else sprintf(titleEvTime,
"Estime:0 ns");
398 else sprintf(titleEvTime,
"Estime: -");
400 TText* ttitleEvTime = fBesHeader->AddText(coordx,coordy,titleEvTime);
401 ttitleEvTime->SetTextSize(fTextSizeTime);
402 ttitleEvTime->SetTextFont(52);
403 ttitleEvTime->SetTextColor(1);
404 ttitleEvTime->SetTextAlign(12);
415 char titleEvTimeStat[30];
422 else sprintf(titleEvTimeStat,
" stat: -");
424 TText* ttitleEvTimeStat = fBesHeader->AddText(coordx,coordy,titleEvTimeStat);
425 ttitleEvTimeStat->SetTextSize(fTextSizeTime);
426 ttitleEvTimeStat->SetTextFont(52);
427 ttitleEvTimeStat->SetTextColor(1);
428 ttitleEvTimeStat->SetTextAlign(12);
439 char titleEvTimeQ[30];
446 else sprintf(titleEvTimeQ,
" quality: -");
448 TText* ttitleEvTimeQ = fBesHeader->AddText(coordx,coordy,titleEvTimeQ);
449 ttitleEvTimeQ->SetTextSize(fTextSizeTime);
450 ttitleEvTimeQ->SetTextFont(52);
451 ttitleEvTimeQ->SetTextColor(1);
452 ttitleEvTimeQ->SetTextAlign(12);
464 sprintf(date,
"date: %4d-%02d-%02d ", year,month,day);
465 TText* tdate = fBesHeader->AddText(coordx,coordy,date);
466 tdate->SetTextSize(fTextSizeTime);
467 tdate->SetTextFont(52);
468 tdate->SetTextColor(1);
469 tdate->SetTextAlign(12);
481 sprintf(
time,
"time: %02d:%02d:%02d", hour,min,sec);
482 TText* ttime=fBesHeader->AddText(coordx,coordy,
time);
483 ttime->SetTextSize(fTextSizeTime);
484 ttime->SetTextFont(52);
485 ttime->SetTextColor(1);
486 ttime->SetTextAlign(12);
490 vector<TString> statusCon;
494 else sprintf(
data,
"MC=No");
495 statusCon.push_back(TString(
data));
501 sprintf(
data,
"Time Type: %d", timeType);
502 statusCon.push_back(TString(
data));
511 for (Int_t i = 0; i < (Int_t)statusCon.size(); i++) {
512 TText* ttitle=fBesHeader->AddText(coordx,coordy,statusCon[i].Data());
515 ttitle->SetTextSize(fTextSizeData);
516 ttitle->SetTextFont(62);
517 ttitle->SetTextColor(1);
518 ttitle->SetTextAlign(12);
520 vector<TString> infoCon;
522 vector<Int_t>::iterator pTrigVector;
628 Float_t textSize = fTextSizeData;
643 pTrigVector = trigChannelVector.begin();
644 for (Int_t i = 0; i < (Int_t)infoCon.size(); i++) {
645 coordx = fCoordx + (i%npr)*(1.0/npr);
646 coordy = fCoordy - (i/npr)*rowH;
648 if (*pTrigVector == i){
649 TString temp = infoCon[i] +
" ON";
650 TText* tdata=fBesHeader->AddText(coordx,coordy,temp.Data());
651 tdata->SetTextSize(textSize);
652 tdata->SetTextFont(62);
653 tdata->SetTextColor(2);
654 tdata->SetTextAlign(12);
658 TString temp = infoCon[i] +
" OFF";
659 TText* tdata=fBesHeader->AddText(coordx,coordy,temp.Data());
660 tdata->SetTextSize(textSize);
661 tdata->SetTextFont(62);
662 tdata->SetTextColor(1);
663 tdata->SetTextAlign(12);
669 fBesHeader->Draw(
"same");
671 fPadHeader->SetEditable(kFALSE);
672 fPadHeader->Modified();
673 fPadHeader->Update();
717 Double_t xlowH = -0.11, xupH = -0.1, ylowH = -0.11, yupH = -0.1;
718 Int_t width = fCanvas->GetWw();
719 Int_t height = fCanvas->GetWh();
720 Double_t hVSw = Double_t(height)/width;
721 Double_t x2D = 1.0-hVSw;
723 Double_t y2D = 0.5/hVSw;
724 Double_t x3D = (1.0/3)/hVSw;
727 switch ( fDisplayMode ) {
729 fPadHeader->SetPad(0.0, y2D, 1.0, 1.0);
730 fPadXY ->SetPad(0.0, 0.0, 0.5, y2D);
731 fPadZR ->SetPad(0.5, 0.0, 1.0, y2D);
732 fPad3D ->SetPad(xlowH, ylowH, xupH, yupH);
733 fPadCgemUF[0]->SetPad(xlowH, ylowH, xupH, yupH);
734 fPadCgemUF[1]->SetPad(xlowH, ylowH, xupH, yupH);
735 fPadCgemUF[2]->SetPad(xlowH, ylowH, xupH, yupH);
738 fPadHeader->SetPad(0.0, 0.0, x2D, 1.0);
739 fPadXY ->SetPad(x2D, 0.0, 1.0, 1.0);
740 fPadZR ->SetPad(xlowH, ylowH, xupH, yupH);
741 fPad3D ->SetPad(xlowH, ylowH, xupH, yupH);
742 fPadCgemUF[0]->SetPad(xlowH, ylowH, xupH, yupH);
743 fPadCgemUF[1]->SetPad(xlowH, ylowH, xupH, yupH);
744 fPadCgemUF[2]->SetPad(xlowH, ylowH, xupH, yupH);
747 fPadHeader->SetPad(0.0, 0.0, x2D, 1.0);
748 fPadXY ->SetPad(xlowH, ylowH, xupH, yupH);
749 fPadZR ->SetPad(x2D, 0.0, 1.0, 1.0);
750 fPad3D ->SetPad(xlowH, ylowH, xupH, yupH);
751 fPadCgemUF[0]->SetPad(xlowH, ylowH, xupH, yupH);
752 fPadCgemUF[1]->SetPad(xlowH, ylowH, xupH, yupH);
753 fPadCgemUF[2]->SetPad(xlowH, ylowH, xupH, yupH);
756 fPadHeader->SetPad(0.0, 0.0, x2D, 1.0);
757 fPadXY ->SetPad(xlowH, ylowH, xupH, yupH);
758 fPadZR ->SetPad(xlowH, ylowH, xupH, yupH);
759 fPad3D ->SetPad(x2D, 0.0, 1.0, 1.0);
760 fPadCgemUF[0]->SetPad(xlowH, ylowH, xupH, yupH);
761 fPadCgemUF[1]->SetPad(xlowH, ylowH, xupH, yupH);
762 fPadCgemUF[2]->SetPad(xlowH, ylowH, xupH, yupH);
766 fPadHeader->SetPad(0.0, 2*x3D, 1.0, 1.0);
767 fPadXY ->SetPad(0.0, x3D, 1.0/3, 2*x3D);
768 fPadZR ->SetPad(0.0, 0.0, 1.0/3, x3D);
769 fPad3D ->SetPad(1.0/3, 0.0, 1.0, 2*x3D);
770 fPadCgemUF[0]->SetPad(xlowH, ylowH, xupH, yupH);
771 fPadCgemUF[1]->SetPad(xlowH, ylowH, xupH, yupH);
772 fPadCgemUF[2]->SetPad(xlowH, ylowH, xupH, yupH);
775 fPadHeader->SetPad(0.0, 0.0, x2D, 1.0);
776 fPadXY ->SetPad(xlowH, ylowH, xupH, yupH);
777 fPadZR ->SetPad(xlowH, ylowH, xupH, yupH);
778 fPad3D ->SetPad(xlowH, ylowH, xupH, yupH);
779 fPadCgemUF[0]->SetPad(xlowH, ylowH, xupH, yupH);
780 fPadCgemUF[1]->SetPad(xlowH, ylowH, xupH, yupH);
781 fPadCgemUF[2]->SetPad(xlowH, ylowH, xupH, yupH);
782 fPadCgemUF[fCgemUFViewLayer]->SetPad(x2D, 0.0, 1.0, 1.0);
785 fPadHeader->SetPad(0.0, y2D, 1.0, 1.0);
786 fPadXY ->SetPad(xlowH, ylowH, xupH, yupH);
787 fPadZR ->SetPad(xlowH, ylowH, xupH, yupH);
788 fPad3D ->SetPad(xlowH, ylowH, xupH, yupH);
789 fPadCgemUF[0]->SetPad(0.0, 0.0, 0.3333, y2D);
790 fPadCgemUF[1]->SetPad(0.3333, 0.0, 0.6667, y2D);
791 fPadCgemUF[2]->SetPad(0.6667, 0.0, 1.0, y2D);
798 if (!fVisHeader) fPadHeader->SetPad(xlowH * 10, ylowH * 10, xupH * 10, yupH * 10);
803 switch ( fDisplayMode ) {
826 fPadCgemUF[fCgemUFViewLayer]->cd();
827 fPadCgemUF[fCgemUFViewLayer]->Update();
830 fPadCgemUF[fCgemUFViewLayer]->cd();
831 fPadCgemUF[fCgemUFViewLayer]->Update();
839 if (fDisplayMode == 0) {
840 if ((TPad*)gPad == fPadXY) fPadZR->cd();
844 if (fDisplayMode == 4) {
845 if ((TPad*)gPad == fPadXY) fPadZR->cd();
846 else if ((TPad*)gPad == fPadZR) fPad3D->cd();
851 if (fDisplayMode == 5)
857 if (fDisplayMode == 6)
859 if ((TPad*)gPad == fPadCgemUF[0])
864 else if ((TPad*)gPad == fPadCgemUF[1])
886 if (trig) fEM1->SetFillColor(kGreen);
887 else fEM1->SetFillColor(kRed);
888 if (trig) fPH1->SetFillColor(kGreen);
889 else fPH1->SetFillColor(kRed);
890 if (trig) fEM2->SetFillColor(kGreen);
891 else fEM2->SetFillColor(kRed);
892 if (trig) fMU1->SetFillColor(kGreen);
893 else fMU1->SetFillColor(kRed);
894 if (trig) fMU2->SetFillColor(kGreen);
895 else fMU2->SetFillColor(kRed);
896 if (trig) fEMU->SetFillColor(kGreen);
897 else fEMU->SetFillColor(kRed);
898 if (trig) fJT1->SetFillColor(kGreen);
899 else fJT1->SetFillColor(kRed);
900 if (trig) fJT3->SetFillColor(kGreen);
901 else fJT3->SetFillColor(kRed);
902 if (trig) fJT4->SetFillColor(kGreen);
903 else fJT4->SetFillColor(kRed);
904 if (trig) fALL->SetFillColor(kGreen);
905 else fALL->SetFillColor(kRed);
906 fTrigPad->Modified();
917 if (gPad == fTrigPad) {
918 gPad->SetCursor(kCross);
922 const Int_t big = 9999;
926 Float_t dx = 0.05*(xmax - xmin);
928 if (x < xmin+dx || x > xmax-dx)
return dist;
989 cout <<
"Create 2D View " << endl;
1008 cout <<
"enter BesVisDisplay::Draw3D()" << endl;
1037 fDrawAllViews = kTRUE;
1039 fPad->SetFillColor(15);
1070 cout <<
"Create CGEM UF View " << endl;
1071 for (
int l = 0; l < 3; ++l)
1073 fPadCgemUF[l]->cd();
1074 fPadCgemUF[l]->Clear();
1076 fPadCgemUF[l]->Update();
1084 if (layer < 0 || layer > 2)
return;
1085 fCgemUFView[layer] =
new BesView();
1100 if (strlen(option) == 0) {
1101 TPaveText *title =
new TPaveText(xmin +0.01*dx, ymax-0.09*dy, xmin +0.5*dx, ymax-0.01*dy);
1102 title->SetBit(kCanDelete);
1103 title->SetFillColor(42);
1108 sprintf(ptitle,
"Monte Carlo event");
1109 title->AddText(ptitle);
1113 TPaveLabel *label =
new TPaveLabel(xmin +0.01*dx, ymax-0.07*dy, xmin +0.2*dx, ymax-0.01*dy,option);
1114 label->SetBit(kCanDelete);
1115 label->SetFillColor(42);
1136 view->
SetRange(-0.5*fBesR, -0.5*fBesR, -0.5*fBesZ, 0.5*fBesR, 0.5*fBesR, 0.5*fBesZ);
1142 fBesGeometry->
Draw(
"3D");
1157 view->
SetView(phi, theta, 270, iret);
1174 gPad->GetView()->SetRange(x0 - 0.5*zoomSize, y0 - 0.5*zoomSize, z0 - 0.5*zoomSize,
1175 x0 + 0.5*zoomSize, y0 + 0.5*zoomSize, z0 + 0.5*zoomSize);
1183 TPad *pad = (TPad*)gPad->GetPadSave();
1185 TView *view = pad->GetView();
1195 TPad *pad = (TPad*)gPad->GetPadSave();
1197 TView *view = pad->GetView();
1206 TCanvas *rayCanvas =
new TCanvas(
"rayCanvas",
"Raytracer Canvas", 10, 10, 800, 800);
1213 gPad->SetFillColor(1);
1220 TView *view = gPad->GetView();
1223 view->ZoomView(gPad, 1.5);
1224 view->SetView(phi, theta, psi, iret);
1231 gGeoManager->GetGeomPainter()->SetRaytracing(kTRUE);
1233 rayCanvas->Modified();
1234 rayCanvas->Update();
1238 stringstream sPicCount;
1239 sPicCount << fRayPicCount <<
".gif";
1240 string str = sPicCount.str();
1242 gPad->SaveAs(str.c_str());
1248 TCanvas *x3dCanvas =
new TCanvas(
"x3dCanvas",
"X3dtracer Canvas", 10, 10, 800, 800);
1251 gPad->SetFillColor(1);
1265 gPad->GetViewer3D();
1282 stringstream sPicCount;
1284 sPicCount << fRayPicCount <<
".gif";
1285 string str = sPicCount.str();
1287 gPad->SaveAs(str.c_str());
1313 if (gPad->GetView()) {
1314 gPad->GetView()->ExecuteRotateView(event, px, py);
1366 if (fDrawAllViews) {
1382 fPTcutEGMUNU = ptcut;
1384 if (fDrawAllViews) {
1403 fDrawAllViews = kFALSE;
1408 TView *view = gPad->GetView();
1409 if (view) view->SetView(fPhi, fTheta, 0, iret);
1438 int layer[135] = {0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10,11,12,13,14,15,16,17,18,19,19,20,21,22,22,23,24,25,26,27,28,29,29,30,31,32,33,34,35,36,37,38,39,40,41,41,42,0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42};
1439 int replica[135] = {12 ,13 ,14 ,17 ,19 ,23 ,25 ,25 ,25 ,26 ,29 ,30 ,33 ,34 ,38 ,38 ,44 ,44 ,48 ,48 ,49 ,51 ,52 ,51 ,52 ,52 ,62 ,63 ,63 ,63 ,68 ,68 ,69 ,68 ,69 ,79 ,80 ,79 ,80 ,91 ,91 ,91 ,92 ,103,103,104,103,4 ,7 ,9 ,4 ,9 ,4 ,9 ,9 ,8 ,8 ,55 ,56 ,63 ,64 ,71 ,71 ,82 ,82 ,89 ,90 ,99 ,100,99 ,100,120,120,120,120,130,131,130,131,151,151,151,151,166,166,167,166,167,187,188,188,7 ,9 ,9 ,12 ,13 ,15 ,16 ,17 ,17 ,17 ,20 ,20 ,22 ,23 ,25 ,26 ,29 ,30 ,32 ,33 ,34 ,35 ,34 ,35 ,42 ,42 ,42 ,42 ,45 ,46 ,46 ,46 ,46 ,53 ,54 ,53 ,54 ,61 ,62 ,61 ,62 ,69 ,70 ,70};
1441 for (
int i = 0; i < 135; i++) {
1443 if (layer[i] > 35) fMdcROOTGeo->
GetPhysicalReplica(layer[i]+7, replica[i])->SetVisibility(1);
1444 std::cout << layer[i] <<
" " << replica[i] << std::endl;
1451 int part[7] = {1,1,1,2,2,1,1,};
1452 int scin[7] = {31,32,57,31,32,59,21};
1454 std::cout <<
"set tof fired cell" << std::endl;
1455 for (
int i = 0; i < 7; i++) {
1457 std::cout << part[i] <<
" " << scin[i] << std::endl;
1464 int theta[26] = {3,3,2,9,9,8,5,7,6,10,10,7,8,9,9,9,37,2,7,7,4,4,5,5,15,15};
1465 int phi[26] = {45,46,46,80,81,80,83,81,81,81,80,80,81,82,83,84,17,84,77,78,79,80,80,79,31,32};
1467 for (
int i = 0; i < 26; i++) {
1469 std::cout <<
"1" <<
" " << phi[i] <<
" " << theta[i] << std::endl;
1476 vector<int> cellCon;
1478 int part[11] = {1,1,1,1,1,1,1,1,1,1,1};
1479 int seg[11] = {6,6,2,2,2,2,2,2,2,2,2};
1480 int gap[11] = {0, 1, 0, 1, 2, 2, 3, 4, 5, 6, 7};
1481 int strip[11]= {2,20,20,29,21,22,27,25,25,30,22};
1483 for (
int i = 0; i < 11; i++) {
1484 fMucROOTGeo->
GetPhysicalStrip(part[i], seg[i], gap[i], strip[i])->SetVisibility(1);
1485 std::cout <<
" " << part[i] <<
" " << seg[i] <<
" " << gap[i] <<
" " << strip[i] << std::endl;
1492 const Int_t npoints = 2;
1493 gSize3D.numPoints += npoints;
1494 gSize3D.numSegs += (npoints-1);
1495 gSize3D.numPolys += 0;
R__EXTERN BesEvent * gEvent
R__EXTERN BesGeometry * gBesGeometry
ClassImp(BesVisDisplay) BesVisDisplay
BesEventHeader GetHeader()
CgemROOTGeo * GetCgemROOTGeo()
virtual void SetDefaultVis()
EmcROOTGeo * GetEmcROOTGeo()
virtual void InitFromGDML(const TString fPath, bool mrpc=false, bool cgem=false)
MdcROOTGeo * GetMdcROOTGeo()
virtual void Draw(Option_t *option="3D")
virtual void InitFromROOT(TGeoVolume *volBes)
MucROOTGeo * GetMucROOTGeo()
TofROOTGeo * GetTofROOTGeo()
virtual void ZoomView(TVirtualPad *pad=0, Double_t zoomFactor=1.25)
virtual void SetRange(const Double_t *min, const Double_t *max)
static void AdjustPad(TVirtualPad *pad=0)
virtual void SetParallel()
virtual void SetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep)
void ViewCgemUF(int layer)
virtual void SizeFruit() const
virtual void DrawViewRaytracer(Float_t theta, Float_t phi, Float_t psi)
void Draw3D(Option_t *option="")
virtual void SetMdcOn(Bool_t MdcOn)
virtual void PaintParticles(Option_t *option="")
virtual void SetTofOn(Bool_t TofOn)
virtual void SetPTcut(Float_t ptcut=0.4)
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
void Draw2DZR(Option_t *option="")
void DrawCgemUFLayer(int layer, Option_t *option="")
void SetDisplayMode(Int_t mode)
virtual void SizeParticles() const
void SetCurrentCgemLayer(int layer)
virtual void DrawViewGL()
virtual void DrawView(Float_t theta, Float_t phi)
void DrawImageSequence(Int_t thetaStart, Int_t thetaStep)
virtual void SetPTcutEGMUNU(Float_t ptcut=5)
virtual void InitGeometryFromGDML(const TString fPath, bool mrpc=false, bool cgem=false)
virtual void Clear(Option_t *option="")
virtual void DrawHeader()
virtual void Draw(Option_t *option="")
virtual void InitGeometryFromROOT(TGeoVolume *bes)
virtual void Paint(Option_t *option="")
virtual void ShowNextEvent(Int_t delta=1)
virtual void DrawViewX3D()
virtual void DrawTitle(Option_t *option="")
virtual void SetVisHeader(Bool_t val)
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual void SwitchDisplayMode(Int_t mode)
virtual void SetCanvas(TCanvas *c=0)
virtual void SetView(Float_t theta, Float_t phi)
virtual void DrawAllViews()
void DrawViewRange(Double_t x0, Double_t y0, Double_t z0, Double_t zoomSize)
void DrawCgemUF(Option_t *option="")
virtual void SetEmcOn(Bool_t EmcOn)
virtual void GetEvent(Long64_t event)
void Draw2D(Option_t *option="")
virtual void DisplayTrigger(Int_t trig)
virtual void PaintFruit(TObject *obj, Float_t eta, Float_t phi, Float_t pt, Int_t type, Option_t *option="")
void Draw2DXY(Option_t *option="")
TGeoPhysicalNode * GetPhysicalCrystal(int part, int phi, int theta)
Get crystal physical node;.
TGeoPhysicalNode * GetPhysicalReplica(int layer, int replica)
Get replica physical node;.
TGeoPhysicalNode * GetPhysicalStrip(int part, int seg, int gap, int strip)
Get strip physical node;.
TGeoPhysicalNode * GetPhysicalScin(int part, int scin)
Get scintillator physical node;.