10#ifndef ROOT_TGeoPainter
11#define ROOT_TGeoPainter
static void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
#define ClassDef(name, id)
Generic 3D primitive description class.
Geometry checking package.
Matrix class used for computing global transformations Should NOT be used for node definition.
The manager class for any TGeo geometry.
Geometrical transformation package.
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
Base class describing geometry overlaps.
Class implementing all draw interfaces for a generic 3D viewer using TBuffer3D mechanism.
TGeoIteratorPlugin * fPlugin
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.
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.
virtual void DrawShape(TGeoShape *shape, Option_t *option="")
Draw a shape.
virtual TGeoVolume * GetDrawnVolume() const
Get currently drawn volume.
virtual void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
Geometry checking method (see TGeoChecker).
virtual void Paint(Option_t *option="")
Paint current geometry according to option.
TGeoManager * fGeoManager
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.
virtual void SetCheckedNode(TGeoNode *node)
Select a node to be checked for overlaps.
virtual void EditGeometry(Option_t *option="")
Start the geometry editor.
virtual void SetTopVisible(Bool_t vis=kTRUE)
Set top geometry volume as visible.
virtual void SetVisOption(Int_t option=0)
Set drawing mode :
TGeoChecker * GetChecker()
Create/return geometry checker.
virtual ~TGeoPainter()
Default destructor.
virtual void SetExplodedView(Int_t iopt=0)
Set type of exploding view.
virtual Int_t GetColor(Int_t base, Float_t light) const
Get index of a base color with given light intensity (0,1)
virtual void UnbombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new 'unbombed' translation vector according current exploded view mode.
virtual void SetClippingShape(TGeoShape *shape)
virtual Bool_t IsRaytracing() const
virtual void SetIteratorPlugin(TGeoIteratorPlugin *plugin)
virtual Int_t GetVisOption() const
virtual void DrawOnly(Option_t *option="")
Draw only one volume.
virtual Double_t Weight(Double_t precision, Option_t *option="v")
Compute weight [kg] of the current volume.
virtual void SetGeoManager(TGeoManager *geom)
virtual Bool_t IsPaintingShape() const
virtual TGeoNode * GetCheckedNode()
void DefineColors() const
Define 100 colors with increasing light intensities for each basic color (1-7) Register these colors ...
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.
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.
virtual void DrawBatemanSol(TGeoBatemanSol *sol, Option_t *option="")
Draw the time evolution of a radionuclide.
virtual void ExecuteShapeEvent(TGeoShape *shape, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given shape.
virtual void DrawCurrentPoint(Int_t color)
Draw current point in the same view.
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...
virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Option_t *option="")
Draw random points in the bounding box of a volume.
TGeoShape * fClippingShape
Bool_t PaintShape(const TGeoShape &shape, Option_t *option) const
Paint the supplied shape into the current 3D viewer.
virtual void DrawPolygon(const TGeoPolygon *poly)
Draw a polygon in 3D.
virtual Bool_t IsExplodedView() const
Int_t CountNodes(TGeoVolume *vol, Int_t level) const
Count number of visible nodes down to a given level.
virtual Int_t GetVisLevel() const
virtual void ExecuteManagerEvent(TGeoManager *geom, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given volume.
virtual void BombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new 'bombed' translation vector according current exploded view mode.
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 void CheckBoundaryReference(Int_t icheck=-1)
Check the boundary errors reference file created by CheckBoundaryErrors method.
virtual void Test(Int_t npoints, Option_t *option)
Check time of finding "Where am I" for n points.
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 TVirtualGeoTrack * AddTrack(Int_t id, Int_t pdgcode, TObject *part)
Create a primary TGeoTrack.
void CheckEdit()
Check if Ged library is loaded and load geometry editor classe.
virtual Int_t CountVisibleNodes()
Count total number of visible nodes.
virtual void ClearVisibleVolumes()
Clear the list of visible volumes reset the kVisOnScreen bit for volumes previously in the list.
virtual void SetNsegments(Int_t nseg=20)
Set number of segments to approximate circles.
virtual void DrawOverlap(void *ovlp, Option_t *option="")
Draw an overlap.
void LocalToMasterVect(const Double_t *local, Double_t *master) const
Convert a local vector according view rotation matrix.
virtual void Draw(Option_t *option="")
Draw method.
virtual const char * GetVolumeInfo(const TGeoVolume *volume, Int_t px, Int_t py) const
Get some info about the current selected volume.
virtual void TestOverlaps(const char *path)
Geometry overlap checker based on sampling.
virtual const char * GetDrawPath() const
virtual Bool_t TestVoxels(TGeoVolume *vol)
Check voxels efficiency per volume.
virtual void DrawVolume(TGeoVolume *vol, Option_t *option="")
Draw method.
virtual Double_t * GetViewBox()
virtual Int_t GetBombMode() const
virtual void PaintNode(TGeoNode *node, Option_t *option="", TGeoMatrix *global=0)
Paint recursively a node and its content according to visualization options.
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 Raytrace(Option_t *option="")
Raytrace current drawn geometry.
void Lock(Bool_t flag=kTRUE)
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.
virtual void PaintVolume(TGeoVolume *vol, Option_t *option="", TGeoMatrix *global=0)
Paint recursively a node and its content according to visualization options.
virtual void GrabFocus(Int_t nfr=0, Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0)
Move focus to current volume.
virtual void PrintOverlaps() const
Print overlaps (see TGeoChecker::PrintOverlaps())
virtual void DefaultColors()
Set default volume colors according to tracking media.
void PaintPhysicalNode(TGeoPhysicalNode *node, Option_t *option="")
Paints a physical node associated with a path.
virtual TGeoNode * SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char *g3path)
Shoot npoints randomly in a box of 1E-5 around current point.
virtual void DrawPath(const char *path, Option_t *option="")
Draw all volumes for a given path.
virtual void GetViewAngles(Double_t &longitude, Double_t &latitude, Double_t &psi)
Get the current view angles.
virtual void PaintOverlap(void *ovlp, Option_t *option="")
Paint an overlap.
virtual void DefaultAngles()
Set default angles for the current view.
virtual void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const
virtual void ExecuteVolumeEvent(TGeoVolume *volume, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given volume.
virtual void AddSize3D(Int_t numpoints, Int_t numsegs, Int_t numpolys)
Add numpoints, numsegs, numpolys to the global 3D size.
virtual void SetTopVolume(TGeoVolume *vol)
virtual void SetRaytracing(Bool_t flag=kTRUE)
virtual void SetVisLevel(Int_t level=3)
Set default level down to which visualization is performed.
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.
TGeoPainter(TGeoManager *manager)
Default constructor.
virtual void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
Test for shape navigation methods.
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 ModifiedPad(Bool_t update=kFALSE) const
Check if a pad and view are present and send signal "Modified" to pad.
Int_t GetNsegments() const
virtual void SetNmeshPoints(Int_t npoints)
Set number of points to be generated on the shape outline when checking for overlaps.
virtual TGeoVolume * GetTopVolume() const
Physical nodes are the actual 'touchable' objects in the geometry, representing a path of positioned ...
An arbitrary polygon defined by vertices.
Base abstract class for all shapes.
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
2-D histogram with a float per channel (see TH1 documentation)}
Mother of all ROOT objects.
const char * Data() const
Abstract class for geometry painters.
Base class for user-defined tracks attached to a geometry.
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
double dist(Rotation3D const &r1, Rotation3D const &r2)