library: libGraf3d #include "TGeometry.h" |
TGeometry
class description - source file - inheritance tree (.pdf)
public:
TGeometry()
TGeometry(const char* name, const char* title)
TGeometry(const TGeometry&)
virtual ~TGeometry()
virtual void Browse(TBrowser* b)
virtual void cd(const char* path = "0")
static TClass* Class()
virtual void Draw(Option_t* option = "")
virtual TObject* FindObject(const char* name) const
virtual TObject* FindObject(const TObject* obj) const
Int_t GeomLevel() const
static TObjArray* Get(const char* name)
Float_t GetBomb() const
TRotMatrix* GetCurrentMatrix() const
TNode* GetCurrentNode() const
TRotMatrix* GetCurrentPosition(Double_t* x, Double_t* y, Double_t* z) const
TRotMatrix* GetCurrentPosition(Float_t* x, Float_t* y, Float_t* z) const
Bool_t GetCurrentReflection() const
THashList* GetListOfMaterials() const
THashList* GetListOfMatrices() const
TList* GetListOfNodes() const
THashList* GetListOfShapes() const
TMaterial* GetMaterial(const char* name) const
TMaterial* GetMaterialByNumber(Int_t number) const
TNode* GetNode(const char* name) const
TRotMatrix* GetRotMatrix(const char* name) const
TRotMatrix* GetRotMatrixByNumber(Int_t number) const
TShape* GetShape(const char* name) const
TShape* GetShapeByNumber(Int_t number) const
virtual TClass* IsA() const
virtual Bool_t IsFolder() const
virtual void Local2Master(Double_t* local, Double_t* master)
virtual void Local2Master(Float_t* local, Float_t* master)
virtual void ls(Option_t* option = "rsn2") const
virtual void Master2Local(Double_t* master, Double_t* local)
virtual void Master2Local(Float_t* master, Float_t* local)
virtual void Node(const char* name, const char* title, const char* shapename, Double_t x = 0, Double_t y = 0, Double_t z = 0, const char* matrixname = "", Option_t* option = "")
TGeometry& operator=(const TGeometry&)
virtual Int_t PopLevel()
virtual Int_t PushLevel()
virtual void RecursiveRemove(TObject* obj)
virtual void SetBomb(Float_t bomb = 1.4)
virtual void SetCurrentNode(TNode* node)
virtual void SetGeomLevel(Int_t level = 0)
virtual void SetMatrix(TRotMatrix* matrix = 0)
virtual void SetPosition(TRotMatrix* matrix, Double_t x = 0, Double_t y = 0, Double_t z = 0)
virtual void SetPosition(TRotMatrix* matrix, Float_t x, Float_t y, Float_t z)
virtual void SetPosition(Double_t x, Double_t y, Double_t z)
virtual void SetPosition(Float_t x, Float_t y, Float_t z)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
virtual void UpdateMatrix(TNode* node)
virtual void UpdateTempMatrix(Double_t x = 0, Double_t y = 0, Double_t z = 0, TRotMatrix* matrix = 0)
virtual void UpdateTempMatrix(Double_t x, Double_t y, Double_t z, Double_t* matrix, Bool_t isReflection = kFALSE)
static void UpdateTempMatrix(Double_t* dx1, Double_t* rmat1, Double_t x, Double_t y, Double_t z, Double_t* matrix, Double_t* dxnew, Double_t* rmatnew)
private:
THashList* fMaterials ->Collection of materials
THashList* fMatrices ->Collection of rotation matrices
THashList* fShapes ->Collection of shapes
TList* fNodes ->Collection of nodes
TRotMatrix* fMatrix !Pointers to current rotation matrices
TNode* fCurrentNode !Pointer to current node
TMaterial** fMaterialPointer !Pointers to materials
TRotMatrix** fMatrixPointer !Pointers to rotation matrices
TShape** fShapePointer !Pointers to shapes
Float_t fBomb Bomb factor for exploded geometry
Int_t fGeomLevel !
Double_t fX !
Double_t fY ! The global translation of the current node
Double_t fZ !
Double_t fTranslation[20][3] !
Double_t fRotMatrix[20][9] !
Bool_t fIsReflection[20] !
T G E O M E T R Y description
==============================
The Geometry class describes the geometry of a detector.
The current implementation supports the GEANT3 style description.
A special program provided in the ROOT utilities (toroot) can be used
to automatically translate a GEANT detector geometry into a ROOT geometry.
a Geometry object is entered into the list of geometries into the
ROOT main object (see TROOT description) when the TGeometry
constructor is invoked.
Several geometries may coexist in memory.
A Geometry object consist of the following linked lists:
- the TMaterial list (material definition only).
- the TRotmatrix list (Rotation matrices definition only).
- the TShape list (volume definition only).
- the TNode list assembling all detector elements.
Only the Build and Draw functions for a geometry are currently supported.
---------------------------------------------------------------------------
The conversion program from Geant to Root has been added in the list
of utilities in utils directory.(see g2root)
The executable module of g2root can be found in $ROOTSYS/bin/g2root.
To use this conversion program, type the shell command:
g2root geant_rzfile macro_name
for example
g2root na49.geom na49.C
will convert the GEANT RZ file na49.geom into a ROOT macro na49.C
To generate the Geometry structure within Root, do:
Root > .x na49.C
Root > na49.Draw()
Root > wh.x3d() (this invokes the 3-d Root viewver)
Root > TFile gna49("na49.root","NEW") //open a new root file
Root > na49.Write() //Write the na49 geometry structure
Root > gna49.Write() //Write all keys (in this case only one)
Note: all keys are also written on closing of the file, gna49.Close or
when the program exits, Root closes all open files correctly.
Once this file has been written, in a subsequent session, simply do:
Root > TFile gna49("na49.root")
Root > na49.Draw()
The figure below shows the geometry above using the x3d viewer.
This x3d viewver is invoked by selecting "View x3d" in the View menu
of a canvas (See example of this tool bar in TCanvas).
/*
*/
TGeometry()
Geometry default constructor.
TGeometry(const char *name,const char *title ) : TNamed (name, title)
Geometry normal constructor.
~TGeometry()
Geometry default destructor.
void Browse(TBrowser *b)
Browse.
void cd(const char *)
Change Current Geometry to this.
void Draw(Option_t *option)
Draw this Geometry.
TObject* FindObject(const TObject *) const
Find object in a geometry node, material, etc
TObject* FindObject(const char *name) const
Search object identified by name in the geometry tree
TObjArray* Get(const char *name)
Static function called by TROOT to search name in the geometry.
Returns a TObjArray containing a pointer to the found object
and a pointer to the container where the object was found.
TMaterial* GetMaterial(const char *name) const
Return pointer to Material with name.
TMaterial* GetMaterialByNumber(Int_t number) const
Return pointer to Material with number.
TNode* GetNode(const char *name) const
Return pointer to node with name in the geometry tree.
TRotMatrix* GetRotMatrix(const char *name) const
Return pointer to RotMatrix with name.
TRotMatrix* GetRotMatrixByNumber(Int_t number) const
Return pointer to RotMatrix with number.
TShape* GetShape(const char *name) const
Return pointer to Shape with name.
TShape* GetShapeByNumber(Int_t number) const
Return pointer to Shape with number.
void Local2Master(Double_t *local, Double_t *master)
Convert one point from local system to master reference system.
Note that before invoking this function, the global rotation matrix
and translation vector for this node must have been computed.
This is automatically done by the Paint functions.
Otherwise TNode::UpdateMatrix should be called before.
void Local2Master(Float_t *local, Float_t *master)
Convert one point from local system to master reference system.
Note that before invoking this function, the global rotation matrix
and translation vector for this node must have been computed.
This is automatically done by the Paint functions.
Otherwise TNode::UpdateMatrix should be called before.
void ls(Option_t *option) const
List this geometry.
void Master2Local(Double_t *master, Double_t *local)
Convert one point from master system to local reference system.
Note that before invoking this function, the global rotation matrix
and translation vector for this node must have been computed.
This is automatically done by the Paint functions.
Otherwise TNode::UpdateMatrix should be called before.
void Master2Local(Float_t *master, Float_t *local)
Convert one point from master system to local reference system.
Note that before invoking this function, the global rotation matrix
and translation vector for this node must have been computed.
This is automatically done by the Paint functions.
Otherwise TNode::UpdateMatrix should be called before.
void Node(const char *name, const char *title, const char *shapename, Double_t x, Double_t y, Double_t z, const char *matrixname, Option_t *option)
Add a node to the current node in this geometry.
void RecursiveRemove(TObject *obj)
Recursively remove object from a Geometry list.
void Streamer(TBuffer &b)
Stream a class object.
void UpdateMatrix(TNode *node)
Update global rotation matrix/translation vector for this node
this function must be called before invoking Local2Master
void UpdateTempMatrix(Double_t x, Double_t y, Double_t z, TRotMatrix *rotMatrix)
Update temp matrix.
void UpdateTempMatrix(Double_t x, Double_t y, Double_t z, Double_t *matrix,Bool_t isReflection)
Update temp matrix.
void UpdateTempMatrix(Double_t *dx,Double_t *rmat
, Double_t x, Double_t y, Double_t z, Double_t *matrix
, Double_t *dxnew, Double_t *rmatnew)
Compute new translation vector and global matrix.
dx old translation vector
rmat old global matrix
x,y,z offset of new local system with respect to mother
dxnew new translation vector
rmatnew new global rotation matrix
Inline Functions
Float_t GetBomb() const
Int_t GeomLevel() const
THashList* GetListOfShapes() const
TList* GetListOfNodes() const
THashList* GetListOfMaterials() const
THashList* GetListOfMatrices() const
TNode* GetCurrentNode() const
TRotMatrix* GetCurrentMatrix() const
TRotMatrix* GetCurrentPosition(Double_t* x, Double_t* y, Double_t* z) const
TRotMatrix* GetCurrentPosition(Float_t* x, Float_t* y, Float_t* z) const
Bool_t GetCurrentReflection() const
Bool_t IsFolder() const
Int_t PushLevel()
Int_t PopLevel()
void SetBomb(Float_t bomb = 1.4)
void SetCurrentNode(TNode* node)
void SetGeomLevel(Int_t level = 0)
void SetMatrix(TRotMatrix* matrix = 0)
void SetPosition(TRotMatrix* matrix, Double_t x = 0, Double_t y = 0, Double_t z = 0)
void SetPosition(TRotMatrix* matrix, Float_t x, Float_t y, Float_t z)
void SetPosition(Double_t x, Double_t y, Double_t z)
void SetPosition(Float_t x, Float_t y, Float_t z)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void StreamerNVirtual(TBuffer& b)
TGeometry TGeometry(const TGeometry&)
TGeometry& operator=(const TGeometry&)
Author: Rene Brun 22/09/95
Last update: root/g3d:$Name: $:$Id: TGeometry.cxx,v 1.9 2005/11/24 17:28:07 couet Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - Top of the page
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.