65 if (manager) fGeoManager = manager;
67 Error(
"ctor",
"No geometry loaded");
70 fNsegments = fGeoManager->GetNsegments();
76 fVisLevel = fGeoManager->GetVisLevel();
77 fVisOption = fGeoManager->GetVisOption();
78 fExplodedView = fGeoManager->GetBombMode();
84 fPaintingOverlaps =
kFALSE;
94 memset(&fCheckedBox[0], 0, 6*
sizeof(
Double_t));
96 fCheckedNode = fGeoManager->GetTopNode();
118 gSize3D.numPoints += numpoints;
135 static Int_t npoints = 0;
141 memset(xmin, 0, 3*
sizeof(
Double_t));
142 memset(xmax, 0, 3*
sizeof(
Double_t));
147 for (i=0; i<3; i++) xmin[i]=xmax[i]=0;
152 for (i=0; i<3; i++) {
153 box[i] += ninv*(point[i]-box[i]);
154 if (point[i]<xmin[i]) xmin[i]=point[i];
155 if (point[i]>xmax[i]) xmax[i]=point[i];
156 box[i+3] = 0.5*(xmax[i]-xmin[i]);
165 memcpy(bombtr, tr, 3*
sizeof(
Double_t));
276 static Int_t color = 0;
279 for (
auto icol=1; icol<10; ++icol)
289 using IntMap_t = std::map<Int_t, Int_t>;
290 constexpr
Int_t ncolors = 100;
293 static IntMap_t colmap;
296 auto it = colmap.find(base);
297 if (it != colmap.end())
return (it->second + light*(ncolors-1));
303 if (it != colmap.end())
return (it->second + light*(ncolors-1));
312 if (col_base) col_base->
GetRGB(r,g,
b);
323 colmap[color] = color_map_idx;
324 return (color_map_idx + light*(ncolors-1));
341 const Int_t big = 9999;
342 const Int_t inaxis = 7;
343 const Int_t maxdist = 5;
347 if (!view)
return big;
357 if (px < puxmin - inaxis)
return big;
358 if (py > puymin + inaxis)
return big;
359 if (px > puxmax + inaxis)
return big;
360 if (py < puymax - inaxis)
return big;
363 gPad->SetSelected(view);
373 gPad->SetSelected(crt);
385 gPad->SetSelected(crt);
396 if ((puxmax+inaxis-px) < 40) {
397 if ((py-puymax+inaxis) < 40) {
409 gPad->SetSelected(volume);
437 else gPad->SetSelected(vol);
455 gPad->SetSelected(vol);
475 while ((daughter=next())) {
490 else gPad->SetSelected(vol);
514 else gPad->SetSelected(vol);
538 view->
SetView(-206,126,75,irep);
551 vol->
SetLineColor(vol->GetMaterial()->GetDefaultColor());
583 while ((daughter=next())) {
589 if (vis && level<=rlevel) count++;
597 if (vis && last) count++;
599 if (last) next.
Skip();
614 if (maxnodes <= 0 && top) {
628 for (
Int_t level = 1;level<20;level++) {
636 if (nnodes > maxnodes) {
658 if ((h =
gROOT->GetPluginManager()->FindHandler(
"TGeoManagerEditor"))) {
672 if (!option[0])
gPad->GetCanvas()->GetCanvasImp()->ShowEditor();
702 if (autorange) tlo = 0.;
706 for (i=0; i<ncoeff; i++) {
709 if (i < ncoeff-1) formula +=
"+";
710 if (lambda < lambdamin &&
711 lambda > 0.) lambdamin = lambda;
713 if (autorange) thi = 10./lambdamin;
735 Error(
"DrawPolygon",
"No vertices defined");
745 g1->
SetTitle(
Form(
"Polygon with %d vertices (outscribed %d)",nvert, nconv));
761 g2 =
new TGraph(nconv+1, xc,yc);
771 gROOT->MakeDefCanvas();
774 if (g2) g2->
Draw(
"LP");
800 gROOT->MakeDefCanvas();
813 if (has_pad)
gPad->Update();
825 gPad->GetViewer3D(option);
842 gROOT->MakeDefCanvas();
855 if (has_pad)
gPad->Update();
861 gPad->GetViewer3D(option);
872 if (!overlap)
return;
884 gROOT->MakeDefCanvas();
892 gPad->GetViewer3D(option);
901 if (has_pad)
gPad->Update();
927 gROOT->MakeDefCanvas();
942 if (has_pad)
gPad->Update();
957 if (!
gPad->GetView())
return;
998 while ((obj=next())) {
999 if (strcmp(obj->
ClassName(),
"TGeoTrack"))
continue;
1002 track->PaintCollect(tmin, start);
1005 if (!ntracks)
return;
1008 while ((obj=next())) {
1009 if (strcmp(obj->
ClassName(),
"TGeoTrack"))
continue;
1011 if (!track)
continue;
1012 track->PaintCollect(tmax, end);
1094 if (!
gPad)
return info;
1097 info =
"wrong overlapping flag";
1102 else ovtype =
"OVERLAP";
1143 printf(
"Woops!!!\n");
1152 Int_t nframes = nfr;
1155 if (nvols<1500) nframes=10;
1156 if (nvols<1000) nframes=20;
1157 if (nvols<200) nframes = 50;
1158 if (nvols<100) nframes = 100;
1170 return fChecker->
LegoPlot(ntheta, themin, themax, nphi, phimin, phimax, rmin, rmax, option);
1177 for (
Int_t i=0; i<3; i++)
1178 master[i] = -local[0]*
fMat[i]-local[1]*
fMat[i+3]-local[2]*
fMat[i+6];
1205 if (
gPad) is_padviewer = (!strcmp(
gPad->GetViewer3D()->ClassName(),
"TViewer3DPad"))?
kTRUE:
kFALSE;
1222 for (inode=0; inode<nnodes; inode++) {
1242 if (!overlap)
return;
1243 Int_t color, transparency;
1262 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1275 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1310 Int_t transparency = 0;
1313 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1328 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1368 Int_t line_color=0, line_width=0, line_style=0;
1369 while ((daughter=next())) {
1375 drawDaughters =
kTRUE;
1385 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1420 if (!strstr(option,
"range")) ((
TAttLine*)vol)->Modify();
1459 return addDaughters;
1477 viewer->
AddObject(buffer, &addDaughters);
1494 return addDaughters;
1515 Int_t i, col, wid, sty;
1545 for (i=1;i<=level; i++) {
1609 if (!
gPad ||
gPad->IsBatch())
return;
1629 fMat[0] = c1*c3 - s1*c2*s3;
1630 fMat[1] = c1*s3 + s1*c2*
c3;
1633 fMat[3] = -s1*c3 - c1*c2*s3;
1634 fMat[4] = -s1*s3 + c1*c2*
c3;
1650 for (
Int_t i=0; i<3; i++) cov[i] = 0.5*(min[i]+max[i]);
1652 for (
Int_t i=0; i<3; i++) cop[i] = cov[i] - dir[i]*dview;
1659 Int_t pxmin,pxmax, pymin,pymax;
1660 pxmin =
gPad->UtoAbsPixel(0);
1661 pxmax =
gPad->UtoAbsPixel(1);
1662 pymin =
gPad->VtoAbsPixel(1);
1663 pymax =
gPad->VtoAbsPixel(0);
1675 tosource[2] = -dir[2];
1679 Int_t base_color, color;
1685 Int_t ntotal = pxmax*pymax;
1689 for (px=pxmin; px<pxmax; px++) {
1690 for (py=pymin; py<pymax; py++) {
1696 xloc =
gPad->AbsPixeltoX(pxmin+pxmax-px);
1698 yloc =
gPad->AbsPixeltoY(pymin+pymax-py);
1700 modloc =
TMath::Sqrt(xloc*xloc+yloc*yloc+dproj*dproj);
1701 local[0] = xloc/modloc;
1702 local[1] = yloc/modloc;
1703 local[2] = dproj/modloc;
1726 if (stemin>1E10)
break;
1759 if (step>1E10)
break;
1764 if (steptot>stemax) {
1778 if (!nextnode)
continue;
1787 if (!done)
continue;
1792 for (
Int_t i=0; i<3; ++i) local[i] += 1.
E-8*dir[i];
1794 for (
Int_t i=0; i<3; ++i) local[i] += step*dir[i];
1799 if (!norm)
continue;
1801 calf = norm[0]*tosource[0]+norm[1]*tosource[1]+norm[2]*tosource[2];
1803 color =
GetColor(base_color, light);
1844 if ((ibomb<0) || (ibomb>3)) {
1845 Warning(
"SetExplodedView",
"exploded view can be 0-3");
1873 Warning(
"SetNsegments",
"number of segments should be > 2");
1912 if (
gPad->GetView()) {
1936 Warning(
"SetVisOption",
"wrong visualization option");
1980 const Int_t inaxis = 7;
1981 const Int_t maxdist = 5;
1982 const Int_t big = 9999;
1986 if (!(numpoints && view))
return dist;
1995 if (px < puxmin - inaxis)
return big;
1996 if (py > puymin + inaxis)
return big;
1997 if (px > puxmax + inaxis)
return big;
1998 if (py < puymax - inaxis)
return big;
1999 if ((puxmax+inaxis-px) < 40) {
2012 for (
Int_t i=0; i<numpoints; i++) {
2015 points[j]=dmaster[0]; points[j+1]=dmaster[1]; points[j+2]=dmaster[2];
2016 view->
WCtoNDC(&points[j], xndc);
2017 x1 =
gPad->XtoAbsPixel(xndc[0]);
2018 y1 =
gPad->YtoAbsPixel(xndc[1]);
2019 dpoint2 = (px-
x1)*(px-x1) + (py-y1)*(py-y1);
2020 if (dpoint2 < dist) dist=(
Int_t)dpoint2;
2022 if (dist > 100)
return dist;
2057 memcpy(bombtr, tr, 3*
sizeof(
Double_t));
virtual const char * GetName() const
Returns name of object.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
void TestOverlaps(const char *path)
— Geometry overlap checker based on sampling.
double dist(Rotation3D const &r1, Rotation3D const &r2)
virtual void Test(Int_t npoints, Option_t *option)
Check time of finding "Where am I" for n points.
virtual void SetCheckedNode(TGeoNode *node)
Select a node to be checked for overlaps.
virtual TVirtualGeoTrack * AddTrack(Int_t id, Int_t pdgcode, TObject *part)
Create a primary TGeoTrack.
void DefineColors() const
Define 100 colors with increasing light intensities for each basic color (1-7) Register these colors ...
virtual Int_t GetColor(Int_t base, Float_t light) const
Get index of a base color with given light intensity (0,1)
TGeoNode * InitTrack(const Double_t *point, const Double_t *dir)
Initialize current point and current direction vector (normalized) in MARS.
void ResetAttBit(UInt_t f)
TGeoShape * fClippingShape
virtual void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3, Double_t bombz=1.3, Double_t bombr=1.3)
— Set cartesian and radial bomb factors for translations
void DoRestoreState()
Restore a backed-up state without affecting the cache stack.
void GetPath(TString &path) const
Returns the path for the current node.
Bool_t TestAttBit(UInt_t f) const
The manager class for any TGeo geometry.
virtual Bool_t PaintComposite(Option_t *option="") const
Paint this composite shape into the current 3D viewer Returns bool flag indicating if the caller shou...
virtual void Raytrace(Option_t *option="")
Raytrace current drawn geometry.
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
void SetCurrentDirection(Double_t *dir)
Bool_t IsDrawingExtra() const
void SetUserPlugin(TGeoIteratorPlugin *plugin)
Set a plugin.
virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Option_t *option="")
Draw random points in the bounding box of a volume.
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)=0
virtual Double_t GetDX() const
virtual void CheckBoundaryReference(Int_t icheck=-1)
Check the boundary errors reference file created by CheckBoundaryErrors method.
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
virtual void Clear(Option_t *option="")
Remove all objects from the array.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)=0
Computes distance from point (px,py) to the object.
virtual void DrawPolygon(const TGeoPolygon *poly)
Draw a polygon in 3D.
Geometrical transformation package.
virtual void Paint(Option_t *option="")
Paint current geometry according to option.
Visualization and tracking attributes for volumes and nodes.
virtual void ExecuteVolumeEvent(TGeoVolume *volume, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given volume.
virtual Int_t DistanceToPrimitiveVol(TGeoVolume *vol, Int_t px, Int_t py)
compute the closest distance of approach from point px,py to a volume
void CdUp()
Go one level up in geometry.
virtual void ProcessNode()=0
virtual void DrawOverlap(void *ovlp, Option_t *option="")
Draw an overlap.
virtual Double_t GetLatitude()=0
virtual void DrawPath(const char *path, Option_t *option="")
Draw all volumes for a given path.
virtual void CheckBoundaryErrors(Int_t ntracks=1000000, Double_t radius=-1.)
Check pushes and pulls needed to cross the next boundary with respect to the position given by FindNe...
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
virtual void SetAutoRange(Bool_t autorange=kTRUE)=0
virtual void PaintOverlap(void *ovlp, Option_t *option="")
Paint an overlap.
virtual Int_t ShapeDistancetoPrimitive(const TGeoShape *shape, Int_t numpoints, Int_t px, Int_t py) const
Returns distance between point px,py on the pad an a shape.
virtual void ClearVisibleVolumes()
Clear the list of visible volumes reset the kVisOnScreen bit for volumes previously in the list...
TGeoElementRN * GetElement() const
virtual void AddTrackPoint(Double_t *point, Double_t *box, Bool_t reset=kFALSE)
Average center of view of all painted tracklets and compute view box.
TH2F * LegoPlot(Int_t ntheta=60, Double_t themin=0., Double_t themax=180., Int_t nphi=90, Double_t phimin=0., Double_t phimax=360., Double_t rmin=0., Double_t rmax=9999999, Option_t *option="")
Generate a lego plot fot the top volume, according to option.
void Skip()
Stop iterating the current branch.
virtual void SetTopVisible(Bool_t vis=kTRUE)
Set top geometry volume as visible.
Bool_t IsExtrusion() const
void SetSelectedNode(TGeoNode *node)
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
An arbitrary polygon defined by vertices.
Int_t LoadPlugin()
Load the plugin library for this handler.
Matrix class used for computing global transformations Should NOT be used for node definition...
void MasterToLocal(const Double_t *master, Double_t *local) const
TGeoVolume * GetFirstVolume() const
void ToLower()
Change string to lower-case.
Bool_t IsNodeSelectable() const
virtual void Draw(Option_t *option="")
Draw this function with its current attributes.
virtual void SetTitle(const char *title="")
Set graph title.
void GetConvexVertices(Double_t *x, Double_t *y) const
Fill list of vertices of the convex outscribed polygon into provided arrays.
void GetVertices(Double_t *x, Double_t *y) const
Fill list of vertices into provided arrays.
virtual void DrawBatemanSol(TGeoBatemanSol *sol, Option_t *option="")
Draw the time evolution of a radionuclide.
virtual void SetMinimum(Double_t minimum=-1111)
Set the minimum value along Y for this function In case the function is already drawn, set also the minimum in the helper histogram.
virtual void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
Test for shape navigation methods.
virtual void Modify()
Change current line attributes if necessary.
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
void GetCoeff(Int_t i, Double_t &cn, Double_t &lambda) const
virtual void GetRGB(Float_t &r, Float_t &g, Float_t &b) const
Bool_t IsVisContainers() const
virtual void SetPerspective()=0
virtual void UnbombTranslation(const Double_t *tr, Double_t *bombtr)
get the new 'unbombed' translation vector according current exploded view mode
virtual void Draw(Option_t *chopt="")
Draw this graph with its current attributes.
Int_t GetVisLevel() const
Returns current depth to which geometry is drawn.
virtual Width_t GetLineWidth() const
Return the line width.
TGeoHMatrix * GetFirstMatrix() const
virtual void CheckGeometryFull(Bool_t checkoverlaps=kTRUE, Bool_t checkcrossings=kTRUE, Int_t nrays=10000, const Double_t *vertex=NULL)
Geometry checking method (see: TGeoManager::CheckGeometry())
virtual void AddSize3D(Int_t numpoints, Int_t numsegs, Int_t numpolys)
— Add numpoints, numsegs, numpolys to the global 3D size.
Bool_t IsRaytracing() const
Check if the painter is currently ray-tracing the content of this volume.
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
virtual Style_t GetMarkerStyle() const
Return the marker style.
Int_t PushPath(Int_t startlevel=0)
Int_t GetNdaughters() const
void MasterToLocalVect(const Double_t *master, Double_t *local) const
void SetVisRaytrace(Bool_t flag=kTRUE)
void GetRange(Double_t &tmin, Double_t &tmax) const
virtual Style_t GetLineStyle() const
Return the line style.
virtual Double_t GetPsi()=0
virtual Bool_t Contains(const Double_t *point) const =0
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void OpProgress(const char *opname, Long64_t current, Long64_t size, TStopwatch *watch=0, Bool_t last=kFALSE, Bool_t refresh=kFALSE, const char *msg="")
Text progress bar.
void Stop()
Stop the stopwatch.
virtual void CheckOverlaps(const TGeoVolume *vol, Double_t ovlp=0.1, Option_t *option="") const
Check overlaps for the top volume of the geometry, within a limit OVLP.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
virtual void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="")
check current point in the geometry
virtual void PaintNode(TGeoNode *node, Option_t *option="", TGeoMatrix *global=0)
Paint recursively a node and its content accordind to visualization options.
void CheckOverlaps(const TGeoVolume *vol, Double_t ovlp=0.1, Option_t *option="")
Check illegal overlaps for volume VOL within a limit OVLP.
virtual void DrawVolume(TGeoVolume *vol, Option_t *option="")
Draw method.
void SetCurrentPoint(Double_t *point)
virtual void GetViewAngles(Double_t &longitude, Double_t &latitude, Double_t &psi)
Get the current view angles.
TGeoHMatrix * GetMatrix(Int_t level=-1) const
Return global matrix for node at LEVEL.
void SetMatrixReflection(Bool_t flag=kTRUE)
Double_t Concentration(Double_t time) const
Find concentration of the element at a given time.
virtual void SetNmeshPoints(Int_t npoints)
Set number of points to be generated on the shape outline when checking for overlaps.
Int_t CountNodes(TGeoVolume *vol, Int_t level) const
Count number of visible nodes down to a given level.
virtual Bool_t IsExplodedView() const
Bool_t IsOnScreen() const
check if this node is drawn. Assumes that this node is current
constexpr Double_t DegToRad()
virtual void RandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz, const char *target_vol=0, Bool_t check_norm=kFALSE)
Shoot nrays in the current drawn geometry.
Int_t GetMaxVisNodes() const
virtual Double_t GetDview() const =0
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
const TGeoMatrix * GetCurrentMatrix() const
Returns global matrix for current node.
virtual const char * GetVolumeInfo(const TGeoVolume *volume, Int_t px, Int_t py) const
Get some info about the current selected volume.
void SetTopName(const char *name)
Set the top name for path.
void Test(Int_t npoints, Option_t *option)
Check time of finding "Where am I" for n points.
virtual void DrawCurrentPoint(Int_t color)
Draw current point in the same view.
virtual Bool_t IsVisible() const
virtual Size_t GetMarkerSize() const
Return the marker size.
void LocalToMaster(const Double_t *local, Double_t *master) const
Abstract 3D shapes viewer.
void RandomRays(Int_t nrays, Double_t startx, Double_t starty, Double_t startz, const char *target_vol=0, Bool_t check_norm=kFALSE)
Randomly shoot nrays from point (startx,starty,startz) and plot intersections with surfaces for curre...
void SetOutside(Bool_t flag=kTRUE)
Base class for user-defined tracks attached to a geometry.
void SetNmeshPoints(Int_t npoints=1000)
Set number of points to be generated on the shape outline when checking for overlaps.
static void SetTransform(TGeoMatrix *matrix)
Set current transformation matrix that applies to shape.
TGeoNode * GetCurrentNode() const
void Error(const char *location, const char *msgfmt,...)
virtual void TestOverlaps(const char *path)
— Geometry overlap checker based on sampling.
virtual void SetPoints(Double_t *points) const =0
virtual void SetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep)=0
virtual void GrabFocus(Int_t nfr=0, Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0)
Move focus to current volume.
static void RGB2HLS(Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &l, Float_t &s)
Static method to compute HLS from RGB.
Physical nodes are the actual 'touchable' objects in the geometry, representing a path of positioned ...
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Class handling Boolean composition of shapes.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Char_t GetTransparency() const
static void HLS2RGB(Float_t h, Float_t l, Float_t s, Float_t &r, Float_t &g, Float_t &b)
Static method to compute RGB from HLS.
virtual Double_t Weight(Double_t precision, Option_t *option="v")
Compute weight [kg] of the current volume.
virtual void DrawOnly(Option_t *option="")
Draw only one volume.
Bool_t TestVoxels(TGeoVolume *vol, Int_t npoints=1000000)
Returns optimal voxelization type for volume vol.
Base abstract class for all shapes.
virtual void PaintVolume(TGeoVolume *vol, Option_t *option="", TGeoMatrix *global=0)
Paint recursively a node and its content accordind to visualization options.
TGeoChecker * GetChecker()
Create/return geometry checker.
virtual void EditGeometry(Option_t *option="")
Start the geometry editor.
void Clear(Option_t *option="")
clear the data for this matrix
virtual void DefaultColors()
Set default volume colors according to tracking media.
TGeoNode * Step(Bool_t is_geom=kTRUE, Bool_t cross=kTRUE)
Make a rectilinear step of length fStep from current point (fPoint) on current direction (fDirection)...
virtual TGeoVolume * GetDrawnVolume() const
Get currently drawn volume.
virtual void ModifiedPad(Bool_t update=kFALSE) const
Check if a pad and view are present and send signal "Modified" to pad.
TGeoNode * FindNextBoundaryAndStep(Double_t stepmax=TGeoShape::Big(), Bool_t compsafe=kFALSE)
Compute distance to next boundary within STEPMAX.
virtual void Draw(Option_t *option="")
Draw method.
Long_t ExecPlugin(int nargs, const T &... params)
virtual TGeoNode * SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char *g3path)
shoot npoints randomly in a box of 1E-5 arround current point.
tomato 2-D histogram with a float per channel (see TH1 documentation)}
void SetStep(Double_t step)
virtual void CheckBoundaryErrors(Int_t ntracks=1000000, Double_t radius=-1.)
Check pushes and pulls needed to cross the next boundary with respect to the position given by FindNe...
Double_t * FindNormalFast()
Computes fast normal to next crossed boundary, assuming that the current point is close enough to the...
virtual Double_t GetDproj() const =0
virtual Bool_t IsComposite() const
void RandomPoints(TGeoVolume *vol, Int_t npoints, Option_t *option)
Draw random points in the bounding box of a volume.
static void ShowEditor()
Show the global pad editor. Static method.
void SetTransparency(Char_t transparency=0)
virtual const TBuffer3D & GetBuffer3D(Int_t reqSections, Bool_t localFrame) const
Stub implementation to avoid forcing implementation at this stage.
virtual void CheckBoundaryReference(Int_t icheck=-1)
Check the boundary errors reference file created by CheckBoundaryErrors method.
static void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
TGeoVolume * GetCurrentVolume() const
virtual Int_t AddObject(const TBuffer3D &buffer, Bool_t *addChildren=0)=0
Int_t GetEntriesFast() const
Bool_t IsVisDaughters() const
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
char * Form(const char *fmt,...)
TGeoHMatrix * GetCurrentMatrix() const
virtual const Double_t * GetOrigin() const
const Double_t * GetCurrentDirection() const
virtual void DefaultAngles()
Set default angles for the current view.
Bool_t SetRawSizes(UInt_t reqPnts, UInt_t reqPntsCapacity, UInt_t reqSegs, UInt_t reqSegsCapacity, UInt_t reqPols, UInt_t reqPolsCapacity)
Set kRaw tessellation section of buffer with supplied sizes.
Generic 3D primitive description class.
virtual void SetVisLevel(Int_t level=3)
Set default level down to which visualization is performed.
virtual Bool_t TestVoxels(TGeoVolume *vol)
Check voxels efficiency per volume.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
TGeoNode * GetTopNode() const
virtual void SetExplodedView(Int_t iopt=0)
set type of exploding view
void SetIterator(const TGeoIterator *iter)
virtual void EstimateCameraMove(Double_t tmin, Double_t tmax, Double_t *start, Double_t *end)
Estimate camera movement between tmin and tmax for best track display.
virtual Double_t GetDY() const
virtual void Draw(Option_t *option="")
Draws 3-D polymarker with its current attributes.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const =0
virtual Double_t GetLongitude()=0
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
virtual void SetVisOption(Int_t option=0)
set drawing mode : option=0 (default) all nodes drawn down to vislevel option=1 leaves and nodes at v...
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetMaximum(Double_t maximum=-1111)
Set the maximum value along Y for this function In case the function is already drawn, set also the maximum in the helper histogram.
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const =0
Bool_t PaintShape(const TGeoShape &shape, Option_t *option) const
Paint the supplied shape into the current 3D viewer.
virtual void SetTitle(const char *title="")
Set function title if title has the form "fffffff;xxxx;yyyy", it is assumed that the function title i...
virtual Int_t SetNextPoint(Double_t x, Double_t y, Double_t z)
Set point following LastPoint to x, y, z.
virtual Bool_t cd(const char *path="")
Browse the tree of nodes starting from fTopNode according to pathname.
void LocalToMasterVect(const Double_t *local, Double_t *master) const
Convert a local vector according view rotation matrix.
void CheckEdit()
Check if Ged library is loaded and load geometry editor classe.
TGeoHMatrix * GetSecondMatrix() const
virtual void MoveFocus(Double_t *center, Double_t dx, Double_t dy, Double_t dz, Int_t nsteps=10, Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0)=0
Bool_t IsVolAttributes() const
virtual void GetWindow(Double_t &u0, Double_t &v0, Double_t &du, Double_t &dv) const =0
void OpProgress(const char *opname, Long64_t current, Long64_t size, TStopwatch *watch=0, Bool_t last=kFALSE, Bool_t refresh=kFALSE, const char *msg="")
Print current operation progress.
virtual Bool_t PreferLocalFrame() const =0
TObject * UncheckedAt(Int_t i) const
TGeoVolume * GetSecondVolume() const
static const double x1[5]
void PaintPhysicalNode(TGeoPhysicalNode *node, Option_t *option="")
Paints a physical node associated with a path.
virtual void PrintOverlaps() const
Print overlaps (see TGeoChecker::PrintOverlaps())
void DoBackupState()
Backup the current state without affecting the cache stack.
R__EXTERN TGeoManager * gGeoManager
virtual Int_t CountVisibleNodes()
Count total number of visible nodes.
Bool_t IsVisibleFull() const
TGeoVolume * GetVolume(Int_t level=-1) const
Return volume associated with node at LEVEL in the branch.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual ~TGeoPainter()
-*-*-*-*-*-*-*-*-*-*Geometry painter default destructor-*-*-*-*-*-*-*-* *-* =========================...
void SetPaintVolume(TGeoVolume *vol)
void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
Test for shape navigation methods.
void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
Shoot nrays with random directions from starting point (startx, starty, startz) in the reference fram...
void CdTop()
Make top level node the current node.
void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="")
— Draw point (x,y,z) over the picture of the daughers of the volume containing this point...
double func(double *x, double *p)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
TObjArray * GetListOfPhysicalNodes()
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
The color creation and management class.
TGeoIteratorPlugin * fPlugin
TH2F * LegoPlot(Int_t ntheta=60, Double_t themin=0., Double_t themax=180., Int_t nphi=90, Double_t phimin=0., Double_t phimax=360., Double_t rmin=0., Double_t rmax=9999999, Option_t *option="")
Generate a lego plot fot the top volume, according to option.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
Bool_t IsReflection() const
Bool_t IsVisLeaves() const
virtual void SetLineColor(Color_t lcolor)
Set the line color.
static TView * CreateView(Int_t system=1, const Double_t *rmin=0, const Double_t *rmax=0)
Create a concrete default 3-d view via the plug-in manager.
virtual void ExecuteManagerEvent(TGeoManager *geom, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given volume.
static TGeoMatrix * GetTransform()
Returns current transformation matrix that applies to shape.
void PrintOverlaps() const
Print the current list of overlaps held by the manager class.
Mother of all ROOT objects.
Double_t Weight(Double_t precision=0.01, Option_t *option="v")
Estimate weight of top level volume with a precision SIGMA(W)/W better than PRECISION.
you should not use this method at all Int_t Int_t z
TGeoNode * SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char *g3path)
shoot npoints randomly in a box of 1E-5 arround current point.
void CheckGeometryFull(Bool_t checkoverlaps=kTRUE, Bool_t checkcrossings=kTRUE, Int_t nrays=10000, const Double_t *vertex=NULL)
Geometry checking.
Abstract class for geometry painters.
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
static void SetPainter(const TVirtualGeoPainter *painter)
Static function to set an alternative histogram painter.
Bool_t IsVisDaughters() const
virtual void DrawShape(TGeoShape *shape, Option_t *option="")
Draw a shape.
Short_t Max(Short_t a, Short_t b)
const Double_t * GetCurrentPoint() const
virtual void GetRange(Float_t *min, Float_t *max)=0
A Graph is a graphics object made of two arrays X and Y with npoints each.
TObjArray * GetListOfVolumes() const
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
virtual void SetViewChanged(Bool_t flag=kTRUE)=0
Int_t GetNdaughters() const
virtual void ExecuteShapeEvent(TGeoShape *shape, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given shape.
TGeoNode * GetMother(Int_t up=1) const
TPolyMarker3D * GetPolyMarker() const
static void InitializeColors()
Initialize colors used by the TCanvas based graphics (via TColor objects).
virtual Color_t GetMarkerColor() const
Return the marker color.
def normal(shape, name=None)
virtual void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
Geometry checking method (see TGeoChecker).
virtual void BombTranslation(const Double_t *tr, Double_t *bombtr)
get the new 'bombed' translation vector according current exploded view mode
Double_t Sqrt(Double_t x)
TGeoVolume * GetTopVolume() const
TGeoManager * fGeoManager
TGeoShape * GetShape() const
Bool_t IsVisBranch() const
virtual void SetNsegments(Int_t nseg=20)
Set number of segments to approximate circles.
static Int_t CreateGradientColorTable(UInt_t Number, Double_t *Stops, Double_t *Red, Double_t *Green, Double_t *Blue, UInt_t NColors, Float_t alpha=1.)
Static function creating a color table with several connected linear gradients.
double norm(double *x, double *p)
TGeoVolume * GetVolume() const
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
Double_t GetOverlap() const
virtual Double_t GetDZ() const
virtual Bool_t IsPerspective() const =0
const char * Data() const
virtual Bool_t IsAssembly() const
Returns true if the volume is an assembly or a scaled assembly.