Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
Par04ParallelMessenger Class Reference

Parallel messenger. More...

#include <Par04ParallelMessenger.hh>

Inheritance diagram for Par04ParallelMessenger:
G4UImessenger

Public Member Functions

 Par04ParallelMessenger (Par04ParallelFullWorld *)
 
 ~Par04ParallelMessenger ()
 
virtual void SetNewValue (G4UIcommand *, G4String) final
 Invokes appropriate methods based on the typed command.
 
virtual G4String GetCurrentValue (G4UIcommand *) final
 Retrieves the current settings.
 

Private Attributes

Par04ParallelFullWorldfParallel = nullptr
 Parallel world to setup.
 
G4UIdirectoryfExampleDir = nullptr
 Command to set the directory common to all messengers in this example /Par04.
 
G4UIdirectoryfParallelDir = nullptr
 Command to set the directory for parallel settings /Par04/parallel.
 
G4UIcmdWithoutParameterfPrintCmd
 Command printing current settings.
 
G4UIcmdWithAnIntegerfNbSlicesCmd = nullptr
 Command to set the number of slices.
 
G4UIcmdWithAnIntegerfNbRowsCmd = nullptr
 Command to set the number of rows.
 

Detailed Description

Parallel messenger.

Provides UI commands to setup readout geometry in parallel world (prior to initialization). Number of layers is taken from detector construction.

Definition at line 48 of file Par04ParallelMessenger.hh.

Constructor & Destructor Documentation

◆ Par04ParallelMessenger()

Par04ParallelMessenger::Par04ParallelMessenger ( Par04ParallelFullWorld aParallel)

Definition at line 44 of file Par04ParallelMessenger.cc.

46 , fParallel(aParallel)
47{
48 fExampleDir = new G4UIdirectory("/Par04/");
49 fExampleDir->SetGuidance("UI commands specific to this example");
50
51 fParallelDir = new G4UIdirectory("/Par04/parallel/");
52 fParallelDir->SetGuidance("Parallel construction UI commands");
53
54 fPrintCmd = new G4UIcmdWithoutParameter("/Par04/parallel/print", this);
55 fPrintCmd->SetGuidance("Print current settings.");
56
57 fNbSlicesCmd = new G4UIcmdWithAnInteger("/Par04/parallel/setNbOfSlices", this);
58 fNbSlicesCmd->SetGuidance("Set number of slices.");
59 fNbSlicesCmd->SetParameterName("NbSlices", false);
60 fNbSlicesCmd->SetRange("NbSlices>0");
61 fNbSlicesCmd->AvailableForStates(G4State_PreInit);
62 fNbSlicesCmd->SetToBeBroadcasted(false);
63
64 fNbRowsCmd = new G4UIcmdWithAnInteger("/Par04/parallel/setNbOfRows", this);
65 fNbRowsCmd->SetGuidance("Set number of rows.");
66 fNbRowsCmd->SetParameterName("NbRows", false);
67 fNbRowsCmd->SetRange("NbRows>0");
68 fNbRowsCmd->AvailableForStates(G4State_PreInit);
69 fNbRowsCmd->SetToBeBroadcasted(false);
70}
G4UIcmdWithAnInteger * fNbSlicesCmd
Command to set the number of slices.
Par04ParallelFullWorld * fParallel
Parallel world to setup.
G4UIdirectory * fParallelDir
Command to set the directory for parallel settings /Par04/parallel.
G4UIcmdWithoutParameter * fPrintCmd
Command printing current settings.
G4UIcmdWithAnInteger * fNbRowsCmd
Command to set the number of rows.
G4UIdirectory * fExampleDir
Command to set the directory common to all messengers in this example /Par04.

◆ ~Par04ParallelMessenger()

Par04ParallelMessenger::~Par04ParallelMessenger ( )

Definition at line 74 of file Par04ParallelMessenger.cc.

75{
76 delete fPrintCmd;
77 delete fNbSlicesCmd;
78 delete fNbRowsCmd;
79 delete fParallelDir;
80 delete fExampleDir;
81}

Member Function Documentation

◆ SetNewValue()

void Par04ParallelMessenger::SetNewValue ( G4UIcommand aCommand,
G4String  aNewValue 
)
finalvirtual

Invokes appropriate methods based on the typed command.

Definition at line 85 of file Par04ParallelMessenger.cc.

86{
87 if(aCommand == fPrintCmd)
88 {
90 }
91 else if(aCommand == fNbSlicesCmd)
92 {
93 fParallel->SetNbOfSlices(fNbSlicesCmd->GetNewIntValue(aNewValue));
94 }
95 else if(aCommand == fNbRowsCmd)
96 {
97 fParallel->SetNbOfRows(fNbRowsCmd->GetNewIntValue(aNewValue));
98 }
99}
void SetNbOfSlices(G4int aNumber)
Set number of slices.
void SetNbOfRows(G4int aNumber)
Set number of rows.

◆ GetCurrentValue()

G4String Par04ParallelMessenger::GetCurrentValue ( G4UIcommand aCommand)
finalvirtual

Retrieves the current settings.

Definition at line 103 of file Par04ParallelMessenger.cc.

104{
105 G4String cv;
106
107 if(aCommand == fNbSlicesCmd)
108 {
109 cv = fNbSlicesCmd->ConvertToString(fParallel->GetNbOfSlices());
110 }
111 else if(aCommand == fNbRowsCmd)
112 {
113 cv = fNbRowsCmd->ConvertToString(fParallel->GetNbOfRows());
114 }
115 return cv;
116}
G4int GetNbOfRows() const
Get number of rows.
G4int GetNbOfSlices() const
Get number of slices.

Member Data Documentation

◆ fParallel

Par04ParallelFullWorld* Par04ParallelMessenger::fParallel = nullptr
private

Parallel world to setup.

Definition at line 61 of file Par04ParallelMessenger.hh.

◆ fExampleDir

G4UIdirectory* Par04ParallelMessenger::fExampleDir = nullptr
private

Command to set the directory common to all messengers in this example /Par04.

Definition at line 64 of file Par04ParallelMessenger.hh.

◆ fParallelDir

G4UIdirectory* Par04ParallelMessenger::fParallelDir = nullptr
private

Command to set the directory for parallel settings /Par04/parallel.

Definition at line 66 of file Par04ParallelMessenger.hh.

◆ fPrintCmd

G4UIcmdWithoutParameter* Par04ParallelMessenger::fPrintCmd
private

Command printing current settings.

Definition at line 68 of file Par04ParallelMessenger.hh.

◆ fNbSlicesCmd

G4UIcmdWithAnInteger* Par04ParallelMessenger::fNbSlicesCmd = nullptr
private

Command to set the number of slices.

Definition at line 70 of file Par04ParallelMessenger.hh.

◆ fNbRowsCmd

G4UIcmdWithAnInteger* Par04ParallelMessenger::fNbRowsCmd = nullptr
private

Command to set the number of rows.

Definition at line 72 of file Par04ParallelMessenger.hh.


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

Applications | User Support | Publications | Collaboration