Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4MoleculeGunMessenger Class Reference

#include <G4MoleculeGunMessenger.hh>

Inheritance diagram for G4MoleculeGunMessenger:
Collaboration diagram for G4MoleculeGunMessenger:

Public Member Functions

 G4MoleculeGunMessenger (G4MoleculeGun *)
 
virtual ~G4MoleculeGunMessenger ()
 
virtual void SetNewValue (G4UIcommand *command, G4String newValue)
 
virtual G4String GetCurrentValue (G4UIcommand *command)
 
const std::vector
< G4MoleculeShootMessenger * > & 
GetShootMessengers () const
 
- Public Member Functions inherited from G4UImessenger
 G4UImessenger ()
 
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
virtual ~G4UImessenger ()
 
G4bool operator== (const G4UImessenger &messenger) const
 
G4bool CommandsShouldBeInMaster () const
 

Protected Member Functions

template<typename T >
G4MoleculeShootMessengerCreateNewType (const G4String &name)
 
- Protected Member Functions inherited from G4UImessenger
G4String ItoS (G4int i)
 
G4String DtoS (G4double a)
 
G4String BtoS (G4bool b)
 
G4int StoI (G4String s)
 
G4double StoD (G4String s)
 
G4bool StoB (G4String s)
 
void AddUIcommand (G4UIcommand *newCommand)
 
void CreateDirectory (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
template<typename T >
T * CreateCommand (const G4String &cname, const G4String &dsc)
 

Protected Attributes

G4MoleculeGunfpMoleculeGun
 
G4UIcmdWithAStringfpGunNewGunType
 
std::vector
< G4MoleculeShootMessenger * > 
fMultipleGun
 
- Protected Attributes inherited from G4UImessenger
G4UIdirectorybaseDir
 
G4String baseDirName
 
G4bool commandsShouldBeInMaster
 

Detailed Description

Definition at line 90 of file G4MoleculeGunMessenger.hh.

Constructor & Destructor Documentation

G4MoleculeGunMessenger::G4MoleculeGunMessenger ( G4MoleculeGun gun)

Definition at line 48 of file G4MoleculeGunMessenger.cc.

48  :
49  G4UImessenger("/chem/gun/", "")
50 {
51  fpGunNewGunType = new G4UIcmdWithAString("/chem/gun/newShoot",
52  this);
53  fpMoleculeGun = gun;
54 }
G4UIcmdWithAString * fpGunNewGunType
G4MoleculeGunMessenger::~G4MoleculeGunMessenger ( )
virtual

Definition at line 58 of file G4MoleculeGunMessenger.cc.

59 {
60  if (fpGunNewGunType) delete fpGunNewGunType;
61 }
G4UIcmdWithAString * fpGunNewGunType

Member Function Documentation

template<typename T >
G4MoleculeShootMessenger* G4MoleculeGunMessenger::CreateNewType ( const G4String name)
inlineprotected

Definition at line 111 of file G4MoleculeGunMessenger.hh.

112  {
113  G4shared_ptr<G4MoleculeShoot> moleculeShoot(new TG4MoleculeShoot<T>());
115  new G4MoleculeShootMessenger(name,
116  this,
117  moleculeShoot);
118  fMultipleGun.push_back(shoot);
120  return shoot;
121  }
ThreeVector shoot(const G4int Ap, const G4int Af)
void AddMoleculeShoot(G4shared_ptr< G4MoleculeShoot >)
G4shared_ptr< G4MoleculeShoot > & GetShoot()
std::vector< G4MoleculeShootMessenger * > fMultipleGun

Here is the call graph for this function:

G4String G4MoleculeGunMessenger::GetCurrentValue ( G4UIcommand command)
virtual

Reimplemented from G4UImessenger.

Definition at line 65 of file G4MoleculeGunMessenger.cc.

66 {
67  return "";
68 }
const std::vector<G4MoleculeShootMessenger*>& G4MoleculeGunMessenger::GetShootMessengers ( ) const
inline

Definition at line 101 of file G4MoleculeGunMessenger.hh.

102  {
103  return fMultipleGun;
104  }
std::vector< G4MoleculeShootMessenger * > fMultipleGun
void G4MoleculeGunMessenger::SetNewValue ( G4UIcommand command,
G4String  newValue 
)
virtual

Reimplemented from G4UImessenger.

Definition at line 72 of file G4MoleculeGunMessenger.cc.

74 {
75  if (command == fpGunNewGunType)
76  {
77  std::istringstream iss (newValue);
78 
79  G4String shootName;
80  iss >> shootName;
81 
82  G4String shootType;
83  iss >> shootType;
84 
85  if(shootType == "" || shootType.empty())
86  {
87  CreateNewType<G4Track>(shootName);
88  }
89  else
90  {
91  CreateNewType<G4ContinuousMedium>(shootName);
92  }
93  }
94 }
G4UIcmdWithAString * fpGunNewGunType

Member Data Documentation

std::vector<G4MoleculeShootMessenger*> G4MoleculeGunMessenger::fMultipleGun
protected

Definition at line 123 of file G4MoleculeGunMessenger.hh.

G4UIcmdWithAString* G4MoleculeGunMessenger::fpGunNewGunType
protected

Definition at line 108 of file G4MoleculeGunMessenger.hh.

G4MoleculeGun* G4MoleculeGunMessenger::fpMoleculeGun
protected

Definition at line 107 of file G4MoleculeGunMessenger.hh.


The documentation for this class was generated from the following files: