void display_phx(int jevent=0, int ix3d=0) { gROOT->Reset(); TCanvas *sky = new TCanvas( "sky", "phx", 10, 10, 800, 800 ); sky->SetFillColor(1); TView *view = new TView(1); view->SetRange( -200.0, -600.0, -600.0, 200.0, 600.0, 600.0 ); Float_t x,y,z; Float_t f0,f1,f2,f3,f4,f5; Float_t pp[6],pi,phi,rad; Float_t phi0,phi1,rad0,rad1,zps0,zps1,x0,x1,y0,y1; pi=acos(-1.0); Float_t min_rad=220; Float_t max_rad=580; Float_t min_zps=100; Float_t max_zps=200; // for (Int_t i=0; i<16; i++) { if (i<3||(i>4&&i<10)||i>13) { for (Int_t j=0; j<2; j++) { rad=((Float_t)j*(max_rad-min_rad)+min_rad); phi=((Float_t)i+0.5)*pi/8.0; x=rad*cos(phi); y=rad*sin(phi); if (j==0) z=min_zps; else z=max_zps; pp[0]=-z; pp[1]=x; pp[2]=y; pp[3]=z; pp[4]=x; pp[5]=y; TPolyLine3D *pl3p = new TPolyLine3D( 2, pp ); pl3p->SetLineColor(0); pl3p->Draw(); } } } for (Int_t i=0; i<16; i++) { if (i<3||(i>4&&i<10)||i>13) { for (Int_t j=0; j<2; j++) { rad0=min_rad; rad1=max_rad; zps0=min_zps; zps1=max_zps; phi=((Float_t)i+0.5)*pi/8.0; x0=rad0*cos(phi); y0=rad0*sin(phi); x1=rad1*cos(phi); y1=rad1*sin(phi); pp[0]=pow(-1,j)*zps0; pp[1]=x0; pp[2]=y0; pp[3]=pow(-1,j)*zps1; pp[4]=x1; pp[5]=y1; TPolyLine3D *pl3p = new TPolyLine3D( 2, pp ); pl3p->SetLineColor(0); pl3p->Draw(); } } } for (Int_t i=0; i<16; i++) { if (i<2||(i>4&&i<9)||i>13) { for (Int_t j=0; j<2; j++) { for (Int_t k=0; k<2; k++) { rad=((Float_t)j*(max_rad-min_rad)+min_rad); phi0=((Float_t)i+0.5)*pi/8.0; phi1=((Float_t)i+1.5)*pi/8.0; if (j==0) z=min_zps; else z=max_zps; if (k==1) z=-z; x0=rad*cos(phi0); y0=rad*sin(phi0); x1=rad*cos(phi1); y1=rad*sin(phi1); pp[0]=z; pp[1]=x0; pp[2]=y0; pp[3]=z; pp[4]=x1; pp[5]=y1; TPolyLine3D *pl3p = new TPolyLine3D( 2, pp ); pl3p->SetLineColor(0); pl3p->Draw(); } } } } // int ic,jc,lt; int fc[6]; fc[0]=4; fc[1]=7; fc[2]=3; fc[3]=5; fc[4]=6; fc[5]=2; int ievent=0; int k=1; FILE *fp; char file[80]; sprintf(file,"myDisplay.dat"); fp=fopen(file,"r"); if (fp==0) printf("error to open file\n"); while (ievent<=jevent) { for (int i=0; i<128; i++) { fscanf(fp,"%f %f %f %f %f",&f0,&f1,&f2,&f3,&f4); if (ievent==jevent) { ic=(Int_t)(6.0*f3/20.0); if (ic>5) ic=5; ic=fc[ic]; x=f0/2.0; y=f1/2.0; z=f2/10.0; TPolyMarker3D *pm3d = new TPolyMarker3D(1); pm3d->SetPoint( k, z, x, y ); pm3d->SetMarkerSize( 0.2 ); pm3d->SetMarkerColor( ic ); pm3d->SetMarkerStyle( 2 ); pm3d->Draw(); } } int iflag=1; int ii=0; int iold=-1; float ppp[18]; while (iflag==1) { fscanf(fp,"%f %f %f %f %f %f",&f0,&f1,&f2,&f3,&f4,&f5); if (feof(fp)==1) iflag=0; if (f0==0 && f1==0 && f2==0 && f3==0 && f4==0 && f5==0) iflag=0; if (ievent==jevent) { int i3=(int)f3; int i4=(int)f4; int i5=i3%100; if (iflag==1) { ic=fc[(Int_t)(6.0*(i3)/600.0)%6]; x=f0; y=f1; z=f2; TPolyMarker3D *pm3d = new TPolyMarker3D(1); pm3d->SetPoint( k, z, x, y ); pm3d->SetMarkerSize( 0.4 ); pm3d->SetMarkerColor( ic ); pm3d->SetMarkerStyle( 2 ); pm3d->Draw(); if (iold!=i4) { if (ii>3) { TPolyLine3D *pl3p = new TPolyLine3D( ii/3, ppp ); pl3p->SetLineColor(jc); pl3p->SetLineStyle(lt); pl3p->Draw(); } ii=0; } ppp[0+ii]=z; ppp[1+ii]=x; ppp[2+ii]=y; jc=(int)((2.0+log(fabs(f5)))*6.0/3.0); if (jc<0) jc=0; if (jc>5) jc=5; jc=fc[jc]; lt=1; if (f5<0) lt=2; /* jc=1; if (i5>10) jc=4; if (i5>20) jc=3; if (i5>30) jc=5; if (i5>60) jc=2; */ ii+=3; iold=i4; } } } ievent++; } fclose(fp); if (ix3d==1) sky->x3d(); //sky->Print("sky.ps"); for (int i=0; i<20; i++) { float x=0.1*(float)i; jc=(int)((2.0+log(fabs(x)))*6.0/3.0); if (jc<0) jc=0; if (jc>5) jc=5; jc=fc[jc]; cout << x << "/" << jc << " "; if (i%5==4) cout << endl; } }