00001 #ifndef MUSRPARTICLEGUNMESSENGER
00002 #define MUSRPARTICLEGUNMESSENGER 1
00003
00004 class musrParticleGun;
00005 class G4ParticleTable;
00006 class G4UIcommand;
00007 class G4UIdirectory;
00008 class G4UIcmdWithoutParameter;
00009 class G4UIcmdWithAString;
00010 class G4UIcmdWithADoubleAndUnit;
00011 class G4UIcmdWith3Vector;
00012 class G4UIcmdWith3VectorAndUnit;
00013 class G4UIcmdWithAnInteger;
00014
00015 #include "G4UImessenger.hh"
00016 #include "globals.hh"
00017
00018 class musrParticleGunMessenger : public G4UImessenger
00019 {
00020 public:
00021 musrParticleGunMessenger(musrParticleGun* gun);
00022 ~musrParticleGunMessenger();
00023
00024
00025 public:
00026 void SetNewValue(G4UIcommand * command,G4String newValues);
00027 G4String GetCurrentValue(G4UIcommand * command);
00028
00029 private:
00030 void IonCommand(G4String newValues);
00031
00032 private:
00033 musrParticleGun* fParticleGun;
00034 G4ParticleTable * particleTable;
00035
00036 private:
00037 G4UIdirectory * gunDirectory;
00038 G4UIcmdWithoutParameter * listCmd;
00039 G4UIcmdWithAString * particleCmd;
00040 G4UIcmdWith3Vector * directionCmd;
00041 G4UIcmdWithADoubleAndUnit * energyCmd;
00042 G4UIcmdWith3VectorAndUnit * positionCmd;
00043 G4UIcmdWithADoubleAndUnit * timeCmd;
00044 G4UIcmdWith3Vector * polCmd;
00045 G4UIcmdWithAnInteger * numberCmd;
00046
00047 G4UIcommand * ionCmd;
00048
00049 private:
00050 G4bool fShootIon;
00051 G4int fAtomicNumber;
00052 G4int fAtomicMass;
00053 G4int fIonCharge;
00054 G4double fIonExciteEnergy;
00055
00056
00057 };
00058
00059 #endif