Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4MoleculeCounterManagerMessenger.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// Author: Christian Velten (2025)
27
29
31
34 : G4UImessenger(), fpManager(manager)
35{
36 fpManagerDir = std::make_unique<G4UIdirectory>("/chem/moleculecounters/", false);
37 fpManagerDir->SetGuidance("Molecule Counter Manager Commands");
38 fpManagerDir->AvailableForStates(G4State_PreInit);
39
40 InitializeCommands();
41}
42
43void G4MoleculeCounterManagerMessenger::InitializeCommands()
44{
45 fpActiveCmd = std::make_unique<G4UIcmdWithABool>("/chem/moleculecounters/active", this);
46 fpActiveCmd->AvailableForStates(G4State_PreInit);
47
48 fpResetBeforeEventCmd =
49 std::make_unique<G4UIcmdWithABool>("/chem/moleculecounters/resetBeforeEvent", this);
50 fpResetBeforeEventCmd->AvailableForStates(G4State_PreInit);
51
52 fpResetBeforeRunCmd =
53 std::make_unique<G4UIcmdWithABool>("/chem/moleculecounters/resetBeforeRun", this);
54 fpResetBeforeRunCmd->AvailableForStates(G4State_PreInit);
55
56 fpAccumulateIntoMasterCmd =
57 std::make_unique<G4UIcmdWithABool>("/chem/moleculecounters/accumulateIntoMaster", this);
58 fpAccumulateIntoMasterCmd->AvailableForStates(G4State_PreInit);
59
60 fpVerboseCmd = std::make_unique<G4UIcmdWithAnInteger>("/chem/moleculecounters/verbose", this);
61 fpVerboseCmd->SetDefaultValue(0);
62 fpVerboseCmd->AvailableForStates(G4State_Idle, G4State_Init, G4State_PreInit, G4State_EventProc,
64}
65
67{
68 if (command == fpActiveCmd.get()) {
69 auto value = fpActiveCmd->ConvertToBool(newValue);
70 fpManager->SetIsActive(value);
71 }
72 else if (command == fpResetBeforeEventCmd.get()) {
73 auto value = fpResetBeforeEventCmd->ConvertToBool(newValue);
74 fpManager->SetResetCountersBeforeEvent(value);
75 }
76 else if (command == fpResetBeforeRunCmd.get()) {
77 auto value = fpResetBeforeRunCmd->ConvertToBool(newValue);
78 fpManager->SetResetCountersBeforeRun(value);
79 }
80 else if (command == fpAccumulateIntoMasterCmd.get()) {
81 auto value = fpAccumulateIntoMasterCmd->ConvertToBool(newValue);
82 fpManager->SetAccumulateCounterIntoMaster(value);
83 }
84 else if (command == fpVerboseCmd.get()) {
85 auto value = fpVerboseCmd->ConvertToInt(newValue);
86 fpManager->SetVerbosity(value);
87 }
88}
@ G4State_EventProc
@ G4State_Init
@ G4State_Idle
@ G4State_GeomClosed
@ G4State_PreInit
void SetNewValue(G4UIcommand *, G4String) override
G4MoleculeCounterManagerMessenger(G4MoleculeCounterManager *)
G4UImessenger()=default