Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/hadrontherapy/src/LaserDrivenBeamLineMessenger.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/advanced/hadrontherapy/src/LaserDrivenBeamLineMessenger.cc (Version 11.3.0) and /examples/advanced/hadrontherapy/src/LaserDrivenBeamLineMessenger.cc (Version 10.6)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 // Hadrontherapy advanced example for Geant4       26 // Hadrontherapy advanced example for Geant4
 27 // See more at: https://twiki.cern.ch/twiki/bi     27 // See more at: https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamplesHadrontherapy
 28                                                    28 
 29 #include "LaserDrivenBeamLineMessenger.hh"         29 #include "LaserDrivenBeamLineMessenger.hh"
 30 #include "LaserDrivenBeamLine.hh"                  30 #include "LaserDrivenBeamLine.hh"
 31 #include "G4UIdirectory.hh"                        31 #include "G4UIdirectory.hh"
 32 #include "G4UIcmdWithADoubleAndUnit.hh"            32 #include "G4UIcmdWithADoubleAndUnit.hh"
 33 #include "G4UIcmdWithoutParameter.hh"              33 #include "G4UIcmdWithoutParameter.hh"
 34 #include "G4UIcmdWithAString.hh"                   34 #include "G4UIcmdWithAString.hh"
 35 #include "G4SystemOfUnits.hh"                      35 #include "G4SystemOfUnits.hh"
 36                                                    36 
 37 //////////////////////////////////////////////     37 /////////////////////////////////////////////////////////////////////////////
 38 LaserDrivenBeamLineMessenger::LaserDrivenBeamL     38 LaserDrivenBeamLineMessenger::LaserDrivenBeamLineMessenger(LaserDrivenBeamLine* laserDriven)
 39   :laserDrivenMessengerPointer(laserDriven)        39   :laserDrivenMessengerPointer(laserDriven)
 40 {                                                  40 {
 41 // Messenger directories for the Energy Select     41 // Messenger directories for the Energy Selector module
 42   laserDrivenDir = new G4UIdirectory("/LaserDr     42   laserDrivenDir = new G4UIdirectory("/LaserDriven/");
 43   laserDrivenDir -> SetGuidance("The Laser Dri     43   laserDrivenDir -> SetGuidance("The Laser Driven Beam Line module of Hadrontherapy");
 44                                                    44 
 45   // Messenger directories for the Energy Sele     45   // Messenger directories for the Energy Selector module
 46   energySelectorDir = new G4UIdirectory("/Lase     46   energySelectorDir = new G4UIdirectory("/LaserDriven/EnergySelector/");
 47   energySelectorDir -> SetGuidance("The Energy     47   energySelectorDir -> SetGuidance("The Energy selector (ESS) module of Hadrontherapy");
 48                                                    48 
 49   FcollimatorDir =  new G4UIdirectory("/LaserD     49   FcollimatorDir =  new G4UIdirectory("/LaserDriven/EnergySelector/FirstCollimator/");
 50   FcollimatorDir -> SetGuidance("Define geomet     50   FcollimatorDir -> SetGuidance("Define geometrical characteristics of the ESS first collimator");
 51                                                    51 
 52   ScollimatorDir =  new G4UIdirectory("/LaserD     52   ScollimatorDir =  new G4UIdirectory("/LaserDriven/EnergySelector/SecondCollimator/");
 53   ScollimatorDir -> SetGuidance("Define geomet     53   ScollimatorDir -> SetGuidance("Define geometrical characteristics of the ESS second collimator");
 54                                                    54 
 55   slitDir =  new G4UIdirectory("/LaserDriven/E     55   slitDir =  new G4UIdirectory("/LaserDriven/EnergySelector/Slit/");
 56   slitDir -> SetGuidance("Define geometrical c     56   slitDir -> SetGuidance("Define geometrical characteristics of the ESS slit");
 57                                                    57 
 58  // Messenger directories for the Quadrupole m     58  // Messenger directories for the Quadrupole module
 59   quadrupoleDir = new G4UIdirectory("/LaserDri     59   quadrupoleDir = new G4UIdirectory("/LaserDriven/Quadrupoles/");
 60   quadrupoleDir -> SetGuidance("The Quadrupole     60   quadrupoleDir -> SetGuidance("The Quadrupoles module of Hadrontherapy");
 61                                                    61 
 62   relativePosDir = new G4UIdirectory("/LaserDr     62   relativePosDir = new G4UIdirectory("/LaserDriven/Quadrupoles/xRelPosition/");
 63   relativePosDir -> SetGuidance("Define the x      63   relativePosDir -> SetGuidance("Define the x relative positions of the quadrupoles");
 64                                                    64 
 65   // ESS DISABLE                                   65   // ESS DISABLE
 66   DisableESSCmd = new G4UIcmdWithoutParameter(     66   DisableESSCmd = new G4UIcmdWithoutParameter("/LaserDriven/EnergySelector/Disable", this); 
 67   DisableESSCmd -> SetGuidance("Disable the En     67   DisableESSCmd -> SetGuidance("Disable the Energy Selector.");
 68   DisableESSCmd -> SetGuidance("This command M     68   DisableESSCmd -> SetGuidance("This command MUST be applied before \"beamOn\" ");
 69   DisableESSCmd -> AvailableForStates(G4State_     69   DisableESSCmd -> AvailableForStates(G4State_Idle);
 70                                                    70 
 71   // THE FIRST ESS COLLIMATOR                      71   // THE FIRST ESS COLLIMATOR
 72   //                                               72   //
 73   // Diameter of the first collimator              73   // Diameter of the first collimator
 74   FcollimatorRadiusCmd = new G4UIcmdWithADoubl     74   FcollimatorRadiusCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/FirstCollimator/Radius", this);
 75   FcollimatorRadiusCmd -> SetGuidance("Set the     75   FcollimatorRadiusCmd -> SetGuidance("Set the Radius of the first collimator");
 76   FcollimatorRadiusCmd -> SetParameterName("Si     76   FcollimatorRadiusCmd -> SetParameterName("Size",false);
 77   FcollimatorRadiusCmd -> SetDefaultUnit("mm")     77   FcollimatorRadiusCmd -> SetDefaultUnit("mm"); 
 78   FcollimatorRadiusCmd -> SetUnitCandidates("m     78   FcollimatorRadiusCmd -> SetUnitCandidates("mm cm m");  
 79   FcollimatorRadiusCmd -> AvailableForStates(G     79   FcollimatorRadiusCmd -> AvailableForStates(G4State_Idle);
 80                                                    80   
 81   // Thickness of the first collimator             81   // Thickness of the first collimator
 82   FcollimatorThicknessCmd = new G4UIcmdWithADo     82   FcollimatorThicknessCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/FirstCollimator/Thickness", this);
 83   FcollimatorThicknessCmd -> SetGuidance("Set      83   FcollimatorThicknessCmd -> SetGuidance("Set the thickness of the first collimator");
 84   FcollimatorThicknessCmd -> SetParameterName(     84   FcollimatorThicknessCmd -> SetParameterName("Size",false);
 85   FcollimatorThicknessCmd -> SetDefaultUnit("m     85   FcollimatorThicknessCmd -> SetDefaultUnit("mm"); 
 86   FcollimatorThicknessCmd -> SetUnitCandidates     86   FcollimatorThicknessCmd -> SetUnitCandidates("mm cm m");  
 87   FcollimatorThicknessCmd -> AvailableForState     87   FcollimatorThicknessCmd -> AvailableForStates(G4State_Idle);
 88                                                    88 
 89   // Z Position of the first collimator hole       89   // Z Position of the first collimator hole 
 90   FcollimatorZpositionCmd = new G4UIcmdWithADo     90   FcollimatorZpositionCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/FirstCollimator/zPosizion", this);
 91   FcollimatorZpositionCmd -> SetGuidance("Set      91   FcollimatorZpositionCmd -> SetGuidance("Set the Z position of the first collimator hole as respect the internal vacuum chamber center axis");
 92   FcollimatorZpositionCmd -> SetParameterName(     92   FcollimatorZpositionCmd -> SetParameterName("Size",false);
 93   FcollimatorZpositionCmd -> SetDefaultUnit("m     93   FcollimatorZpositionCmd -> SetDefaultUnit("mm"); 
 94   FcollimatorZpositionCmd -> SetUnitCandidates     94   FcollimatorZpositionCmd -> SetUnitCandidates("mm cm m");  
 95   FcollimatorZpositionCmd -> AvailableForState     95   FcollimatorZpositionCmd -> AvailableForStates(G4State_Idle);
 96                                                    96     
 97   // THE SECOND ESS COLLIMATOR                     97   // THE SECOND ESS COLLIMATOR
 98   //                                               98   //
 99  // Diameter of the second collimator              99  // Diameter of the second collimator
100   ScollimatorRadiusCmd = new G4UIcmdWithADoubl    100   ScollimatorRadiusCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/SecondCollimator/Radius", this);
101   ScollimatorRadiusCmd -> SetGuidance("Set the    101   ScollimatorRadiusCmd -> SetGuidance("Set the Radius of the second collimator");
102   ScollimatorRadiusCmd -> SetParameterName("Si    102   ScollimatorRadiusCmd -> SetParameterName("Size",false);
103   ScollimatorRadiusCmd -> SetDefaultUnit("mm")    103   ScollimatorRadiusCmd -> SetDefaultUnit("mm"); 
104   ScollimatorRadiusCmd -> SetUnitCandidates("m    104   ScollimatorRadiusCmd -> SetUnitCandidates("mm cm m");  
105   ScollimatorRadiusCmd -> AvailableForStates(G    105   ScollimatorRadiusCmd -> AvailableForStates(G4State_Idle);
106                                                   106   
107   // Thickness of the second collimator           107   // Thickness of the second collimator
108   ScollimatorThicknessCmd = new G4UIcmdWithADo    108   ScollimatorThicknessCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/SecondCollimator/Thickness", this);
109   ScollimatorThicknessCmd -> SetGuidance("Set     109   ScollimatorThicknessCmd -> SetGuidance("Set the thickness of the second collimator");
110   ScollimatorThicknessCmd -> SetParameterName(    110   ScollimatorThicknessCmd -> SetParameterName("Size",false);
111   ScollimatorThicknessCmd -> SetDefaultUnit("m    111   ScollimatorThicknessCmd -> SetDefaultUnit("mm"); 
112   ScollimatorThicknessCmd -> SetUnitCandidates    112   ScollimatorThicknessCmd -> SetUnitCandidates("mm cm m");  
113   ScollimatorThicknessCmd -> AvailableForState    113   ScollimatorThicknessCmd -> AvailableForStates(G4State_Idle);
114                                                   114 
115   // Z Position of the second collimator hole     115   // Z Position of the second collimator hole 
116   ScollimatorZpositionCmd = new G4UIcmdWithADo    116   ScollimatorZpositionCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/SecondCollimator/zPosizion", this);
117   ScollimatorZpositionCmd -> SetGuidance("Set     117   ScollimatorZpositionCmd -> SetGuidance("Set the Z position of the second collimator hole as respect the internal vacuum chamber center axis");
118   ScollimatorZpositionCmd -> SetParameterName(    118   ScollimatorZpositionCmd -> SetParameterName("Size",false);
119   ScollimatorZpositionCmd -> SetDefaultUnit("m    119   ScollimatorZpositionCmd -> SetDefaultUnit("mm"); 
120   ScollimatorZpositionCmd -> SetUnitCandidates    120   ScollimatorZpositionCmd -> SetUnitCandidates("mm cm m");  
121   ScollimatorZpositionCmd -> AvailableForState    121   ScollimatorZpositionCmd -> AvailableForStates(G4State_Idle);
122                                                   122     
123   // THE SLIT                                     123   // THE SLIT
124   //                                              124   //  
125   // Thickness Slit                               125   // Thickness Slit
126   SlitThicknessCmd = new G4UIcmdWithADoubleAnd    126   SlitThicknessCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/Slit/thickness",this);
127   SlitThicknessCmd -> SetGuidance("Set the X d    127   SlitThicknessCmd -> SetGuidance("Set the X dimension of the Slit, the maximum value is 10 mm");
128   SlitThicknessCmd -> SetParameterName("Size",    128   SlitThicknessCmd -> SetParameterName("Size",false);
129   SlitThicknessCmd -> SetDefaultUnit("mm");       129   SlitThicknessCmd -> SetDefaultUnit("mm"); 
130   SlitThicknessCmd -> SetUnitCandidates("mm cm    130   SlitThicknessCmd -> SetUnitCandidates("mm cm m");  
131   SlitThicknessCmd -> AvailableForStates(G4Sta    131   SlitThicknessCmd -> AvailableForStates(G4State_Idle);
132                                                   132   
133   //Hole dimension of the Slit (in Y direction    133   //Hole dimension of the Slit (in Y direction)
134   holeSlitDimensionYCmd = new G4UIcmdWithADoub    134   holeSlitDimensionYCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/Slit/HoleDimensionY",this);
135   holeSlitDimensionYCmd -> SetGuidance("Set th    135   holeSlitDimensionYCmd -> SetGuidance("Set the Y dimension of the Slit Hole");
136   holeSlitDimensionYCmd -> SetParameterName("S    136   holeSlitDimensionYCmd -> SetParameterName("Size",false);
137   holeSlitDimensionYCmd -> SetDefaultUnit("mm"    137   holeSlitDimensionYCmd -> SetDefaultUnit("mm"); 
138   holeSlitDimensionYCmd -> SetUnitCandidates("    138   holeSlitDimensionYCmd -> SetUnitCandidates("mm cm m");  
139   holeSlitDimensionYCmd -> AvailableForStates(    139   holeSlitDimensionYCmd -> AvailableForStates(G4State_Idle);
140                                                   140   
141   // Hole dimension of the Slit (in Z directio    141   // Hole dimension of the Slit (in Z direction)
142   holeSlitDimensionZCmd = new G4UIcmdWithADoub    142   holeSlitDimensionZCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/Slit/HoleDimensionZ",this);
143   holeSlitDimensionZCmd -> SetGuidance("Set th    143   holeSlitDimensionZCmd -> SetGuidance("Set the Z dimension of the external part of magnet 4");
144   holeSlitDimensionZCmd -> SetParameterName("S    144   holeSlitDimensionZCmd -> SetParameterName("Size",false);
145   holeSlitDimensionZCmd -> SetDefaultUnit("mm"    145   holeSlitDimensionZCmd -> SetDefaultUnit("mm"); 
146   holeSlitDimensionZCmd -> SetUnitCandidates("    146   holeSlitDimensionZCmd -> SetUnitCandidates("mm cm m");  
147   holeSlitDimensionZCmd -> AvailableForStates(    147   holeSlitDimensionZCmd -> AvailableForStates(G4State_Idle);
148                                                   148   
149   // Hole position of the Slit (in Z direction    149   // Hole position of the Slit (in Z direction as respect the Slit body)
150   slitHolePositionZCmd = new G4UIcmdWithADoubl    150   slitHolePositionZCmd = new G4UIcmdWithADoubleAndUnit("/LaserDriven/EnergySelector/Slit/HolePositionZ", this);
151   slitHolePositionZCmd -> SetGuidance("Set the    151   slitHolePositionZCmd -> SetGuidance("Set the Slit hole position in the Z direction as respect the Slit body center");
152   slitHolePositionZCmd -> SetParameterName("Si    152   slitHolePositionZCmd -> SetParameterName("Size",false);
153   slitHolePositionZCmd -> SetDefaultUnit("mm")    153   slitHolePositionZCmd -> SetDefaultUnit("mm"); 
154   slitHolePositionZCmd -> SetUnitCandidates("m    154   slitHolePositionZCmd -> SetUnitCandidates("mm cm m");  
155   slitHolePositionZCmd -> AvailableForStates(G    155   slitHolePositionZCmd -> AvailableForStates(G4State_Idle);
156                                                   156 
157 //  Quadrupole system DISABLE                     157 //  Quadrupole system DISABLE
158    DisableQuadsCmd = new G4UIcmdWithoutParamet    158    DisableQuadsCmd = new G4UIcmdWithoutParameter("/LaserDriven/Quadrupoles/DisableQuads", this);  
159    DisableQuadsCmd -> SetGuidance("Disable the    159    DisableQuadsCmd -> SetGuidance("Disable the Quadrupole system.");
160    DisableQuadsCmd -> SetGuidance("This comman    160    DisableQuadsCmd -> SetGuidance("This command MUST be applied before \"beamOn\" ");
161    DisableQuadsCmd -> AvailableForStates(G4Sta    161    DisableQuadsCmd -> AvailableForStates(G4State_Idle);     
162 }                                                 162 }
163                                                   163 
164 //////////////////////////////////////////////    164 /////////////////////////////////////////////////////////////////////////////
165 LaserDrivenBeamLineMessenger::~LaserDrivenBeam    165 LaserDrivenBeamLineMessenger::~LaserDrivenBeamLineMessenger()
166 {                                                 166 { 
167                                                   167 
168   delete laserDrivenDir;                          168   delete laserDrivenDir;
169   delete energySelectorDir;                       169   delete energySelectorDir;
170   delete FcollimatorDir;                          170   delete FcollimatorDir;
171   delete ScollimatorDir;                          171   delete ScollimatorDir;
172   delete slitDir;                                 172   delete slitDir;
173   delete quadrupoleDir;                           173   delete quadrupoleDir;
174   delete relativePosDir;                          174   delete relativePosDir;
175   delete DisableESSCmd;                           175   delete DisableESSCmd;
176   delete FcollimatorRadiusCmd;                    176   delete FcollimatorRadiusCmd;
177   delete FcollimatorThicknessCmd;                 177   delete FcollimatorThicknessCmd; 
178   delete FcollimatorZpositionCmd;                 178   delete FcollimatorZpositionCmd;
179   delete ScollimatorRadiusCmd;                    179   delete ScollimatorRadiusCmd;
180   delete ScollimatorThicknessCmd;                 180   delete ScollimatorThicknessCmd; 
181   delete ScollimatorZpositionCmd;                 181   delete ScollimatorZpositionCmd;
182                                                   182 
183   delete SlitThicknessCmd;                        183   delete SlitThicknessCmd;
184   delete holeSlitDimensionYCmd;                   184   delete holeSlitDimensionYCmd;
185   delete holeSlitDimensionZCmd;                   185   delete holeSlitDimensionZCmd;
186   delete slitHolePositionZCmd;                    186   delete slitHolePositionZCmd;
187                                                   187 
188   delete DisableQuadsCmd;                         188   delete DisableQuadsCmd;
189                                                   189     
190 }                                                 190 }
191 //////////////////////////////////////////////    191 /////////////////////////////////////////////////////////////////////////////
192 void LaserDrivenBeamLineMessenger::SetNewValue    192 void LaserDrivenBeamLineMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
193 {                                                 193 { 
194   if (command == DisableESSCmd)                   194   if (command == DisableESSCmd)
195     {                                             195     {
196       laserDrivenMessengerPointer -> RemoveESS    196       laserDrivenMessengerPointer -> RemoveESS();
197     }                                             197     }
198   if( command == FcollimatorRadiusCmd )           198   if( command == FcollimatorRadiusCmd )
199     {                                             199     { 
200       laserDrivenMessengerPointer -> SetFirstC    200       laserDrivenMessengerPointer -> SetFirstCollimatorRadius
201   (FcollimatorRadiusCmd -> GetNewDoubleValue(n    201   (FcollimatorRadiusCmd -> GetNewDoubleValue(newValue));
202     }                                             202     }
203   else if( command == FcollimatorThicknessCmd     203   else if( command == FcollimatorThicknessCmd )
204     {                                             204     { 
205       laserDrivenMessengerPointer -> SetFirstC    205       laserDrivenMessengerPointer -> SetFirstCollimatorThickness
206   (FcollimatorThicknessCmd -> GetNewDoubleValu    206   (FcollimatorThicknessCmd -> GetNewDoubleValue(newValue));
207     }                                             207     }
208   else if( command == FcollimatorZpositionCmd     208   else if( command == FcollimatorZpositionCmd )
209     {                                             209     { 
210       laserDrivenMessengerPointer -> SetFirstC    210       laserDrivenMessengerPointer -> SetFirstCollimatorPositionZ
211   (FcollimatorZpositionCmd -> GetNewDoubleValu    211   (FcollimatorZpositionCmd -> GetNewDoubleValue(newValue));
212     }                                             212     }
213   else if( command == ScollimatorRadiusCmd )      213   else if( command == ScollimatorRadiusCmd )
214     {                                             214     { 
215       laserDrivenMessengerPointer -> SetSecond    215       laserDrivenMessengerPointer -> SetSecondCollimatorRadius
216   (ScollimatorRadiusCmd -> GetNewDoubleValue(n    216   (ScollimatorRadiusCmd -> GetNewDoubleValue(newValue));
217     }                                             217     }
218   else if( command == ScollimatorThicknessCmd     218   else if( command == ScollimatorThicknessCmd )
219     {                                             219     { 
220       laserDrivenMessengerPointer -> SetSecond    220       laserDrivenMessengerPointer -> SetSecondCollimatorThickness
221   (ScollimatorThicknessCmd -> GetNewDoubleValu    221   (ScollimatorThicknessCmd -> GetNewDoubleValue(newValue));
222     }                                             222     }
223   else if( command == ScollimatorZpositionCmd     223   else if( command == ScollimatorZpositionCmd )
224     {                                             224     { 
225       laserDrivenMessengerPointer -> SetSecond    225       laserDrivenMessengerPointer -> SetSecondCollimatorPositionZ
226   (ScollimatorZpositionCmd -> GetNewDoubleValu    226   (ScollimatorZpositionCmd -> GetNewDoubleValue(newValue));
227     }                                             227     }
228   else if( command == SlitThicknessCmd )          228   else if( command == SlitThicknessCmd )
229     {                                             229     { 
230       laserDrivenMessengerPointer -> SetThickn    230       laserDrivenMessengerPointer -> SetThicknessSlit
231   (SlitThicknessCmd -> GetNewDoubleValue(newVa    231   (SlitThicknessCmd -> GetNewDoubleValue(newValue));
232     }                                             232     }   
233   else if( command == holeSlitDimensionYCmd )     233   else if( command == holeSlitDimensionYCmd ) 
234     {                                             234     { 
235       laserDrivenMessengerPointer -> SetSlitHo    235       laserDrivenMessengerPointer -> SetSlitHoleDimensionY
236   (holeSlitDimensionYCmd -> GetNewDoubleValue(    236   (holeSlitDimensionYCmd -> GetNewDoubleValue(newValue));
237     }                                             237     }
238   else if( command == holeSlitDimensionZCmd )     238   else if( command == holeSlitDimensionZCmd ) 
239     {                                             239     { 
240       laserDrivenMessengerPointer -> SetSlitHo    240       laserDrivenMessengerPointer -> SetSlitHoleDimensionZ
241   (holeSlitDimensionZCmd -> GetNewDoubleValue(    241   (holeSlitDimensionZCmd -> GetNewDoubleValue(newValue));
242     }                                             242     }
243   else if( command == slitHolePositionZCmd )      243   else if( command == slitHolePositionZCmd ) 
244     {                                             244     { 
245       laserDrivenMessengerPointer -> SetSlitHo    245       laserDrivenMessengerPointer -> SetSlitHolePositionZ
246   (slitHolePositionZCmd -> GetNewDoubleValue(n    246   (slitHolePositionZCmd -> GetNewDoubleValue(newValue));
247     }                                             247     } 
248   else if (command==DisableQuadsCmd)              248   else if (command==DisableQuadsCmd)
249    {                                              249    {
250       laserDrivenMessengerPointer -> RemoveQua    250       laserDrivenMessengerPointer -> RemoveQuads();
251     }                                             251     }
252                                                   252     
253 }                                                 253 }
254                                                   254  
255                                                   255