G3VolTable Class Reference

#include <G3VolTable.hh>


Public Member Functions

G3VolTableEntryPutVTE (G3VolTableEntry *aVTE)
G3VolTableEntryGetVTE (const G4String &Vname)
void PrintAll ()
 G3VolTable ()
virtual ~G3VolTable ()
G4LogicalVolumeGetG3toG4Mother ()
G3VolTableEntryGetFirstVTE ()
void SetFirstVTE ()
void VTEStat ()
void CountG3Pos ()
void Clear ()


Detailed Description

Definition at line 60 of file G3VolTable.hh.


Constructor & Destructor Documentation

G3VolTable::G3VolTable (  ) 

Definition at line 39 of file G3VolTable.cc.

00040   : G3toG4TopVTE(0), _FirstKey("UnDefined"), _NG3Pos(0){
00041 }

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 }


Member Function Documentation

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 (  ) 

Definition at line 92 of file G3VolTable.cc.

Referenced by G3VolTableEntry::AddG3Pos().

00092                       {
00093   _NG3Pos++;
00094 }

G3VolTableEntry * G3VolTable::GetFirstVTE (  ) 

Definition at line 107 of file G3VolTable.cc.

Referenced by G4BuildGeom().

00107                         {
00108   return G3toG4TopVTE;
00109 }

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 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:23 2013 for Geant4 by  doxygen 1.4.7