Logo ROOT   6.12/07
Reference Guide
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TGeoPhysicalNode Class Reference

Physical nodes are the actual 'touchable' objects in the geometry, representing a path of positioned volumes starting with the top node: path=/TOP/A_1/B_4/C_3 , where A, B, C represent names of volumes.

The number of physical nodes is given by the total number of possible of branches in the geometry hierarchy. In case of detector geometries and specially for calorimeters this number can be of the order 1e6-1e9, therefore it is impossible to create all physical nodes as objects in memory. In TGeo, physical nodes are represented by the class TGeoPhysicalNode and can be created on demand for alignment purposes:

TGeoPhysicalNode *pn = new TGeoPhysicalNode("path_to_object")

Once created, a physical node can be misaligned, meaning that its position or even shape can be changed:

pn->Align(TGeoMatrix* newmat, TGeoShape* newshape, Bool_t check=kFALSE)

Definition at line 36 of file TGeoPhysicalNode.h.

Public Types

enum  { kGeoPNodeFull = BIT(10), kGeoPNodeVisible = BIT(11), kGeoPNodeVolAtt = BIT(12), kGeoPNodeAligned = BIT(13) }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kInconsistent = 0x08000000,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5),
  kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 

Public Member Functions

 TGeoPhysicalNode ()
 Default constructor. More...
 
 TGeoPhysicalNode (const char *path)
 Constructor. More...
 
virtual ~TGeoPhysicalNode ()
 Destructor. More...
 
Bool_t Align (TGeoMatrix *newmat=0, TGeoShape *newshape=0, Bool_t check=kFALSE, Double_t ovlp=0.001)
 Align a physical node with a new relative matrix/shape. More...
 
void cd () const
 
void Draw (Option_t *option="")
 Draw this node. More...
 
Int_t GetLevel () const
 
TGeoHMatrixGetMatrix (Int_t level=-1) const
 Return global matrix for node at LEVEL. More...
 
TGeoNodeGetMother (Int_t levup=1) const
 Return parent at LEVUP generation. More...
 
TGeoNodeGetNode (Int_t level=-1) const
 Return node in branch at LEVEL. If not specified, return last leaf. More...
 
TGeoHMatrixGetOriginalMatrix () const
 
TGeoShapeGetShape (Int_t level=-1) const
 Return shape associated with volume. More...
 
TGeoVolumeGetVolume (Int_t level=-1) const
 Return volume associated with node at LEVEL in the branch. More...
 
Bool_t IsAligned () const
 
Bool_t IsMatchingState (TGeoNavigator *nav) const
 Checks if a given navigator state matches this physical node. More...
 
Bool_t IsVisible () const
 
Bool_t IsVisibleFull () const
 
Bool_t IsVolAttributes () const
 
virtual void Paint (Option_t *option="")
 Paint this node and its content according to visualization settings. More...
 
virtual void Print (Option_t *option="") const
 Print info about this node. More...
 
void Refresh ()
 Refresh this physical node. More...
 
void SetIsVolAtt (Bool_t flag=kTRUE)
 
void SetMatrixOrig (const TGeoMatrix *local)
 Allows PN entries (or users) to preset the local original matrix for the last node pointed by the path. More...
 
void SetVisibility (Bool_t flag=kTRUE)
 
void SetVisibleFull (Bool_t flag=kTRUE)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TString &name, const TString &title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
virtual ~TNamed ()
 TNamed destructor. More...
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings (""). More...
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects. More...
 
virtual void Copy (TObject &named) const
 Copy this to obj. More...
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 List TNamed name and title. More...
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual void SetName (const char *name)
 Set the name of the TNamed. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
ULong_t CheckedHash ()
 Checked and record whether for this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 
- Public Member Functions inherited from TAttLine
 TAttLine ()
 AttLine default constructor. More...
 
 TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth)
 AttLine normal constructor. More...
 
virtual ~TAttLine ()
 AttLine destructor. More...
 
void Copy (TAttLine &attline) const
 Copy this line attributes to a new TAttLine. More...
 
Int_t DistancetoLine (Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
 Compute distance from point px,py to a line. More...
 
virtual Color_t GetLineColor () const
 Return the line color. More...
 
virtual Style_t GetLineStyle () const
 Return the line style. More...
 
virtual Width_t GetLineWidth () const
 Return the line width. More...
 
virtual void Modify ()
 Change current line attributes if necessary. More...
 
virtual void ResetAttLine (Option_t *option="")
 Reset this line attributes to default values. More...
 
virtual void SaveLineAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
 Save line attributes as C++ statement(s) on output stream out. More...
 
virtual void SetLineAttributes ()
 Invoke the DialogCanvas Line attributes. More...
 
virtual void SetLineColor (Color_t lcolor)
 Set the line color. More...
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color. More...
 
virtual void SetLineStyle (Style_t lstyle)
 Set the line style. More...
 
virtual void SetLineWidth (Width_t lwidth)
 Set the line width. More...
 

Protected Member Functions

 TGeoPhysicalNode (const TGeoPhysicalNode &)
 copy constructor More...
 
TGeoPhysicalNodeoperator= (const TGeoPhysicalNode &)
 assignment operator More...
 
void SetAligned (Bool_t flag=kTRUE)
 
void SetBranchAsState ()
 Set node branch according to current state. More...
 
Bool_t SetPath (const char *path)
 Specify the path for this node. More...
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Protected Attributes

Int_t fLevel
 
TObjArrayfMatrices
 
TGeoHMatrixfMatrixOrig
 
TObjArrayfNodes
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TAttLine
Color_t fLineColor
 Line color. More...
 
Style_t fLineStyle
 Line style. More...
 
Width_t fLineWidth
 Line width. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

#include <TGeoPhysicalNode.h>

Inheritance diagram for TGeoPhysicalNode:
[legend]

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kGeoPNodeFull 
kGeoPNodeVisible 
kGeoPNodeVolAtt 
kGeoPNodeAligned 

Definition at line 53 of file TGeoPhysicalNode.h.

Constructor & Destructor Documentation

◆ TGeoPhysicalNode() [1/3]

TGeoPhysicalNode::TGeoPhysicalNode ( const TGeoPhysicalNode gpn)
protected

copy constructor

Definition at line 114 of file TGeoPhysicalNode.cxx.

◆ TGeoPhysicalNode() [2/3]

TGeoPhysicalNode::TGeoPhysicalNode ( )

Default constructor.

Definition at line 79 of file TGeoPhysicalNode.cxx.

◆ TGeoPhysicalNode() [3/3]

TGeoPhysicalNode::TGeoPhysicalNode ( const char *  path)

Constructor.

Definition at line 94 of file TGeoPhysicalNode.cxx.

◆ ~TGeoPhysicalNode()

TGeoPhysicalNode::~TGeoPhysicalNode ( )
virtual

Destructor.

Definition at line 143 of file TGeoPhysicalNode.cxx.

Member Function Documentation

◆ Align()

Bool_t TGeoPhysicalNode::Align ( TGeoMatrix newmat = 0,
TGeoShape newshape = 0,
Bool_t  check = kFALSE,
Double_t  ovlp = 0.001 
)

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.

Definition at line 164 of file TGeoPhysicalNode.cxx.

◆ cd()

void TGeoPhysicalNode::cd ( ) const

Definition at line 369 of file TGeoPhysicalNode.cxx.

◆ Draw()

void TGeoPhysicalNode::Draw ( Option_t option = "")
virtual

Draw this node.

Reimplemented from TObject.

Definition at line 378 of file TGeoPhysicalNode.cxx.

◆ GetLevel()

Int_t TGeoPhysicalNode::GetLevel ( ) const
inline

Definition at line 69 of file TGeoPhysicalNode.h.

◆ GetMatrix()

TGeoHMatrix * TGeoPhysicalNode::GetMatrix ( Int_t  level = -1) const

Return global matrix for node at LEVEL.

Definition at line 395 of file TGeoPhysicalNode.cxx.

◆ GetMother()

TGeoNode * TGeoPhysicalNode::GetMother ( Int_t  levup = 1) const

Return parent at LEVUP generation.

Definition at line 385 of file TGeoPhysicalNode.cxx.

◆ GetNode()

TGeoNode * TGeoPhysicalNode::GetNode ( Int_t  level = -1) const

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

Definition at line 405 of file TGeoPhysicalNode.cxx.

◆ GetOriginalMatrix()

TGeoHMatrix* TGeoPhysicalNode::GetOriginalMatrix ( ) const
inline

Definition at line 71 of file TGeoPhysicalNode.h.

◆ GetShape()

TGeoShape * TGeoPhysicalNode::GetShape ( Int_t  level = -1) const

Return shape associated with volume.

Definition at line 425 of file TGeoPhysicalNode.cxx.

◆ GetVolume()

TGeoVolume * TGeoPhysicalNode::GetVolume ( Int_t  level = -1) const

Return volume associated with node at LEVEL in the branch.

Definition at line 415 of file TGeoPhysicalNode.cxx.

◆ IsAligned()

Bool_t TGeoPhysicalNode::IsAligned ( ) const
inline

Definition at line 78 of file TGeoPhysicalNode.h.

◆ IsMatchingState()

Bool_t TGeoPhysicalNode::IsMatchingState ( TGeoNavigator nav) const

Checks if a given navigator state matches this physical node.

Definition at line 538 of file TGeoPhysicalNode.cxx.

◆ IsVisible()

Bool_t TGeoPhysicalNode::IsVisible ( ) const
inline

Definition at line 81 of file TGeoPhysicalNode.h.

◆ IsVisibleFull()

Bool_t TGeoPhysicalNode::IsVisibleFull ( ) const
inline

Definition at line 82 of file TGeoPhysicalNode.h.

◆ IsVolAttributes()

Bool_t TGeoPhysicalNode::IsVolAttributes ( ) const
inline

Definition at line 80 of file TGeoPhysicalNode.h.

◆ operator=()

TGeoPhysicalNode & TGeoPhysicalNode::operator= ( const TGeoPhysicalNode gpn)
protected

assignment operator

Definition at line 127 of file TGeoPhysicalNode.cxx.

◆ Paint()

void TGeoPhysicalNode::Paint ( Option_t option = "")
virtual

Paint this node and its content according to visualization settings.

Reimplemented from TObject.

Definition at line 435 of file TGeoPhysicalNode.cxx.

◆ Print()

void TGeoPhysicalNode::Print ( Option_t option = "") const
virtual

Print info about this node.

Reimplemented from TNamed.

Definition at line 445 of file TGeoPhysicalNode.cxx.

◆ Refresh()

void TGeoPhysicalNode::Refresh ( )

Refresh this physical node.

Called for all registered physical nodes after an Align() call.

Definition at line 467 of file TGeoPhysicalNode.cxx.

◆ SetAligned()

void TGeoPhysicalNode::SetAligned ( Bool_t  flag = kTRUE)
inlineprotected

Definition at line 48 of file TGeoPhysicalNode.h.

◆ SetBranchAsState()

void TGeoPhysicalNode::SetBranchAsState ( )
protected

Set node branch according to current state.

Definition at line 475 of file TGeoPhysicalNode.cxx.

◆ SetIsVolAtt()

void TGeoPhysicalNode::SetIsVolAtt ( Bool_t  flag = kTRUE)
inline

Definition at line 88 of file TGeoPhysicalNode.h.

◆ SetMatrixOrig()

void TGeoPhysicalNode::SetMatrixOrig ( const TGeoMatrix local)

Allows PN entries (or users) to preset the local original matrix for the last node pointed by the path.

Definition at line 515 of file TGeoPhysicalNode.cxx.

◆ SetPath()

Bool_t TGeoPhysicalNode::SetPath ( const char *  path)
protected

Specify the path for this node.

Definition at line 525 of file TGeoPhysicalNode.cxx.

◆ SetVisibility()

void TGeoPhysicalNode::SetVisibility ( Bool_t  flag = kTRUE)
inline

Definition at line 89 of file TGeoPhysicalNode.h.

◆ SetVisibleFull()

void TGeoPhysicalNode::SetVisibleFull ( Bool_t  flag = kTRUE)
inline

Definition at line 90 of file TGeoPhysicalNode.h.

Member Data Documentation

◆ fLevel

Int_t TGeoPhysicalNode::fLevel
protected

Definition at line 40 of file TGeoPhysicalNode.h.

◆ fMatrices

TObjArray* TGeoPhysicalNode::fMatrices
protected

Definition at line 41 of file TGeoPhysicalNode.h.

◆ fMatrixOrig

TGeoHMatrix* TGeoPhysicalNode::fMatrixOrig
protected

Definition at line 43 of file TGeoPhysicalNode.h.

◆ fNodes

TObjArray* TGeoPhysicalNode::fNodes
protected

Definition at line 42 of file TGeoPhysicalNode.h.

Libraries for TGeoPhysicalNode:
[legend]

The documentation for this class was generated from the following files: