Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4MoleculeGunMessenger Class Reference

#include <G4MoleculeGunMessenger.hh>

+ Inheritance 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 ()=default
 
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
virtual ~G4UImessenger ()
 
virtual G4String GetCurrentValue (G4UIcommand *command)
 
virtual void SetNewValue (G4UIcommand *command, G4String newValue)
 
G4bool operator== (const G4UImessenger &messenger) const
 
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 (const G4String &s)
 
G4long StoL (const G4String &s)
 
G4double StoD (const 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 = nullptr
 
G4String baseDirName = ""
 
G4bool commandsShouldBeInMaster = false
 

Detailed Description

Definition at line 90 of file G4MoleculeGunMessenger.hh.

Constructor & Destructor Documentation

◆ G4MoleculeGunMessenger()

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
G4UImessenger()=default

◆ ~G4MoleculeGunMessenger()

G4MoleculeGunMessenger::~G4MoleculeGunMessenger ( )
virtual

Definition at line 58 of file G4MoleculeGunMessenger.cc.

59{
61}

Member Function Documentation

◆ CreateNewType()

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>());
116 this,
117 moleculeShoot);
118 fMultipleGun.push_back(shoot);
120 return shoot;
121 }
std::vector< G4MoleculeShootMessenger * > fMultipleGun
void AddMoleculeShoot(G4shared_ptr< G4MoleculeShoot >)
ThreeVector shoot(const G4int Ap, const G4int Af)

◆ GetCurrentValue()

G4String G4MoleculeGunMessenger::GetCurrentValue ( G4UIcommand command)
virtual

Reimplemented from G4UImessenger.

Definition at line 65 of file G4MoleculeGunMessenger.cc.

66{
67 return "";
68}

◆ GetShootMessengers()

const std::vector< G4MoleculeShootMessenger * > & G4MoleculeGunMessenger::GetShootMessengers ( ) const
inline

Definition at line 101 of file G4MoleculeGunMessenger.hh.

102 {
103 return fMultipleGun;
104 }

◆ SetNewValue()

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}

Member Data Documentation

◆ fMultipleGun

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

Definition at line 123 of file G4MoleculeGunMessenger.hh.

Referenced by CreateNewType(), and GetShootMessengers().

◆ fpGunNewGunType

G4UIcmdWithAString* G4MoleculeGunMessenger::fpGunNewGunType
protected

◆ fpMoleculeGun

G4MoleculeGun* G4MoleculeGunMessenger::fpMoleculeGun
protected

Definition at line 107 of file G4MoleculeGunMessenger.hh.

Referenced by CreateNewType(), and G4MoleculeGunMessenger().


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