G4GDMLMessenger Class Reference

#include <G4GDMLMessenger.hh>

Inheritance diagram for G4GDMLMessenger:

G4UImessenger

Public Member Functions

 G4GDMLMessenger (G4GDMLParser *)
 ~G4GDMLMessenger ()
void SetNewValue (G4UIcommand *, G4String)

Detailed Description

Definition at line 53 of file G4GDMLMessenger.hh.


Constructor & Destructor Documentation

G4GDMLMessenger::G4GDMLMessenger ( G4GDMLParser  ) 

Definition at line 47 of file G4GDMLMessenger.cc.

References G4UIcommand::AvailableForStates(), G4State_Idle, G4State_PreInit, G4UIcommand::SetGuidance(), and G4UIcmdWithAString::SetParameterName().

00048   : myParser(myPars), topvol(0)
00049 { 
00050   persistencyDir = new G4UIdirectory("/persistency/");
00051   persistencyDir->SetGuidance("UI commands specific to persistency.");
00052   
00053   gdmlDir = new G4UIdirectory("/persistency/gdml/");
00054   gdmlDir->SetGuidance("GDML parser and writer.");
00055   
00056   ReaderCmd = new G4UIcmdWithAString("/persistency/gdml/read",this);
00057   ReaderCmd->SetGuidance("Read GDML file.");
00058   ReaderCmd->SetParameterName("filename",false);
00059   ReaderCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
00060 
00061   TopVolCmd = new G4UIcmdWithAString("/persistency/gdml/topvol",this);
00062   TopVolCmd->SetGuidance("Set the top volume for writing the GDML file.");
00063   TopVolCmd->SetParameterName("topvol",false);
00064 
00065   WriterCmd = new G4UIcmdWithAString("/persistency/gdml/write",this);
00066   WriterCmd->SetGuidance("Write GDML file.");
00067   WriterCmd->SetParameterName("filename",false);
00068   WriterCmd->AvailableForStates(G4State_Idle);
00069 
00070   ClearCmd = new G4UIcmdWithoutParameter("/persistency/gdml/clear",this);
00071   ClearCmd->SetGuidance("Clear geometry (before reading a new one from GDML).");
00072   ClearCmd->AvailableForStates(G4State_Idle);
00073 }

G4GDMLMessenger::~G4GDMLMessenger (  ) 

Definition at line 75 of file G4GDMLMessenger.cc.

00076 {
00077   delete ReaderCmd;
00078   delete WriterCmd;
00079   delete ClearCmd;
00080   delete TopVolCmd;
00081   delete persistencyDir;
00082   delete gdmlDir;
00083 }


Member Function Documentation

void G4GDMLMessenger::SetNewValue ( G4UIcommand ,
G4String   
) [virtual]

Reimplemented from G4UImessenger.

Definition at line 85 of file G4GDMLMessenger.cc.

References G4SolidStore::Clean(), G4LogicalVolumeStore::Clean(), G4PhysicalVolumeStore::Clean(), G4GDMLParser::Clear(), G4RunManager::DefineWorldVolume(), G4LogicalVolumeStore::GetInstance(), G4GeometryManager::GetInstance(), G4RunManager::GetRunManager(), G4LogicalVolumeStore::GetVolume(), G4GDMLParser::GetWorldVolume(), G4GeometryManager::OpenGeometry(), G4GDMLParser::Read(), and G4GDMLParser::Write().

00086 { 
00087   if( command == ReaderCmd )
00088   { 
00089     G4GeometryManager::GetInstance()->OpenGeometry();
00090     myParser->Read(newValue);
00091     G4RunManager::GetRunManager()->DefineWorldVolume(myParser->GetWorldVolume());
00092   }
00093 
00094   if( command == TopVolCmd )
00095   {
00096     topvol = G4LogicalVolumeStore::GetInstance()->GetVolume(newValue);
00097   }
00098    
00099   if( command == WriterCmd )
00100   {
00101     myParser->Write(newValue, topvol);
00102   }  
00103 
00104   if( command == ClearCmd )
00105   { 
00106     myParser->Clear();
00107     G4GeometryManager::GetInstance()->OpenGeometry();
00108     G4PhysicalVolumeStore::Clean();
00109     G4LogicalVolumeStore::Clean();
00110     G4SolidStore::Clean();
00111   }  
00112 }


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