11 #ifndef ROOT_TGeoParallelWorld 
   12 #define ROOT_TGeoParallelWorld 
   19 class TGeoPhysicalNode;
 
   22 class TGeoParallelWorld : 
public TNamed
 
   25    TGeoManager       *fGeoManager;     
 
   30    TGeoPhysicalNode  *fLastState;      
 
   33    TGeoParallelWorld(
const TGeoParallelWorld&);
 
   34    TGeoParallelWorld& operator=(
const TGeoParallelWorld&);
 
   38    TGeoParallelWorld() : TNamed(),fGeoManager(0),fPaths(0),fUseOverlaps(kFALSE),fIsClosed(kFALSE),fVolume(0),fLastState(0),fPhysical(0) {}
 
   39    TGeoParallelWorld(
const char *name, TGeoManager *mgr);
 
   42    virtual ~TGeoParallelWorld();
 
   44    void              AddNode(
const char *path);
 
   46    void              SetUseOverlaps(Bool_t flag) {fUseOverlaps = flag;}
 
   47    Bool_t            IsUsingOverlaps()
 const {
return fUseOverlaps;}
 
   48    void              ResetOverlaps() 
const;
 
   50    void              AddOverlap(TGeoVolume *vol, Bool_t activate=kTRUE);
 
   51    void              AddOverlap(
const char *volname, Bool_t activate=kTRUE);
 
   53    Int_t             PrintDetectedOverlaps() 
const;
 
   56    Bool_t            CloseGeometry();
 
   58    void              RefreshPhysicalNodes();
 
   61    TGeoPhysicalNode *FindNode(Double_t point[3]);
 
   62    TGeoPhysicalNode *FindNextBoundary(Double_t point[3], Double_t dir[3], Double_t &step, Double_t stepmax=1.E30);
 
   63    Double_t          Safety(Double_t point[3], Double_t safmax=1.E30);
 
   66    TGeoManager      *GetGeometry()
 const {
return fGeoManager;}
 
   67    Bool_t            IsClosed()
 const    {
return fIsClosed;}
 
   68    TGeoVolume       *GetVolume()
 const   {
return fVolume;}
 
   71    void              CheckOverlaps(Double_t ovlp=0.001); 
 
   72    void              Draw(Option_t *option);
 
   74    ClassDef(TGeoParallelWorld, 3)