/usr/include/root/TGeoParallelWorld.h is in libroot-geom-dev 5.34.19+dfsg-1.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | /*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
// Author: Andrei Gheata 30/06/14
#ifndef ROOT_TGeoParallelWorld
#define ROOT_TGeoParallelWorld
#ifndef ROOT_TGeoVolume
#include "TGeoVolume.h"
#endif
// forward declarations
class TGeoManager;
class TGeoPhysicalNode;
class TGeoVolume;
////////////////////////////////////////////////////////////////////////////
// //
// TGeoParallelWorld - base class for a flat world that can be navigated //
// in parallel //
// //
////////////////////////////////////////////////////////////////////////////
class TGeoParallelWorld : public TNamed
{
protected :
TGeoManager *fGeoManager; //! base geometry
TObjArray *fPhysical; // array of physical nodes
TGeoVolume *fVolume; // helper volume
Bool_t fIsClosed; // Closed flag
Bool_t fUseOverlaps; // Activated if user defined overlapping candidates
TGeoParallelWorld(const TGeoParallelWorld&);
TGeoParallelWorld& operator=(const TGeoParallelWorld&);
public:
// constructors
TGeoParallelWorld() : TNamed(),fGeoManager(0),fPhysical(0),fVolume(0),fIsClosed(kFALSE),fUseOverlaps(kFALSE) {}
TGeoParallelWorld(const char *name, TGeoManager *mgr);
// destructor
virtual ~TGeoParallelWorld();
// API for adding components nodes
// void AddNode(TGeoVolume *vol, TGeoMatrix *matrix=0);
void AddNode(TGeoPhysicalNode *pnode);
// Adding overlap candidates can improve performance
void AddOverlap(TGeoVolume *vol);
// Closing a parallel geometry is mandatory
Bool_t CloseGeometry();
// Refresh structures in case of re-alignment
void RefreshPhysicalNodes();
// Navigation interface
TGeoPhysicalNode *FindNode(Double_t point[3]);
TGeoPhysicalNode *FindNextBoundary(Double_t point[3], Double_t dir[3], Double_t &step, Double_t stepmax=1.E30);
Double_t Safety(Double_t point[3], Double_t safmax=1.E30);
// Getters
TGeoManager *GetGeometry() const {return fGeoManager;}
Bool_t IsClosed() const {return fIsClosed;}
TGeoVolume *GetVolume() const {return fVolume;}
// Utilities
void CheckOverlaps(Double_t ovlp=0.001); // default 10 microns
void Draw(Option_t *option);
ClassDef(TGeoParallelWorld, 1) // parallel world base clas
};
#endif
|