00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include "SimG4Core/GFlash/interface/GflashEMShowerModelMessenger.h"
00039 #include "SimG4Core/GFlash/interface/GflashEMShowerModel.h"
00040
00041 #include "GFlashParticleBounds.hh"
00042 #include "G4UIdirectory.hh"
00043 #include "G4UIcmdWithAString.hh"
00044 #include "G4UIcmdWithADoubleAndUnit.hh"
00045 #include "G4UIcmdWithADouble.hh"
00046 #include "G4UIcmdWithAnInteger.hh"
00047 #include "G4Electron.hh"
00048 #include "G4Positron.hh"
00049 #include "globals.hh"
00050
00051 #include <iomanip>
00052 #include <sstream>
00053
00054 GflashEMShowerModelMessenger::
00055 GflashEMShowerModelMessenger(GflashEMShowerModel * aModel)
00056 {
00057 myParaDir = new G4UIdirectory("/GFlash/");
00058 myParaDir->SetGuidance("Parametrisation control.");
00059 myModel= aModel;
00060
00061 FlagCmd = new G4UIcmdWithAnInteger("/GFlash/flag",this);
00062 FlagCmd->SetGuidance("Defines if GFlash is activated");
00063 FlagCmd->SetParameterName("flag",false,false);
00064
00065 ContCmd = new G4UIcmdWithAnInteger("/GFlash/containment ",this);
00066 ContCmd->SetGuidance("Defines if Containment is checked");
00067 ContCmd->SetParameterName("flag",false,false);
00068
00069 StepInX0Cmd = new G4UIcmdWithADouble("/GFlash/stepXo",this);
00070 StepInX0Cmd->SetGuidance("Defines step lenghts");
00071 StepInX0Cmd->SetParameterName("flag",false,false);
00072
00073 EminCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Emin",this);
00074 EminCmd->SetGuidance("Set minimum kinetic energy to trigger parametrisation");
00075 EminCmd->SetParameterName("Emin",false,false);
00076 EminCmd->SetDefaultUnit("GeV");
00077 EminCmd->SetUnitCategory("Energy");
00078 EminCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
00079
00080 EmaxCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Emax",this);
00081 EmaxCmd->SetGuidance("Set maximum kinetic energy to trigger parametrisation");
00082 EmaxCmd->SetParameterName("Emax",false,false);
00083 EmaxCmd->SetDefaultUnit("GeV");
00084 EmaxCmd->SetUnitCategory("Energy");
00085 EmaxCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
00086
00087 EkillCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Ekill",this);
00088 EkillCmd->SetGuidance("Set maximum kinetic energy for electrons to be killed");
00089 EkillCmd->SetParameterName("Ekill",false,false);
00090 EkillCmd->SetDefaultUnit("GeV");
00091 EkillCmd->SetUnitCategory("Energy");
00092 EkillCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
00093 }
00094
00095
00096 GflashEMShowerModelMessenger::~GflashEMShowerModelMessenger()
00097 {
00098 delete ContCmd;
00099 delete FlagCmd;
00100 delete StepInX0Cmd;
00101 delete EminCmd;
00102 delete EmaxCmd;
00103 delete EkillCmd;
00104 }
00105
00106
00107 void GflashEMShowerModelMessenger::
00108 SetNewValue(G4UIcommand * command,G4String newValues)
00109 {
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142 }
00143
00144
00145 G4String GflashEMShowerModelMessenger::GetCurrentValue(G4UIcommand * command)
00146 {
00147 G4String returnValue('\0');
00148 std::ostringstream os;
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176 return returnValue;
00177 }