51   :iortDetector(detector)
 
   55     changeThePhantomDir -> SetGuidance(
"Command to change the Phantom Size/position");
 
   57     changeThePhantomSizeCmd -> SetGuidance(
"Insert sizes X Y and Z" 
   58                                        "\n   0 or negative values mean <<Don't change it!>>");
 
   59     changeThePhantomSizeCmd -> SetParameterName(
"PhantomSizeAlongX", 
 
   61                         "PhantomSizeAlongZ", 
false);
 
   62     changeThePhantomSizeCmd -> SetDefaultUnit(
"mm");
 
   63     changeThePhantomSizeCmd -> SetUnitCandidates(
"nm um mm cm"); 
 
   64     changeThePhantomSizeCmd -> AvailableForStates(
G4State_Idle);
 
   69     changeThePhantomMaterialCmd -> SetGuidance(
"Change the Phantom and the detector material"); 
 
   70     changeThePhantomMaterialCmd -> SetParameterName(
"PhantomMaterial", 
false);
 
   71     changeThePhantomMaterialCmd -> SetDefaultValue(
"G4_WATER");
 
   72     changeThePhantomMaterialCmd -> AvailableForStates(
G4State_Idle);
 
   76     changeThePhantomPositionCmd -> SetGuidance(
"Insert X Y and Z dimensions for the position of the center of the Phantom" 
   77                         " respect to that of the \"World\""); 
 
   78     changeThePhantomPositionCmd -> SetParameterName(
"PositionAlongX", 
 
   80                             "PositionAlongZ", 
false);
 
   81     changeThePhantomPositionCmd -> SetDefaultUnit(
"mm");
 
   82     changeThePhantomPositionCmd -> SetUnitCandidates(
"um mm cm m"); 
 
   83     changeThePhantomPositionCmd -> AvailableForStates(
G4State_Idle);
 
   87     updateCmd->
SetGuidance(
"Update Phantom/Detector geometry.");
 
   88     updateCmd->
SetGuidance(
"This command MUST be applied before \"beamOn\" ");
 
   89     updateCmd->
SetGuidance(
"if you changed geometrical value(s).");
 
   94     changeTheDetectorDir -> SetGuidance(
"Command to change the Detector's Size/position/Voxels");
 
   97     changeTheDetectorSizeCmd -> SetGuidance(
"Insert sizes for X Y and Z dimensions of the Detector" 
   98                         "\n   0 or negative values mean <<Don't change it>>");
 
   99     changeTheDetectorSizeCmd -> SetParameterName(
"DetectorSizeAlongX", 
"DetectorSizeAlongY", 
"DetectorSizeAlongZ", 
false);
 
  100     changeTheDetectorSizeCmd -> SetDefaultUnit(
"mm");
 
  101     changeTheDetectorSizeCmd -> SetUnitCandidates(
"nm um mm cm"); 
 
  102     changeTheDetectorSizeCmd -> AvailableForStates(
G4State_Idle);
 
  106     changeTheDetectorToPhantomPositionCmd -> SetGuidance(
"Insert X Y and Z displacements between Detector and Phantom" 
  107                                                      "\nNegative values mean <<Don't change it!>>"); 
 
  108     changeTheDetectorToPhantomPositionCmd -> SetParameterName(
"DisplacementAlongX",
 
  109                                   "DisplacementAlongY", 
 
  110                                   "DisplacementAlongZ", 
false);
 
  111     changeTheDetectorToPhantomPositionCmd -> SetDefaultUnit(
"mm");
 
  112     changeTheDetectorToPhantomPositionCmd -> SetUnitCandidates(
"nm um mm cm"); 
 
  113     changeTheDetectorToPhantomPositionCmd -> AvailableForStates(
G4State_Idle);
 
  117     changeTheDetectorVoxelCmd -> SetGuidance(
"Insert Voxel sizes for X Y and Z dimensions" 
  118                                      "\n   0 or negative values mean <<Don't change it!>>");
 
  119     changeTheDetectorVoxelCmd -> SetParameterName(
"VoxelSizeAlongX", 
"VoxelSizeAlongY", 
"VoxelSizeAlongZ", 
false);
 
  120     changeTheDetectorVoxelCmd -> SetDefaultUnit(
"mm");
 
  121     changeTheDetectorVoxelCmd -> SetUnitCandidates(
"nm um mm cm");
 
  122     changeTheDetectorVoxelCmd -> AvailableForStates(
G4State_Idle);
 
  127     changeTheDisc1Dir -> SetGuidance(
"Command to change the Disc1");
 
  130     changeOuterRadiusDiscoIORTCmd -> SetGuidance(
"Set size of outer radius");
 
  131     changeOuterRadiusDiscoIORTCmd -> SetParameterName(
"Size",
false);
 
  132     changeOuterRadiusDiscoIORTCmd -> SetDefaultUnit(
"mm");  
 
  133     changeOuterRadiusDiscoIORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  134     changeOuterRadiusDiscoIORTCmd -> AvailableForStates(
G4State_Idle);
 
  137     changeinnerRadiusDiscoIORTCmd -> SetGuidance(
"Set size of inner radius");
 
  138     changeinnerRadiusDiscoIORTCmd -> SetParameterName(
"Size",
false);
 
  139     changeinnerRadiusDiscoIORTCmd -> SetDefaultUnit(
"mm");  
 
  140     changeinnerRadiusDiscoIORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  141     changeinnerRadiusDiscoIORTCmd -> AvailableForStates(
G4State_Idle);
 
  145     changeheightDiscoIORTCmd -> SetGuidance(
"Set size of higth");
 
  146     changeheightDiscoIORTCmd -> SetParameterName(
"Size",
false);
 
  147     changeheightDiscoIORTCmd -> SetDefaultUnit(
"mm");  
 
  148     changeheightDiscoIORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  149     changeheightDiscoIORTCmd -> AvailableForStates(
G4State_Idle);
 
  152     changeDiscoXPositionIORTCmd -> SetGuidance(
"Set the X position");
 
  153     changeDiscoXPositionIORTCmd -> SetParameterName(
"Size",
false);
 
  154     changeDiscoXPositionIORTCmd -> SetDefaultUnit(
"mm");  
 
  155     changeDiscoXPositionIORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  156     changeDiscoXPositionIORTCmd -> AvailableForStates(
G4State_Idle);
 
  159     changeDiscoYPositionIORTCmd -> SetGuidance(
"Set the Y position");
 
  160     changeDiscoYPositionIORTCmd -> SetParameterName(
"Size",
false);
 
  161     changeDiscoYPositionIORTCmd -> SetDefaultUnit(
"mm");  
 
  162     changeDiscoYPositionIORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  163     changeDiscoYPositionIORTCmd -> AvailableForStates(
G4State_Idle);
 
  166     changeDiscoZPositionIORTCmd -> SetGuidance(
"Set the Z position");
 
  167     changeDiscoZPositionIORTCmd -> SetParameterName(
"Size",
false);
 
  168     changeDiscoZPositionIORTCmd -> SetDefaultUnit(
"mm");  
 
  169     changeDiscoZPositionIORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  170     changeDiscoZPositionIORTCmd -> AvailableForStates(
G4State_Idle);
 
  172     changeTheDisc1MaterialCmd = 
new G4UIcmdWithAString(
"/ProtectionDisc1/material", 
this);
 
  173     changeTheDisc1MaterialCmd -> SetGuidance(
"Change the Disc1 material"); 
 
  174     changeTheDisc1MaterialCmd -> SetParameterName(
"Disc1Material", 
false);
 
  175     changeTheDisc1MaterialCmd -> SetDefaultValue(
"G4_WATER");
 
  176     changeTheDisc1MaterialCmd -> AvailableForStates(
G4State_Idle);
 
  182     changeTheDisc2Dir -> SetGuidance(
"Command to change the Disc2");
 
  185     changeOuterRadiusDisco1IORTCmd -> SetGuidance(
"Set size of outer radius");
 
  186     changeOuterRadiusDisco1IORTCmd -> SetParameterName(
"Size",
false);
 
  187     changeOuterRadiusDisco1IORTCmd -> SetDefaultUnit(
"mm");  
 
  188     changeOuterRadiusDisco1IORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  189     changeOuterRadiusDisco1IORTCmd -> AvailableForStates(
G4State_Idle);
 
  192     changeinnerRadiusDisco1IORTCmd -> SetGuidance(
"Set size of inner radius");
 
  193     changeinnerRadiusDisco1IORTCmd -> SetParameterName(
"Size",
false);
 
  194     changeinnerRadiusDisco1IORTCmd -> SetDefaultUnit(
"mm");  
 
  195     changeinnerRadiusDisco1IORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  196     changeinnerRadiusDisco1IORTCmd -> AvailableForStates(
G4State_Idle);
 
  200     changeheightDisco1IORTCmd -> SetGuidance(
"Set size of higth");
 
  201     changeheightDisco1IORTCmd -> SetParameterName(
"Size",
false);
 
  202     changeheightDisco1IORTCmd -> SetDefaultUnit(
"mm");  
 
  203     changeheightDisco1IORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  204     changeheightDisco1IORTCmd -> AvailableForStates(
G4State_Idle);
 
  207     changeDisco1XPositionIORTCmd -> SetGuidance(
"Set the X position");
 
  208     changeDisco1XPositionIORTCmd -> SetParameterName(
"Size",
false);
 
  209     changeDisco1XPositionIORTCmd -> SetDefaultUnit(
"mm");  
 
  210     changeDisco1XPositionIORTCmd -> SetUnitCandidates(
"mm cm m");  
 
  211     changeDisco1XPositionIORTCmd -> AvailableForStates(
G4State_Idle);
 
  213     changeTheDisc2MaterialCmd = 
new G4UIcmdWithAString(
"/ProtectionDisc2/material", 
this);
 
  214     changeTheDisc2MaterialCmd -> SetGuidance(
"Change the Disc2 material"); 
 
  215     changeTheDisc2MaterialCmd -> SetParameterName(
"Disc1Material", 
false);
 
  216     changeTheDisc2MaterialCmd -> SetDefaultValue(
"G4_WATER");
 
  217     changeTheDisc2MaterialCmd -> AvailableForStates(
G4State_Idle);
 
  220     deleteTheDiscDir = 
new G4UIdirectory(
"/DeleteProtectionDisc/");
 
  221     deleteTheDiscDir -> SetGuidance(
"Command to delete the 1-2 Discs ");
 
  224     deletediscCmd->
SetGuidance(
"Delete the 1-2 Discs geometry.");
 
  225     deletediscCmd->
SetGuidance(
"This command MUST be applied before \"beamOn\" ");
 
  229     insertTheDiscDir = 
new G4UIdirectory(
"/InsertProtectionDisc/");
 
  230     insertTheDiscDir -> SetGuidance(
"Command to insert the 1-2 Discs ");
 
  233     insertdiscCmd->
SetGuidance(
"Insert the 1-2 Discs geometry.");
 
  234     insertdiscCmd->
SetGuidance(
"This command MUST be applied before \"beamOn\" ");
 
  235     insertdiscCmd->
SetGuidance(
"After this command MUST be applied update command \"beamOn\" ");
 
  239     changeTheAnglediscDir = 
new G4UIdirectory(
"/ChangeTiltAngleDisc1-2/");
 
  240     changeTheAnglediscDir -> SetGuidance(
"Set tilt angle of the 1-2 Discs");
 
  243     changeTheAnglediscCmd -> SetParameterName(
"Angle",
false);
 
  244     changeTheAnglediscCmd -> SetDefaultUnit(
"deg");  
 
  245     changeTheAnglediscCmd -> SetUnitCandidates(
"deg rad");  
 
  246     changeTheAnglediscCmd -> AvailableForStates(
G4State_Idle); 
 
  252     delete changeThePhantomDir; 
 
  253     delete changeThePhantomSizeCmd; 
 
  254     delete changeThePhantomPositionCmd; 
 
  255     delete changeThePhantomMaterialCmd; 
 
  257     delete changeTheDetectorDir; 
 
  258     delete changeTheDetectorSizeCmd; 
 
  259     delete changeTheDetectorToPhantomPositionCmd; 
 
  260     delete changeTheDetectorVoxelCmd;
 
  262     delete changeTheDisc1Dir;
 
  263     delete changeOuterRadiusDiscoIORTCmd;
 
  264     delete changeinnerRadiusDiscoIORTCmd;
 
  265     delete changeheightDiscoIORTCmd; 
 
  266     delete changeDiscoXPositionIORTCmd;
 
  267     delete changeDiscoYPositionIORTCmd;
 
  268     delete changeDiscoZPositionIORTCmd;
 
  269     delete changeTheDisc1MaterialCmd;
 
  271     delete changeTheDisc2Dir;
 
  272     delete changeOuterRadiusDisco1IORTCmd;
 
  273     delete changeinnerRadiusDisco1IORTCmd;
 
  274     delete changeheightDisco1IORTCmd; 
 
  275     delete changeDisco1XPositionIORTCmd;
 
  276     delete changeTheDisc2MaterialCmd;
 
  278     delete deletediscCmd;
 
  279     delete insertdiscCmd;
 
  281     delete changeTheAnglediscDir;
 
  282     delete changeTheAnglediscCmd;
 
  289   if( command == changeThePhantomSizeCmd)
 
  291     G4ThreeVector size = changeThePhantomSizeCmd -> GetNew3VectorValue(newValue);
 
  292     iortDetector -> SetPhantomSize(size.
getX(),size.
getY(),size.
getZ());
 
  294   else if (command == changeThePhantomPositionCmd )
 
  296      G4ThreeVector size = changeThePhantomPositionCmd -> GetNew3VectorValue(newValue);
 
  297          iortDetector -> SetPhantomPosition(size);
 
  299   else if (command == changeThePhantomMaterialCmd)
 
  301       iortDetector -> SetPhantomMaterial(newValue);
 
  303   else if (command == changeTheDetectorSizeCmd)
 
  305     G4ThreeVector size = changeTheDetectorSizeCmd  -> GetNew3VectorValue(newValue);
 
  306         iortDetector -> SetDetectorSize(size.
getX(),size.
getY(),size.
getZ());
 
  308   else if (command == changeTheDetectorToPhantomPositionCmd)
 
  310     G4ThreeVector size = changeTheDetectorToPhantomPositionCmd-> GetNew3VectorValue(newValue);
 
  311         iortDetector -> SetDetectorToPhantomPosition(size);
 
  313   else if (command == changeTheDetectorVoxelCmd)
 
  315     G4ThreeVector size = changeTheDetectorVoxelCmd  -> GetNew3VectorValue(newValue);
 
  316         iortDetector -> SetVoxelSize(size.
getX(),size.
getY(),size.
getZ());
 
  320   else if( command == changeOuterRadiusDiscoIORTCmd )
 
  322          iortDetector -> SetOuterRadiusDiscoIORT
 
  323     (changeOuterRadiusDiscoIORTCmd -> GetNewDoubleValue(newValue));
 
  325   else if( command == changeinnerRadiusDiscoIORTCmd )
 
  326     { iortDetector -> SetinnerRadiusDiscoIORT
 
  327     (changeinnerRadiusDiscoIORTCmd -> GetNewDoubleValue(newValue));
 
  329   else if( command == changeheightDiscoIORTCmd )
 
  330     { iortDetector -> SetheightDiscoIORT
 
  331     (changeheightDiscoIORTCmd -> GetNewDoubleValue(newValue));
 
  333   else if( command == changeDiscoXPositionIORTCmd )
 
  334     { iortDetector -> SetDiscoXPositionIORT
 
  335     (changeDiscoXPositionIORTCmd -> GetNewDoubleValue(newValue));
 
  337   else if( command == changeDiscoYPositionIORTCmd )
 
  338     { iortDetector -> SetDiscoYPositionIORT
 
  339     (changeDiscoYPositionIORTCmd -> GetNewDoubleValue(newValue));
 
  341   else if( command == changeDiscoZPositionIORTCmd )
 
  342     { iortDetector -> SetDiscoZPositionIORT
 
  343     (changeDiscoZPositionIORTCmd -> GetNewDoubleValue(newValue));
 
  345   else if (command == changeTheDisc1MaterialCmd)
 
  347       iortDetector -> SetDiscoMaterialIORT(newValue);
 
  350   else if( command == changeOuterRadiusDisco1IORTCmd )
 
  351     { iortDetector -> SetOuterRadiusDiscoIORT1
 
  352     (changeOuterRadiusDisco1IORTCmd -> GetNewDoubleValue(newValue));
 
  354   else if( command == changeinnerRadiusDisco1IORTCmd )
 
  355     { iortDetector -> SetinnerRadiusDiscoIORT1
 
  356     (changeinnerRadiusDisco1IORTCmd -> GetNewDoubleValue(newValue));
 
  358   else if( command == changeheightDisco1IORTCmd )
 
  359     { iortDetector -> SetheightDiscoIORT1
 
  360     (changeheightDisco1IORTCmd -> GetNewDoubleValue(newValue));
 
  362   else if( command == changeDisco1XPositionIORTCmd )
 
  363     { iortDetector -> SetDiscoXPositionIORT1
 
  364     (changeDisco1XPositionIORTCmd -> GetNewDoubleValue(newValue));
 
  366   else if (command == changeTheDisc2MaterialCmd)
 
  368       iortDetector -> SetDiscoMaterialIORT1(newValue);
 
  370   else if (command == changeTheAnglediscCmd)
 
  372       iortDetector -> SetAngleDiscoIORT0
 
  373         (changeTheAnglediscCmd -> GetNewDoubleValue(newValue));
 
  378   else if (command == updateCmd)
 
  380       iortDetector -> UpdateGeometry();
 
  383   else if (command == deletediscCmd)
 
  385       iortDetector -> DeleteDisc();
 
  388 else if (command == insertdiscCmd)
 
  390       iortDetector -> ConstructDisc();
 
void SetNewValue(G4UIcommand *, G4String)
 
void SetGuidance(const char *aGuidance)
 
void AvailableForStates(G4ApplicationState s1)
 
IORTDetectorMessenger(IORTDetectorConstruction *)