ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4BlineTracerMessenger.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4BlineTracerMessenger.cc
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 //
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"
49 #include "G4UIcmdWithAnInteger.hh"
51 #include "G4UIcmdWith3Vector.hh"
52 #include "G4UIcmdWithABool.hh"
53 
55 
57 {
58  fTheBlineTool = aBlineTool;
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);
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.");
76 
77  fSetDrawColourCmd = new G4UIcmdWith3Vector("/vis/blineTracer/setColour",this);
78  fSetDrawColourCmd->SetGuidance("Set the colour drawing trajectories");
79  fSetDrawColourCmd->SetGuidance("and magnetic field lines.");
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);
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);
93 
94  fSetPointSizeCmd = new G4UIcmdWithADouble("/vis/blineTracer/setPointSize",this);
95  fSetPointSizeCmd->SetGuidance("Set the size of points for drawing.");
96  fSetPointSizeCmd->SetParameterName("StepSize",false);
98 
99  fDrawCmd = new G4UIcmdWithoutParameter("/vis/blineTracer/show",this);
100  fDrawCmd->SetGuidance("Show the stored magnetic field lines.");
102 
103  fResetCmd =
104  new G4UIcmdWithoutParameter("/vis/blineTracer/resetMaterialToBeDrawn",this);
105  fResetCmd->SetGuidance("Clear the vectors of lines and points to be drawn.");
107 }
108 
110 
112 {
113  delete fResetCmd;
114  delete fDrawCmd;
115  delete fSetPointSizeCmd;
116  delete fSetDrawPointsCmd;
117  delete fSetDrawBlineCmd;
118  delete fSetDrawColourCmd;
119  delete fSetMaxTrackingStepCmd;
120  delete fBlineCmd;
121  delete fBlineToolDir;
122 }
123 
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  {
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 }