// $Id$ // Category: geometry // // Author: I. Hrivnacova // // Class AliModulesCompositionMessenger // ------------------------------------ // See the class description in the header file. #include "AliModulesCompositionMessenger.h" #include "AliModulesComposition.h" #include "AliGlobals.h" #include #include #include #include //_____________________________________________________________________________ AliModulesCompositionMessenger::AliModulesCompositionMessenger( AliModulesComposition* modulesComposition) : fModulesComposition(modulesComposition) { // fDirectory = new G4UIdirectory("/aliDet/"); fDirectory->SetGuidance("Detector construction control commands."); fFieldValueCmd = new G4UIcmdWithADoubleAndUnit("/aliDet/fieldValue", this); fFieldValueCmd->SetGuidance("Define magnetic field in Z direction."); fFieldValueCmd->SetParameterName("fieldValue", false, false); fFieldValueCmd->SetDefaultUnit("tesla"); fFieldValueCmd->SetUnitCategory("Magnetic flux density"); fFieldValueCmd->AvailableForStates(PreInit,Idle); fSetReadGeometryCmd = new G4UIcmdWithABool("/aliDet/readGeometry", this); fSetReadGeometryCmd->SetGuidance("Read geometry from g3calls.dat files"); fSetReadGeometryCmd->SetParameterName("readGeometry", false); fSetReadGeometryCmd->AvailableForStates(PreInit); fSetWriteGeometryCmd = new G4UIcmdWithABool("/aliDet/writeGeometry", this); fSetWriteGeometryCmd->SetGuidance("Write geometry to g3calls.dat file"); fSetWriteGeometryCmd->SetParameterName("writeGeometry", false); fSetWriteGeometryCmd->AvailableForStates(PreInit); fPrintMaterialsCmd = new G4UIcmdWithoutParameter("/aliDet/printMaterials", this); fPrintMaterialsCmd->SetGuidance("Prints all materials."); fPrintMaterialsCmd->AvailableForStates(PreInit, Init, Idle); fGenerateXMLCmd = new G4UIcmdWithoutParameter("/aliDet/generateXML", this); fGenerateXMLCmd->SetGuidance("Generate geometry XML file."); fGenerateXMLCmd->AvailableForStates(Idle); } //_____________________________________________________________________________ AliModulesCompositionMessenger::AliModulesCompositionMessenger() { // } //_____________________________________________________________________________ AliModulesCompositionMessenger::AliModulesCompositionMessenger( const AliModulesCompositionMessenger& right) { // AliGlobals::Exception( "AliModulesCompositionMessenger is protected from copying."); } //_____________________________________________________________________________ AliModulesCompositionMessenger::~AliModulesCompositionMessenger() { // delete fDirectory; delete fFieldValueCmd; delete fSetReadGeometryCmd; delete fSetWriteGeometryCmd; delete fPrintMaterialsCmd; delete fGenerateXMLCmd; } // operators //_____________________________________________________________________________ AliModulesCompositionMessenger& AliModulesCompositionMessenger::operator=( const AliModulesCompositionMessenger& right) { // check assignement to self if (this == &right) return *this; AliGlobals::Exception( "AliModulesCompositionMessenger is protected from assigning."); return *this; } // public methods //_____________________________________________________________________________ void AliModulesCompositionMessenger::SetNewValue(G4UIcommand* command, G4String newValues) { // Applies command to the associated object. // --- if (command == fFieldValueCmd) { fModulesComposition ->SetMagField(fFieldValueCmd->GetNewDoubleValue(newValues)); } else if (command == fSetReadGeometryCmd) { fModulesComposition->SetReadGeometry( fSetReadGeometryCmd->GetNewBoolValue(newValues)); } else if (command == fSetWriteGeometryCmd) { fModulesComposition->SetWriteGeometry( fSetWriteGeometryCmd->GetNewBoolValue(newValues)); } else if (command == fPrintMaterialsCmd) { fModulesComposition->PrintMaterials(); } else if (command == fGenerateXMLCmd) { fModulesComposition->GenerateXMLGeometry(); } }