ROOT  6.06/09
Reference Guide
TGeoPainter.h
Go to the documentation of this file.
1 // Author: Andrei Gheata 05/03/02
2 
3 /*************************************************************************
4  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
5  * All rights reserved. *
6  * *
7  * For the licensing terms see $ROOTSYS/LICENSE. *
8  * For the list of contributors see $ROOTSYS/README/CREDITS. *
9  *************************************************************************/
10 #ifndef ROOT_TGeoPainter
11 #define ROOT_TGeoPainter
12 
13 //////////////////////////////////////////////////////////////////////////
14 // //
15 // TGeoPainter //
16 // //
17 // Painter class utility TGeo geometries. Interfaces visualization //
18 // queries with the viewers. //
19 // //
20 //////////////////////////////////////////////////////////////////////////
21 
22 
23 #ifndef ROOT_TVirtualGeoPainter
24 #include "TVirtualGeoPainter.h"
25 #endif
26 
27 #ifndef ROOT_TGeoManager
28 #include "TGeoManager.h"
29 #endif
30 
31 class TString;
32 class TGeoHMatrix;
33 class TGeoNode;
34 class TGeoVolume;
35 class TGeoShape;
36 class TVirtualGeoTrack;
37 class TGeoPhysicalNode;
38 class TGeoChecker;
39 class TGeoOverlap;
40 class TH2F;
41 class TGeoBatemanSol;
42 class TGeoPolygon;
43 
45 private:
46  Double_t fBombX; // bomb factor on X
47  Double_t fBombY; // bomb factor on Y
48  Double_t fBombZ; // bomb factor on Z
49  Double_t fBombR; // bomb factor on radius (cyl or sph)
50  Double_t fCheckedBox[6]; // bounding box of checked node
51  Double_t fMat[9]; // view rotation matrix
52  Int_t fNsegments; // number of segments approximating circles
53  Int_t fNVisNodes; // number of visible nodes
54  Int_t fVisLevel; // depth for drawing
55  Int_t fVisOption; // global visualization option
56  Int_t fExplodedView; // type of exploding current view
57  Bool_t fVisLock; // lock for adding visible volumes
58  Bool_t fTopVisible; // set top volume visible
59  Bool_t fPaintingOverlaps; // lock overlaps painting
60  Bool_t fIsRaytracing; // raytracing flag
61  Bool_t fIsPaintingShape; // flag for shape painting
62  TString fVisBranch; // drawn branch
63  TString fVolInfo; // volume info
64  TGeoNode *fCheckedNode; // checked node
65  TGeoOverlap *fOverlap; // current overlap
66  TGeoHMatrix *fGlobal; // current global matrix
67  TBuffer3D *fBuffer; // buffer used for painting
68  TGeoManager *fGeoManager; // geometry to which applies
69  TGeoChecker *fChecker; // geometry checker
70  TGeoShape *fClippingShape; // clipping shape
71  TGeoVolume *fTopVolume; // top drawn volume
72  TGeoVolume *fLastVolume; // last drawn volume
74  *fPlugin; // User iterator plugin for changing pain volume properties
75  TObjArray *fVisVolumes; // list of visible volumes
76  Bool_t fIsEditable; // flag that geometry is editable
77 
78  void DefineColors() const;
79  void LocalToMasterVect(const Double_t *local, Double_t *master) const;
80 
81 protected:
82  virtual void ClearVisibleVolumes();
83 
84 public:
85  TGeoPainter(TGeoManager *manager);
86  virtual ~TGeoPainter();
87  virtual void AddSize3D(Int_t numpoints, Int_t numsegs, Int_t numpolys);
88  virtual TVirtualGeoTrack *AddTrack(Int_t id, Int_t pdgcode, TObject *part);
89  virtual void AddTrackPoint(Double_t *point, Double_t *box, Bool_t reset=kFALSE);
90  virtual void BombTranslation(const Double_t *tr, Double_t *bombtr);
91  virtual void CheckBoundaryErrors(Int_t ntracks=1000000, Double_t radius=-1.);
92  virtual void CheckBoundaryReference(Int_t icheck=-1);
93  virtual void CheckGeometryFull(Bool_t checkoverlaps=kTRUE, Bool_t checkcrossings=kTRUE, Int_t nrays=10000, const Double_t *vertex=NULL);
94  virtual void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const;
95  void CheckEdit();
96  virtual void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="");
97  virtual void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option);
98  virtual void CheckOverlaps(const TGeoVolume *vol, Double_t ovlp=0.1, Option_t *option="") const;
99  Int_t CountNodes(TGeoVolume *vol, Int_t level) const;
100  virtual Int_t CountVisibleNodes();
101  virtual void DefaultAngles();
102  virtual void DefaultColors();
103  virtual Int_t DistanceToPrimitiveVol(TGeoVolume *vol, Int_t px, Int_t py);
104  virtual void Draw(Option_t *option="");
105  virtual void DrawBatemanSol(TGeoBatemanSol *sol, Option_t *option="");
106  virtual void DrawOverlap(void *ovlp, Option_t *option="");
107  virtual void DrawCurrentPoint(Int_t color);
108  virtual void DrawOnly(Option_t *option="");
109  virtual void DrawPanel();
110  virtual void DrawPath(const char *path, Option_t *option="");
111  virtual void DrawPolygon(const TGeoPolygon *poly);
112  virtual void DrawShape(TGeoShape *shape, Option_t *option="");
113  virtual void DrawVolume(TGeoVolume *vol, Option_t *option="");
114  virtual void EditGeometry(Option_t *option="");
115  virtual void EstimateCameraMove(Double_t tmin, Double_t tmax, Double_t *start, Double_t *end);
116  virtual void ExecuteManagerEvent(TGeoManager *geom, Int_t event, Int_t px, Int_t py);
117  virtual void ExecuteShapeEvent(TGeoShape *shape, Int_t event, Int_t px, Int_t py);
118  virtual void ExecuteVolumeEvent(TGeoVolume *volume, Int_t event, Int_t px, Int_t py);
119  virtual const char*GetVolumeInfo(const TGeoVolume *volume, Int_t px, Int_t py) const;
120  virtual void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const
121  {bombx=fBombX; bomby=fBombY; bombz=fBombZ; bombr=fBombR;}
122  virtual Int_t GetBombMode() const {return fExplodedView;}
123  virtual TGeoNode *GetCheckedNode() {return fCheckedNode;}
125  virtual Int_t GetColor(Int_t base, Float_t light) const;
126  virtual const char *GetDrawPath() const {return fVisBranch.Data();}
127  virtual TGeoVolume *GetDrawnVolume() const;
128  virtual TGeoVolume *GetTopVolume() const {return fTopVolume;}
129  virtual Int_t GetVisLevel() const {return fVisLevel;}
130  virtual Int_t GetVisOption() const {return fVisOption;}
131  Int_t GetNsegments() const {return fNsegments;}
132  virtual void GrabFocus(Int_t nfr=0, Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0);
133  virtual Double_t *GetViewBox() {return &fCheckedBox[0];}
134  virtual void GetViewAngles(Double_t &longitude, Double_t &latitude, Double_t &psi);
135  virtual Bool_t IsExplodedView() const {return ((fExplodedView==kGeoVisDefault)?kFALSE:kTRUE);}
136  virtual Bool_t IsRaytracing() const {return fIsRaytracing;}
137  virtual Bool_t IsPaintingShape() const {return fIsPaintingShape;}
138  TH2F *LegoPlot(Int_t ntheta=60, Double_t themin=0., Double_t themax=180.,
139  Int_t nphi=90, Double_t phimin=0., Double_t phimax=360.,
140  Double_t rmin=0., Double_t rmax=9999999, Option_t *option="");
141  void Lock(Bool_t flag = kTRUE) {fVisLock = flag;}
142  virtual void ModifiedPad(Bool_t update=kFALSE) const;
143  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="");
144  virtual void Paint(Option_t *option="");
145  virtual void PaintNode(TGeoNode *node, Option_t *option="", TGeoMatrix* global=0);
146  Bool_t PaintShape(const TGeoShape & shape, Option_t * option) const;
147  virtual void PaintShape(TGeoShape *shape, Option_t *option="");
148  virtual void PaintOverlap(void *ovlp, Option_t *option="");
149  virtual void PaintVolume(TGeoVolume *vol, Option_t *option="", TGeoMatrix* global=0);
150  virtual void PrintOverlaps() const;
151  void PaintPhysicalNode(TGeoPhysicalNode *node, Option_t *option="");
152  virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Option_t *option="");
153  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);
154  virtual void Raytrace(Option_t *option="");
155  virtual TGeoNode *SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char* g3path);
156  virtual void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3, Double_t bombz=1.3, Double_t bombr=1.3);
157  virtual void SetClippingShape(TGeoShape *shape) {fClippingShape = shape;}
158  virtual void SetExplodedView(Int_t iopt=0);
159  virtual void SetNsegments(Int_t nseg=20);
160  virtual void SetNmeshPoints(Int_t npoints);
161  virtual void SetGeoManager(TGeoManager *geom) {fGeoManager=geom;}
162  virtual void SetIteratorPlugin(TGeoIteratorPlugin *plugin) {fPlugin = plugin; ModifiedPad();}
163  virtual void SetCheckedNode(TGeoNode *node);
164  virtual void SetRaytracing(Bool_t flag=kTRUE) {fIsRaytracing = flag;}
165  virtual void SetTopVisible(Bool_t vis=kTRUE);
166  virtual void SetTopVolume(TGeoVolume *vol) {fTopVolume = vol;}
167  virtual void SetVisLevel(Int_t level=3);
168  virtual void SetVisOption(Int_t option=0);
169  virtual Int_t ShapeDistancetoPrimitive(const TGeoShape *shape, Int_t numpoints, Int_t px, Int_t py) const;
170  virtual void Test(Int_t npoints, Option_t *option);
171  virtual void TestOverlaps(const char *path);
172  virtual Bool_t TestVoxels(TGeoVolume *vol);
173  virtual void UnbombTranslation(const Double_t *tr, Double_t *bombtr);
174  virtual Double_t Weight(Double_t precision, Option_t *option="v");
175 
176  ClassDef(TGeoPainter,0) //geometry painter
177 };
178 
179 #endif
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.
TGeoOverlap * fOverlap
Definition: TGeoPainter.h:65
virtual void CheckGeometry(Int_t nrays, Double_t startx, Double_t starty, Double_t startz) const
Geometry checking method (see TGeoChecker).
virtual Bool_t IsExplodedView() const
Definition: TGeoPainter.h:135
virtual Int_t GetBombMode() const
Definition: TGeoPainter.h:122
double dist(Rotation3D const &r1, Rotation3D const &r2)
Definition: 3DDistances.cxx:48
virtual void Test(Int_t npoints, Option_t *option)
Check time of finding "Where am I" for n points.
Bool_t fIsPaintingShape
Definition: TGeoPainter.h:61
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.
An array of TObjects.
Definition: TObjArray.h:39
TGeoShape * fClippingShape
Definition: TGeoPainter.h:70
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 Raytrace(Option_t *option="")
Raytrace current drawn geometry.
long long Long64_t
Definition: RtypesCore.h:69
virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Option_t *option="")
Draw random points in the bounding box of a volume.
virtual Int_t GetVisLevel() const
Definition: TGeoPainter.h:129
virtual void CheckBoundaryReference(Int_t icheck=-1)
Check the boundary errors reference file created by CheckBoundaryErrors method.
float Float_t
Definition: RtypesCore.h:53
virtual void DrawPolygon(const TGeoPolygon *poly)
Draw a polygon in 3D.
const char Option_t
Definition: RtypesCore.h:62
virtual void Paint(Option_t *option="")
Paint current geometry according to option.
Int_t fVisLevel
Definition: TGeoPainter.h:54
virtual void SetRaytracing(Bool_t flag=kTRUE)
Definition: TGeoPainter.h:164
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
virtual void DrawOverlap(void *ovlp, Option_t *option="")
Draw an overlap.
Bool_t fTopVisible
Definition: TGeoPainter.h:58
virtual void DrawPath(const char *path, Option_t *option="")
Draw all volumes for a given path.
virtual void PaintOverlap(void *ovlp, Option_t *option="")
Paint an overlap.
virtual void ClearVisibleVolumes()
Clear the list of visible volumes reset the kVisOnScreen bit for volumes previously in the list...
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 SetTopVisible(Bool_t vis=kTRUE)
Set top geometry volume as visible.
TGeoHMatrix * fGlobal
Definition: TGeoPainter.h:66
Int_t fVisOption
Definition: TGeoPainter.h:55
virtual void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const
Definition: TGeoPainter.h:120
Basic string class.
Definition: TString.h:137
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
virtual void DrawPanel()
TGeoPainter(TGeoManager *manager)
virtual void DrawBatemanSol(TGeoBatemanSol *sol, Option_t *option="")
Draw the time evolution of a radionuclide.
virtual void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
Test for shape navigation methods.
TGeoVolume * fTopVolume
Definition: TGeoPainter.h:71
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Definition: fillpatterns.C:1
virtual void UnbombTranslation(const Double_t *tr, Double_t *bombtr)
get the new 'unbombed' translation vector according current exploded view mode
void LocalToMasterVect(const Double_t *local, Double_t *master) const
Convert a local vector according view rotation matrix.
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.
Double_t fBombX
Definition: TGeoPainter.h:46
const char * Data() const
Definition: TString.h:349
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.
Double_t x[n]
Definition: legend1.C:17
TObjArray * fVisVolumes
Definition: TGeoPainter.h:75
#define ClassDef(name, id)
Definition: Rtypes.h:254
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 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.
virtual void DrawVolume(TGeoVolume *vol, Option_t *option="")
Draw method.
Bool_t fIsEditable
Definition: TGeoPainter.h:76
virtual void GetViewAngles(Double_t &longitude, Double_t &latitude, Double_t &psi)
Get the current view angles.
TGeoNode * fCheckedNode
Definition: TGeoPainter.h:64
virtual void SetNmeshPoints(Int_t npoints)
Set number of points to be generated on the shape outline when checking for overlaps.
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 DrawCurrentPoint(Int_t color)
Draw current point in the same view.
virtual const char * GetVolumeInfo(const TGeoVolume *volume, Int_t px, Int_t py) const
Get some info about the current selected volume.
virtual Bool_t IsPaintingShape() const
Definition: TGeoPainter.h:137
Double_t fCheckedBox[6]
Definition: TGeoPainter.h:50
virtual void TestOverlaps(const char *path)
— Geometry overlap checker based on sampling.
virtual void PrintOverlaps() const
Print overlaps (see TGeoChecker::PrintOverlaps())
virtual void GrabFocus(Int_t nfr=0, Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0)
Move focus to current volume.
REAL * vertex
Definition: triangle.c:512
Double_t fBombZ
Definition: TGeoPainter.h:48
Double_t fBombY
Definition: TGeoPainter.h:47
virtual void SetTopVolume(TGeoVolume *vol)
Definition: TGeoPainter.h:166
virtual const char * GetDrawPath() const
Definition: TGeoPainter.h:126
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.
void Lock(Bool_t flag=kTRUE)
Definition: TGeoPainter.h:141
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.
virtual void DefaultColors()
Set default volume colors according to tracking media.
Bool_t fPaintingOverlaps
Definition: TGeoPainter.h:59
virtual void Draw(Option_t *option="")
Draw method.
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.
2-D histogram with a float per channel (see TH1 documentation)}
Definition: TH2.h:256
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 SetClippingShape(TGeoShape *shape)
Definition: TGeoPainter.h:157
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 void update(gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
Int_t GetNsegments() const
Definition: TGeoPainter.h:131
virtual void DefaultAngles()
Set default angles for the current view.
Double_t fBombR
Definition: TGeoPainter.h:49
Generic 3D primitive description class.
Definition: TBuffer3D.h:19
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 SetExplodedView(Int_t iopt=0)
set type of exploding view
Bool_t PaintShape(const TGeoShape &shape, Option_t *option) const
Paint the supplied shape into the current 3D viewer.
void DefineColors() const
Define 100 colors with increasing light intensities for each basic color (1-7) Register these colors ...
TGeoChecker * fChecker
Definition: TGeoPainter.h:69
Int_t CountNodes(TGeoVolume *vol, Int_t level) const
Count number of visible nodes down to a given level.
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 * GetViewBox()
Definition: TGeoPainter.h:133
TBuffer3D * fBuffer
Definition: TGeoPainter.h:67
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...
void CheckEdit()
Check if Ged library is loaded and load geometry editor classe.
TString fVolInfo
Definition: TGeoPainter.h:63
void PaintPhysicalNode(TGeoPhysicalNode *node, Option_t *option="")
Paints a physical node associated with a path.
virtual Int_t CountVisibleNodes()
Count total number of visible nodes.
virtual Bool_t IsRaytracing() const
Definition: TGeoPainter.h:136
double Double_t
Definition: RtypesCore.h:55
virtual void ModifiedPad(Bool_t update=kFALSE) const
Check if a pad and view are present and send signal "Modified" to pad.
virtual ~TGeoPainter()
*-*-*-*-*-*-*-*-*-*-*Geometry painter default destructor*-*-*-*-*-*-*-*-* *-* =======================...
Double_t y[n]
Definition: legend1.C:17
virtual Int_t GetVisOption() const
Definition: TGeoPainter.h:130
TGeoIteratorPlugin * fPlugin
Definition: TGeoPainter.h:74
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.
Int_t fExplodedView
Definition: TGeoPainter.h:56
virtual void ExecuteManagerEvent(TGeoManager *geom, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given volume.
TGeoVolume * fLastVolume
Definition: TGeoPainter.h:72
virtual void SetGeoManager(TGeoManager *geom)
Definition: TGeoPainter.h:161
Mother of all ROOT objects.
Definition: TObject.h:58
virtual TGeoVolume * GetDrawnVolume() const
Get currently drawn volume.
virtual void DrawShape(TGeoShape *shape, Option_t *option="")
Draw a shape.
virtual TGeoVolume * GetTopVolume() const
Definition: TGeoPainter.h:128
virtual void ExecuteShapeEvent(TGeoShape *shape, Int_t event, Int_t px, Int_t py)
Execute mouse actions on a given shape.
#define NULL
Definition: Rtypes.h:82
Bool_t fVisLock
Definition: TGeoPainter.h:57
Int_t fNVisNodes
Definition: TGeoPainter.h:53
Int_t fNsegments
Definition: TGeoPainter.h:52
virtual void BombTranslation(const Double_t *tr, Double_t *bombtr)
get the new 'bombed' translation vector according current exploded view mode
TGeoManager * fGeoManager
Definition: TGeoPainter.h:68
virtual void SetIteratorPlugin(TGeoIteratorPlugin *plugin)
Definition: TGeoPainter.h:162
TString fVisBranch
Definition: TGeoPainter.h:62
const Bool_t kTRUE
Definition: Rtypes.h:91
virtual void SetNsegments(Int_t nseg=20)
Set number of segments to approximate circles.
Double_t fMat[9]
Definition: TGeoPainter.h:51
Bool_t fIsRaytracing
Definition: TGeoPainter.h:60
virtual TGeoNode * GetCheckedNode()
Definition: TGeoPainter.h:123
Stopwatch class.
Definition: TStopwatch.h:30