Geant4
11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4QSSMessenger.hh
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
// G4QSSMessenger
27
//
28
// Messenger for QSS Integrator driver
29
30
// Author: Leandro Gomez Vidal - October 2021
31
// --------------------------------------------------------------------
32
#ifndef GEANT4_G4QSSMessenger_H
33
#define GEANT4_G4QSSMessenger_H
34
35
#include "
G4UIcmdWithABool.hh
"
36
#include "
G4UIcmdWithADouble.hh
"
37
#include "
G4UIcmdWithADoubleAndUnit.hh
"
38
#include "
G4UIcmdWithAString.hh
"
39
#include "
G4UIcmdWithAnInteger.hh
"
40
#include "
G4UIcmdWithoutParameter.hh
"
41
#include "
G4UIdirectory.hh
"
42
#include "
G4UImessenger.hh
"
43
44
class
G4QSSMessenger
:
public
G4UImessenger
45
{
46
public
:
47
48
G4QSSMessenger
();
49
~G4QSSMessenger
()
override
;
50
51
void
SetNewValue
(
G4UIcommand
* command,
G4String
newValues)
override
;
52
53
/* Hacky - much easier to access G4QSSMessenger from G4QSSDriver than the other way around
54
* Multithreading seems to cause weird stuff with Driver/Stepper instances, maybe making
55
* some thread-local copies or something, outside of construction? */
56
57
static
G4QSSMessenger
*
instance
();
58
59
enum
StepperSelection
60
{
61
None
= 0,
62
TemplatedDoPri
,
63
OldRK45
,
64
G4QSS2
65
};
66
void
selectStepper
(
const
std::string&);
67
StepperSelection
selectedStepper
();
68
69
public
:
70
71
G4double
dQMin
= 0;
72
G4double
dQRel
= 0;
73
G4double
trialProposedStepModifier
= 1.0;
74
75
private
:
76
77
StepperSelection
_selectedStepper;
78
G4UIdirectory
* qssCmdDir;
79
G4UIcmdWithADoubleAndUnit
* dQMinCmd;
80
G4UIcmdWithADouble
* dQRelCmd;
81
G4UIcmdWithAString
* stepperSelectorCmd;
82
G4UIcmdWithADouble
* trialProposedStepModifierCmd;
83
};
84
85
#endif
// GEANT4_G4QSSMessenger_H
G4double
double G4double
Definition
G4Types.hh:83
G4UIcmdWithABool.hh
G4UIcmdWithADoubleAndUnit.hh
G4UIcmdWithADouble.hh
G4UIcmdWithAString.hh
G4UIcmdWithAnInteger.hh
G4UIcmdWithoutParameter.hh
G4UIdirectory.hh
G4UImessenger.hh
G4QSS2
Definition
G4QSS2.hh:49
G4QSSMessenger
Definition
G4QSSMessenger.hh:45
G4QSSMessenger::G4QSSMessenger
G4QSSMessenger()
Definition
G4QSSMessenger.cc:33
G4QSSMessenger::StepperSelection
StepperSelection
Definition
G4QSSMessenger.hh:60
G4QSSMessenger::TemplatedDoPri
@ TemplatedDoPri
Definition
G4QSSMessenger.hh:62
G4QSSMessenger::OldRK45
@ OldRK45
Definition
G4QSSMessenger.hh:63
G4QSSMessenger::None
@ None
Definition
G4QSSMessenger.hh:61
G4QSSMessenger::selectedStepper
StepperSelection selectedStepper()
Definition
G4QSSMessenger.cc:104
G4QSSMessenger::SetNewValue
void SetNewValue(G4UIcommand *command, G4String newValues) override
Definition
G4QSSMessenger.cc:76
G4QSSMessenger::dQMin
G4double dQMin
Definition
G4QSSMessenger.hh:71
G4QSSMessenger::trialProposedStepModifier
G4double trialProposedStepModifier
Definition
G4QSSMessenger.hh:73
G4QSSMessenger::selectStepper
void selectStepper(const std::string &)
Definition
G4QSSMessenger.cc:96
G4QSSMessenger::instance
static G4QSSMessenger * instance()
Definition
G4QSSMessenger.cc:70
G4QSSMessenger::dQRel
G4double dQRel
Definition
G4QSSMessenger.hh:72
G4QSSMessenger::~G4QSSMessenger
~G4QSSMessenger() override
Definition
G4QSSMessenger.cc:60
G4String
Definition
G4String.hh:62
G4UIcmdWithADoubleAndUnit
Definition
G4UIcmdWithADoubleAndUnit.hh:42
G4UIcmdWithADouble
Definition
G4UIcmdWithADouble.hh:42
G4UIcmdWithAString
Definition
G4UIcmdWithAString.hh:43
G4UIcommand
Definition
G4UIcommand.hh:52
G4UIdirectory
Definition
G4UIdirectory.hh:42
G4UImessenger
Definition
G4UImessenger.hh:47
geant4-v11.2.2
source
geometry
magneticfield
include
G4QSSMessenger.hh
Generated by
1.12.0