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