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
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 CheckOverlapsBySampling(Double_t ovlp = 0.1, Int_t npoints = 1000000); // *MENU*
74 void CheckShapes();
76 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
77 void Draw(Option_t *option = "") override;
78 void DrawOnly(Option_t *option = "");
79 void DrawOverlaps();
80 void ExecuteEvent(Int_t event, Int_t px, Int_t py) override;
81 void FillIdArray(Int_t &ifree, Int_t &nodeid, Int_t *array) const;
82 Int_t FindNode(const TGeoNode *node, Int_t level);
83 virtual Int_t GetByteCount() const { return 44; }
85 virtual TGeoMatrix *GetMatrix() const = 0;
86
87 Int_t GetColour() const { return fVolume->GetLineColor(); }
88 virtual Int_t GetIndex() const { return 0; }
89 virtual TGeoPatternFinder *GetFinder() const { return nullptr; }
90 TGeoMedium *GetMedium() const { return fVolume->GetMedium(); }
91 TGeoVolume *GetMotherVolume() const { return fMother; }
93 TObjArray *GetNodes() const { return fVolume->GetNodes(); }
94 Int_t GetNumber() const { return fNumber; }
96 {
97 novlp = fNovlp;
98 return fOverlaps;
99 }
100 TGeoVolume *GetVolume() const { return fVolume; }
101 char *GetObjectInfo(Int_t px, Int_t py) const override;
102 virtual Int_t GetOptimalVoxels() const { return 0; }
103 void InspectNode() const; // *MENU*
105 Bool_t IsFolder() const override { return (GetNdaughters() ? kTRUE : kFALSE); }
107 Bool_t IsOnScreen() const; // *MENU*
113
114 virtual TGeoNode *MakeCopyNode() const { return nullptr; }
115 Double_t Safety(const Double_t *point, Bool_t in = kTRUE) const;
116 void SaveAttributes(std::ostream &out);
118 void SetVolume(TGeoVolume *volume) { fVolume = volume; }
119 void SetNumber(Int_t number) { fNumber = number; }
123 void SetVisibility(Bool_t vis = kTRUE) override; // *MENU*
124 void SetInvisible() { SetVisibility(kFALSE); } // *MENU*
134
135 virtual void MasterToLocal(const Double_t *master, Double_t *local) const;
136 virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const;
137 virtual void LocalToMaster(const Double_t *local, Double_t *master) const;
138 virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const;
139
140 void ls(Option_t *option = "") const override;
141 void Paint(Option_t *option = "") override;
142 void PrintCandidates() const; // *MENU*
143 void PrintOverlaps() const; // *MENU*
144 void VisibleDaughters(Bool_t vis = kTRUE); // *MENU*
145
146 ClassDefOverride(TGeoNode, 2) // base class for all geometry nodes
147};
148
149////////////////////////////////////////////////////////////////////////////
150// //
151// TGeoNodeMatrix - node containing a general transformation //
152// //
153////////////////////////////////////////////////////////////////////////////
154
155class TGeoNodeMatrix : public TGeoNode {
156private:
157 TGeoMatrix *fMatrix = nullptr; // transf. matrix of fNode in fMother system
158
161
162public:
163 // constructors
165 TGeoNodeMatrix(const TGeoVolume *vol, const TGeoMatrix *matrix);
166 // destructor
167 ~TGeoNodeMatrix() override;
168
169 Int_t GetByteCount() const override;
170 Int_t GetOptimalVoxels() const override;
171 Bool_t IsFolder() const override { return kTRUE; }
172 TGeoMatrix *GetMatrix() const override { return fMatrix; }
173 TGeoNode *MakeCopyNode() const override;
174 void SetMatrix(const TGeoMatrix *matrix);
175
176 ClassDefOverride(TGeoNodeMatrix, 1) // a geometry node in the general case
177};
178
179////////////////////////////////////////////////////////////////////////////
180// //
181// TGeoNodeOffset - node containing only an translation offset //
182// //
183////////////////////////////////////////////////////////////////////////////
184
185class TGeoNodeOffset : public TGeoNode {
186private:
187 Double_t fOffset = 0.; // X offset for this node with respect to its mother
188 Int_t fIndex = 0; // index of this node in the division
189 TGeoPatternFinder *fFinder = nullptr; // finder for this node
190
193
194public:
195 // constructors
198 // destructor
199 ~TGeoNodeOffset() override;
200
201 void cd() const override { fFinder->cd(fIndex); }
202 Double_t GetOffset() const { return fOffset; }
203 Int_t GetIndex() const override;
204 TGeoPatternFinder *GetFinder() const override { return fFinder; }
205 TGeoMatrix *GetMatrix() const override
206 {
207 cd();
208 return fFinder->GetMatrix();
209 }
210 TGeoNode *MakeCopyNode() const override;
212
213 ClassDefOverride(TGeoNodeOffset, 1) // a geometry node with just an offset
214};
215
216////////////////////////////////////////////////////////////////////////////
217// //
218// TGeoIteratorPlugin - Plugin for a TGeoIterator providing the method //
219// ProcessNode each time Next is called. //
220// //
221////////////////////////////////////////////////////////////////////////////
222
223class TGeoIterator;
224
226protected:
227 const TGeoIterator *fIterator = nullptr; // Caller iterator
228private:
229 // No copy
232
233public:
236
237 virtual void ProcessNode() = 0;
238 void SetIterator(const TGeoIterator *iter) { fIterator = iter; }
239
240 ClassDefOverride(TGeoIteratorPlugin, 0) // ABC for user plugins connecter to a geometry iterator.
241};
242
243////////////////////////////////////////////////////////////////////////////
244// //
245// TGeoIterator - iterator for the node tree //
246// //
247////////////////////////////////////////////////////////////////////////////
248
250private:
251 TGeoVolume *fTop = nullptr; // Top volume of the iterated branch
252 Bool_t fMustResume = kFALSE; // Private flag to resume from current node.
253 Bool_t fMustStop = kFALSE; // Private flag to signal that the iterator has finished.
254 Int_t fLevel = 0; // Current level in the tree
255 Int_t fType = 0; // Type of iteration
256 Int_t *fArray = nullptr; // Array of node indices for the current path
257 TGeoHMatrix *fMatrix = nullptr; // Current global matrix
258 TString fTopName; // User name for top
259 TGeoIteratorPlugin *fPlugin = nullptr; // User iterator plugin
260 Bool_t fPluginAutoexec = kFALSE; // Plugin automatically executed during next()
261
262 void IncreaseArray();
263
264protected:
266 : fTop(nullptr),
269 fLevel(0),
270 fType(0),
271 fArray(nullptr),
272 fMatrix(nullptr),
273 fTopName(),
274 fPlugin(nullptr),
276 {
277 }
278
279public:
281 TGeoIterator(const TGeoIterator &iter);
282 virtual ~TGeoIterator();
283
284 TGeoIterator &operator=(const TGeoIterator &iter);
286 TGeoNode *Next();
287 void Up()
288 {
289 if (fLevel > 0)
290 fLevel--;
291 }
292
293 const TGeoMatrix *GetCurrentMatrix() const;
294 Int_t GetIndex(Int_t i) const { return ((i <= fLevel) ? fArray[i] : -1); }
295 Int_t GetLevel() const { return fLevel; }
296 TGeoNode *GetNode(Int_t level) const;
297 void GetPath(TString &path) const;
299
300 TGeoVolume *GetTopVolume() const { return fTop; }
301 Int_t GetType() const { return fType; }
302 void Reset(TGeoVolume *top = nullptr);
306 void SetTopName(const char *name);
307 void Skip();
308
309 ClassDef(TGeoIterator, 0) // Iterator for geometry.
310};
311
312#endif
#define b(i)
Definition RSha256.hxx:100
bool Bool_t
Boolean (0=false, 1=true) (bool)
Definition RtypesCore.h:77
int Int_t
Signed integer 4 bytes (int)
Definition RtypesCore.h:59
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
const char Option_t
Option string (const char)
Definition RtypesCore.h:80
#define ClassDef(name, id)
Definition Rtypes.h:344
#define BIT(n)
Definition Rtypes.h:91
#define ClassDefOverride(name, id)
Definition Rtypes.h:348
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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:35
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:459
TGeoIteratorPlugin & operator=(const TGeoIteratorPlugin &)
~TGeoIteratorPlugin() override
Definition TGeoNode.h:235
void SetIterator(const TGeoIterator *iter)
Definition TGeoNode.h:238
TGeoIteratorPlugin(const TGeoIteratorPlugin &)
const TGeoIterator * fIterator
Definition TGeoNode.h:227
virtual void ProcessNode()=0
A geometry iterator.
Definition TGeoNode.h:249
Int_t GetType() const
Definition TGeoNode.h:301
TGeoIterator & operator=(const TGeoIterator &iter)
Assignment.
void Reset(TGeoVolume *top=nullptr)
Resets the iterator for volume TOP.
TGeoIteratorPlugin * fPlugin
Definition TGeoNode.h:259
virtual ~TGeoIterator()
Destructor.
const TGeoMatrix * GetCurrentMatrix() const
Returns global matrix for current node.
void SetType(Int_t type)
Definition TGeoNode.h:305
Bool_t fMustStop
Definition TGeoNode.h:253
void SetTopName(const char *name)
Set the top name for path.
Bool_t fMustResume
Definition TGeoNode.h:252
Int_t fLevel
Definition TGeoNode.h:254
Bool_t fPluginAutoexec
Definition TGeoNode.h:260
Int_t fType
Definition TGeoNode.h:255
void SetPluginAutoexec(Bool_t mode)
Definition TGeoNode.h:304
Int_t GetLevel() const
Definition TGeoNode.h:295
void GetPath(TString &path) const
Returns the path for the current node.
void Up()
Definition TGeoNode.h:287
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:257
Int_t GetIndex(Int_t i) const
Definition TGeoNode.h:294
TGeoVolume * fTop
Definition TGeoNode.h:251
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:298
Int_t * fArray
Definition TGeoNode.h:256
TString fTopName
Definition TGeoNode.h:258
TGeoVolume * GetTopVolume() const
Definition TGeoNode.h:300
Geometrical transformation package.
Definition TGeoMatrix.h:39
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:155
void SetMatrix(const TGeoMatrix *matrix)
Matrix setter.
Definition TGeoNode.cxx:955
Bool_t IsFolder() const override
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Definition TGeoNode.h:171
TGeoNode * MakeCopyNode() const override
Make a copy of this node.
Definition TGeoNode.cxx:928
Int_t GetByteCount() const override
return the total size in bytes of this node
Definition TGeoNode.cxx:898
TGeoMatrix * GetMatrix() const override
Definition TGeoNode.h:172
TGeoNodeMatrix()
Default constructor.
Definition TGeoNode.cxx:875
TGeoNodeMatrix & operator=(const TGeoNodeMatrix &gnm)=delete
TGeoMatrix * fMatrix
Definition TGeoNode.h:157
~TGeoNodeMatrix() override
Destructor.
Definition TGeoNode.cxx:893
Int_t GetOptimalVoxels() const override
Returns type of optimal voxelization for this node.
Definition TGeoNode.cxx:910
TGeoNodeMatrix(const TGeoNodeMatrix &gnm)=delete
Node containing an offset.
Definition TGeoNode.h:185
Double_t fOffset
Definition TGeoNode.h:187
void SetFinder(TGeoPatternFinder *finder)
Definition TGeoNode.h:211
TGeoPatternFinder * fFinder
Definition TGeoNode.h:189
TGeoMatrix * GetMatrix() const override
Definition TGeoNode.h:205
TGeoPatternFinder * GetFinder() const override
Definition TGeoNode.h:204
void cd() const override
Definition TGeoNode.h:201
TGeoNodeOffset & operator=(const TGeoNodeOffset &)=delete
~TGeoNodeOffset() override
Destructor.
Definition TGeoNode.cxx:992
TGeoNodeOffset()
Default constructor.
Definition TGeoNode.cxx:970
Int_t GetIndex() const override
Get the index of this offset.
Definition TGeoNode.cxx:997
TGeoNodeOffset(const TGeoNodeOffset &)=delete
Double_t GetOffset() const
Definition TGeoNode.h:202
TGeoNode * MakeCopyNode() const override
Make a copy of this node.
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:90
Bool_t IsOverlapping() const
Definition TGeoNode.h:108
void SetFWExtension(TGeoExtension *ext)
Connect framework defined extension to the node.
Definition TGeoNode.cxx:646
Bool_t IsVisDaughters() const
Definition TGeoNode.h:111
Bool_t IsOnScreen() const
check if this node is drawn. Assumes that this node is current
Definition TGeoNode.cxx:422
TGeoVolume * GetVolume() const
Definition TGeoNode.h:100
void SaveAttributes(std::ostream &out)
save attributes for this node
Definition TGeoNode.cxx:567
void SetVolume(TGeoVolume *volume)
Definition TGeoNode.h:118
TGeoVolume * fVolume
Definition TGeoNode.h:41
void CheckOverlapsBySampling(Double_t ovlp=0.1, Int_t npoints=1000000)
Check overlaps bigger than OVLP hierarchically, starting with this node.
Definition TGeoNode.cxx:198
void SetAllInvisible()
Definition TGeoNode.h:125
Bool_t IsOffset() const
Definition TGeoNode.h:106
void CheckShapes()
check for wrong parameters in shapes
Definition TGeoNode.cxx:457
void PrintOverlaps() const
print possible overlapping nodes
Definition TGeoNode.cxx:795
TGeoExtension * fFWExtension
Transient user-defined extension to volumes.
Definition TGeoNode.h:47
TGeoExtension * GetUserExtension() const
Definition TGeoNode.h:130
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:379
TGeoNode()
Default constructor.
Definition TGeoNode.cxx:100
TGeoExtension * fUserExtension
Definition TGeoNode.h:46
virtual Int_t GetByteCount() const
Definition TGeoNode.h:83
Int_t * fOverlaps
Definition TGeoNode.h:45
Int_t fNovlp
Definition TGeoNode.h:44
void SetOverlapping(Bool_t flag=kTRUE)
Definition TGeoNode.h:121
TGeoExtension * GrabFWExtension() const
Get a copy of the framework extension pointer.
Definition TGeoNode.cxx:673
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:835
void PrintCandidates() const
print daughters candidates for containing current point
Definition TGeoNode.cxx:744
void ls(Option_t *option="") const override
Print the path (A/B/C/...) to this node on stdout.
Definition TGeoNode.cxx:728
void SetInvisible()
Definition TGeoNode.h:124
Int_t GetNdaughters() const
Definition TGeoNode.h:92
TGeoNode * GetDaughter(Int_t ind) const
Definition TGeoNode.h:84
void SetCurrentPoint(Double_t x, Double_t y, Double_t z)
Definition TGeoNode.h:117
virtual Int_t GetOptimalVoxels() const
Definition TGeoNode.h:102
virtual TGeoMatrix * GetMatrix() const =0
Bool_t IsCloned() const
Definition TGeoNode.h:104
void SetVisibility(Bool_t vis=kTRUE) override
Set visibility of the node (obsolete).
Definition TGeoNode.cxx:846
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:105
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:683
Bool_t IsVisible() const
Definition TGeoNode.h:110
void CopyOverlaps(Int_t *ovlp, Int_t novlp)
Transient framework-defined extension to volumes.
Definition TGeoNode.cxx:822
TGeoNode & operator=(const TGeoNode &)=delete
void SetMotherVolume(TGeoVolume *mother)
Definition TGeoNode.h:126
virtual void cd() const
Definition TGeoNode.h:71
void SetUserExtension(TGeoExtension *ext)
Connect user-defined extension to the node.
Definition TGeoNode.cxx:628
virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const
Convert a vector from local reference system to mother reference.
Definition TGeoNode.cxx:720
void Browse(TBrowser *b) override
How-to-browse for a node.
Definition TGeoNode.cxx:152
Int_t GetColour() const
Definition TGeoNode.h:87
void Paint(Option_t *option="") override
Paint this node and its content according to visualization settings.
Definition TGeoNode.cxx:733
void DrawOverlaps()
Method drawing the overlap candidates with this node.
Definition TGeoNode.cxx:491
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:712
Int_t CountDaughters(Bool_t unique_volumes=kFALSE)
Returns the number of daughters.
Definition TGeoNode.cxx:170
virtual TGeoNode * MakeCopyNode() const
Definition TGeoNode.h:114
void DrawOnly(Option_t *option="")
draw only this node independently of its vis options
Definition TGeoNode.cxx:470
TGeoVolume * GetMotherVolume() const
Definition TGeoNode.h:91
@ 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:95
void SetVirtual()
Definition TGeoNode.h:122
Int_t GetNumber() const
Definition TGeoNode.h:94
void SetNumber(Int_t number)
Definition TGeoNode.h:119
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:696
virtual Int_t GetIndex() const
Definition TGeoNode.h:88
TGeoExtension * GrabUserExtension() const
Get a copy of the user extension pointer.
Definition TGeoNode.cxx:661
Int_t FindNode(const TGeoNode *node, Int_t level)
Search for a node within the branch of this one.
Definition TGeoNode.cxx:539
void VisibleDaughters(Bool_t vis=kTRUE)
Set visibility of the daughters (obsolete).
Definition TGeoNode.cxx:859
void FillIdArray(Int_t &ifree, Int_t &nodeid, Int_t *array) const
Fill array with node id. Recursive on node branch.
Definition TGeoNode.cxx:520
TGeoExtension * GetFWExtension() const
Definition TGeoNode.h:131
Int_t fNumber
Definition TGeoNode.h:43
virtual TGeoPatternFinder * GetFinder() const
Definition TGeoNode.h:89
virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const
Convert a vector from mother reference to local reference system.
Definition TGeoNode.cxx:704
char * GetObjectInfo(Int_t px, Int_t py) const override
Get node info for the browser.
Definition TGeoNode.cxx:409
Bool_t IsVirtual() const
Definition TGeoNode.h:109
~TGeoNode() override
Destructor.
Definition TGeoNode.cxx:135
void SetCloned(Bool_t flag=kTRUE)
Definition TGeoNode.h:120
TObjArray * GetNodes() const
Definition TGeoNode.h:93
void CheckOverlaps(Double_t ovlp=0.1, Option_t *option="")
Check overlaps bigger than OVLP hierarchically, starting with this node.
Definition TGeoNode.cxx:246
void InspectNode() const
Inspect this node.
Definition TGeoNode.cxx:432
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute mouse actions on this volume.
Definition TGeoNode.cxx:396
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:812
TGeoVolume * fMother
Definition TGeoNode.h:42
base finder class for patterns. A pattern is specifying a division type
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:176
void SetCurrentPoint(Double_t x, Double_t y, Double_t z)
Set the current tracking point.
Int_t GetNdaughters() const
Definition TGeoVolume.h:363
TObjArray * GetNodes()
Definition TGeoVolume.h:170
TGeoNode * GetNode(const char *name) const
get the pointer to a daughter node
virtual Bool_t IsVisible() const
Definition TGeoVolume.h:156
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:202
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition TObject.cxx:881
Basic string class.
Definition TString.h:138
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
th1 Draw()