{ gSystem->Load("libPhysics.so"); // to use TVector3 ifstream in("hit.txt"); Int_t maxevent = 100000; Char_t dummy[1024]; Int_t eventno; TVector3 pos[maxevent]; Double_t energy[maxevent], time[maxevent]; Double_t extent = -9999.; Int_t nhits = 0; while (in >> dummy) { if (strncmp(dummy, "*", 1) == 0) { if (strncmp(dummy,"*******_Start" , 13 ) == 0) { in >> eventno; } } else { Double_t x, y, z; istringstream str(dummy); str >> x; in >> y >> z >> energy[nhits] >> time[nhits]; extent = (abs(x) > extent ? abs(x) : extent); extent = (abs(y) > extent ? abs(y) : extent); extent = (abs(z) > extent ? abs(z) : extent); pos[nhits].SetXYZ(x, y, z); nhits++; if (nhits % 100 == 0) { cerr << " === " << nhits << " events finished === " << endl; } if (nhits == 100) break; } } in.close(); // create and open a canvas sky = new TCanvas( "sky", "geom", 300, 10, 700, 700 ); sky->SetFillColor(1); // creating view TView *view = new TView(1); Double_t margin = 30; Double_t max = extent + margin; Double_t min = (- max); view->SetRange(min, min, min, max, max, max); // create a PolyMarker3D TPolyMarker3D *pm3d = new TPolyMarker3D( nhits ); // set points for(Int_t i=0; iSetPoint(i, pos[i].X(), pos[i].Y(), pos[i].Z()); } // set marker size, color & style pm3d->SetMarkerSize( 3 ); pm3d->SetMarkerStyle( 1 ); pm3d->SetMarkerColor( 5 ); //draw pm3d->Draw(); TPaveText *text = new TPaveText( 0.1, 0.81, 0.9, 0.97 ); text->SetFillColor( 42 ); text->AddText("Geometry Test"); text->Draw(); sky->Update(); }