library: libGeom #include "TGeoPhysicalNode.h"

# TGeoPhysicalNode

class description - source file - inheritance tree (.pdf)

## class TGeoPhysicalNode : public TObject, public TAttLine

| Inheritance Chart:
`TObject`
`TAttLine`
| <- | `TGeoPhysicalNode` |

        protected:

          void SetAligned(Bool_t flag = kTRUE)

        public:

                              TGeoPhysicalNode()
                              TGeoPhysicalNode(const char* path)
                              TGeoPhysicalNode(const TGeoPhysicalNode&)
                      virtual ~TGeoPhysicalNode()
                         void Align(TGeoMatrix* newmat = 0, TGeoShape* newshape = 0, Bool_t check = kFALSE)
                         void cd() const
               static TClass* Class()
                 virtual void Draw(Option_t* option = "")
                        Int_t GetLevel() const
                 TGeoHMatrix* GetMatrix(Int_t level = -1) const
                    TGeoNode* GetMother(Int_t levup = 1) const
          virtual const char* GetName() const
                    TGeoNode* GetNode(Int_t level = -1) const
                   TGeoShape* GetShape(Int_t level = -1) const
                  TGeoVolume* GetVolume(Int_t level = -1) const
              virtual TClass* IsA() const
                       Bool_t IsAligned() const
                       Bool_t IsVisible() const
                       Bool_t IsVisibleFull() const
                       Bool_t IsVolAttributes() const
            TGeoPhysicalNode& operator=(const TGeoPhysicalNode&)
                 virtual void Paint(Option_t* option = "")
                         void SetBranchAsState()
                         void SetIsVolAtt(Bool_t flag = kTRUE)
                       Bool_t SetPath(const char* path)
                         void SetVisibility(Bool_t flag = kTRUE)
                         void SetVisibleFull(Bool_t flag = kTRUE)
                 virtual void ShowMembers(TMemberInspector& insp, char* parent)
                 virtual void Streamer(TBuffer& b)
                         void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

               Int_t fLevel     depth in the geometry tree
          TObjArray* fMatrices  global transformation matrices
          TObjArray* fNodes     branch of nodes

        public:

          static const enum TGeoPhysicalNode:: kGeoPNodeFull
          static const enum TGeoPhysicalNode:: kGeoPNodeVisible
          static const enum TGeoPhysicalNode:: kGeoPNodeVolAtt
          static const enum TGeoPhysicalNode:: kGeoPNodeAligned

## Class Description

     TGeoPhysicalNode
    _________

TGeoPhysicalNode()

     Default constructor

TGeoPhysicalNode(const char *path)

     Constructor

~TGeoPhysicalNode()

     Destructor

void Align(TGeoMatrix *newmat, TGeoShape *newshape, Bool_t check)

     Align a physical node with a new relative matrix/shape.
     Example: /TOP_1/A_1/B_1/C_1
        node->Align(transl_1, box) will perform:
        - change RELATIVE translation of C_1 node (with respect to its
          container volume B) to transl_1
        - change the shape of the C volume
     *NOTE* The operations will affect ONLY the LAST node in the branch. All
       volumes/nodes in the branch represented by this physical node are
       CLONED so the operation does not affect other possible replicas.

void cd() const

void Draw(Option_t * /*option*/)

TGeoNode* GetMother(Int_t levup) const

     Return parent at LEVUP generation

TGeoHMatrix* GetMatrix(Int_t level) const

     Return global matrix for node at LEVEL.

const char* GetName() const

     Retreive the name of this physical node

TGeoNode* GetNode(Int_t level) const

     Return node in branch at LEVEL. If not specified, return last leaf.

TGeoVolume* GetVolume(Int_t level) const

     Return volume associated with node at LEVEL in the branch

TGeoShape* GetShape(Int_t level) const

     Return shape associated with volume.

void Paint(Option_t * /*option*/)

     Paint this node and its content according to visualization settings.

void SetBranchAsState()

     Set node branch according to current state

Bool_t SetPath(const char *path)

     Specify the path for this node.

### Inline Functions

                         void SetAligned(Bool_t flag = kTRUE)
                        Int_t GetLevel() const
                       Bool_t IsAligned() const
                       Bool_t IsVolAttributes() const
                       Bool_t IsVisible() const
                       Bool_t IsVisibleFull() const
                         void SetIsVolAtt(Bool_t flag = kTRUE)
                         void SetVisibility(Bool_t flag = kTRUE)
                         void SetVisibleFull(Bool_t flag = kTRUE)
                      TClass* Class()
                      TClass* IsA() const
                         void ShowMembers(TMemberInspector& insp, char* parent)
                         void Streamer(TBuffer& b)
                         void StreamerNVirtual(TBuffer& b)
             TGeoPhysicalNode TGeoPhysicalNode(const TGeoPhysicalNode&)
            TGeoPhysicalNode& operator=(const TGeoPhysicalNode&)

Author: Andrei Gheata 17/02/04
Last update: root/geom:$Name: $:$Id: TGeoPhysicalNode.cxx,v 1.3 2004/04/22 14:07:14 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *