4 // Author: I. Hrivnacova
6 // Class AliModulesCompositionMessenger
7 // ------------------------------------
8 // See the class description in the header file.
10 #include "AliModulesCompositionMessenger.h"
11 #include "AliModulesComposition.h"
12 #include "AliGlobals.h"
14 #include <G4UIdirectory.hh>
15 #include <G4UIcmdWithoutParameter.hh>
16 #include <G4UIcmdWithABool.hh>
17 #include <G4UIcmdWithADoubleAndUnit.hh>
19 //_____________________________________________________________________________
20 AliModulesCompositionMessenger::AliModulesCompositionMessenger(
21 AliModulesComposition* modulesComposition)
22 : fModulesComposition(modulesComposition)
25 fDirectory = new G4UIdirectory("/aliDet/");
26 fDirectory->SetGuidance("Detector construction control commands.");
28 fFieldValueCmd = new G4UIcmdWithADoubleAndUnit("/aliDet/fieldValue", this);
29 fFieldValueCmd->SetGuidance("Define magnetic field in Z direction.");
30 fFieldValueCmd->SetParameterName("fieldValue", false, false);
31 fFieldValueCmd->SetDefaultUnit("tesla");
32 fFieldValueCmd->SetUnitCategory("Magnetic flux density");
33 fFieldValueCmd->AvailableForStates(PreInit,Idle);
36 = new G4UIcmdWithABool("/aliDet/readGeometry", this);
37 fSetReadGeometryCmd->SetGuidance("Read geometry from g3calls.dat files");
38 fSetReadGeometryCmd->SetParameterName("readGeometry", false);
39 fSetReadGeometryCmd->AvailableForStates(PreInit);
42 = new G4UIcmdWithABool("/aliDet/writeGeometry", this);
43 fSetWriteGeometryCmd->SetGuidance("Write geometry to g3calls.dat file");
44 fSetWriteGeometryCmd->SetParameterName("writeGeometry", false);
45 fSetWriteGeometryCmd->AvailableForStates(PreInit);
48 = new G4UIcmdWithoutParameter("/aliDet/printMaterials", this);
49 fPrintMaterialsCmd->SetGuidance("Prints all materials.");
50 fPrintMaterialsCmd->AvailableForStates(PreInit, Init, Idle);
53 = new G4UIcmdWithoutParameter("/aliDet/generateXML", this);
54 fGenerateXMLCmd->SetGuidance("Generate geometry XML file.");
55 fGenerateXMLCmd->AvailableForStates(Idle);
58 //_____________________________________________________________________________
59 AliModulesCompositionMessenger::AliModulesCompositionMessenger() {
63 //_____________________________________________________________________________
64 AliModulesCompositionMessenger::AliModulesCompositionMessenger(
65 const AliModulesCompositionMessenger& right)
68 AliGlobals::Exception(
69 "AliModulesCompositionMessenger is protected from copying.");
72 //_____________________________________________________________________________
73 AliModulesCompositionMessenger::~AliModulesCompositionMessenger() {
76 delete fFieldValueCmd;
77 delete fSetReadGeometryCmd;
78 delete fSetWriteGeometryCmd;
79 delete fPrintMaterialsCmd;
80 delete fGenerateXMLCmd;
85 //_____________________________________________________________________________
86 AliModulesCompositionMessenger&
87 AliModulesCompositionMessenger::operator=(
88 const AliModulesCompositionMessenger& right)
90 // check assignement to self
91 if (this == &right) return *this;
93 AliGlobals::Exception(
94 "AliModulesCompositionMessenger is protected from assigning.");
101 //_____________________________________________________________________________
102 void AliModulesCompositionMessenger::SetNewValue(G4UIcommand* command, G4String newValues)
104 // Applies command to the associated object.
107 if (command == fFieldValueCmd) {
109 ->SetMagField(fFieldValueCmd->GetNewDoubleValue(newValues));
111 else if (command == fSetReadGeometryCmd) {
112 fModulesComposition->SetReadGeometry(
113 fSetReadGeometryCmd->GetNewBoolValue(newValues));
115 else if (command == fSetWriteGeometryCmd) {
116 fModulesComposition->SetWriteGeometry(
117 fSetWriteGeometryCmd->GetNewBoolValue(newValues));
119 else if (command == fPrintMaterialsCmd) {
120 fModulesComposition->PrintMaterials();
122 else if (command == fGenerateXMLCmd) {
123 fModulesComposition->GenerateXMLGeometry();