class TGeoPNEntry: public TNamed

 TGeoPhysicalNode, TGeoPNEntry

 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)

 The knowledge of the path to the objects that need to be misaligned is
 essential since there is no other way of identifying them. One can however
 create 'symbolic links' to any complex path to make it more representable
 for the object it designates:

    TGeoPNEntry *pne = new TGeoPNEntry("TPC_SECTOR_2", "path_to_tpc_sect2");
    pne->SetPhysicalNode(pn)

 Such a symbolic link hides the complexity of the path to the align object and
 replaces it with a more meaningful name. In addition, TGeoPNEntry objects are
 faster to search by name and they may optionally store an additional user
 matrix.

 For more details please read the misalignment section in the Users Guide.

Function Members (Methods)

public:
TGeoPNEntry()
TGeoPNEntry(const char* unique_name, const char* path)
virtual~TGeoPNEntry()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TGeoHMatrix*GetGlobalOrig() const
virtual const char*TObject::GetIconName() const
const TGeoHMatrix*GetMatrix() const
TGeoHMatrix*GetMatrixOrig() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const char*GetPath() const
TGeoPhysicalNode*GetPhysicalNode() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetMatrix(const TGeoHMatrix* matrix)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPhysicalNode(TGeoPhysicalNode* node)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
TGeoPNEntry(const TGeoPNEntry& pne)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
TGeoPNEntry&operator=(const TGeoPNEntry& pne)

Data Members

public:
enum EPNEntryFlags { kPNEntryOwnMatrix
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
TGeoHMatrix*fGlobalOrigOriginal global matrix for the linked physical node
const TGeoHMatrix*fMatrixAdditional matrix
TGeoPhysicalNode*fNodePhysical node to which this applies

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGeoPNEntry(const TGeoPNEntry& pne)
 Default constructor
TGeoPNEntry(const char* unique_name, const char* path)
 Default constructor
~TGeoPNEntry()
 Destructor
void SetPhysicalNode(TGeoPhysicalNode* node)
 Setter for the corresponding physical node.
void SetMatrix(const TGeoHMatrix* matrix)
 Set the additional matrix for this node entry. The matrix is owned by user.
TGeoPhysicalNode& operator=(const TGeoPNEntry& pne)
TGeoHMatrix * GetMatrix(Int_t level=-1)
TGeoPNEntry(const TGeoPNEntry& pne)
{ }
const char * GetPath()
{return GetTitle();}
TGeoHMatrix * GetMatrixOrig()
{if (fNode) return fNode->GetOriginalMatrix(); else return NULL;}
TGeoHMatrix * GetGlobalOrig()
{return fGlobalOrig;}
TGeoPhysicalNode * GetPhysicalNode()
{return fNode;}

Author: Andrei Gheata 17/02/04
Last change: root/geom:$Id: TGeoPhysicalNode.h 22428 2008-03-03 18:17:03Z brun $
Last generated: 2008-06-25 08:45
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.