Logo ROOT   6.07/09
Reference Guide
TGeoManager.h
Go to the documentation of this file.
1 // @(#)root/geom:$Id$
2 // Author: Andrei Gheata 25/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_TGeoManager
13 #define ROOT_TGeoManager
14 
15 #ifndef ROOT_TObjArray
16 #include "TObjArray.h"
17 #endif
18 #ifndef ROOT_TGeoNavigator
19 #include "TGeoNavigator.h"
20 #endif
21 
22 // forward declarations
23 class TVirtualGeoTrack;
24 class TGeoNode;
25 class TGeoPhysicalNode;
26 class TGeoPNEntry;
27 class TGeoVolume;
28 class TGeoVolumeMulti;
29 class TGeoMatrix;
30 class TGeoHMatrix;
31 class TGeoMaterial;
32 class TGeoMedium;
33 class TGeoShape;
34 class TVirtualGeoPainter;
35 class THashList;
36 class TGeoParallelWorld;
37 
38 class TGeoManager : public TNamed
39 {
40 protected:
41  static Bool_t fgLock; //! Lock preventing a second geometry to be loaded
42  static Int_t fgVerboseLevel; //! Verbosity level for Info messages (no IO).
43  static Int_t fgMaxLevel; //! Maximum level in geometry
44  static Int_t fgMaxDaughters; //! Maximum number of daughters
45  static Int_t fgMaxXtruVert; //! Maximum number of Xtru vertices
46 
47  TGeoManager(const TGeoManager&);
49 
50 private :
51  Double_t fPhimin; //! lowest range for phi cut
52  Double_t fPhimax; //! highest range for phi cut
53  Double_t fTmin; //! lower time limit for tracks drawing
54  Double_t fTmax; //! upper time limit for tracks drawing
55  Int_t fNNodes; // total number of physical nodes
56  TString fPath; //! path to current node
57  TString fParticleName; //! particles to be drawn
58  Double_t fVisDensity; // transparency threshold by density
59  Int_t fExplodedView; // exploded view mode
60  Int_t fVisOption; // global visualization option
61  Int_t fVisLevel; // maximum visualization depth
62  Int_t fNsegments; // number of segments to approximate circles
63  Int_t fNtracks; // number of tracks
64  Int_t fMaxVisNodes; // maximum number of visible nodes
65  TVirtualGeoTrack *fCurrentTrack; //! current track
66  Int_t fNpdg; // number of different pdg's stored
67  Int_t fPdgId[1024]; // pdg conversion table
68  Bool_t fClosed; //! flag that geometry is closed
69  Bool_t fLoopVolumes; //! flag volume lists loop
70  Bool_t fStreamVoxels; // flag to allow voxelization I/O
71  Bool_t fIsGeomReading; //! flag set when reading geometry
72  Bool_t fIsGeomCleaning; //! flag to notify that the manager is being destructed
73  Bool_t fPhiCut; // flag for phi cuts
74  Bool_t fTimeCut; // time cut for tracks
75  Bool_t fDrawExtra; //! flag that the list of physical nodes has to be drawn
76  Bool_t fMatrixTransform; //! flag for using GL matrix
77  Bool_t fMatrixReflection; //! flag for GL reflections
78  Bool_t fActivity; //! switch ON/OFF volume activity (default OFF - all volumes active))
79  Bool_t fIsNodeSelectable; //! flag that nodes are the selected objects in pad rather than volumes
80  TVirtualGeoPainter *fPainter; //! current painter
81 
82  TObjArray *fMatrices; //-> list of local transformations
83  TObjArray *fShapes; //-> list of shapes
84  TObjArray *fVolumes; //-> list of volumes
85  TObjArray *fPhysicalNodes; //-> list of physical nodes
86  TObjArray *fGShapes; //! list of runtime shapes
87  TObjArray *fGVolumes; //! list of runtime volumes
88  TObjArray *fTracks; //-> list of tracks attached to geometry
89  TObjArray *fPdgNames; //-> list of pdg names for tracks
90 // TObjArray *fNavigators; //! list of navigators
91  TList *fMaterials; //-> list of materials
92  TList *fMedia; //-> list of tracking media
93  TObjArray *fNodes; //-> current branch of nodes
94  TObjArray *fOverlaps; //-> list of geometrical overlaps
95  UChar_t *fBits; //! bits used for voxelization
96  // Map of navigator arrays per thread
97  typedef std::map<Long_t, TGeoNavigatorArray *> NavigatorsMap_t;
98  typedef NavigatorsMap_t::iterator NavigatorsMapIt_t;
99  typedef std::map<Long_t, Int_t> ThreadsMap_t;
100  typedef ThreadsMap_t::const_iterator ThreadsMapIt_t;
101 
102  NavigatorsMap_t fNavigators; //! Map between thread id's and navigator arrays
103  static ThreadsMap_t *fgThreadId; //! Thread id's map
104  static Int_t fgNumThreads; //! Number of registered threads
105  static Bool_t fgLockNavigators; //! Lock existing navigators
106  TGeoNavigator *fCurrentNavigator; //! current navigator
107  TGeoVolume *fCurrentVolume; //! current volume
108  TGeoVolume *fTopVolume; //! top level volume in geometry
109  TGeoNode *fTopNode; //! top physical node
110  TGeoVolume *fMasterVolume; // master volume
111  TGeoHMatrix *fGLMatrix; // matrix to be used for view transformations
112  TObjArray *fUniqueVolumes; //-> list of unique volumes
113  TGeoShape *fClippingShape; //! clipping shape for raytracing
114  TGeoElementTable *fElementTable; //! table of elements
115 
116  Int_t *fNodeIdArray; //! array of node id's
117  Int_t fNLevel; // maximum accepted level in geometry
118  TGeoVolume *fPaintVolume; //! volume currently painted
120  THashList *fHashVolumes; //! hash list of volumes providing fast search
121  THashList *fHashGVolumes; //! hash list of group volumes providing fast search
122  THashList *fHashPNE; //-> hash list of physical node entries
123  mutable TObjArray *fArrayPNE; //! array of physical node entries
124  Int_t fSizePNEId; // size of the array of unique ID's for PN entries
125  Int_t fNPNEId; // number of PN entries having a unique ID
126  Int_t *fKeyPNEId; //[fSizePNEId] array of uid values for PN entries
127  Int_t *fValuePNEId; //[fSizePNEId] array of pointers to PN entries with ID's
128  Int_t fMaxThreads; //! Max number of threads
129  Bool_t fMultiThread; //! Flag for multi-threading
130  Int_t fRaytraceMode; //! Raytrace mode: 0=normal, 1=pass through, 2=transparent
131  Bool_t fUsePWNav; // Activate usage of parallel world in navigation
132  TGeoParallelWorld *fParallelWorld; // Parallel world
133 //--- private methods
135  void Init();
136  Bool_t InitArrayPNE() const;
137  Bool_t InsertPNEId(Int_t uid, Int_t ientry);
138  void SetLoopVolumes(Bool_t flag=kTRUE) {fLoopVolumes=flag;}
139  void UpdateElements();
140  void Voxelize(Option_t *option = 0);
141 
142 public:
143  // constructors
144  TGeoManager();
145  TGeoManager(const char *name, const char *title);
146  // destructor
147  virtual ~TGeoManager();
148  //--- adding geometrical objects
149  Int_t AddMaterial(const TGeoMaterial *material);
150  Int_t AddOverlap(const TNamed *ovlp);
151  Int_t AddTransformation(const TGeoMatrix *matrix);
152  Int_t AddShape(const TGeoShape *shape);
153  Int_t AddTrack(Int_t id, Int_t pdgcode, TObject *particle=0);
155  Int_t AddVolume(TGeoVolume *volume);
157  void ClearOverlaps();
158  void RegisterMatrix(const TGeoMatrix *matrix);
159  void SortOverlaps();
160  //--- browsing and tree navigation
161  void Browse(TBrowser *b);
162  void SetVisibility(TObject *obj, Bool_t vis);
163  virtual Bool_t cd(const char *path=""); // *MENU*
164  Bool_t CheckPath(const char *path) const;
165  void CdNode(Int_t nodeid);
166  void CdDown(Int_t index);
167  void CdUp();
168  void CdTop();
169  void CdNext();
170  void GetBranchNames(Int_t *names) const;
171  void GetBranchNumbers(Int_t *copyNumbers, Int_t *volumeNumbers) const;
172  void GetBranchOnlys(Int_t *isonly) const;
174  const char *GetPdgName(Int_t pdg) const;
175  void SetPdgName(Int_t pdg, const char *name);
176  Bool_t IsFolder() const { return kTRUE; }
177  //--- visualization settings
178  virtual void Edit(Option_t *option=""); // *MENU*
179  void BombTranslation(const Double_t *tr, Double_t *bombtr);
180  void UnbombTranslation(const Double_t *tr, Double_t *bombtr);
181  void ClearAttributes(); // *MENU*
182  void DefaultAngles(); // *MENU*
183  void DefaultColors(); // *MENU*
185  Int_t GetNsegments() const;
188  Int_t GetBombMode() const {return fExplodedView;}
189  void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const;
191  Bool_t GetTminTmax(Double_t &tmin, Double_t &tmax) const;
192  Double_t GetTmax() const {return fTmax;}
196  Int_t GetVisLevel() const;
197  Int_t GetVisOption() const;
198  Bool_t IsInPhiRange() const;
199  Bool_t IsDrawingExtra() const {return fDrawExtra;}
201  Bool_t IsVisLeaves() const {return (fVisOption==1)?kTRUE:kFALSE;}
202  void ModifiedPad() const;
203  void OptimizeVoxels(const char *filename="tgeovox.C"); // *MENU*
204  void SetClipping(Bool_t flag=kTRUE) {SetClippingShape(((flag)?fClippingShape:0));} // *MENU*
205  void SetClippingShape(TGeoShape *clip);
206  void SetExplodedView(Int_t iopt=0); // *MENU*
207  void SetPhiRange(Double_t phimin=0., Double_t phimax=360.);
208  void SetNsegments(Int_t nseg); // *MENU*
210  void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3, Double_t bombz=1.3, Double_t bombr=1.3); // *MENU*
211  void SetPaintVolume(TGeoVolume *vol) {fPaintVolume = vol;}
212  void SetUserPaintVolume(TGeoVolume *vol) {fUserPaintVolume = vol;}
213  void SetTopVisible(Bool_t vis=kTRUE);
214  void SetTminTmax(Double_t tmin=0, Double_t tmax=999);
215  void SetDrawExtraPaths(Bool_t flag=kTRUE) {fDrawExtra=flag;}
216  void SetNodeSelectable(Bool_t flag=kTRUE) {fIsNodeSelectable=flag;}
217  void SetVisDensity(Double_t dens=0.01); // *MENU*
218  void SetVisLevel(Int_t level=3); // *MENU*
219  void SetVisOption(Int_t option=0);
220  void ViewLeaves(Bool_t flag=kTRUE); // *TOGGLE* *GETTER=IsVisLeaves
221  void SaveAttributes(const char *filename="tgeoatt.C"); // *MENU*
222  void RestoreMasterVolume(); // *MENU*
223  void SetMaxVisNodes(Int_t maxnodes=10000); // *MENU*
224  //--- geometry checking
225  void AnimateTracks(Double_t tmin=0, Double_t tmax=5E-8, Int_t nframes=200, Option_t *option="/*"); // *MENU*
226  void CheckBoundaryErrors(Int_t ntracks=1000000, Double_t radius=-1.); // *MENU*
227  void CheckBoundaryReference(Int_t icheck=-1);
228  void CheckGeometryFull(Int_t ntracks=1000000, Double_t vx=0., Double_t vy=0., Double_t vz=0., Option_t *option="ob"); // *MENU*
229  void CheckGeometry(Option_t *option="");
230  void CheckOverlaps(Double_t ovlp=0.1, Option_t *option=""); // *MENU*
231  void CheckPoint(Double_t x=0,Double_t y=0, Double_t z=0, Option_t *option=""); // *MENU*
232  void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option);
233  void ConvertReflections();
234  void DrawCurrentPoint(Int_t color=2); // *MENU*
235  void DrawTracks(Option_t *option=""); // *MENU*
236  void SetParticleName(const char *pname) {fParticleName=pname;}
237  const char *GetParticleName() const {return fParticleName.Data();}
238  void DrawPath(const char *path, Option_t *option="");
239  void PrintOverlaps() const; // *MENU*
240  void RandomPoints(const TGeoVolume *vol, Int_t npoints=10000, Option_t *option="");
241  void RandomRays(Int_t nrays=1000, Double_t startx=0, Double_t starty=0, Double_t startz=0, const char *target_vol=0, Bool_t check_norm=kFALSE);
242  TGeoNode *SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil=1E-5,
243  const char *g3path="");
244  void SetNmeshPoints(Int_t npoints=1000);
245  void SetCheckedNode(TGeoNode *node);
246  void Test(Int_t npoints=1000000, Option_t *option=""); // *MENU*
247  void TestOverlaps(const char* path=""); // *MENU*
248  Double_t Weight(Double_t precision=0.01, Option_t *option="va"); // *MENU*
249 
250  //--- GEANT3-like geometry creation
251  TGeoVolume *Division(const char *name, const char *mother, Int_t iaxis, Int_t ndiv,
252  Double_t start, Double_t step, Int_t numed=0, Option_t *option="");
253  void Matrix(Int_t index, Double_t theta1, Double_t phi1,
254  Double_t theta2, Double_t phi2,
255  Double_t theta3, Double_t phi3);
256  TGeoMaterial *Material(const char *name, Double_t a, Double_t z, Double_t dens, Int_t uid, Double_t radlen=0, Double_t intlen=0);
257  TGeoMaterial *Mixture(const char *name, Float_t *a, Float_t *z, Double_t dens,
258  Int_t nelem, Float_t *wmat, Int_t uid);
259  TGeoMaterial *Mixture(const char *name, Double_t *a, Double_t *z, Double_t dens,
260  Int_t nelem, Double_t *wmat, Int_t uid);
261  TGeoMedium *Medium(const char *name, Int_t numed, Int_t nmat, Int_t isvol,
262  Int_t ifield, Double_t fieldm, Double_t tmaxfd,
263  Double_t stemax, Double_t deemax, Double_t epsil,
264  Double_t stmin);
265  void Node(const char *name, Int_t nr, const char *mother,
266  Double_t x, Double_t y, Double_t z, Int_t irot,
267  Bool_t isOnly, Float_t *upar, Int_t npar=0);
268  void Node(const char *name, Int_t nr, const char *mother,
269  Double_t x, Double_t y, Double_t z, Int_t irot,
270  Bool_t isOnly, Double_t *upar, Int_t npar=0);
271  TGeoVolume *Volume(const char *name, const char *shape, Int_t nmed,
272  Float_t *upar, Int_t npar=0);
273  TGeoVolume *Volume(const char *name, const char *shape, Int_t nmed,
274  Double_t *upar, Int_t npar=0);
275  void SetVolumeAttribute(const char *name, const char *att, Int_t val);
276  //--- geometry building
277  void BuildDefaultMaterials();
278  void CloseGeometry(Option_t *option="d");
279  Bool_t IsClosed() const {return fClosed;}
280  TGeoVolume *MakeArb8(const char *name, TGeoMedium *medium,
281  Double_t dz, Double_t *vertices=0);
282  TGeoVolume *MakeBox(const char *name, TGeoMedium *medium,
283  Double_t dx, Double_t dy, Double_t dz);
284  TGeoVolume *MakeCone(const char *name, TGeoMedium *medium,
285  Double_t dz, Double_t rmin1, Double_t rmax1,
286  Double_t rmin2, Double_t rmax2);
287  TGeoVolume *MakeCons(const char *name, TGeoMedium *medium,
288  Double_t dz, Double_t rmin1, Double_t rmax1,
289  Double_t rmin2, Double_t rmax2,
290  Double_t phi1, Double_t phi2);
291  TGeoVolume *MakeCtub(const char *name, TGeoMedium *medium,
292  Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2,
293  Double_t lx, Double_t ly, Double_t lz, Double_t tx, Double_t ty, Double_t tz);
294  TGeoVolume *MakeEltu(const char *name, TGeoMedium *medium,
295  Double_t a, Double_t b, Double_t dz);
296  TGeoVolume *MakeGtra(const char *name, TGeoMedium *medium,
297  Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1,
298  Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2,
299  Double_t tl2, Double_t alpha2);
300  TGeoVolume *MakePara(const char *name, TGeoMedium *medium,
301  Double_t dx, Double_t dy, Double_t dz,
302  Double_t alpha, Double_t theta, Double_t phi);
303  TGeoVolume *MakePcon(const char *name, TGeoMedium *medium,
304  Double_t phi, Double_t dphi, Int_t nz);
305  TGeoVolume *MakeParaboloid(const char *name, TGeoMedium *medium,
306  Double_t rlo, Double_t rhi, Double_t dz);
307  TGeoVolume *MakeHype(const char *name, TGeoMedium *medium,
308  Double_t rin, Double_t stin, Double_t rout, Double_t stout, Double_t dz);
309  TGeoVolume *MakePgon(const char *name, TGeoMedium *medium,
310  Double_t phi, Double_t dphi, Int_t nedges, Int_t nz);
311  TGeoVolume *MakeSphere(const char *name, TGeoMedium *medium,
312  Double_t rmin, Double_t rmax,
313  Double_t themin=0, Double_t themax=180,
314  Double_t phimin=0, Double_t phimax=360);
315  TGeoVolume *MakeTorus(const char *name, TGeoMedium *medium, Double_t r,
316  Double_t rmin, Double_t rmax, Double_t phi1=0, Double_t dphi=360);
317  TGeoVolume *MakeTrap(const char *name, TGeoMedium *medium,
318  Double_t dz, Double_t theta, Double_t phi, Double_t h1,
319  Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2,
320  Double_t tl2, Double_t alpha2);
321  TGeoVolume *MakeTrd1(const char *name, TGeoMedium *medium,
322  Double_t dx1, Double_t dx2, Double_t dy, Double_t dz);
323  TGeoVolume *MakeTrd2(const char *name, TGeoMedium *medium,
324  Double_t dx1, Double_t dx2, Double_t dy1, Double_t dy2,
325  Double_t dz);
326  TGeoVolume *MakeTube(const char *name, TGeoMedium *medium,
327  Double_t rmin, Double_t rmax, Double_t dz);
328  TGeoVolume *MakeTubs(const char *name, TGeoMedium *medium,
329  Double_t rmin, Double_t rmax, Double_t dz,
330  Double_t phi1, Double_t phi2);
331  TGeoVolume *MakeXtru(const char *name, TGeoMedium *medium,
332  Int_t nz);
333 
334  TGeoPNEntry *SetAlignableEntry(const char *unique_name, const char *path, Int_t uid=-1);
335  TGeoPNEntry *GetAlignableEntry(const char *name) const;
336  TGeoPNEntry *GetAlignableEntry(Int_t index) const;
338  Int_t GetNAlignable(Bool_t with_uid=kFALSE) const;
339  TGeoPhysicalNode *MakeAlignablePN(const char *name);
341  TGeoPhysicalNode *MakePhysicalNode(const char *path=0);
342  void ClearPhysicalNodes(Bool_t mustdelete=kFALSE);
343  void RefreshPhysicalNodes(Bool_t lock=kTRUE);
344  TVirtualGeoTrack *MakeTrack(Int_t id, Int_t pdgcode, TObject *particle);
345  TGeoVolumeAssembly *MakeVolumeAssembly(const char *name);
346  TGeoVolumeMulti *MakeVolumeMulti(const char *name, TGeoMedium *medium);
347  void SetTopVolume(TGeoVolume *vol);
348 
349  //--- geometry queries
350  TGeoNode *CrossBoundaryAndLocate(Bool_t downwards, TGeoNode *skipnode);
351  TGeoNode *FindNextBoundary(Double_t stepmax=TGeoShape::Big(),const char *path="", Bool_t frombdr=kFALSE);
352  TGeoNode *FindNextDaughterBoundary(Double_t *point, Double_t *dir, Int_t &idaughter, Bool_t compmatrix=kFALSE);
354  TGeoNode *FindNode(Bool_t safe_start=kTRUE);
358  TGeoNode *InitTrack(const Double_t *point, const Double_t *dir);
360  void ResetState();
361  Double_t Safety(Bool_t inside=kFALSE);
362  TGeoNode *SearchNode(Bool_t downwards=kFALSE, const TGeoNode *skipnode=0);
363  TGeoNode *Step(Bool_t is_geom=kTRUE, Bool_t cross=kTRUE);
364  void DisableInactiveVolumes() {fActivity=kTRUE;}
365  void EnableInactiveVolumes() {fActivity=kFALSE;}
366  void SetCurrentTrack(Int_t i) {fCurrentTrack = (TVirtualGeoTrack*)fTracks->At(i);}
367  void SetCurrentTrack(TVirtualGeoTrack *track) {fCurrentTrack=track;}
368  Int_t GetNtracks() const {return fNtracks;}
370  TVirtualGeoTrack *GetLastTrack() {return (TVirtualGeoTrack*)((fNtracks>0)?fTracks->At(fNtracks-1):NULL);}
372  TVirtualGeoTrack *GetTrack(Int_t index) {return (index<fNtracks)?(TVirtualGeoTrack*)fTracks->At(index):0;}
373  Int_t GetTrackIndex(Int_t id) const;
379  Int_t GetSafeLevel() const;
383  void InspectState() const;
394  void SetMatrixTransform(Bool_t on=kTRUE) {fMatrixTransform = on;}
395  void SetMatrixReflection(Bool_t flag=kTRUE) {fMatrixReflection = flag;}
407 
408 
409  //--- cleaning
410  void CleanGarbage();
411  void ClearShape(const TGeoShape *shape);
412  void ClearTracks() {fTracks->Delete(); fNtracks=0;}
413  void ClearNavigators();
414  void RemoveMaterial(Int_t index);
415  void RemoveNavigator(const TGeoNavigator *nav);
416  void ResetUserData();
417 
418 
419  //--- utilities
420  Int_t CountNodes(const TGeoVolume *vol=0, Int_t nlevels=10000, Int_t option=0);
421  void CountLevels();
422  virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
423  static Int_t Parse(const char* expr, TString &expr1, TString &expr2, TString &expr3);
424  Int_t ReplaceVolume(TGeoVolume *vorig, TGeoVolume *vnew);
425  Int_t TransformVolumeToAssembly(const char *vname);
426  UChar_t *GetBits() {return fBits;}
427  virtual Int_t GetByteCount(Option_t *option=0);
428  void SetAllIndex();
429  static Int_t GetMaxDaughters();
430  static Int_t GetMaxLevels();
431  static Int_t GetMaxXtruVert();
432  Int_t GetMaxThreads() const {return fMaxThreads-1;}
433  void SetMaxThreads(Int_t nthreads);
434  void SetMultiThread(Bool_t flag=kTRUE) {fMultiThread = flag;}
435  Int_t GetRTmode() const {return fRaytraceMode;}
436  void SetRTmode(Int_t mode); // *MENU*
438  static void SetNavigatorsLock(Bool_t flag);
439  static Int_t ThreadId();
440  static Int_t GetNumThreads();
441  static void ClearThreadsMap();
442  void ClearThreadData() const;
443  void CreateThreadData() const;
444 
445  //--- I/O
446  virtual Int_t Export(const char *filename, const char *name="", Option_t *option="vg");
447  static void LockGeometry();
448  static void UnlockGeometry();
449  static Int_t GetVerboseLevel();
450  static void SetVerboseLevel(Int_t vl);
451  static TGeoManager *Import(const char *filename, const char *name="", Option_t *option="");
452  static Bool_t IsLocked();
455 
456  //--- list getters
462  TList *GetListOfMedia() const {return fMedia;}
465  TObjArray *GetListOfShapes() const {return fShapes;}
468  TObjArray *GetListOfTracks() const {return fTracks;}
471 
472  //--- modeler state getters/setters
473  void DoBackupState();
474  void DoRestoreState();
475  TGeoNode *GetNode(Int_t level) const {return (TGeoNode*)fNodes->UncheckedAt(level);}
478  TGeoNode *GetMother(Int_t up=1) const {return GetCurrentNavigator()->GetMother(up);}
482  TGeoHMatrix *GetGLMatrix() const {return fGLMatrix;}
485  Int_t GetCurrentNodeId() const;
490  const Double_t *GetCldir() const {return GetCurrentNavigator()->GetCldir();}
491  const Double_t *GetNormal() const {return GetCurrentNavigator()->GetNormal();}
493  Int_t GetMaxLevel() const {return fNLevel;}
494  const char *GetPath() const;
497  TGeoVolume *GetTopVolume() const {return fTopVolume;}
498  TGeoNode *GetTopNode() const {return fTopNode;}
499  TGeoPhysicalNode *GetPhysicalNode(Int_t i) const {return (TGeoPhysicalNode*)fPhysicalNodes->UncheckedAt(i);}
506 
507  //--- point/vector reference frame conversion
508  void LocalToMaster(const Double_t *local, Double_t *master) const {GetCurrentNavigator()->LocalToMaster(local, master);}
509  void LocalToMasterVect(const Double_t *local, Double_t *master) const {GetCurrentNavigator()->LocalToMasterVect(local, master);}
510  void LocalToMasterBomb(const Double_t *local, Double_t *master) const {GetCurrentNavigator()->LocalToMasterBomb(local, master);}
511  void MasterToLocal(const Double_t *master, Double_t *local) const {GetCurrentNavigator()->MasterToLocal(master, local);}
512  void MasterToLocalVect(const Double_t *master, Double_t *local) const {GetCurrentNavigator()->MasterToLocalVect(master, local);}
513  void MasterToLocalBomb(const Double_t *master, Double_t *local) const {GetCurrentNavigator()->MasterToLocalBomb(master, local);}
514  void MasterToTop(const Double_t *master, Double_t *top) const;
515  void TopToMaster(const Double_t *top, Double_t *master) const;
516 
517  //--- general use getters/setters
519  TGeoVolume *FindVolumeFast(const char*name, Bool_t multi=kFALSE);
520  TGeoMaterial *GetMaterial(const char *matname) const;
521  TGeoMaterial *GetMaterial(Int_t id) const;
522  TGeoMedium *GetMedium(const char *medium) const;
523  TGeoMedium *GetMedium(Int_t numed) const;
524  Int_t GetMaterialIndex(const char *matname) const;
525 // TGeoShape *GetShape(const char *name) const;
526  TGeoVolume *GetVolume(const char*name) const;
527  TGeoVolume *GetVolume(Int_t uid) const {return (TGeoVolume*)fUniqueVolumes->At(uid);}
528  Int_t GetUID(const char *volname) const;
529  Int_t GetNNodes() {if (!fNNodes) CountNodes(); return fNNodes;}
531 // void SetCache(const TGeoNodeCache *cache) {fCache = (TGeoNodeCache*)cache;}
532  void SetAnimateTracks(Bool_t flag=kTRUE) {fIsGeomReading=flag;}
533  virtual ULong_t SizeOf(const TGeoNode *node, Option_t *option); // size of the geometry in memory
534  void SelectTrackingMedia();
535 
536  //--- stack manipulation
537  Int_t PushPath(Int_t startlevel=0) {return GetCurrentNavigator()->PushPath(startlevel);}
539  Bool_t PopPath(Int_t index) {return GetCurrentNavigator()->PopPath(index);}
540  Int_t PushPoint(Int_t startlevel=0) {return GetCurrentNavigator()->PushPoint(startlevel);}
542  Bool_t PopPoint(Int_t index) {return GetCurrentNavigator()->PopPoint(index);}
543  void PopDummy(Int_t ipop=9999) {return GetCurrentNavigator()->PopDummy(ipop);}
544 
545  //--- parallel world navigation
546  TGeoParallelWorld *CreateParallelWorld(const char *name);
548  void SetUseParallelWorldNav(Bool_t flag);
550 
551  ClassDef(TGeoManager, 14) // geometry manager
552 };
553 
555 
556 #endif
557 
const int nx
Definition: kalman.C:16
void SetTopVisible(Bool_t vis=kTRUE)
make top volume visible on screen
TObjArray * fShapes
Definition: TGeoManager.h:83
TGeoVolumeMulti * MakeVolumeMulti(const char *name, TGeoMedium *medium)
Make a TGeoVolumeMulti handling a list of volumes.
void CheckPoint(Double_t x=0, Double_t y=0, Double_t z=0, Option_t *option="")
Classify a given point. See TGeoChecker::CheckPoint().
const Double_t * GetLastPoint() const
Definition: TGeoManager.h:371
Int_t GetNodeId() const
void SetLastPoint(Double_t x, Double_t y, Double_t z)
Definition: TGeoManager.h:502
Double_t fPhimin
Definition: TGeoManager.h:51
TVirtualGeoTrack * GetCurrentTrack()
Definition: TGeoManager.h:369
const Double_t * GetNormal() const
std::map< Long_t, TGeoNavigatorArray * > NavigatorsMap_t
bits used for voxelization
Definition: TGeoManager.h:97
void MasterToLocalVect(const Double_t *master, Double_t *local) const
Definition: TGeoManager.h:512
TGeoNode * SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil=1E-5, const char *g3path="")
shoot npoints randomly in a box of 1E-5 around current point.
Volume families.
Definition: TGeoVolume.h:269
TList * fMedia
Definition: TGeoManager.h:92
void CheckGeometryFull(Int_t ntracks=1000000, Double_t vx=0., Double_t vy=0., Double_t vz=0., Option_t *option="ob")
Geometry checking.
double dist(Rotation3D const &r1, Rotation3D const &r2)
Definition: 3DDistances.cxx:48
void SetCurrentDirection(Double_t nx, Double_t ny, Double_t nz)
Definition: TGeoManager.h:504
TObjArray * fVolumes
Definition: TGeoManager.h:84
Int_t GetNmany() const
An array of TObjects.
Definition: TObjArray.h:39
TGeoHMatrix * fGLMatrix
Definition: TGeoManager.h:111
TGeoPhysicalNode * MakePhysicalNode(const char *path=0)
Makes a physical node corresponding to a path.
Bool_t IsExiting() const
Definition: TGeoManager.h:399
TGeoNode * InitTrack(const Double_t *point, const Double_t *dir)
Initialize current point and current direction vector (normalized) in MARS.
void DoRestoreState()
Restore a backed-up state without affecting the cache stack.
void CheckGeometry(Option_t *option="")
Perform last checks on the geometry.
void CheckShape(TGeoShape *shape, Int_t testNo, Int_t nsamples, Option_t *option)
Test for shape navigation methods.
TGeoVolume * MakeGtra(const char *name, TGeoMedium *medium, Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2)
Make in one step a volume pointing to a twisted trapezoid shape with given medium.
The manager class for any TGeo geometry.
Definition: TGeoManager.h:38
TList * GetListOfMaterials() const
Definition: TGeoManager.h:461
TGeoVolume * MakeCone(const char *name, TGeoMedium *medium, Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
Make in one step a volume pointing to a cone shape with given medium.
Int_t GetNsegments() const
Get number of segments approximating circles.
Bool_t IsStartSafe() const
Bool_t fActivity
flag for GL reflections
Definition: TGeoManager.h:78
void ClearAttributes()
Reset all attributes to default ones.
Volume assemblies.
Definition: TGeoVolume.h:320
Table of elements.
Definition: TGeoElement.h:367
TGeoVolume * GetMasterVolume() const
Definition: TGeoManager.h:496
TGeoVolume * MakeCons(const char *name, TGeoMedium *medium, Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2, Double_t phi1, Double_t phi2)
Make in one step a volume pointing to a cone segment shape with given medium.
void SetCurrentDirection(Double_t *dir)
Definition: TGeoManager.h:503
void SetAllIndex()
Assigns uid&#39;s for all materials,media and matrices.
TGeoNavigatorArray * GetListOfNavigators() const
Get list of navigators for the calling thread.
Bool_t fMatrixTransform
flag that the list of physical nodes has to be drawn
Definition: TGeoManager.h:76
Bool_t IsNullStep() const
void SetCldirChecked(Double_t *dir)
void SetOutside(Bool_t flag=kTRUE)
float Float_t
Definition: RtypesCore.h:53
void GetBranchNumbers(Int_t *copyNumbers, Int_t *volumeNumbers) const
Fill node copy numbers of current branch into an array.
Int_t GetStackLevel() const
Definition: TGeoManager.h:495
void BombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new &#39;bombed&#39; translation vector according current exploded view mode.
const char Option_t
Definition: RtypesCore.h:62
TGeoNode * GetNode(Int_t level) const
Definition: TGeoManager.h:475
Geometrical transformation package.
Definition: TGeoMatrix.h:40
Double_t Safety(Bool_t inside=kFALSE)
Compute safe distance from the current point.
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
Definition: TObjArray.cxx:329
Int_t ReplaceVolume(TGeoVolume *vorig, TGeoVolume *vnew)
Replaces all occurrences of VORIG with VNEW in the geometry tree.
TGeoMaterial * Mixture(const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nelem, Float_t *wmat, Int_t uid)
Create mixture OR COMPOUND IMAT as composed by THE BASIC nelem materials defined by arrays A...
TGeoNode * SearchNode(Bool_t downwards=kFALSE, const TGeoNode *skipnode=0)
Returns the deepest node containing fPoint, which must be set a priori.
void SetParticleName(const char *pname)
Definition: TGeoManager.h:236
void Test(Int_t npoints=1000000, Option_t *option="")
Check time of finding "Where am I" for n points.
void CdUp()
Go one level up in geometry.
TGeoNode * GetNextNode() const
Definition: TGeoManager.h:477
void CheckOverlaps(Double_t ovlp=0.1, Option_t *option="")
Check all geometry for illegal overlaps within a limit OVLP.
void SetRTmode(Int_t mode)
Change raytracing mode.
THashList * fHashVolumes
Definition: TGeoManager.h:120
Double_t GetLastSafety() const
TVirtualGeoTrack * GetTrack(Int_t index)
Definition: TGeoManager.h:372
void Init()
Initialize manager class.
static Int_t fgMaxDaughters
Maximum level in geometry.
Definition: TGeoManager.h:44
void SetCldirChecked(Double_t *dir)
Definition: TGeoManager.h:505
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition: TGeoVolume.h:61
TGeoElementTable * GetElementTable()
Returns material table. Creates it if not existing.
NavigatorsMap_t::iterator NavigatorsMapIt_t
Definition: TGeoManager.h:98
TGeoHMatrix * GetMotherMatrix(Int_t up=1) const
Bool_t IsCurrentOverlapping() const
const Double_t * GetCldirChecked() const
const Double_t * GetCurrentDirection() const
Bool_t fMatrixReflection
flag for using GL matrix
Definition: TGeoManager.h:77
TVirtualGeoTrack * fCurrentTrack
Definition: TGeoManager.h:65
Int_t fNtracks
Definition: TGeoManager.h:63
Int_t fNNodes
upper time limit for tracks drawing
Definition: TGeoManager.h:55
static Int_t GetVerboseLevel()
Set verbosity level (static function).
static void SetVerboseLevel(Int_t vl)
Return current verbosity level (static function).
Int_t fPdgId[1024]
Definition: TGeoManager.h:67
TGeoHMatrix * GetCurrentMatrix() const
Definition: TGeoManager.h:481
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
TGeoVolume * MakeTorus(const char *name, TGeoMedium *medium, Double_t r, Double_t rmin, Double_t rmax, Double_t phi1=0, Double_t dphi=360)
Make in one step a volume pointing to a torus shape with given medium.
std::map< Long_t, Int_t > ThreadsMap_t
Definition: TGeoManager.h:99
Bool_t IsActivityEnabled() const
Definition: TGeoManager.h:405
void ResetUserData()
Sets all pointers TGeoVolume::fField to NULL.
TGeoVolume * Volume(const char *name, const char *shape, Int_t nmed, Float_t *upar, Int_t npar=0)
Create a volume in GEANT3 style.
void ViewLeaves(Bool_t flag=kTRUE)
Set visualization option (leaves only OR all volumes)
Basic string class.
Definition: TString.h:137
Matrix class used for computing global transformations Should NOT be used for node definition...
Definition: TGeoMatrix.h:410
void MasterToLocal(const Double_t *master, Double_t *local) const
Definition: TGeoManager.h:511
Base class describing materials.
Definition: TGeoMaterial.h:35
TObjArray * GetListOfShapes() const
Definition: TGeoManager.h:465
static void ClearThreadsMap()
Clear the current map of threads.
void ClearTracks()
Definition: TGeoManager.h:412
TObjArray * fUniqueVolumes
Definition: TGeoManager.h:112
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
TArc * a
Definition: textangle.C:12
Bool_t IsExiting() const
const Bool_t kFALSE
Definition: Rtypes.h:92
TGeoNode * fTopNode
top level volume in geometry
Definition: TGeoManager.h:109
Bool_t fIsNodeSelectable
switch ON/OFF volume activity (default OFF - all volumes active))
Definition: TGeoManager.h:79
void InspectState() const
Inspects path and all flags for the current state.
void OptimizeVoxels(const char *filename="tgeovox.C")
Optimize voxelization type for all volumes. Save best choice in a macro.
TGeoVolume * GetUserPaintVolume() const
Definition: TGeoManager.h:194
static Int_t Parse(const char *expr, TString &expr1, TString &expr2, TString &expr3)
Parse a string boolean expression and do a syntax check.
const char * GetParticleName() const
Definition: TGeoManager.h:237
Int_t fVisOption
Definition: TGeoManager.h:60
TVirtualGeoTrack * MakeTrack(Int_t id, Int_t pdgcode, TObject *particle)
Makes a primary track but do not attach it to the list of tracks.
Bool_t PopPoint(Int_t index)
Definition: TGeoManager.h:542
TGeoVolume * MakeTrd1(const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy, Double_t dz)
Make in one step a volume pointing to a TGeoTrd1 shape with given medium.
TGeoShape * fClippingShape
Definition: TGeoManager.h:113
Bool_t fDrawExtra
Definition: TGeoManager.h:75
Int_t GetNAlignable(Bool_t with_uid=kFALSE) const
Retrieves number of PN entries with or without UID.
TObjArray * fPdgNames
Definition: TGeoManager.h:89
void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3, Double_t bombz=1.3, Double_t bombr=1.3)
Set factors that will "bomb" all translations in cartesian and cylindrical coordinates.
void AnimateTracks(Double_t tmin=0, Double_t tmax=5E-8, Int_t nframes=200, Option_t *option="/*")
Draw animation of tracks.
Bool_t IsCheckingOverlaps() const
static void SetNavigatorsLock(Bool_t flag)
Set the lock for navigators.
TGeoVolume * MakeHype(const char *name, TGeoMedium *medium, Double_t rin, Double_t stin, Double_t rout, Double_t stout, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
TGeoVolume * GetVolume(Int_t uid) const
Definition: TGeoManager.h:527
TObjArray * fArrayPNE
Definition: TGeoManager.h:123
TObjArray * fGShapes
Definition: TGeoManager.h:86
void SetVisibility(TObject *obj, Bool_t vis)
Set visibility for a volume.
Bool_t IsSameLocation(Double_t x, Double_t y, Double_t z, Bool_t change=kFALSE)
Checks if point (x,y,z) is still in the current node.
TGeoHMatrix * GetHMatrix()
Return stored current matrix (global matrix of the next touched node).
void SetVisDensity(Double_t dens=0.01)
Set density threshold.
void LocalToMasterBomb(const Double_t *local, Double_t *master) const
static Int_t GetNumThreads()
Returns number of threads that were set to use geometry.
TObjArray * fOverlaps
Definition: TGeoManager.h:94
Int_t fNsegments
Definition: TGeoManager.h:62
void SetCurrentPoint(Double_t x, Double_t y, Double_t z)
Definition: TGeoManager.h:501
Bool_t fIsGeomCleaning
flag set when reading geometry
Definition: TGeoManager.h:72
TObjArray * fMatrices
current painter
Definition: TGeoManager.h:82
void ResetState()
Reset current state flags.
Int_t PushPath(Int_t startlevel=0)
Definition: TGeoManager.h:537
const char * Data() const
Definition: TString.h:349
TGeoParallelWorld * fParallelWorld
Definition: TGeoManager.h:132
TGeoVolume * MakeSphere(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t themin=0, Double_t themax=180, Double_t phimin=0, Double_t phimax=360)
Make in one step a volume pointing to a sphere shape with given medium.
TGeoParallelWorld * GetParallelWorld() const
Definition: TGeoManager.h:547
virtual Int_t Export(const char *filename, const char *name="", Option_t *option="vg")
Export this geometry to a file.
TGeoVolume * MakeParaboloid(const char *name, TGeoMedium *medium, Double_t rlo, Double_t rhi, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
Int_t GetRTmode() const
Definition: TGeoManager.h:435
void SetUserPaintVolume(TGeoVolume *vol)
Definition: TGeoManager.h:212
TVirtualGeoTrack * GetParentTrackOfId(Int_t id) const
Get parent track with a given ID.
Double_t x[n]
Definition: legend1.C:17
Bool_t IsStepExiting() const
Definition: TGeoManager.h:401
TGeoPNEntry * SetAlignableEntry(const char *unique_name, const char *path, Int_t uid=-1)
Creates an alignable object with unique name corresponding to a path and adds it to the list of align...
void UpdateElements()
Update element flags when geometry is loaded from a file.
Bool_t IsMatrixTransform() const
Definition: TGeoManager.h:386
#define ClassDef(name, id)
Definition: Rtypes.h:254
static Bool_t fgLock
Definition: TGeoManager.h:41
void SetVolumeAttribute(const char *name, const char *att, Int_t val)
Set volume attributes in G3 style.
void RandomRays(Int_t nrays=1000, Double_t startx=0, Double_t starty=0, Double_t startz=0, const char *target_vol=0, Bool_t check_norm=kFALSE)
Randomly shoot nrays and plot intersections with surfaces for current top node.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:36
TGeoVolume * MakeBox(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz)
Make in one step a volume pointing to a box shape with given medium.
void SetCurrentTrack(Int_t i)
Definition: TGeoManager.h:366
Bool_t IsStartSafe() const
Definition: TGeoManager.h:391
Int_t AddTrack(Int_t id, Int_t pdgcode, TObject *particle=0)
Add a track to the list of tracks.
Int_t GetNNodes()
Definition: TGeoManager.h:529
const Double_t * GetCldir() const
void PopDummy(Int_t ipop=9999)
void SetCurrentPoint(Double_t *point)
Definition: TGeoManager.h:500
TGeoNode * GetTopNode() const
Definition: TGeoManager.h:498
TObjArray * GetListOfNodes()
Definition: TGeoManager.h:457
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
void LocalToMaster(const Double_t *local, Double_t *master) const
Definition: TGeoManager.h:508
void SetMatrixReflection(Bool_t flag=kTRUE)
Definition: TGeoManager.h:395
void CdDown(Int_t index)
Make a daughter of current node current.
const int ny
Definition: kalman.C:17
void CleanGarbage()
Clean temporary volumes and shapes from garbage collection.
void LocalToMasterVect(const Double_t *local, Double_t *master) const
Definition: TGeoManager.h:509
THashList * fHashGVolumes
hash list of volumes providing fast search
Definition: TGeoManager.h:121
Int_t GetVisLevel() const
Returns current depth to which geometry is drawn.
Bool_t IsClosed() const
Definition: TGeoManager.h:279
void ClearShape(const TGeoShape *shape)
Remove a shape from the list of shapes.
Double_t fTmax
lower time limit for tracks drawing
Definition: TGeoManager.h:54
static Bool_t IsLocked()
Check lock state.
THashList * fHashPNE
hash list of group volumes providing fast search
Definition: TGeoManager.h:122
void Browse(TBrowser *b)
Describe how to browse this object.
TVirtualGeoPainter * GetPainter() const
Definition: TGeoManager.h:187
TList * GetListOfMedia() const
Definition: TGeoManager.h:462
void SortOverlaps()
Sort overlaps by decreasing overlap distance. Extrusions comes first.
void SetNodeSelectable(Bool_t flag=kTRUE)
Definition: TGeoManager.h:216
Bool_t IsOutside() const
TGeoNavigator * fCurrentNavigator
Lock existing navigators.
Definition: TGeoManager.h:106
TGeoVolume * MakeXtru(const char *name, TGeoMedium *medium, Int_t nz)
Make a TGeoXtru-shaped volume with nz planes.
Bool_t IsOnBoundary() const
void SetStartSafe(Bool_t flag=kTRUE)
static Int_t GetMaxDaughters()
Return maximum number of daughters of a volume used in the geometry.
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...
Int_t AddVolume(TGeoVolume *volume)
Add a volume to the list. Returns index of the volume in list.
void LocalToMasterBomb(const Double_t *local, Double_t *master) const
Definition: TGeoManager.h:510
TGeoVolume * fTopVolume
current volume
Definition: TGeoManager.h:108
Int_t GetVirtualLevel()
Find level of virtuality of current overlapping node (number of levels up having the same tracking me...
TGeoVolume * MakeEltu(const char *name, TGeoMedium *medium, Double_t a, Double_t b, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
Int_t fNPNEId
Definition: TGeoManager.h:125
static Int_t fgNumThreads
Thread id&#39;s map.
Definition: TGeoManager.h:104
Special pool of reusable nodes.
Definition: TGeoCache.h:57
Bool_t InsertPNEId(Int_t uid, Int_t ientry)
Insert a PN entry in the sorted array of indexes.
ThreadsMap_t::const_iterator ThreadsMapIt_t
Definition: TGeoManager.h:100
void SetOutside(Bool_t flag=kTRUE)
Definition: TGeoManager.h:406
TGeoNode * GetCurrentNode() const
Definition: TGeoManager.h:484
Base class for user-defined tracks attached to a geometry.
void SetClippingShape(TGeoShape *clip)
Set a user-defined shape as clipping for ray tracing.
TGeoVolume * GetPaintVolume() const
Definition: TGeoManager.h:193
void DisableInactiveVolumes()
Definition: TGeoManager.h:364
TGeoVolume * MakeArb8(const char *name, TGeoMedium *medium, Double_t dz, Double_t *vertices=0)
Make an TGeoArb8 volume.
void SetMaxVisNodes(Int_t maxnodes=10000)
set the maximum number of visible nodes.
Bool_t IsCurrentOverlapping() const
Definition: TGeoManager.h:397
TVirtualGeoTrack * GetTrackOfId(Int_t id) const
Get track with a given ID.
TGeoVolume * MakePcon(const char *name, TGeoMedium *medium, Double_t phi, Double_t dphi, Int_t nz)
Make in one step a volume pointing to a polycone shape with given medium.
void RestoreMasterVolume()
Restore the master volume of the geometry.
Bool_t fPhiCut
flag to notify that the manager is being destructed
Definition: TGeoManager.h:73
TH1F * h1
Definition: legend1.C:5
NavigatorsMap_t fNavigators
Definition: TGeoManager.h:102
Bool_t fIsGeomReading
Definition: TGeoManager.h:71
Int_t fVisLevel
Definition: TGeoManager.h:61
TGeoVolume * GetTopVolume() const
Definition: TGeoManager.h:497
TGeoVolume * MakePara(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz, Double_t alpha, Double_t theta, Double_t phi)
Make in one step a volume pointing to a parallelepiped shape with given medium.
Int_t TransformVolumeToAssembly(const char *vname)
Transform all volumes named VNAME to assemblies. The volumes must be virtual.
Int_t GetUID(const char *volname) const
Retrieve unique id for a volume name. Return -1 if name not found.
void SetCurrentTrack(TVirtualGeoTrack *track)
Definition: TGeoManager.h:367
static Int_t fgVerboseLevel
Lock preventing a second geometry to be loaded.
Definition: TGeoManager.h:42
void MasterToLocalVect(const Double_t *master, Double_t *local) const
The knowledge of the path to the objects that need to be misaligned is essential since there is no ot...
void RefreshPhysicalNodes(Bool_t lock=kTRUE)
Refresh physical nodes to reflect the actual geometry paths after alignment was applied.
Int_t fMaxThreads
Definition: TGeoManager.h:128
Int_t * fKeyPNEId
Definition: TGeoManager.h:126
Bool_t fLoopVolumes
flag that geometry is closed
Definition: TGeoManager.h:69
void SetStep(Double_t step)
TGeoMaterial * FindDuplicateMaterial(const TGeoMaterial *mat) const
Find if a given material duplicates an existing one.
Physical nodes are the actual &#39;touchable&#39; objects in the geometry, representing a path of positioned ...
const Double_t * GetCldir() const
Definition: TGeoManager.h:490
A doubly linked list.
Definition: TList.h:47
void PopDummy(Int_t ipop=9999)
Definition: TGeoManager.h:543
TGeoPhysicalNode * MakeAlignablePN(const char *name)
Make a physical node from the path pointed by an alignable object with a given name.
Int_t GetMaxVisNodes() const
Definition: TGeoManager.h:190
void CreateThreadData() const
Create thread private data for all geometry objects.
TGeoHMatrix * GetMotherMatrix(Int_t up=1) const
Definition: TGeoManager.h:479
Bool_t CheckPath(const char *path) const
Check if a geometry path is valid without changing the state of the current navigator.
Double_t GetLastSafety() const
Definition: TGeoManager.h:381
TObject * UncheckedAt(Int_t i) const
Definition: TObjArray.h:91
Int_t PushPoint(Int_t startlevel=0)
Definition: TGeoManager.h:540
void SelectTrackingMedia()
Define different tracking media.
TObjArray * GetListOfVolumes() const
Definition: TGeoManager.h:463
Int_t AddOverlap(const TNamed *ovlp)
Add an illegal overlap/extrusion to the list.
TGeoVolumeAssembly * MakeVolumeAssembly(const char *name)
Make an assembly of volumes.
Double_t fTmin
highest range for phi cut
Definition: TGeoManager.h:53
void RemoveNavigator(const TGeoNavigator *nav)
Clear a single navigator.
TObjArray * fPhysicalNodes
Definition: TGeoManager.h:85
Bool_t IsNullStep() const
Definition: TGeoManager.h:404
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:41
Bool_t fTimeCut
Definition: TGeoManager.h:74
Bool_t IsSamePoint(Double_t x, Double_t y, Double_t z) const
Check if a new point with given coordinates is the same as the last located one.
Int_t GetBombMode() const
Definition: TGeoManager.h:188
const Double_t * GetNormal() const
Definition: TGeoManager.h:491
Int_t CountNodes(const TGeoVolume *vol=0, Int_t nlevels=10000, Int_t option=0)
Count the total number of nodes starting from a volume, nlevels down.
Bool_t PopPath()
void SetDrawExtraPaths(Bool_t flag=kTRUE)
Definition: TGeoManager.h:215
Int_t fNLevel
array of node id&#39;s
Definition: TGeoManager.h:117
Int_t * fNodeIdArray
table of elements
Definition: TGeoManager.h:116
const Double_t * GetCurrentPoint() const
Definition: TGeoManager.h:486
void SetCurrentPoint(const Double_t *point)
Base abstract class for all shapes.
Definition: TGeoShape.h:27
Int_t GetStackLevel() const
TGeoPNEntry * GetAlignableEntry(const char *name) const
Retrieves an existing alignable object.
void Matrix(Int_t index, Double_t theta1, Double_t phi1, Double_t theta2, Double_t phi2, Double_t theta3, Double_t phi3)
Create rotation matrix named &#39;mat<index>&#39;.
TRandom2 r(17)
static void LockGeometry()
Lock current geometry so that no other geometry can be imported.
TGeoMedium * Medium(const char *name, Int_t numed, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin)
Create tracking medium.
Bool_t IsStepExiting() const
TObjArray * GetListOfTracks() const
Definition: TGeoManager.h:468
Int_t GetLevel() const
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)...
Int_t GetLevel() const
Definition: TGeoManager.h:492
const Double_t * GetLastPoint() const
TGeoNode * FindNextBoundaryAndStep(Double_t stepmax=TGeoShape::Big(), Bool_t compsafe=kFALSE)
Compute distance to next boundary within STEPMAX.
void DefaultColors()
Set default volume colors according to A of material.
Int_t fExplodedView
Definition: TGeoManager.h:59
TGeoNavigator * AddNavigator()
Add a navigator in the list of navigators.
Double_t GetTmax() const
Definition: TGeoManager.h:192
TGeoManager()
Default constructor.
void SetStep(Double_t step)
Definition: TGeoManager.h:396
void SetMatrixTransform(Bool_t on=kTRUE)
Definition: TGeoManager.h:394
Int_t GetNmany() const
Definition: TGeoManager.h:173
Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects)...
Definition: TGeoManager.h:176
Double_t * FindNormalFast()
Computes fast normal to next crossed boundary, assuming that the current point is close enough to the...
TGeoVolume * MakePgon(const char *name, TGeoMedium *medium, Double_t phi, Double_t dphi, Int_t nedges, Int_t nz)
Make in one step a volume pointing to a polygone shape with given medium.
static Int_t fgMaxLevel
Verbosity level for Info messages (no IO).
Definition: TGeoManager.h:43
void CdNode(Int_t nodeid)
Change current path to point to the node having this id.
Bool_t PopPoint()
Definition: TGeoManager.h:541
Double_t fPhimax
lowest range for phi cut
Definition: TGeoManager.h:52
void SetPdgName(Int_t pdg, const char *name)
Set a name for a particle having a given pdg.
Bool_t IsDrawingExtra() const
Definition: TGeoManager.h:199
void GetBombFactors(Double_t &bombx, Double_t &bomby, Double_t &bombz, Double_t &bombr) const
Retrieve cartesian and radial bomb factors.
TGeoShape * GetClippingShape() const
Definition: TGeoManager.h:184
Int_t fMaxVisNodes
Definition: TGeoManager.h:64
Bool_t IsOutside() const
Definition: TGeoManager.h:402
void DrawCurrentPoint(Int_t color=2)
Draw current point in the same view.
TGeoNode * GetMother(Int_t up=1) const
Definition: TGeoManager.h:478
Bool_t IsSameLocation() const
Definition: TGeoManager.h:389
Double_t E()
Definition: TMath.h:54
Int_t fNpdg
current track
Definition: TGeoManager.h:66
Bool_t IsOnBoundary() const
Definition: TGeoManager.h:403
Bool_t IsCleaning() const
Definition: TGeoManager.h:454
void SetLastPoint(Double_t x, Double_t y, Double_t z)
TObjArray * fTracks
list of runtime volumes
Definition: TGeoManager.h:88
TGeoMedium * GetMedium(const char *medium) const
Search for a named tracking medium. All trailing blanks stripped.
TGeoVolume * MakeTrap(const char *name, TGeoMedium *medium, Double_t dz, Double_t theta, Double_t phi, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2)
Make in one step a volume pointing to a trapezoid shape with given medium.
TGeoNodeCache * GetCache() const
const Double_t * GetCldirChecked() const
Definition: TGeoManager.h:489
Int_t GetTrackIndex(Int_t id) const
Get index for track id, -1 if not found.
Double_t fVisDensity
particles to be drawn
Definition: TGeoManager.h:58
const Double_t * GetCurrentDirection() const
Definition: TGeoManager.h:487
virtual Int_t GetByteCount(Option_t *option=0)
Get total size of geometry in bytes.
void SetLoopVolumes(Bool_t flag=kTRUE)
Definition: TGeoManager.h:138
TGeoNavigator * GetCurrentNavigator() const
Returns current navigator for the calling thread.
Bool_t PopPath()
Definition: TGeoManager.h:538
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
TList * fMaterials
Definition: TGeoManager.h:91
Double_t GetSafeDistance() const
Bool_t IsStepEntering() const
Definition: TGeoManager.h:400
Int_t * fValuePNEId
Definition: TGeoManager.h:127
void DrawTracks(Option_t *option="")
Draw tracks over the geometry, according to option.
void SetCheckedNode(TGeoNode *node)
Assign a given node to be checked for overlaps. Any other overlaps will be ignored.
TGeoVolume * MakeTrd2(const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy1, Double_t dy2, Double_t dz)
Make in one step a volume pointing to a TGeoTrd2 shape with given medium.
const char * GetPdgName(Int_t pdg) const
Get name for given pdg code;.
Bool_t fStreamVoxels
flag volume lists loop
Definition: TGeoManager.h:70
TGeoVolume * Division(const char *name, const char *mother, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step, Int_t numed=0, Option_t *option="")
Create a new volume by dividing an existing one (GEANT3 like)
void SetUseParallelWorldNav(Bool_t flag)
Activate/deactivate usage of parallel world navigation.
void ClearThreadData() const
const Double_t * GetCurrentPoint() const
TObjArray * GetListOfMatrices() const
Definition: TGeoManager.h:460
void DrawPath(const char *path, Option_t *option="")
Draw current path.
virtual ~TGeoManager()
Destructor.
void SetMultiThread(Bool_t flag=kTRUE)
Definition: TGeoManager.h:434
TObjArray * fNodes
Definition: TGeoManager.h:93
void RandomPoints(const TGeoVolume *vol, Int_t npoints=10000, Option_t *option="")
Draw random points in the bounding box of a volume.
TGeoNode * FindNode(Bool_t safe_start=kTRUE)
Returns deepest node containing current point.
TObjArray * fGVolumes
list of runtime shapes
Definition: TGeoManager.h:87
void MasterToLocalBomb(const Double_t *master, Double_t *local) const
Definition: TGeoManager.h:513
TGeoNodeCache * GetCache() const
Definition: TGeoManager.h:530
Int_t GetSafeLevel() const
Go upwards the tree until a non-overlapping node.
TGeoVolume * fCurrentVolume
current navigator
Definition: TGeoManager.h:107
Int_t PushPath(Int_t startlevel=0)
TGeoMaterial * Material(const char *name, Double_t a, Double_t z, Double_t dens, Int_t uid, Double_t radlen=0, Double_t intlen=0)
Create material with given A, Z and density, having an unique id.
Int_t fRaytraceMode
Flag for multi-threading.
Definition: TGeoManager.h:130
void DefaultAngles()
Set default angles for a given view.
Bool_t PopPoint()
virtual Bool_t cd(const char *path="")
Browse the tree of nodes starting from fTopNode according to pathname.
TGeoPhysicalNode * GetPhysicalNode(Int_t i) const
Definition: TGeoManager.h:499
void TestOverlaps(const char *path="")
Geometry overlap checker based on sampling.
Double_t Weight(Double_t precision=0.01, Option_t *option="va")
Estimate weight of volume VOL with a precision SIGMA(W)/W better than PRECISION.
Double_t GetStep() const
Definition: TGeoManager.h:382
Int_t GetVisOption() const
Returns current depth to which geometry is drawn.
static Int_t GetMaxLevels()
Return maximum number of levels used in the geometry.
TObjArray * GetListOfGVolumes() const
Definition: TGeoManager.h:464
void TopToMaster(const Double_t *top, Double_t *master) const
Convert coordinates from top volume frame to master.
void MasterToLocalBomb(const Double_t *master, Double_t *local) const
TGeoVolume * MakeTubs(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2)
Make in one step a volume pointing to a tube segment shape with given medium.
TGeoHMatrix * GetGLMatrix() const
Definition: TGeoManager.h:482
void SetCurrentDirection(const Double_t *dir)
void DoBackupState()
Backup the current state without affecting the cache stack.
Bool_t IsNodeSelectable() const
Definition: TGeoManager.h:200
R__EXTERN TGeoManager * gGeoManager
Definition: TGeoManager.h:554
void RemoveMaterial(Int_t index)
Remove material at given index.
Bool_t GotoSafeLevel()
Go upwards the tree until a non-overlapping node.
Int_t PushPoint(Int_t startlevel=0)
double Double_t
Definition: RtypesCore.h:55
Int_t GetMaxLevel() const
Definition: TGeoManager.h:493
TGeoNode * GetMother(Int_t up=1) const
TGeoVolume * GetVolume(const char *name) const
Search for a named volume. All trailing blanks stripped.
TVirtualGeoPainter * fPainter
flag that nodes are the selected objects in pad rather than volumes
Definition: TGeoManager.h:80
Double_t GetSafeDistance() const
Definition: TGeoManager.h:380
void Voxelize(Option_t *option=0)
Voxelize all non-divided volumes.
Bool_t IsMultiThread() const
Definition: TGeoManager.h:437
Int_t GetNodeId() const
Definition: TGeoManager.h:476
void SetPaintVolume(TGeoVolume *vol)
Definition: TGeoManager.h:211
virtual ULong_t SizeOf(const TGeoNode *node, Option_t *option)
computes the total size in bytes of the branch starting with node.
void ModifiedPad() const
Send "Modified" signal to painter.
void CdTop()
Make top level node the current node.
unsigned long ULong_t
Definition: RtypesCore.h:51
void RegisterMatrix(const TGeoMatrix *matrix)
Register a matrix to the list of matrices.
void SetPhiRange(Double_t phimin=0., Double_t phimax=360.)
Set cut phi range.
Double_t y[n]
Definition: legend1.C:17
TGeoVolume * GetCurrentVolume() const
Definition: TGeoManager.h:488
static Bool_t fgLockNavigators
Number of registered threads.
Definition: TGeoManager.h:105
TObjArray * GetListOfPhysicalNodes()
Definition: TGeoManager.h:458
TVirtualGeoTrack * FindTrackWithId(Int_t id) const
Search the track hierarchy to find the track with the given id.
void forward(const LAYERDATA &prevLayerData, LAYERDATA &currLayerData)
apply the weights (and functions) in forward direction of the DNN
Definition: NeuralNet.icc:539
Bool_t fUsePWNav
Raytrace mode: 0=normal, 1=pass through, 2=transparent.
Definition: TGeoManager.h:131
Bool_t IsEntering() const
Definition: TGeoManager.h:398
Bool_t SetCurrentNavigator(Int_t index)
Switch to another existing navigator for the calling thread.
Bool_t fClosed
Definition: TGeoManager.h:68
Bool_t IsAnimatingTracks() const
Definition: TGeoManager.h:384
void SetTminTmax(Double_t tmin=0, Double_t tmax=999)
Set time cut interval for drawing tracks.
Bool_t IsInPhiRange() const
True if current node is in phi range.
TGeoHMatrix * GetCurrentMatrix() const
static Double_t Big()
Definition: TGeoShape.h:90
Int_t AddShape(const TGeoShape *shape)
Add a shape to the list. Returns index of the shape in list.
Media are used to store properties related to tracking and which are useful only when using geometry ...
Definition: TGeoMedium.h:25
Bool_t PopPath(Int_t index)
Definition: TGeoManager.h:539
static ThreadsMap_t * fgThreadId
Map between thread id&#39;s and navigator arrays.
Definition: TGeoManager.h:103
void SetCheckingOverlaps(Bool_t flag=kTRUE)
Definition: TGeoManager.h:392
TGeoVolume * MakeTube(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
Bool_t IsLoopingVolumes() const
Definition: TGeoManager.h:134
void ConvertReflections()
Convert all reflections in geometry to normal rotations + reflected shapes.
Mother of all ROOT objects.
Definition: TObject.h:44
you should not use this method at all Int_t Int_t z
Definition: TRolke.cxx:630
TGeoNode * FindNextBoundary(Double_t stepmax=TGeoShape::Big(), const char *path="", Bool_t frombdr=kFALSE)
Find distance to next boundary and store it in fStep.
Class providing navigation API for TGeo geometries.
Definition: TGeoNavigator.h:37
Bool_t IsCheckingOverlaps() const
Definition: TGeoManager.h:385
#define R__EXTERN
Definition: DllImport.h:27
Bool_t IsParallelWorldNav() const
Definition: TGeoManager.h:549
void CountLevels()
Count maximum number of nodes per volume, maximum depth and maximum number of xtru vertices...
Abstract class for geometry painters.
void ClearOverlaps()
Clear the list of overlaps.
void SetCheckingOverlaps(Bool_t flag=kTRUE)
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
Definition: TGeoNode.h:51
void Node(const char *name, Int_t nr, const char *mother, Double_t x, Double_t y, Double_t z, Int_t irot, Bool_t isOnly, Float_t *upar, Int_t npar=0)
Create a node called <name_nr> pointing to the volume called <name> as daughter of the volume called ...
void SetNsegments(Int_t nseg)
Set number of segments for approximating circles in drawing.
void SetMaxThreads(Int_t nthreads)
Set maximum number of threads for navigation.
void SetExplodedView(Int_t iopt=0)
Set type of exploding view (see TGeoPainter::SetExplodedView())
virtual void Edit(Option_t *option="")
Append a pad for this geometry.
Bool_t IsMatrixReflection() const
Definition: TGeoManager.h:387
void SetVisLevel(Int_t level=3)
set default level down to which visualization is performed
TGeoElementTable * fElementTable
clipping shape for raytracing
Definition: TGeoManager.h:114
TString fPath
Definition: TGeoManager.h:56
void SaveAttributes(const char *filename="tgeoatt.C")
Save current attributes in a macro.
TGeoManager & operator=(const TGeoManager &)
assignment operator
static Int_t ThreadId()
Translates the current thread id to an ordinal number.
Int_t fSizePNEId
array of physical node entries
Definition: TGeoManager.h:124
TGeoNode * GetNextNode() const
TGeoVolume * fUserPaintVolume
volume currently painted
Definition: TGeoManager.h:119
TGeoVolume * FindVolumeFast(const char *name, Bool_t multi=kFALSE)
Fast search for a named volume. All trailing blanks stripped.
void SetClipping(Bool_t flag=kTRUE)
Definition: TGeoManager.h:204
Double_t * FindNormal(Bool_t forward=kTRUE)
Computes normal vector to the next surface that will be or was already crossed when propagating on a ...
void CdNext()
Do a cd to the node found next by FindNextBoundary.
Bool_t IsEntering() const
Int_t GetCurrentNodeId() const
Get the unique ID of the current node.
TGeoVolume * MakeCtub(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2, Double_t lx, Double_t ly, Double_t lz, Double_t tx, Double_t ty, Double_t tz)
Make in one step a volume pointing to a tube segment shape with given medium.
void BuildDefaultMaterials()
Now just a shortcut for GetElementTable.
Int_t GetMaxThreads() const
Definition: TGeoManager.h:432
TGeoPNEntry * GetAlignableEntryByUID(Int_t uid) const
Retrieves an existing alignable object having a preset UID.
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
Definition: TRolke.cxx:630
TObjArray * GetListOfGShapes() const
Definition: TGeoManager.h:466
#define NULL
Definition: Rtypes.h:82
void SetAnimateTracks(Bool_t flag=kTRUE)
Definition: TGeoManager.h:532
Int_t AddMaterial(const TGeoMaterial *material)
Add a material to the list. Returns index of the material in list.
Bool_t fMultiThread
Max number of threads.
Definition: TGeoManager.h:129
UChar_t * fBits
Definition: TGeoManager.h:95
void SetStartSafe(Bool_t flag=kTRUE)
Definition: TGeoManager.h:393
TString fParticleName
path to current node
Definition: TGeoManager.h:57
TObjArray * GetListOfUVolumes() const
Definition: TGeoManager.h:467
Int_t AddTransformation(const TGeoMatrix *matrix)
Add a matrix to the list. Returns index of the matrix in list.
const char * GetPath() const
Get path to the current node in the form /node0/node1/...
static Int_t GetMaxXtruVert()
Return maximum number of vertices for an xtru shape used.
void EnableInactiveVolumes()
Definition: TGeoManager.h:365
TGeoVolume * fPaintVolume
Definition: TGeoManager.h:118
unsigned char UChar_t
Definition: RtypesCore.h:34
void LocalToMasterVect(const Double_t *local, Double_t *master) const
void GetBranchOnlys(Int_t *isonly) const
Fill node copy numbers of current branch into an array.
void GetBranchNames(Int_t *names) const
Fill volume names of current branch into an array.
TObjArray * GetListOfOverlaps()
Definition: TGeoManager.h:459
TGeoParallelWorld * CreateParallelWorld(const char *name)
Create a parallel world for prioritised navigation.
Bool_t IsVisLeaves() const
Definition: TGeoManager.h:201
Bool_t IsStreamingVoxels() const
Definition: TGeoManager.h:453
TObject * At(Int_t idx) const
Definition: TObjArray.h:167
UChar_t * GetBits()
Definition: TGeoManager.h:426
void ClearNavigators()
Clear all navigators.
void UnbombTranslation(const Double_t *tr, Double_t *bombtr)
Get the new &#39;unbombed&#39; translation vector according current exploded view mode.
Double_t GetStep() const
void PrintOverlaps() const
Prints the current list of overlaps.
TGeoNode * FindNextDaughterBoundary(Double_t *point, Double_t *dir, Int_t &idaughter, Bool_t compmatrix=kFALSE)
Computes as fStep the distance to next daughter of the current volume.
Int_t GetMaterialIndex(const char *matname) const
Return index of named material.
TGeoNode * GetCurrentNode() const
const Bool_t kTRUE
Definition: Rtypes.h:91
TGeoVolume * fMasterVolume
top physical node
Definition: TGeoManager.h:110
Base class for a flat parallel geometry.
static TGeoManager * Import(const char *filename, const char *name="", Option_t *option="")
static function Import a geometry from a gdml or ROOT file
void LocalToMaster(const Double_t *local, Double_t *master) const
void SetVisOption(Int_t option=0)
set drawing mode :
TVirtualGeoPainter * GetGeomPainter()
Make a default painter if none present. Returns pointer to it.
Bool_t IsStepEntering() const
TGeoMaterial * GetMaterial(const char *matname) const
Search for a named material. All trailing blanks stripped.
static void UnlockGeometry()
Unlock current geometry.
Bool_t GetTminTmax(Double_t &tmin, Double_t &tmax) const
Get time cut for drawing tracks.
TGeoVolume * GetCurrentVolume() const
char name[80]
Definition: TGX11.cxx:109
Int_t GetNtracks() const
Definition: TGeoManager.h:368
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute mouse actions on this manager.
Bool_t InitArrayPNE() const
Initialize PNE array for fast access via index and unique-id.
Double_t GetVisDensity() const
Definition: TGeoManager.h:195
void ClearPhysicalNodes(Bool_t mustdelete=kFALSE)
Clear the current list of physical nodes, so that we can start over with a new list.
void SetNmeshPoints(Int_t npoints=1000)
Set the number of points to be generated on the shape outline when checking for overlaps.
void MasterToLocal(const Double_t *master, Double_t *local) const
static Int_t fgMaxXtruVert
Maximum number of daughters.
Definition: TGeoManager.h:45
void MasterToTop(const Double_t *master, Double_t *top) const
Convert coordinates from master volume frame to top.
TVirtualGeoTrack * GetLastTrack()
Definition: TGeoManager.h:370
void CheckBoundaryReference(Int_t icheck=-1)
Check the boundary errors reference file created by CheckBoundaryErrors method.
TGeoNode * CrossBoundaryAndLocate(Bool_t downwards, TGeoNode *skipnode)
Cross next boundary and locate within current node The current point must be on the boundary of fCurr...