#include <G3VolTable.hh>
Public Member Functions | |
G3VolTableEntry * | PutVTE (G3VolTableEntry *aVTE) |
G3VolTableEntry * | GetVTE (const G4String &Vname) |
void | PrintAll () |
G3VolTable () | |
virtual | ~G3VolTable () |
G4LogicalVolume * | GetG3toG4Mother () |
G3VolTableEntry * | GetFirstVTE () |
void | SetFirstVTE () |
void | VTEStat () |
void | CountG3Pos () |
void | Clear () |
Definition at line 60 of file G3VolTable.hh.
G3VolTable::G3VolTable | ( | ) |
G3VolTable::~G3VolTable | ( | ) | [virtual] |
Definition at line 43 of file G3VolTable.cc.
00043 { 00044 if (VTD.size()>0){ 00045 // G4cout << "Deleting VTD" << G4endl; 00046 for (VTDiterator i=VTD.begin(); i != VTD.end(); i++) { 00047 delete (*i).second; 00048 } 00049 VTD.clear(); 00050 } 00051 }
void G3VolTable::Clear | ( | ) |
Definition at line 119 of file G3VolTable.cc.
00119 { 00120 if (VTD.size()>0){ 00121 for (VTDiterator i=VTD.begin(); i != VTD.end(); i++) { 00122 delete (*i).second; 00123 } 00124 VTD.clear(); 00125 } 00126 G3toG4TopVTE = 0; 00127 _FirstKey = "UnDefined"; 00128 _NG3Pos = 0; 00129 }
void G3VolTable::CountG3Pos | ( | ) |
G3VolTableEntry * G3VolTable::GetFirstVTE | ( | ) |
G4LogicalVolume* G3VolTable::GetG3toG4Mother | ( | ) |
G3VolTableEntry * G3VolTable::GetVTE | ( | const G4String & | Vname | ) |
Definition at line 54 of file G3VolTable.cc.
Referenced by G4gsbool(), G4gsdvn(), G4gsdvn2(), G4gsdvt(), G4gsdvt2(), G4gspos(), G4gsposp(), G4gsvolu(), G3VolTableEntry::GetMasterClone(), and PutVTE().
00054 { 00055 VTDiterator i = VTD.find(Vname); 00056 if (i == VTD.end()) return 0; 00057 else return (*i).second; 00058 }
void G3VolTable::PrintAll | ( | ) |
Definition at line 61 of file G3VolTable.cc.
References G4cout, G4endl, and VTEStat().
Referenced by G4BuildGeom().
00061 { 00062 if (VTD.size()){ 00063 G4int i=0; 00064 G4cout << "Dump of VTD - " << VTD.size() << " entries:" << G4endl; 00065 VTEStat(); 00066 for (VTDiterator v=VTD.begin(); v != VTD.end(); v++){ 00067 G3VolTableEntry* VTE = (*v).second; 00068 G4cout << "G3VolTable element " << std::setw(3) << i++ << " name " 00069 << VTE->GetName() << " has " << VTE->GetNoDaughters() 00070 << " daughters" << G4endl; 00071 } 00072 } 00073 }
G3VolTableEntry * G3VolTable::PutVTE | ( | G3VolTableEntry * | aVTE | ) |
Definition at line 76 of file G3VolTable.cc.
References G3VolTableEntry::GetName(), and GetVTE().
Referenced by G4CloneDaughters(), G4CreateCloneVTE(), G4CreateCloneVTEWithDivision(), and G4CreateVTE().
00076 { 00077 00078 if (GetVTE(aG3VolTableEntry->GetName()) == 0 ){ 00079 00080 // create a hash key 00081 G4String HashID = aG3VolTableEntry->GetName(); 00082 00083 if (_FirstKey == "UnDefined") _FirstKey = HashID; 00084 00085 // insert into dictionary 00086 VTD[HashID] = aG3VolTableEntry; 00087 } 00088 return GetVTE(aG3VolTableEntry->GetName()); 00089 }
void G3VolTable::SetFirstVTE | ( | ) |
Definition at line 97 of file G3VolTable.cc.
References G3VolTableEntry::GetMother(), G3VolTableEntry::GetName(), and G3VolTableEntry::NPCopies().
Referenced by G4ggclos().
00097 { 00098 G3toG4TopVTE = VTD[_FirstKey]; 00099 00100 if (G3toG4TopVTE->NPCopies() > 0) { 00101 _FirstKey = G3toG4TopVTE->GetMother()->GetName(); 00102 SetFirstVTE(); 00103 } 00104 }
void G3VolTable::VTEStat | ( | ) |
Definition at line 112 of file G3VolTable.cc.
References G4cout, and G4endl.
Referenced by PrintAll().
00112 { 00113 G4cout << "Instantiated " << VTD.size() << 00114 " volume table entries \n" 00115 << " " << _NG3Pos << " positions." << G4endl; 00116 }