TGDMLParse() | |
TGDMLParse(const TGDMLParse&) | |
virtual | ~TGDMLParse() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
virtual void | TObject::Copy(TObject& object) const |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
virtual void | TObject::Dump() constMENU |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
TGeoVolume* | GDMLReadFile(const char* filename = "test.gdml") |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual const char* | TObject::GetIconName() const |
virtual const char* | TObject::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
virtual const char* | TObject::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() constMENU |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
virtual void | TObject::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
virtual Bool_t | TObject::Notify() |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::operator delete[](void* ptr, void* vp) |
void* | TObject::operator new(size_t sz) |
void* | TObject::operator new(size_t sz, void* vp) |
void* | TObject::operator new[](size_t sz) |
void* | TObject::operator new[](size_t sz, void* vp) |
TObject& | TObject::operator=(const TObject& rhs) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TObject::Print(Option_t* option = "") const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
void | TObject::ResetBit(UInt_t f) |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector& insp) |
static TGeoVolume* | StartGDML(const char* filename) |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | TObject::MakeZombie() |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
const char* | fCurrentFile | current file name being parsed |
int | fFILENO | Holds which level of file the parser is at |
TXMLEngine* | fFileEngine[20] | array of dom object pointers |
const char* | fStartFile | name of originating file |
int | fVolID | volume ID, incremented as assigned. |
TGeoVolume* | fWorld | top volume of geometry |
const char* | fWorldName | top volume of geometry name |
TGDMMapHelper<TGeoElement> | felemap | !Map containing element names and the TGeoElement for it |
TGDMMapHelper<const char> | ffilemap | !Map containing files parsed during entire parsing, with their world volume name |
vector<TFormula*> | fformvec | !Vector containing constant functions for GDML constant definitions |
TGDMMapHelper<TGeoIsotope> | fisomap | !Map containing isotope names and the TGeoIsotope for it |
TGDMMapHelper<TGeoMaterial> | fmatmap | !Map containing material names and the TGeoMaterial for it |
TGDMMapHelper<TGeoMedium> | fmedmap | !Map containing medium names and the TGeoMedium for it |
TGDMMapHelper<TGeoMixture> | fmixmap | !Map containing mixture names and the TGeoMixture for it |
TGDMMapHelper<TGeoTranslation> | fposmap | !Map containing position names and the TGeoTranslation for it |
map<string,string> | freflectmap | !Map containing reflection names and the Solid name ir references to |
TGDMMapHelper<TGDMLRefl> | freflsolidmap | !Map containing reflection names and the TGDMLRefl for it - containing refl matrix |
map<string,string> | freflvolmap | !Map containing reflected volume names and the solid ref for it |
TGDMMapHelper<TGeoRotation> | frotmap | !Map containing rotation names and the TGeoRotation for it |
TGDMMapHelper<TGeoScale> | fsclmap | !Map containing scale names and the TGeoScale for it |
TGDMMapHelper<TGeoShape> | fsolmap | !Map containing solid names and the TGeoShape for it |
TGDMMapHelper<TGeoVolume> | fvolmap | !Map containing volume names and the TGeoVolume for it |
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.
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.
When using the 'divide' process in the geometry this function sets the variable 'axis' depending on what is specified.
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.
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
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.
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.
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.
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.
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.
In the materials section of the GDML file, elements can be declared. 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.
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.
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.
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.