Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGeoNode.h
Go to the documentation of this file.
1// @(#)root/geom:$Id$
2// Author: Andrei Gheata 24/10/01
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TGeoNode
13#define ROOT_TGeoNode
14
15#include "TGeoAtt.h"
16
17#include "TNamed.h"
18
19#include "TGeoVolume.h"
20
21#include "TGeoPatternFinder.h"
22
23// forward declarations
24class TString;
25class TGeoVolume;
26class TGeoShape;
27class TGeoMedium;
28class TGeoMatrix;
29class TGeoHMatrix;
30class TGeoExtension;
31
32////////////////////////////////////////////////////////////////////////////
33// //
34// TGeoNode - base class for logical nodes. They represent volumes //
35// positioned inside a mother volume //
36// //
37////////////////////////////////////////////////////////////////////////////
38
39class TGeoNode : public TNamed, public TGeoAtt {
40protected:
41 TGeoVolume *fVolume = nullptr; // volume associated with this
42 TGeoVolume *fMother = nullptr; // mother volume
43 Int_t fNumber = 0; // copy number
44 Int_t fNovlp = 0; // number of overlaps
45 Int_t *fOverlaps = nullptr; //[fNovlp] list of indices for overlapping brothers
46 TGeoExtension *fUserExtension = nullptr; //! Transient user-defined extension to volumes
47 TGeoExtension *fFWExtension = nullptr; //! Transient framework-defined extension to volumes
48
49 void CopyOverlaps(Int_t *ovlp, Int_t novlp);
50
51private:
52 TGeoNode(const TGeoNode &) = delete;
53 TGeoNode &operator=(const TGeoNode &) = delete;
54
55public:
56 enum {
62 };
63
64 // constructors
65 TGeoNode();
66 TGeoNode(const TGeoVolume *vol);
67 // destructor
68 ~TGeoNode() override;
69
70 void Browse(TBrowser *b) override;
71 virtual void cd() const {}
72 void CheckOverlaps(Double_t ovlp = 0.1, Option_t *option = ""); // *MENU*
73 void CheckShapes();
74 Int_t CountDaughters(Bool_t unique_volumes = kFALSE);
75 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
76 void Draw(Option_t *option = "") override;
77 void DrawOnly(Option_t *option = "");
78 void DrawOverlaps();
79 void ExecuteEvent(Int_t event, Int_t px, Int_t py) override;
80 void FillIdArray(Int_t &ifree, Int_t &nodeid, Int_t *array) const;
81 Int_t FindNode(const TGeoNode *node, Int_t level);
82 virtual Int_t GetByteCount() const { return 44; }
83 TGeoNode *GetDaughter(Int_t ind) const { return fVolume->GetNode(ind); }
84 virtual TGeoMatrix *GetMatrix() const = 0;
85
86 Int_t GetColour() const { return fVolume->GetLineColor(); }
87 virtual Int_t GetIndex() const { return 0; }
88 virtual TGeoPatternFinder *GetFinder() const { return nullptr; }
89 TGeoMedium *GetMedium() const { return fVolume->GetMedium(); }
90 TGeoVolume *GetMotherVolume() const { return fMother; }
92 TObjArray *GetNodes() const { return fVolume->GetNodes(); }
93 Int_t GetNumber() const { return fNumber; }
94 Int_t *GetOverlaps(Int_t &novlp) const
95 {
96 novlp = fNovlp;
97 return fOverlaps;
98 }
99 TGeoVolume *GetVolume() const { return fVolume; }
100 char *GetObjectInfo(Int_t px, Int_t py) const override;
101 virtual Int_t GetOptimalVoxels() const { return 0; }
102 void InspectNode() const; // *MENU*
104 Bool_t IsFolder() const override { return (GetNdaughters() ? kTRUE : kFALSE); }
106 Bool_t IsOnScreen() const; // *MENU*
111 Bool_t MayOverlap(Int_t iother) const;
112
113 virtual TGeoNode *MakeCopyNode() const { return nullptr; }
114 Double_t Safety(const Double_t *point, Bool_t in = kTRUE) const;
115 void SaveAttributes(std::ostream &out);
117 void SetVolume(TGeoVolume *volume) { fVolume = volume; }
118 void SetNumber(Int_t number) { fNumber = number; }
122 void SetVisibility(Bool_t vis = kTRUE) override; // *MENU*
123 void SetInvisible() { SetVisibility(kFALSE); } // *MENU*
125 void SetMotherVolume(TGeoVolume *mother) { fMother = mother; }
126 void SetOverlaps(Int_t *ovlp, Int_t novlp);
128 void SetFWExtension(TGeoExtension *ext);
133
134 virtual void MasterToLocal(const Double_t *master, Double_t *local) const;
135 virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const;
136 virtual void LocalToMaster(const Double_t *local, Double_t *master) const;
137 virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const;
138
139 void ls(Option_t *option = "") const override;
140 void Paint(Option_t *option = "") override;
141 void PrintCandidates() const; // *MENU*
142 void PrintOverlaps() const; // *MENU*
143 void VisibleDaughters(Bool_t vis = kTRUE); // *MENU*
144
145 ClassDefOverride(TGeoNode, 2) // base class for all geometry nodes
146};
147
148////////////////////////////////////////////////////////////////////////////
149// //
150// TGeoNodeMatrix - node containing a general transformation //
151// //
152////////////////////////////////////////////////////////////////////////////
153
154class TGeoNodeMatrix : public TGeoNode {
155private:
156 TGeoMatrix *fMatrix = nullptr; // transf. matrix of fNode in fMother system
157
158 TGeoNodeMatrix(const TGeoNodeMatrix &gnm) = delete;
160
161public:
162 // constructors
164 TGeoNodeMatrix(const TGeoVolume *vol, const TGeoMatrix *matrix);
165 // destructor
166 ~TGeoNodeMatrix() override;
167
168 Int_t GetByteCount() const override;
169 Int_t GetOptimalVoxels() const override;
170 Bool_t IsFolder() const override { return kTRUE; }
171 TGeoMatrix *GetMatrix() const override { return fMatrix; }
172 TGeoNode *MakeCopyNode() const override;
173 void SetMatrix(const TGeoMatrix *matrix);
174
175 ClassDefOverride(TGeoNodeMatrix, 1) // a geometry node in the general case
176};
177
178////////////////////////////////////////////////////////////////////////////
179// //
180// TGeoNodeOffset - node containing only an translation offset //
181// //
182////////////////////////////////////////////////////////////////////////////
183
184class TGeoNodeOffset : public TGeoNode {
185private:
186 Double_t fOffset = 0.; // X offset for this node with respect to its mother
187 Int_t fIndex = 0; // index of this node in the division
188 TGeoPatternFinder *fFinder = nullptr; // finder for this node
189
192
193public:
194 // constructors
197 // destructor
198 ~TGeoNodeOffset() override;
199
200 void cd() const override { fFinder->cd(fIndex); }
201 Double_t GetOffset() const { return fOffset; }
202 Int_t GetIndex() const override;
203 TGeoPatternFinder *GetFinder() const override { return fFinder; }
204 TGeoMatrix *GetMatrix() const override
205 {
206 cd();
207 return fFinder->GetMatrix();
208 }
209 TGeoNode *MakeCopyNode() const override;
210 void SetFinder(TGeoPatternFinder *finder) { fFinder = finder; }
211
212 ClassDefOverride(TGeoNodeOffset, 1) // a geometry node with just an offset
213};
214
215////////////////////////////////////////////////////////////////////////////
216// //
217// TGeoIteratorPlugin - Plugin for a TGeoIterator providing the method //
218// ProcessNode each time Next is called. //
219// //
220////////////////////////////////////////////////////////////////////////////
221
222class TGeoIterator;
223
225protected:
226 const TGeoIterator *fIterator = nullptr; // Caller iterator
227private:
228 // No copy
231
232public:
235
236 virtual void ProcessNode() = 0;
237 void SetIterator(const TGeoIterator *iter) { fIterator = iter; }
238
239 ClassDefOverride(TGeoIteratorPlugin, 0) // ABC for user plugins connecter to a geometry iterator.
240};
241
242////////////////////////////////////////////////////////////////////////////
243// //
244// TGeoIterator - iterator for the node tree //
245// //
246////////////////////////////////////////////////////////////////////////////
247
249private:
250 TGeoVolume *fTop = nullptr; // Top volume of the iterated branch
251 Bool_t fMustResume = kFALSE; // Private flag to resume from current node.
252 Bool_t fMustStop = kFALSE; // Private flag to signal that the iterator has finished.
253 Int_t fLevel = 0; // Current level in the tree
254 Int_t fType = 0; // Type of iteration
255 Int_t *fArray = nullptr; // Array of node indices for the current path
256 TGeoHMatrix *fMatrix = nullptr; // Current global matrix
257 TString fTopName; // User name for top
258 TGeoIteratorPlugin *fPlugin = nullptr; // User iterator plugin
259 Bool_t fPluginAutoexec = kFALSE; // Plugin automatically executed during next()
260
261 void IncreaseArray();
262
263protected:
265 : fTop(nullptr),
268 fLevel(0),
269 fType(0),
270 fArray(nullptr),
271 fMatrix(nullptr),
272 fTopName(),
273 fPlugin(nullptr),
275 {
276 }
277
278public:
280 TGeoIterator(const TGeoIterator &iter);
281 virtual ~TGeoIterator();
282
283 TGeoIterator &operator=(const TGeoIterator &iter);
285 TGeoNode *Next();
286 void Up()
287 {
288 if (fLevel > 0)
289 fLevel--;
290 }
291
292 const TGeoMatrix *GetCurrentMatrix() const;
293 Int_t GetIndex(Int_t i) const { return ((i <= fLevel) ? fArray[i] : -1); }
294 Int_t GetLevel() const { return fLevel; }
295 TGeoNode *GetNode(Int_t level) const;
296 void GetPath(TString &path) const;
298
299 TGeoVolume *GetTopVolume() const { return fTop; }
300 Int_t GetType() const { return fType; }
301 void Reset(TGeoVolume *top = nullptr);
302 void SetUserPlugin(TGeoIteratorPlugin *plugin);
305 void SetTopName(const char *name);
306 void Skip();
307
308 ClassDef(TGeoIterator, 0) // Iterator for geometry.
309};
310
311#endif
#define b(i)
Definition RSha256.hxx:100
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
double Double_t
Definition RtypesCore.h:59
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
const char Option_t
Definition RtypesCore.h:66
#define ClassDef(name, id)
Definition Rtypes.h:337
#define BIT(n)
Definition Rtypes.h:85
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char name[80]
Definition TGX11.cxx:110
virtual Color_t GetLineColor() const
Return the line color.
Definition TAttLine.h:33
Using a TBrowser one can browse all ROOT objects.
Definition TBrowser.h:37
Visualization and tracking attributes for volumes and nodes.
Definition TGeoAtt.h:17
Bool_t IsVisible() const
Definition TGeoAtt.h:83
Bool_t IsVisDaughters() const
Definition TGeoAtt.h:84
ABC for user objects attached to TGeoVolume or TGeoNode.
Matrix class used for computing global transformations Should NOT be used for node definition.
Definition TGeoMatrix.h:458
TGeoIteratorPlugin & operator=(const TGeoIteratorPlugin &)
~TGeoIteratorPlugin() override
Definition TGeoNode.h:234
void SetIterator(const TGeoIterator *iter)
Definition TGeoNode.h:237
TGeoIteratorPlugin(const TGeoIteratorPlugin &)
const TGeoIterator * fIterator
Definition TGeoNode.h:226
virtual void ProcessNode()=0
A geometry iterator.
Definition TGeoNode.h:248
Int_t GetType() const
Definition TGeoNode.h:300
TGeoIterator & operator=(const TGeoIterator &iter)
Assignment.
void Reset(TGeoVolume *top=nullptr)
Resets the iterator for volume TOP.
TGeoIteratorPlugin * fPlugin
Definition TGeoNode.h:258
virtual ~TGeoIterator()
Destructor.
const TGeoMatrix * GetCurrentMatrix() const
Returns global matrix for current node.
void SetType(Int_t type)
Definition TGeoNode.h:304
Bool_t fMustStop
Definition TGeoNode.h:252
void SetTopName(const char *name)
Set the top name for path.
Bool_t fMustResume
Definition TGeoNode.h:251
Int_t fLevel
Definition TGeoNode.h:253
Bool_t fPluginAutoexec
Definition TGeoNode.h:259
Int_t fType
Definition TGeoNode.h:254
void SetPluginAutoexec(Bool_t mode)
Definition TGeoNode.h:303
Int_t GetLevel() const
Definition TGeoNode.h:294
void GetPath(TString &path) const
Returns the path for the current node.
void Up()
Definition TGeoNode.h:286
void IncreaseArray()
Increase by 30 the size of the array.
TGeoNode * GetNode(Int_t level) const
Returns current node at a given level.
TGeoNode * operator()()
Returns next node.
TGeoHMatrix * fMatrix
Definition TGeoNode.h:256
Int_t GetIndex(Int_t i) const
Definition TGeoNode.h:293
TGeoVolume * fTop
Definition TGeoNode.h:250
TGeoNode * Next()
Returns next node.
void SetUserPlugin(TGeoIteratorPlugin *plugin)
Set a plugin.
void Skip()
Stop iterating the current branch.
TGeoIteratorPlugin * GetUserPlugin() const
Definition TGeoNode.h:297
Int_t * fArray
Definition TGeoNode.h:255
TString fTopName
Definition TGeoNode.h:257
TGeoVolume * GetTopVolume() const
Definition TGeoNode.h:299
Geometrical transformation package.
Definition TGeoMatrix.h:38
Media are used to store properties related to tracking and which are useful only when using geometry ...
Definition TGeoMedium.h:23
A node containing local transformation.
Definition TGeoNode.h:154
void SetMatrix(const TGeoMatrix *matrix)
Matrix setter.
Definition TGeoNode.cxx:827
Bool_t IsFolder() const override
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Definition TGeoNode.h:170
TGeoNode * MakeCopyNode() const override
Make a copy of this node.
Definition TGeoNode.cxx:800
Int_t GetByteCount() const override
return the total size in bytes of this node
Definition TGeoNode.cxx:770
TGeoMatrix * GetMatrix() const override
Definition TGeoNode.h:171
TGeoNodeMatrix()
Default constructor.
Definition TGeoNode.cxx:747
TGeoNodeMatrix & operator=(const TGeoNodeMatrix &gnm)=delete
TGeoMatrix * fMatrix
Definition TGeoNode.h:156
~TGeoNodeMatrix() override
Destructor.
Definition TGeoNode.cxx:765
Int_t GetOptimalVoxels() const override
Returns type of optimal voxelization for this node.
Definition TGeoNode.cxx:782
TGeoNodeMatrix(const TGeoNodeMatrix &gnm)=delete
Node containing an offset.
Definition TGeoNode.h:184
Double_t fOffset
Definition TGeoNode.h:186
void SetFinder(TGeoPatternFinder *finder)
Definition TGeoNode.h:210
TGeoPatternFinder * fFinder
Definition TGeoNode.h:188
TGeoMatrix * GetMatrix() const override
Definition TGeoNode.h:204
TGeoPatternFinder * GetFinder() const override
Definition TGeoNode.h:203
void cd() const override
Definition TGeoNode.h:200
TGeoNodeOffset & operator=(const TGeoNodeOffset &)=delete
~TGeoNodeOffset() override
Destructor.
Definition TGeoNode.cxx:866
TGeoNodeOffset()
Default constructor.
Definition TGeoNode.cxx:844
Int_t GetIndex() const override
Get the index of this offset.
Definition TGeoNode.cxx:871
TGeoNodeOffset(const TGeoNodeOffset &)=delete
Double_t GetOffset() const
Definition TGeoNode.h:201
TGeoNode * MakeCopyNode() const override
Make a copy of this node.
Definition TGeoNode.cxx:879
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
Definition TGeoNode.h:39
TGeoMedium * GetMedium() const
Definition TGeoNode.h:89
Bool_t IsOverlapping() const
Definition TGeoNode.h:107
void SetFWExtension(TGeoExtension *ext)
Connect framework defined extension to the node.
Definition TGeoNode.cxx:517
Bool_t IsVisDaughters() const
Definition TGeoNode.h:110
Bool_t IsOnScreen() const
check if this node is drawn. Assumes that this node is current
Definition TGeoNode.cxx:294
TGeoVolume * GetVolume() const
Definition TGeoNode.h:99
void SaveAttributes(std::ostream &out)
save attributes for this node
Definition TGeoNode.cxx:439
void SetVolume(TGeoVolume *volume)
Definition TGeoNode.h:117
TGeoVolume * fVolume
Definition TGeoNode.h:41
void SetAllInvisible()
Definition TGeoNode.h:124
Bool_t IsOffset() const
Definition TGeoNode.h:105
void CheckShapes()
check for wrong parameters in shapes
Definition TGeoNode.cxx:329
void PrintOverlaps() const
print possible overlapping nodes
Definition TGeoNode.cxx:665
TGeoExtension * fFWExtension
Transient user-defined extension to volumes.
Definition TGeoNode.h:47
TGeoExtension * GetUserExtension() const
Definition TGeoNode.h:129
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
compute the closest distance of approach from point px,py to this node
Definition TGeoNode.cxx:251
TGeoNode()
Default constructor.
Definition TGeoNode.cxx:95
TGeoExtension * fUserExtension
Definition TGeoNode.h:46
virtual Int_t GetByteCount() const
Definition TGeoNode.h:82
Int_t * fOverlaps
Definition TGeoNode.h:45
Int_t fNovlp
Definition TGeoNode.h:44
void SetOverlapping(Bool_t flag=kTRUE)
Definition TGeoNode.h:120
TGeoExtension * GrabFWExtension() const
Get a copy of the framework extension pointer.
Definition TGeoNode.cxx:543
void SetOverlaps(Int_t *ovlp, Int_t novlp)
set the list of overlaps for this node (ovlp must be created with operator new)
Definition TGeoNode.cxx:705
void PrintCandidates() const
print daughters candidates for containing current point
Definition TGeoNode.cxx:614
void ls(Option_t *option="") const override
Print the path (A/B/C/...) to this node on stdout.
Definition TGeoNode.cxx:598
void SetInvisible()
Definition TGeoNode.h:123
Int_t GetNdaughters() const
Definition TGeoNode.h:91
TGeoNode * GetDaughter(Int_t ind) const
Definition TGeoNode.h:83
void SetCurrentPoint(Double_t x, Double_t y, Double_t z)
Definition TGeoNode.h:116
virtual Int_t GetOptimalVoxels() const
Definition TGeoNode.h:101
virtual TGeoMatrix * GetMatrix() const =0
Bool_t IsCloned() const
Definition TGeoNode.h:103
void SetVisibility(Bool_t vis=kTRUE) override
Set visibility of the node (obsolete).
Definition TGeoNode.cxx:716
TGeoNode(const TGeoNode &)=delete
Bool_t IsFolder() const override
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Definition TGeoNode.h:104
Bool_t MayOverlap(Int_t iother) const
Check the overlab between the bounding box of the node overlaps with the one the brother with index I...
Definition TGeoNode.cxx:553
Bool_t IsVisible() const
Definition TGeoNode.h:109
void CopyOverlaps(Int_t *ovlp, Int_t novlp)
Transient framework-defined extension to volumes.
Definition TGeoNode.cxx:692
TGeoNode & operator=(const TGeoNode &)=delete
void SetMotherVolume(TGeoVolume *mother)
Definition TGeoNode.h:125
virtual void cd() const
Definition TGeoNode.h:71
void SetUserExtension(TGeoExtension *ext)
Connect user-defined extension to the node.
Definition TGeoNode.cxx:500
virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const
Convert a vector from local reference system to mother reference.
Definition TGeoNode.cxx:590
void Browse(TBrowser *b) override
How-to-browse for a node.
Definition TGeoNode.cxx:147
Int_t GetColour() const
Definition TGeoNode.h:86
void Paint(Option_t *option="") override
Paint this node and its content according to visualization settings.
Definition TGeoNode.cxx:603
void DrawOverlaps()
Method drawing the overlap candidates with this node.
Definition TGeoNode.cxx:363
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
Convert the point coordinates from local reference system to mother reference.
Definition TGeoNode.cxx:582
Int_t CountDaughters(Bool_t unique_volumes=kFALSE)
Returns the number of daughters.
Definition TGeoNode.cxx:165
virtual TGeoNode * MakeCopyNode() const
Definition TGeoNode.h:113
void DrawOnly(Option_t *option="")
draw only this node independently of its vis options
Definition TGeoNode.cxx:342
TGeoVolume * GetMotherVolume() const
Definition TGeoNode.h:90
@ kGeoNodeCloned
Definition TGeoNode.h:61
@ kGeoNodeOverlap
Definition TGeoNode.h:60
@ kGeoNodeMatrix
Definition TGeoNode.h:57
@ kGeoNodeOffset
Definition TGeoNode.h:58
@ kGeoNodeVC
Definition TGeoNode.h:59
Int_t * GetOverlaps(Int_t &novlp) const
Definition TGeoNode.h:94
void SetVirtual()
Definition TGeoNode.h:121
Int_t GetNumber() const
Definition TGeoNode.h:93
void SetNumber(Int_t number)
Definition TGeoNode.h:118
virtual void MasterToLocal(const Double_t *master, Double_t *local) const
Convert the point coordinates from mother reference to local reference system.
Definition TGeoNode.cxx:566
virtual Int_t GetIndex() const
Definition TGeoNode.h:87
TGeoExtension * GrabUserExtension() const
Get a copy of the user extension pointer.
Definition TGeoNode.cxx:531
Int_t FindNode(const TGeoNode *node, Int_t level)
Search for a node within the branch of this one.
Definition TGeoNode.cxx:411
void VisibleDaughters(Bool_t vis=kTRUE)
Set visibility of the daughters (obsolete).
Definition TGeoNode.cxx:729
void FillIdArray(Int_t &ifree, Int_t &nodeid, Int_t *array) const
Fill array with node id. Recursive on node branch.
Definition TGeoNode.cxx:392
TGeoExtension * GetFWExtension() const
Definition TGeoNode.h:130
Int_t fNumber
Definition TGeoNode.h:43
virtual TGeoPatternFinder * GetFinder() const
Definition TGeoNode.h:88
virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const
Convert a vector from mother reference to local reference system.
Definition TGeoNode.cxx:574
char * GetObjectInfo(Int_t px, Int_t py) const override
Get node info for the browser.
Definition TGeoNode.cxx:281
Bool_t IsVirtual() const
Definition TGeoNode.h:108
~TGeoNode() override
Destructor.
Definition TGeoNode.cxx:130
void SetCloned(Bool_t flag=kTRUE)
Definition TGeoNode.h:119
TObjArray * GetNodes() const
Definition TGeoNode.h:92
void CheckOverlaps(Double_t ovlp=0.1, Option_t *option="")
Check overlaps bigger than OVLP hierarchically, starting with this node.
Definition TGeoNode.cxx:192
void InspectNode() const
Inspect this node.
Definition TGeoNode.cxx:304
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute mouse actions on this volume.
Definition TGeoNode.cxx:268
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
computes the closest distance from given point to this shape
Definition TGeoNode.cxx:682
TGeoVolume * fMother
Definition TGeoNode.h:42
Base finder class for patterns.
virtual void cd(Int_t)
virtual TGeoMatrix * GetMatrix()
Return current matrix.
Base abstract class for all shapes.
Definition TGeoShape.h:25
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition TGeoVolume.h:43
TGeoMedium * GetMedium() const
Definition TGeoVolume.h:175
void SetCurrentPoint(Double_t x, Double_t y, Double_t z)
Set the current tracking point.
Int_t GetNdaughters() const
Definition TGeoVolume.h:362
TObjArray * GetNodes()
Definition TGeoVolume.h:169
TGeoNode * GetNode(const char *name) const
get the pointer to a daughter node
virtual Bool_t IsVisible() const
Definition TGeoVolume.h:155
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
An array of TObjects.
Definition TObjArray.h:31
Mother of all ROOT objects.
Definition TObject.h:41
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition TObject.h:201
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition TObject.cxx:780
Basic string class.
Definition TString.h:139
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
th1 Draw()