Loading...
Searching...
No Matches
G4BlineTracerMessenger.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/// \file field/BlineTracer/src/G4BlineTracerMessenger.cc
27/// \brief Implementation of the G4BlineTracerMessenger class
28//
29//
30//
31// --------------------------------------------------------------------
32//
33// G4BlineTracerMessenger implementation
34//
35// --------------------------------------------------------------------
36// Author: Laurent Desorgher (desorgher@phim.unibe.ch)
37// Created - 2003-10-06
38// --------------------------------------------------------------------
39
41#include "G4BlineTracer.hh"
42#include "G4BlineEventAction.hh"
43
44#include "G4UImessenger.hh"
45#include "G4UIdirectory.hh"
46#include "G4UIcommand.hh"
47#include "G4UIcmdWithADouble.hh"
48#include "G4UIcmdWithADoubleAndUnit.hh"
49#include "G4UIcmdWithAnInteger.hh"
50#include "G4UIcmdWithoutParameter.hh"
51#include "G4UIcmdWith3Vector.hh"
52#include "G4UIcmdWithABool.hh"
53
54//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
55
57 : fTheBlineTool(aBlineTool)
58{
59 fBlineToolDir = new G4UIdirectory("/vis/blineTracer/");
60 fBlineToolDir->SetGuidance("Commands to trace and visualise magnetic field lines.");
61 fBlineToolDir->SetGuidance("These commands work only if a magnetic-field is set");
62 fBlineToolDir->SetGuidance("in the application.");
63
64 // commands
65
66 fBlineCmd = new G4UIcmdWithAnInteger("/vis/blineTracer/computeBline",this);
67 fBlineCmd->SetGuidance("Compute magnetic field lines for visualisation.");
68 fBlineCmd->SetParameterName("nb_of_lines",false);
69 fBlineCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
70
72 new G4UIcmdWithADoubleAndUnit("/vis/blineTracer/setMaxStepLength",this);
73 fSetMaxTrackingStepCmd->SetGuidance("Set the maximum length of tracking step");
74 fSetMaxTrackingStepCmd->SetGuidance("when integrating magnetic field line.");
75 fSetMaxTrackingStepCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
76
77 fSetDrawColourCmd = new G4UIcmdWith3Vector("/vis/blineTracer/setColour",this);
78 fSetDrawColourCmd->SetGuidance("Set the colour drawing trajectories");
79 fSetDrawColourCmd->SetGuidance("and magnetic field lines.");
80 fSetDrawColourCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
81
82 fSetDrawBlineCmd = new G4UIcmdWithABool("/vis/blineTracer/stockLines",this);
83 fSetDrawBlineCmd->SetGuidance("If true field lines are stocked in lines");
84 fSetDrawBlineCmd->SetGuidance("to be drawn.");
85 fSetDrawBlineCmd->SetParameterName("StockLines",false);
86 fSetDrawBlineCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
87
88 fSetDrawPointsCmd = new G4UIcmdWithABool("/vis/blineTracer/stockPoints",this);
89 fSetDrawPointsCmd->SetGuidance("If true step field line points are stocked");
90 fSetDrawPointsCmd->SetGuidance("in vector of points to be drawn.");
91 fSetDrawPointsCmd->SetParameterName("StockPoints",false);
92 fSetDrawPointsCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
93
94 fSetPointSizeCmd = new G4UIcmdWithADouble("/vis/blineTracer/setPointSize",this);
95 fSetPointSizeCmd->SetGuidance("Set the size of points for drawing.");
96 fSetPointSizeCmd->SetParameterName("StepSize",false);
97 fSetPointSizeCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
98
99 fDrawCmd = new G4UIcmdWithoutParameter("/vis/blineTracer/show",this);
100 fDrawCmd->SetGuidance("Show the stored magnetic field lines.");
101 fDrawCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
102
103 fResetCmd =
104 new G4UIcmdWithoutParameter("/vis/blineTracer/resetMaterialToBeDrawn",this);
105 fResetCmd->SetGuidance("Clear the vectors of lines and points to be drawn.");
106 fResetCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
107}
108
109//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
110
112{
113 delete fResetCmd;
114 delete fDrawCmd;
115 delete fSetPointSizeCmd;
116 delete fSetDrawPointsCmd;
117 delete fSetDrawBlineCmd;
118 delete fSetDrawColourCmd;
120 delete fBlineCmd;
121 delete fBlineToolDir;
122}
123
124//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
125
127 G4String newValues )
128{
129 if (command == fBlineCmd)
131 else if( command == fSetMaxTrackingStepCmd )
133 ->GetNewDoubleValue(newValues));
134 else if( command == fSetDrawBlineCmd )
136 ->GetNewBoolValue(newValues));
137 else if( command == fSetDrawColourCmd )
138 {
139 G4ThreeVector vec=fSetDrawColourCmd->GetNew3VectorValue(newValues);
141 SetDrawColour(G4Colour(vec.x(),vec.y(),vec.z()));
142 }
143 else if( command == fSetDrawPointsCmd )
145 ->GetNewBoolValue(newValues));
146 else if( command == fSetPointSizeCmd )
148 ->GetNewDoubleValue(newValues));
149 else if( command == fDrawCmd )
151 else if( command == fResetCmd )
153}
Definition of the G4BlineEventAction class.
Definition of the G4BlineTracerMessenger class.
Definition of the G4BlineTracer class.
void SetDrawPoints(G4bool aBool)
void DrawFieldLines(G4double zoom, G4double theta, G4double phi)
void SetDrawBline(G4bool aBool)
void SetPointSize(G4double aVal)
G4UIcmdWith3Vector * fSetDrawColourCmd
void SetNewValue(G4UIcommand *command, G4String newValues) override
G4UIcmdWithADouble * fSetPointSizeCmd
G4UIcmdWithADoubleAndUnit * fSetMaxTrackingStepCmd
G4UIcmdWithAnInteger * fBlineCmd
G4UIcmdWithoutParameter * fDrawCmd
G4UIcmdWithABool * fSetDrawBlineCmd
G4UIcmdWithoutParameter * fResetCmd
G4UIcmdWithABool * fSetDrawPointsCmd
G4BlineTracerMessenger(G4BlineTracer *aBlineTool)
void SetMaxTrackingStep(G4double max_step)
void ComputeBlines(G4int nlines)
G4BlineEventAction * GetEventAction()

Applications | User Support | Publications | Collaboration