ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
TGDMLParse Class Reference

Definition at line 102 of file TGDMLParse.h.

Public Member Functions

 TGDMLParse ()
 
virtual ~TGDMLParse ()
 
TGeoVolumeGDMLReadFile (const char *filename="test.gdml")
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual ~TObject ()
 TObject destructor. 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...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
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 abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. 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 Draw (Option_t *option="")
 Default Draw method for all objects. 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 pad. More...
 
virtual void Dump () const
 Dump contents of object on stdout. 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 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 UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual Option_tGetOption () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. 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...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
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 IsSortable () const
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. 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...
 
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...
 
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 UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. 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...
 
voidoperator new (size_t sz)
 
voidoperator new[] (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz, void *vp)
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. 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)
 
void ResetBit (UInt_t f)
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
void InvertBit (UInt_t f)
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. 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...
 
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...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 

Static Public Member Functions

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

Public Attributes

TString fWorldName
 
TGeoVolumefWorld
 
int fVolID
 
int fFILENO
 
TXMLEnginefFileEngine [20]
 
const char * fStartFile
 
const char * fCurrentFile
 

Private Types

typedef TGDMMapHelper
< TGeoTranslation
PosMap
 
typedef TGDMMapHelper
< TGeoRotation
RotMap
 
typedef TGDMMapHelper< TGeoScaleSclMap
 
typedef TGDMMapHelper
< TGeoElement
EleMap
 
typedef TGDMMapHelper
< TGeoIsotope
IsoMap
 
typedef TGDMMapHelper
< TGeoMaterial
MatMap
 
typedef TGDMMapHelper< TGeoMediumMedMap
 
typedef TGDMMapHelper
< TGeoMixture
MixMap
 
typedef TGDMMapHelper< TGeoShapeSolMap
 
typedef TGDMMapHelper< TGeoVolumeVolMap
 
typedef TGDMMapHelper< TGDMLReflReflSolidMap
 
typedef TGDMMapHelper< const char > FileMap
 
typedef std::map< std::string,
std::string > 
ReflectionsMap
 
typedef std::map< std::string,
std::string > 
ReflVolMap
 
typedef std::map< std::string,
double
FracMap
 
typedef std::vector< TFormula * > FormVec
 

Private Member Functions

const char * ParseGDML (TXMLEngine *gdml, XMLNodePointer_t node)
 this function recursively moves thru the DOM tree of the GDML file. More...
 
TString GetScale (const char *unit)
 Throughout the GDML file, a unit can de specified. More...
 
double GetScaleVal (const char *unit)
 Throughout the GDML file, a unit can de specified. More...
 
double Evaluate (const char *evalline)
 
const char * NameShort (const char *name)
 this function looks thru a string for the chars '0x' next to each other, when it finds this, it calls another function to strip the hex address. More...
 
double Value (const char *svalue) const
 Convert number in string format to double value. More...
 
XMLNodePointer_t ConProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the define section of the GDML file, constants can be declared. More...
 
XMLNodePointer_t PosProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the define section of the GDML file, positions can be declared. More...
 
XMLNodePointer_t RotProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the define section of the GDML file, rotations can be declared. More...
 
XMLNodePointer_t SclProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the define section of the GDML file, rotations can be declared. More...
 
XMLNodePointer_t IsoProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLNodePointer_t parentn)
 In the material section of the GDML file, an isotope may be declared. More...
 
XMLNodePointer_t EleProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLNodePointer_t parentn, Bool_t hasIsotopes, Bool_t hasIsotopesExtended)
 
XMLNodePointer_t MatProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr, int z)
 In the materials section of the GDML file, materials can be declared. More...
 
XMLNodePointer_t BooSolid (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr, int num)
 In the solid section of the GDML file, boolean solids can be declared. More...
 
XMLNodePointer_t Box (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a box may be declared. More...
 
XMLNodePointer_t Paraboloid (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Paraboloid may be declared. More...
 
XMLNodePointer_t Arb8 (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, an Arb8 may be declared. More...
 
XMLNodePointer_t Tube (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Tube may be declared. More...
 
XMLNodePointer_t CutTube (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Cut Tube may be declared. More...
 
XMLNodePointer_t Cone (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a cone may be declared. More...
 
XMLNodePointer_t ElCone (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, an elliptical cone may be declared. More...
 
XMLNodePointer_t Trap (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Trap may be declared. More...
 
XMLNodePointer_t Trd (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Trd may be declared. More...
 
XMLNodePointer_t Polycone (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Polycone may be declared. More...
 
XMLNodePointer_t Polyhedra (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Polyhedra may be declared. More...
 
XMLNodePointer_t Sphere (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Sphere may be declared. More...
 
XMLNodePointer_t Torus (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Torus may be declared. More...
 
XMLNodePointer_t Hype (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Hype may be declared. More...
 
XMLNodePointer_t Para (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Para may be declared. More...
 
XMLNodePointer_t TwistTrap (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a TwistTrap may be declared. More...
 
XMLNodePointer_t ElTube (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a ElTube may be declared. More...
 
XMLNodePointer_t Orb (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, an Orb may be declared. More...
 
XMLNodePointer_t Xtru (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, an Xtru may be declared. More...
 
XMLNodePointer_t Reflection (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, a Reflected Solid may be declared when the ReflectedSolid keyword is found, this function is called. More...
 
XMLNodePointer_t Ellipsoid (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr)
 In the solids section of the GDML file, an ellipsoid may be declared. More...
 
XMLNodePointer_t VolProcess (TXMLEngine *gdml, XMLNodePointer_t node)
 In the structure section of the GDML file, volumes can be declared. More...
 
XMLNodePointer_t AssProcess (TXMLEngine *gdml, XMLNodePointer_t node)
 In the structure section of the GDML file, assembly volumes can be declared. More...
 
XMLNodePointer_t UsrProcess (TXMLEngine *gdml, XMLNodePointer_t node)
 User data to be processed. More...
 
Int_t SetAxis (const char *axisString)
 When using the 'divide' process in the geometry this function sets the variable 'axis' depending on what is specified. More...
 
XMLNodePointer_t TopProcess (TXMLEngine *gdml, XMLNodePointer_t node)
 In the setup section of the GDML file, the top volume need to be declared. More...
 

Private Attributes

PosMap fposmap
 
RotMap frotmap
 Map containing position names and the TGeoTranslation for it. More...
 
SclMap fsclmap
 Map containing rotation names and the TGeoRotation for it. More...
 
IsoMap fisomap
 Map containing scale names and the TGeoScale for it. More...
 
EleMap felemap
 Map containing isotope names and the TGeoIsotope for it. More...
 
MatMap fmatmap
 Map containing element names and the TGeoElement for it. More...
 
MedMap fmedmap
 Map containing material names and the TGeoMaterial for it. More...
 
MixMap fmixmap
 Map containing medium names and the TGeoMedium for it. More...
 
SolMap fsolmap
 Map containing mixture names and the TGeoMixture for it. More...
 
VolMap fvolmap
 Map containing solid names and the TGeoShape for it. More...
 
ReflectionsMap freflectmap
 Map containing volume names and the TGeoVolume for it. More...
 
ReflSolidMap freflsolidmap
 Map containing reflection names and the Solid name ir references to. More...
 
ReflVolMap freflvolmap
 Map containing reflection names and the TGDMLRefl for it - containing refl matrix. More...
 
FileMap ffilemap
 Map containing reflected volume names and the solid ref for it. More...
 
FormVec fformvec
 Map containing files parsed during entire parsing, with their world volume name. More...
 

Additional Inherited Members

- Public Types inherited from TObject
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4),
  kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
enum  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
- Protected Member Functions inherited from TObject
void MakeZombie ()
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 

#include <TGDMLParse.h>

Inheritance diagram for TGDMLParse:
[legend]

Member Typedef Documentation

Definition at line 195 of file TGDMLParse.h.

typedef TGDMMapHelper<const char> TGDMLParse::FileMap
private

Definition at line 204 of file TGDMLParse.h.

typedef std::vector<TFormula*> TGDMLParse::FormVec
private

Definition at line 208 of file TGDMLParse.h.

typedef std::map<std::string, double> TGDMLParse::FracMap
private

Definition at line 207 of file TGDMLParse.h.

Definition at line 196 of file TGDMLParse.h.

Definition at line 197 of file TGDMLParse.h.

Definition at line 198 of file TGDMLParse.h.

Definition at line 199 of file TGDMLParse.h.

Definition at line 192 of file TGDMLParse.h.

typedef std::map<std::string, std::string> TGDMLParse::ReflectionsMap
private

Definition at line 205 of file TGDMLParse.h.

Definition at line 203 of file TGDMLParse.h.

typedef std::map<std::string, std::string> TGDMLParse::ReflVolMap
private

Definition at line 206 of file TGDMLParse.h.

Definition at line 193 of file TGDMLParse.h.

Definition at line 194 of file TGDMLParse.h.

Definition at line 201 of file TGDMLParse.h.

Definition at line 202 of file TGDMLParse.h.

Constructor & Destructor Documentation

TGDMLParse::TGDMLParse ( )
inline

Definition at line 113 of file TGDMLParse.h.

Referenced by StartGDML().

virtual TGDMLParse::~TGDMLParse ( )
inlinevirtual

Definition at line 123 of file TGDMLParse.h.

Member Function Documentation

XMLNodePointer_t TGDMLParse::Arb8 ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, an Arb8 may be declared.

when the arb8 keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoArb8 and stored in fsolmap map using the name as its key.

Definition at line 2241 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::AssProcess ( TXMLEngine gdml,
XMLNodePointer_t  node 
)
private

In the structure section of the GDML file, assembly volumes can be declared.

when the assembly keyword is found, this function is called, and the name is converted into type TGeoVolumeAssembly and stored in fvolmap map using the name as its key. Some assembly volumes reference to other physical volumes to contain inside that assembly, declaring positions and rotations within that volume. When each 'physvol' is declared, a matrix for its rotation and translation is built and the 'physvol node' is added to the original assembly using TGeoVolume->AddNode.

Definition at line 1830 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::BooSolid ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr,
int  num 
)
private

In the solid section of the GDML file, boolean solids can be declared.

when the subtraction, intersection or union keyword is found, this function is called, and the values (rotation and translation) of the solid are converted into type TGeoCompositeShape and stored in fsolmap map using the name as its key.

1 = SUBTRACTION 2 = INTERSECTION 3 = UNION

Definition at line 1665 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Box ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a box may be declared.

when the box keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoBBox and stored in fsolmap map using the name as its key.

Definition at line 1967 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Cone ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a cone may be declared.

when the cone keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoConSeg and stored in fsolmap map using the name as its key.

Definition at line 2539 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::ConProcess ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the define section of the GDML file, constants can be declared.

when the constant keyword is found, this function is called, and the name and value of the constant is stored in the "fformvec" vector as a TFormula class, representing a constant function

Definition at line 403 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::CutTube ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Cut Tube may be declared.

when the cutTube keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoCtub and stored in fsolmap map using the name as its key.

Definition at line 2437 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::ElCone ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, an elliptical cone may be declared.

Unfortunately, the elliptical cone is not supported under ROOT so, when the elcone keyword is found, this function is called to convert it to a simple box with similar dimensions, and the dimensions required are taken and stored, these are then bound and converted to type TGeoBBox and stored in fsolmap map using the name as its key.

Definition at line 2110 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::EleProcess ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLNodePointer_t  parentn,
Bool_t  hasIsotopes,
Bool_t  hasIsotopesExtended 
)
private

Definition at line 751 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Ellipsoid ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, an ellipsoid may be declared.

Unfortunately, the ellipsoid is not supported under ROOT so, when the ellipsoid keyword is found, this function is called to convert it to a simple box with similar dimensions, and the dimensions required are taken and stored, these are then bound and converted to type TGeoBBox and stored in fsolmap map using the name as its key.

Definition at line 2024 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::ElTube ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a ElTube may be declared.

when the eltube keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoEltu and stored in fsolmap map using the name as its key.

Definition at line 3449 of file TGDMLParse.cxx.

Referenced by ParseGDML().

double TGDMLParse::Evaluate ( const char *  evalline)
private

Definition at line 352 of file TGDMLParse.cxx.

TGeoVolume* TGDMLParse::GDMLReadFile ( const char *  filename = "test.gdml")

Referenced by StartGDML().

TString TGDMLParse::GetScale ( const char *  unit)
private

Throughout the GDML file, a unit can de specified.

Whether it be angular or linear, values can be used as well as abbreviations such as 'mm' or 'deg'. This function is passed the specified unit and if it is found, replaces it with the appropriate value.

Definition at line 436 of file TGDMLParse.cxx.

Double_t TGDMLParse::GetScaleVal ( const char *  sunit)
private

Throughout the GDML file, a unit can de specified.

Whether it be angular or linear, values can be used as well as abbreviations such as 'mm' or 'deg'. This function is passed the specified unit and if it is found, replaces it with the appropriate value.

Definition at line 482 of file TGDMLParse.cxx.

Referenced by Arb8(), Box(), Cone(), CutTube(), ElCone(), Ellipsoid(), ElTube(), Hype(), Orb(), Para(), Paraboloid(), Polycone(), Polyhedra(), PosProcess(), RotProcess(), Sphere(), Torus(), Trap(), Trd(), Tube(), TwistTrap(), VolProcess(), and Xtru().

XMLNodePointer_t TGDMLParse::Hype ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Hype may be declared.

when the hype keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoHype and stored in fsolmap map using the name as its key.

Definition at line 3193 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::IsoProcess ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLNodePointer_t  parentn 
)
private

In the material section of the GDML file, an isotope may be declared.

when the isotope keyword is found, this function is called, and the required parameters are taken and stored, these are then bound and converted to type TGeoIsotope and stored in fisomap map using the name as its key.

Definition at line 691 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::MatProcess ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr,
int  z 
)
private

In the materials section of the GDML file, materials can be declared.

when the material keyword is found, this function is called, and the name and values of the material are converted into type TGeoMaterial and stored in fmatmap map using the name as its key. Mixtures can also be declared, and they are converted to TGeoMixture and stored in fmixmap. These mixtures and materials are then all converted into one common type - TGeoMedium. The map fmedmap is then built up of all the mixtures and materials.

Definition at line 946 of file TGDMLParse.cxx.

Referenced by ParseGDML().

const char * TGDMLParse::NameShort ( const char *  name)
private

this function looks thru a string for the chars '0x' next to each other, when it finds this, it calls another function to strip the hex address.

It does this recursively until the end of the string is reached, returning a string without any hex addresses.

Definition at line 388 of file TGDMLParse.cxx.

Referenced by Arb8(), AssProcess(), BooSolid(), Box(), Cone(), CutTube(), ElCone(), EleProcess(), Ellipsoid(), ElTube(), Hype(), IsoProcess(), MatProcess(), Orb(), Para(), Paraboloid(), Polycone(), Polyhedra(), Reflection(), Sphere(), Torus(), Trap(), Trd(), Tube(), TwistTrap(), VolProcess(), and Xtru().

XMLNodePointer_t TGDMLParse::Orb ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, an Orb may be declared.

when the orb keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoSphere and stored in fsolmap map using the name as its key.

Definition at line 3504 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Para ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Para may be declared.

when the para keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoPara and stored in fsolmap map using the name as its key.

Definition at line 3264 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Paraboloid ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Paraboloid may be declared.

when the paraboloid keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoParaboloid and stored in fsolmap map using the name as its key.

Definition at line 2187 of file TGDMLParse.cxx.

Referenced by ParseGDML().

const char * TGDMLParse::ParseGDML ( TXMLEngine gdml,
XMLNodePointer_t  node 
)
private

this function recursively moves thru the DOM tree of the GDML file.

It checks for key words along the way and if a key word is found it calls the corresponding function to interpret the node.

Definition at line 164 of file TGDMLParse.cxx.

Referenced by VolProcess().

XMLNodePointer_t TGDMLParse::Polycone ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Polycone may be declared.

when the polycone keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoPCon and stored in fsolmap map using the name as its key. Polycone has Zplanes, planes along the z axis specifying the rmin, rmax dimenstions at that point along z.

Definition at line 2795 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Polyhedra ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Polyhedra may be declared.

when the polyhedra keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoPgon and stored in fsolmap map using the name as its key. Polycone has Zplanes, planes along the z axis specifying the rmin, rmax dimenstions at that point along z.

Definition at line 2918 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::PosProcess ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the define section of the GDML file, positions can be declared.

when the position keyword is found, this function is called, and the name and values of the position are converted into type TGeoPosition and stored in fposmap map using the name as its key. This function can also be called when declaring solids.

Definition at line 536 of file TGDMLParse.cxx.

Referenced by AssProcess(), BooSolid(), ParseGDML(), and VolProcess().

XMLNodePointer_t TGDMLParse::Reflection ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Reflected Solid may be declared when the ReflectedSolid keyword is found, this function is called.

The rotation, position and scale for the reflection are applied to a matrix that is then stored in the class object TGDMLRefl. This is then stored in the map freflsolidmap, with the reflection name as a reference. also the name of the solid to be reflected is stored in a map called freflectmap with the reflection name as a reference.

Definition at line 3714 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::RotProcess ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the define section of the GDML file, rotations can be declared.

when the rotation keyword is found, this function is called, and the name and values of the rotation are converted into type TGeoRotation and stored in frotmap map using the name as its key. This function can also be called when declaring solids.

Definition at line 589 of file TGDMLParse.cxx.

Referenced by AssProcess(), BooSolid(), ParseGDML(), and VolProcess().

XMLNodePointer_t TGDMLParse::SclProcess ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the define section of the GDML file, rotations can be declared.

when the scale keyword is found, this function is called, and the name and values of the scale are converted into type TGeoScale and stored in fsclmap map using the name as its key. This function can also be called when declaring solids.

Definition at line 647 of file TGDMLParse.cxx.

Referenced by ParseGDML(), and VolProcess().

Int_t TGDMLParse::SetAxis ( const char *  axisString)
private

When using the 'divide' process in the geometry this function sets the variable 'axis' depending on what is specified.

Definition at line 363 of file TGDMLParse.cxx.

Referenced by VolProcess().

XMLNodePointer_t TGDMLParse::Sphere ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Sphere may be declared.

when the sphere keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoSphere and stored in fsolmap map using the name as its key.

Definition at line 3047 of file TGDMLParse.cxx.

Referenced by ParseGDML().

static TGeoVolume* TGDMLParse::StartGDML ( const char *  filename)
inlinestatic

Definition at line 129 of file TGDMLParse.h.

XMLNodePointer_t TGDMLParse::TopProcess ( TXMLEngine gdml,
XMLNodePointer_t  node 
)
private

In the setup section of the GDML file, the top volume need to be declared.

when the setup keyword is found, this function is called, and the top volume ref is taken and 'world' is set

Definition at line 1932 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Torus ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Torus may be declared.

when the torus keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoTorus and stored in fsolmap map using the name as its key.

Definition at line 3122 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Trap ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Trap may be declared.

when the trap keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoTrap and stored in fsolmap map using the name as its key.

Definition at line 2627 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Trd ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Trd may be declared.

when the trd keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoTrd2 and stored in fsolmap map using the name as its key.

Definition at line 2727 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Tube ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a Tube may be declared.

when the tube keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoTubeSeg and stored in fsolmap map using the name as its key.

Definition at line 2361 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::TwistTrap ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, a TwistTrap may be declared.

when the twistedtrap keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoGTra and stored in fsolmap map using the name as its key.

Definition at line 3341 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::UsrProcess ( TXMLEngine gdml,
XMLNodePointer_t  node 
)
private

User data to be processed.

Definition at line 1810 of file TGDMLParse.cxx.

Referenced by ParseGDML().

Double_t TGDMLParse::Value ( const char *  svalue) const
private
XMLNodePointer_t TGDMLParse::VolProcess ( TXMLEngine gdml,
XMLNodePointer_t  node 
)
private

In the structure section of the GDML file, volumes can be declared.

when the volume keyword is found, this function is called, and the name and values of the volume are converted into type TGeoVolume and stored in fvolmap map using the name as its key. Volumes reference to a solid declared higher up in the solids section of the GDML file. Some volumes reference to other physical volumes to contain inside that volume, declaring positions and rotations within that volume. When each 'physvol' is declared, a matrix for its rotation and translation is built and the 'physvol node' is added to the original volume using TGeoVolume->AddNode. volume division is also declared within the volume node, and once the values for the division have been collected, using TGeoVolume->divide, the division can be applied.

Definition at line 1168 of file TGDMLParse.cxx.

Referenced by ParseGDML().

XMLNodePointer_t TGDMLParse::Xtru ( TXMLEngine gdml,
XMLNodePointer_t  node,
XMLAttrPointer_t  attr 
)
private

In the solids section of the GDML file, an Xtru may be declared.

when the xtru keyword is found, this function is called, and the dimensions required are taken and stored, these are then bound and converted to type TGeoXtru and stored in fsolmap map using the name as its key. The xtru has child nodes of either 'twoDimVertex'or 'section'. These two nodes define the real structure of the shape. The twoDimVertex's define the x,y sizes of a vertice. The section links the vertice to a position within the xtru.

Definition at line 3554 of file TGDMLParse.cxx.

Referenced by ParseGDML().

Member Data Documentation

const char* TGDMLParse::fCurrentFile
EleMap TGDMLParse::felemap
private

Map containing isotope names and the TGeoIsotope for it.

Definition at line 214 of file TGDMLParse.h.

Referenced by EleProcess(), and MatProcess().

TXMLEngine* TGDMLParse::fFileEngine[20]

Definition at line 109 of file TGDMLParse.h.

Referenced by TGDMLParse(), and VolProcess().

FileMap TGDMLParse::ffilemap
private

Map containing reflected volume names and the solid ref for it.

Definition at line 223 of file TGDMLParse.h.

Referenced by VolProcess().

int TGDMLParse::fFILENO

Definition at line 108 of file TGDMLParse.h.

Referenced by TGDMLParse(), and VolProcess().

FormVec TGDMLParse::fformvec
private

Map containing files parsed during entire parsing, with their world volume name.

Definition at line 224 of file TGDMLParse.h.

Referenced by ConProcess(), and ~TGDMLParse().

IsoMap TGDMLParse::fisomap
private

Map containing scale names and the TGeoScale for it.

Definition at line 213 of file TGDMLParse.h.

Referenced by EleProcess(), and IsoProcess().

MatMap TGDMLParse::fmatmap
private

Map containing element names and the TGeoElement for it.

Definition at line 215 of file TGDMLParse.h.

Referenced by MatProcess().

MedMap TGDMLParse::fmedmap
private

Map containing material names and the TGeoMaterial for it.

Definition at line 216 of file TGDMLParse.h.

Referenced by MatProcess(), and VolProcess().

MixMap TGDMLParse::fmixmap
private

Map containing medium names and the TGeoMedium for it.

Definition at line 217 of file TGDMLParse.h.

Referenced by MatProcess().

PosMap TGDMLParse::fposmap
private

Definition at line 210 of file TGDMLParse.h.

Referenced by AssProcess(), BooSolid(), PosProcess(), and VolProcess().

ReflectionsMap TGDMLParse::freflectmap
private

Map containing volume names and the TGeoVolume for it.

Definition at line 220 of file TGDMLParse.h.

Referenced by Reflection(), and VolProcess().

ReflSolidMap TGDMLParse::freflsolidmap
private

Map containing reflection names and the Solid name ir references to.

Definition at line 221 of file TGDMLParse.h.

Referenced by Reflection(), and VolProcess().

ReflVolMap TGDMLParse::freflvolmap
private

Map containing reflection names and the TGDMLRefl for it - containing refl matrix.

Definition at line 222 of file TGDMLParse.h.

Referenced by VolProcess().

RotMap TGDMLParse::frotmap
private

Map containing position names and the TGeoTranslation for it.

Definition at line 211 of file TGDMLParse.h.

Referenced by AssProcess(), BooSolid(), RotProcess(), and VolProcess().

SclMap TGDMLParse::fsclmap
private

Map containing rotation names and the TGeoRotation for it.

Definition at line 212 of file TGDMLParse.h.

Referenced by SclProcess(), and VolProcess().

SolMap TGDMLParse::fsolmap
private

Map containing mixture names and the TGeoMixture for it.

Definition at line 218 of file TGDMLParse.h.

Referenced by Arb8(), BooSolid(), Box(), Cone(), CutTube(), ElCone(), Ellipsoid(), ElTube(), Hype(), Orb(), Para(), Paraboloid(), Polycone(), Polyhedra(), Sphere(), Torus(), Trap(), Trd(), Tube(), TwistTrap(), VolProcess(), and Xtru().

const char* TGDMLParse::fStartFile
int TGDMLParse::fVolID

Definition at line 107 of file TGDMLParse.h.

Referenced by AssProcess(), TGDMLParse(), and VolProcess().

VolMap TGDMLParse::fvolmap
private

Map containing solid names and the TGeoShape for it.

Definition at line 219 of file TGDMLParse.h.

Referenced by AssProcess(), TopProcess(), and VolProcess().

TGeoVolume* TGDMLParse::fWorld

Definition at line 106 of file TGDMLParse.h.

Referenced by TGDMLParse(), and TopProcess().

TString TGDMLParse::fWorldName

Definition at line 105 of file TGDMLParse.h.

Referenced by ParseGDML(), TGDMLParse(), and TopProcess().

Collaboration diagram for TGDMLParse:
[legend]

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