Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
CexmcParticleGunMessenger Class Reference

#include <CexmcParticleGunMessenger.hh>

Inheritance diagram for CexmcParticleGunMessenger:
G4UImessenger

Public Member Functions

 CexmcParticleGunMessenger (CexmcParticleGun *particleGun)
 
 ~CexmcParticleGunMessenger ()
 
void SetNewValue (G4UIcommand *cmd, G4String value)
 
- Public Member Functions inherited from G4UImessenger
 G4UImessenger ()
 
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
virtual ~G4UImessenger ()
 
virtual G4String GetCurrentValue (G4UIcommand *command)
 
G4bool operator== (const G4UImessenger &messenger) const
 

Additional Inherited Members

- 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 inherited from G4UImessenger
G4UIdirectorybaseDir
 
G4String baseDirName
 

Detailed Description

Definition at line 57 of file CexmcParticleGunMessenger.hh.

Constructor & Destructor Documentation

CexmcParticleGunMessenger::CexmcParticleGunMessenger ( CexmcParticleGun particleGun)
explicit

Definition at line 57 of file CexmcParticleGunMessenger.cc.

References G4UIcommand::AvailableForStates(), G4State_Idle, G4State_PreInit, CexmcMessenger::gunDirName, G4UIcmdWithAString::SetCandidates(), G4UIcmdWithADoubleAndUnit::SetDefaultUnit(), G4UIcmdWith3VectorAndUnit::SetDefaultUnit(), G4UIcmdWithAString::SetDefaultValue(), G4UIcommand::SetGuidance(), G4UIcmdWithAString::SetParameterName(), G4UIcmdWith3Vector::SetParameterName(), G4UIcmdWithADoubleAndUnit::SetParameterName(), G4UIcmdWith3VectorAndUnit::SetParameterName(), G4UIcommand::SetRange(), G4UIcmdWithADoubleAndUnit::SetUnitCandidates(), and G4UIcmdWith3VectorAndUnit::SetUnitCandidates().

58  :
59  particleGun( particleGun ), setParticle( NULL ), setOrigPosition( NULL ),
60  setOrigDirection( NULL ), setOrigMomentumAmp( NULL )
61 {
62  setParticle = new G4UIcmdWithAString(
63  ( CexmcMessenger::gunDirName + "particle" ).c_str(), this );
64  setParticle->SetGuidance( "Incident beam particle" );
65  setParticle->SetParameterName( "BeamParticle", false );
66  setParticle->SetCandidates( "pi-" );
67  setParticle->SetDefaultValue( "pi-" );
69 
70  setOrigPosition = new G4UIcmdWith3VectorAndUnit(
71  ( CexmcMessenger::gunDirName + "position" ).c_str(), this );
72  setOrigPosition->SetGuidance( "Original position of the beam" );
73  setOrigPosition->SetParameterName( "PositionX", "PositionY", "PositionZ",
74  false );
75  setOrigPosition->SetUnitCandidates( "mm cm m" );
76  setOrigPosition->SetDefaultUnit( "cm" );
77  setOrigPosition->AvailableForStates( G4State_PreInit, G4State_Idle );
78 
79  setOrigDirection = new G4UIcmdWith3Vector(
80  ( CexmcMessenger::gunDirName + "direction" ).c_str(), this );
81  setOrigDirection->SetGuidance( "Original direction of the beam" );
82  setOrigDirection->SetParameterName( "DirectionX", "DirectionY",
83  "DirectionZ", false );
84  setOrigDirection->SetRange(
85  "DirectionX >= -1.0 && DirectionX <= 1.0 && "
86  "DirectionY >= -1.0 && DirectionY <= 1.0 && "
87  "DirectionZ >= -1.0 && DirectionZ <= 1.0" );
88  setOrigDirection->AvailableForStates( G4State_PreInit, G4State_Idle );
89 
90  setOrigMomentumAmp = new G4UIcmdWithADoubleAndUnit(
91  ( CexmcMessenger::gunDirName + "momentumAmp" ).c_str(), this );
92  setOrigMomentumAmp->SetGuidance( "Original momentum of the beam" );
93  setOrigMomentumAmp->SetParameterName( "MomentumAmp", false );
94  setOrigMomentumAmp->SetRange( "MomentumAmp > 0" );
95  setOrigMomentumAmp->SetUnitCandidates( "eV keV MeV GeV" );
96  setOrigMomentumAmp->SetDefaultUnit( "MeV" );
97  setOrigMomentumAmp->AvailableForStates( G4State_PreInit, G4State_Idle );
98 }
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultUnit(const char *defUnit)
void SetParameterName(const char *theNameX, const char *theNameY, const char *theNameZ, G4bool omittable, G4bool currentAsDefault=false)
void SetParameterName(const char *theNameX, const char *theNameY, const char *theNameZ, G4bool omittable, G4bool currentAsDefault=false)
void SetRange(const char *rs)
Definition: G4UIcommand.hh:125
void SetGuidance(const char *aGuidance)
Definition: G4UIcommand.hh:161
void AvailableForStates(G4ApplicationState s1)
Definition: G4UIcommand.cc:225
void SetDefaultValue(const char *defVal)
void SetDefaultUnit(const char *defUnit)
static G4String gunDirName
void SetCandidates(const char *candidateList)
void SetUnitCandidates(const char *candidateList)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetUnitCandidates(const char *candidateList)
CexmcParticleGunMessenger::~CexmcParticleGunMessenger ( )

Definition at line 101 of file CexmcParticleGunMessenger.cc.

102 {
103  delete setParticle;
104  delete setOrigPosition;
105  delete setOrigDirection;
106  delete setOrigMomentumAmp;
107 }

Member Function Documentation

void CexmcParticleGunMessenger::SetNewValue ( G4UIcommand cmd,
G4String  value 
)
virtual

Reimplemented from G4UImessenger.

Definition at line 110 of file CexmcParticleGunMessenger.cc.

References CexmcRunManager::BeamParticleChangeHook(), CexmcWeirdException, G4UIcmdWith3Vector::GetNew3VectorValue(), G4UIcmdWith3VectorAndUnit::GetNew3VectorValue(), G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(), G4ParticleTable::GetParticleTable(), G4RunManager::GetRunManager(), CexmcParticleGun::SetBeamParticle(), CexmcParticleGun::SetOrigDirection(), CexmcParticleGun::SetOrigMomentumAmp(), and CexmcParticleGun::SetOrigPosition().

112 {
113  do
114  {
115  if ( cmd == setParticle )
116  {
117  G4ParticleDefinition * particleDefinition(
118  G4ParticleTable::GetParticleTable()->FindParticle( value ) );
119 
120  if ( ! particleDefinition )
122 
123  particleGun->SetBeamParticle( particleDefinition );
124 
125  CexmcRunManager * runManager( static_cast< CexmcRunManager * >(
127  runManager->BeamParticleChangeHook();
128  break;
129  }
130  if ( cmd == setOrigPosition )
131  {
132  particleGun->SetOrigPosition(
134  break;
135  }
136  if ( cmd == setOrigDirection )
137  {
138  particleGun->SetOrigDirection(
140  break;
141  }
142  if ( cmd == setOrigMomentumAmp )
143  {
144  particleGun->SetOrigMomentumAmp(
146  break;
147  }
148  } while ( false );
149 }
static G4ThreeVector GetNew3VectorValue(const char *paramString)
static G4double GetNewDoubleValue(const char *paramString)
void SetOrigMomentumAmp(G4double momentumAmp, G4bool fromMessenger=true)
static G4ThreeVector GetNew3VectorValue(const char *paramString)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:74
void SetOrigPosition(const G4ThreeVector &position, G4bool fromMessenger=true)
static G4ParticleTable * GetParticleTable()
void SetBeamParticle(G4ParticleDefinition *particleDefinition, G4bool fromMessenger=true)
void SetOrigDirection(const G4ThreeVector &direction, G4bool fromMessenger=true)

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