This class contains the implementation of the GDML parser associated to all the supported GDML elements.
User should never need to explicitly instaciate this class. It is internally used by the TGeoManager.
Each element process has a 'Binding' to ROOT. The 'binding' is specific mapping of GDML elements (materials, solids, etc) to specific objects which should be instanciated by the converted. In the present case (ROOT) the binding is implemented at the near the end of each process function. Most bindings follow similar format, dependent on what is being added to the geometry.
This file also contains the implementation of the TGDMLRefl class. This is just a small helper class used internally by the 'reflection' method (for reflected solids).
The presently supported list of TGeo classes is the following:
When most solids or volumes are added to the geometry they
Whenever a new element is added to GDML schema, this class needs to be extended. The appropriate method (process) needs to be implemented, as well as the new element process then needs to be linked thru the function TGDMLParse
For any question or remarks concerning this code, please send an email to ben.l.nosp@m.loyd.nosp@m.@cern.nosp@m..ch
Definition at line 95 of file TGDMLParse.h.
Public Member Functions | |
TGDMLParse () | |
Constructor. More... | |
virtual | ~TGDMLParse () |
TGeoVolume * | GDMLReadFile (const char *filename="test.gdml") |
Creates the new instance of the XMLEngine called 'gdml', using the filename >> then parses the file and creates the DOM tree. 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 () |
Check and record whether 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 | Clear (Option_t *="") |
virtual TObject * | Clone (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 TObject * | DrawClone (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 TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. More... | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. More... | |
virtual Option_t * | GetDrawOption () 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 const char * | GetName () const |
Returns 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_t * | GetOption () const |
virtual const char * | GetTitle () const |
Returns title of object. More... | |
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... | |
virtual ULong_t | Hash () const |
Return hash value for this object. 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 |
virtual Bool_t | IsSortable () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
virtual void | ls (Option_t *option="") const |
The ls function lists the contents of a class on stdout. 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... | |
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... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. 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... | |
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) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. 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 | 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... | |
Static Public Member Functions | |
static TGeoVolume * | StartGDML (const char *filename) |
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... | |
Public Attributes | |
const char * | fCurrentFile |
std::string | fDefault_aunit = "rad" |
std::string | fDefault_lunit = "mm" |
TXMLEngine * | fFileEngine [20] |
int | fFILENO |
const char * | fStartFile |
int | fVolID |
TGeoVolume * | fWorld |
TString | fWorldName |
Private Types | |
typedef std::map< std::string, double > | ConstMap |
typedef TGDMMapHelper< TGeoElement > | EleMap |
typedef TGDMMapHelper< const char > | FileMap |
typedef std::map< std::string, double > | FracMap |
typedef TGDMMapHelper< TGeoIsotope > | IsoMap |
typedef TGDMMapHelper< TGeoMaterial > | MatMap |
typedef TGDMMapHelper< TGDMLMatrix > | MatrixMap |
typedef TGDMMapHelper< TGeoMedium > | MedMap |
typedef TGDMMapHelper< TGeoMixture > | MixMap |
typedef TGDMMapHelper< TGeoTranslation > | PosMap |
typedef TGDMMapHelper< TGeoNode > | PvolMap |
typedef std::map< std::string, std::string > | ReflectionsMap |
typedef TGDMMapHelper< TGDMLRefl > | ReflSolidMap |
typedef std::map< std::string, std::string > | ReflVolMap |
typedef TGDMMapHelper< TGeoRotation > | RotMap |
typedef TGDMMapHelper< TGeoScale > | SclMap |
typedef TGDMMapHelper< TGeoShape > | SolMap |
typedef TGDMMapHelper< TGeoVolume > | VolMap |
Private Member Functions | |
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 | AssProcess (TXMLEngine *gdml, XMLNodePointer_t node) |
In the structure section of the GDML file, assembly volumes 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 | BorderSurfaceProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the structure section of the GDML file, border surfaces 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 | 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 | ConProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the define section of the GDML file, constants can 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... | |
void | DefineConstants () |
Define constant expressions used. 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 | EleProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLNodePointer_t parentn, Bool_t hasIsotopes, Bool_t hasIsotopesExtended) |
When the element keyword is found, this function is called, and the name and values of the element are converted into type TGeoElement and stored in felemap map using the name as its key. 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 | ElTube (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the solids section of the GDML file, a ElTube may be declared. More... | |
double | Evaluate (const char *evalline) |
Takes a string containing a mathematical expression and returns the value of the expression. 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... | |
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 | 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 | 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 | MatrixProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the define section of the GDML file, matrices These are referenced by other GDML tags, such as optical surfaces. More... | |
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... | |
XMLNodePointer_t | OpticalSurfaceProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the solids section of the GDML file, optical surfaces can be defined. 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 | 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 | Paraboloid (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the solids section of the GDML file, a Paraboloid may be declared. More... | |
const char * | ParseGDML (TXMLEngine *gdml, XMLNodePointer_t node) |
This function recursively moves thru the DOM tree of the GDML file. 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 | PosProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the define section of the GDML file, positions can be declared. More... | |
XMLNodePointer_t | QuantityProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the define section of the GDML file, quantities can 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 | 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... | |
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 | SkinSurfaceProcess (TXMLEngine *gdml, XMLNodePointer_t node, XMLAttrPointer_t attr) |
In the structure section of the GDML file, skin surfaces can 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 | TopProcess (TXMLEngine *gdml, XMLNodePointer_t node) |
In the setup section of the GDML file, the top volume need to 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 | 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 | 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 | 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 | UsrProcess (TXMLEngine *gdml, XMLNodePointer_t node) |
User data to be processed. More... | |
double | Value (const char *svalue) const |
Convert number in string format to double value. More... | |
XMLNodePointer_t | VolProcess (TXMLEngine *gdml, XMLNodePointer_t node) |
In the structure section of the GDML file, volumes can 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... | |
Private Attributes | |
ConstMap | fconsts |
Map containing files parsed during entire parsing, with their world volume name. More... | |
EleMap | felemap |
Map containing isotope names and the TGeoIsotope for it. More... | |
FileMap | ffilemap |
Map containing reflected volume names and the solid ref for it. More... | |
IsoMap | fisomap |
Map containing scale names and the TGeoScale for it. More... | |
MatMap | fmatmap |
Map containing element names and the TGeoElement for it. More... | |
MatrixMap | fmatrices |
Map containing values of constants declared in the file. 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... | |
PosMap | fposmap |
PvolMap | fpvolmap |
Map containing volume names and the TGeoVolume for it. More... | |
ReflectionsMap | freflectmap |
Map containing placed volume names and the TGeoNode 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... | |
RotMap | frotmap |
Map containing position names and the TGeoTranslation for it. More... | |
SclMap | fsclmap |
Map containing rotation names and the TGeoRotation 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... | |
Additional Inherited Members | |
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) } |
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 () |
#include <TGDMLParse.h>
|
private |
Definition at line 196 of file TGDMLParse.h.
|
private |
Definition at line 181 of file TGDMLParse.h.
|
private |
Definition at line 192 of file TGDMLParse.h.
|
private |
Definition at line 195 of file TGDMLParse.h.
|
private |
Definition at line 182 of file TGDMLParse.h.
|
private |
Definition at line 183 of file TGDMLParse.h.
|
private |
Definition at line 190 of file TGDMLParse.h.
|
private |
Definition at line 184 of file TGDMLParse.h.
|
private |
Definition at line 185 of file TGDMLParse.h.
|
private |
Definition at line 178 of file TGDMLParse.h.
|
private |
Definition at line 189 of file TGDMLParse.h.
|
private |
Definition at line 193 of file TGDMLParse.h.
|
private |
Definition at line 191 of file TGDMLParse.h.
|
private |
Definition at line 194 of file TGDMLParse.h.
|
private |
Definition at line 179 of file TGDMLParse.h.
|
private |
Definition at line 180 of file TGDMLParse.h.
|
private |
Definition at line 187 of file TGDMLParse.h.
|
private |
Definition at line 188 of file TGDMLParse.h.
TGDMLParse::TGDMLParse | ( | ) |
Constructor.
Definition at line 128 of file TGDMLParse.cxx.
|
inlinevirtual |
Definition at line 109 of file TGDMLParse.h.
|
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 2801 of file TGDMLParse.cxx.
|
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 2389 of file TGDMLParse.cxx.
|
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.
Definition at line 2192 of file TGDMLParse.cxx.
|
private |
In the structure section of the GDML file, border surfaces can be declared.
Definition at line 1625 of file TGDMLParse.cxx.
|
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 2527 of file TGDMLParse.cxx.
|
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 3099 of file TGDMLParse.cxx.
|
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 451 of file TGDMLParse.cxx.
|
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 2997 of file TGDMLParse.cxx.
|
private |
Define constant expressions used.
Definition at line 484 of file TGDMLParse.cxx.
|
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 2670 of file TGDMLParse.cxx.
|
private |
When the element keyword is found, this function is called, and the name and values of the element are converted into type TGeoElement and stored in felemap map using the name as its key.
Definition at line 1057 of file TGDMLParse.cxx.
|
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 2584 of file TGDMLParse.cxx.
|
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 4009 of file TGDMLParse.cxx.
|
private |
Takes a string containing a mathematical expression and returns the value of the expression.
Definition at line 401 of file TGDMLParse.cxx.
TGeoVolume * TGDMLParse::GDMLReadFile | ( | const char * | filename = "test.gdml" | ) |
Creates the new instance of the XMLEngine called 'gdml', using the filename >> then parses the file and creates the DOM tree.
Then passes the DOM to the next function to translate it.
Definition at line 158 of file TGDMLParse.cxx.
|
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 667 of file TGDMLParse.cxx.
|
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 713 of file TGDMLParse.cxx.
|
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 3753 of file TGDMLParse.cxx.
|
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 985 of file TGDMLParse.cxx.
|
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 1272 of file TGDMLParse.cxx.
|
private |
In the define section of the GDML file, matrices These are referenced by other GDML tags, such as optical surfaces.
Definition at line 554 of file TGDMLParse.cxx.
|
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 436 of file TGDMLParse.cxx.
|
private |
In the solids section of the GDML file, optical surfaces can be defined.
Definition at line 603 of file TGDMLParse.cxx.
|
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 4064 of file TGDMLParse.cxx.
|
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 3824 of file TGDMLParse.cxx.
|
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 2747 of file TGDMLParse.cxx.
|
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 195 of file TGDMLParse.cxx.
|
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 dimensions at that point along z.
Definition at line 3355 of file TGDMLParse.cxx.
|
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 dimensions at that point along z.
Definition at line 3478 of file TGDMLParse.cxx.
|
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 830 of file TGDMLParse.cxx.
|
private |
In the define section of the GDML file, quantities can be declared.
These are treated the same as constants, but the unit has to be multiplied
Definition at line 523 of file TGDMLParse.cxx.
|
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 4274 of file TGDMLParse.cxx.
|
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 883 of file TGDMLParse.cxx.
|
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 941 of file TGDMLParse.cxx.
|
private |
When using the 'divide' process in the geometry this function sets the variable 'axis' depending on what is specified.
Definition at line 411 of file TGDMLParse.cxx.
|
private |
In the structure section of the GDML file, skin surfaces can be declared.
Definition at line 1579 of file TGDMLParse.cxx.
|
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 3607 of file TGDMLParse.cxx.
|
inlinestatic |
Definition at line 111 of file TGDMLParse.h.
|
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 2492 of file TGDMLParse.cxx.
|
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 3682 of file TGDMLParse.cxx.
|
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 3187 of file TGDMLParse.cxx.
|
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 3287 of file TGDMLParse.cxx.
|
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 2921 of file TGDMLParse.cxx.
|
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 3901 of file TGDMLParse.cxx.
|
private |
User data to be processed.
Definition at line 2338 of file TGDMLParse.cxx.
|
private |
Convert number in string format to double value.
Definition at line 753 of file TGDMLParse.cxx.
|
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 1693 of file TGDMLParse.cxx.
|
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 4114 of file TGDMLParse.cxx.
|
private |
Map containing files parsed during entire parsing, with their world volume name.
Definition at line 213 of file TGDMLParse.h.
const char* TGDMLParse::fCurrentFile |
Definition at line 104 of file TGDMLParse.h.
std::string TGDMLParse::fDefault_aunit = "rad" |
Definition at line 106 of file TGDMLParse.h.
std::string TGDMLParse::fDefault_lunit = "mm" |
Definition at line 105 of file TGDMLParse.h.
|
private |
Map containing isotope names and the TGeoIsotope for it.
Definition at line 202 of file TGDMLParse.h.
TXMLEngine* TGDMLParse::fFileEngine[20] |
Definition at line 102 of file TGDMLParse.h.
|
private |
Map containing reflected volume names and the solid ref for it.
Definition at line 212 of file TGDMLParse.h.
int TGDMLParse::fFILENO |
Definition at line 101 of file TGDMLParse.h.
|
private |
Map containing scale names and the TGeoScale for it.
Definition at line 201 of file TGDMLParse.h.
|
private |
Map containing element names and the TGeoElement for it.
Definition at line 203 of file TGDMLParse.h.
|
private |
Map containing values of constants declared in the file.
Definition at line 214 of file TGDMLParse.h.
|
private |
Map containing material names and the TGeoMaterial for it.
Definition at line 204 of file TGDMLParse.h.
|
private |
Map containing medium names and the TGeoMedium for it.
Definition at line 205 of file TGDMLParse.h.
|
private |
Definition at line 198 of file TGDMLParse.h.
|
private |
Map containing volume names and the TGeoVolume for it.
Definition at line 208 of file TGDMLParse.h.
|
private |
Map containing placed volume names and the TGeoNode for it.
Definition at line 209 of file TGDMLParse.h.
|
private |
Map containing reflection names and the Solid name ir references to.
Definition at line 210 of file TGDMLParse.h.
|
private |
Map containing reflection names and the TGDMLRefl for it - containing refl matrix.
Definition at line 211 of file TGDMLParse.h.
|
private |
Map containing position names and the TGeoTranslation for it.
Definition at line 199 of file TGDMLParse.h.
|
private |
Map containing rotation names and the TGeoRotation for it.
Definition at line 200 of file TGDMLParse.h.
|
private |
Map containing mixture names and the TGeoMixture for it.
Definition at line 206 of file TGDMLParse.h.
const char* TGDMLParse::fStartFile |
Definition at line 103 of file TGDMLParse.h.
int TGDMLParse::fVolID |
Definition at line 100 of file TGDMLParse.h.
|
private |
Map containing solid names and the TGeoShape for it.
Definition at line 207 of file TGDMLParse.h.
TGeoVolume* TGDMLParse::fWorld |
Definition at line 99 of file TGDMLParse.h.
TString TGDMLParse::fWorldName |
Definition at line 98 of file TGDMLParse.h.